Настройка сервера ftp ubuntu: Установка FTP на Ubuntu | Losst
Установка FTP на Ubuntu | Losst
FTP или File Transfer Protocol — это достаточно древний, но в то же время надёжный и проверенный протокол выгрузки файлов на удалённый сервер или их скачивания. Также иногда этот протокол применяется веб-мастерами для управления файлами или организации хранилища данных.
В этой статье мы рассмотрим, как выполняется установка FTP на Ubuntu 20.04, как настроить все необходимые компоненты, в том числе и защищённое соединение. Мы будем использовать FTP-сервер VSFTPD или Very Secure FTP Daemon, который обеспечивает самую надёжную защиту от уязвимостей.
Содержание статьи:
Установка FTP в Ubuntu
Программа доступна из официальных репозиториев, поэтому установка FTP на Ubuntu Server не должна вызвать проблем. Сначала обновите список пакетов в репозиториях, затем установите саму программу:
sudo apt update
sudo apt install vsftpd
Когда установка будет завершена, вам необходимо включить сервис vsftpd, поскольку он не будет запущен по умолчанию, а также добавить службу в автозагрузку:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
Если у вас установлен фаервол ufw, а такая ситуация возникает, когда вы пытаетесь установить FTP на Ubuntu Server, нужно открыть порты 20 и 21 для нормальной работы. Чтобы это сделать, выполните команды:
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw status
Установка FTP Ubuntu завершена, но теперь вам осталось настроить всё необходимое для обеспечения безопасной работы. Никогда не используйте FTP-сервер с настройками по умолчанию в производственных сетях, это небезопасно.
Настройка FTP Ubuntu
Теперь перейдём к настройке. Нам нужно поменять всего несколько параметров, чтобы полностью защитить ваш FTP-сервер. Сначала мы рассмотрим самые очевидные настройки: отключения анонимного входа и так далее. Сначала необходимо скопировать оригинальный файл настроек, чтобы в случае проблем вернуть всё как было:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
Затем откройте файл в редакторе:
sudo vi /etc/vsftpd.conf
Затем добавьте такие настройки. Вам нужно будет найти и изменить значения указанных строк, добавлять новые, если они уже есть, не стоит. Сначала отключаем анонимный вход:
anonymous_enable = NO
Разрешаем использовать имена локальных пользователей для входа:
local_enable = YES
ля авторизованных пользователей разрешаем команды, позволяющие изменять файловую систему:
write_enable = YES
Установим значение umask для новых файлов, создаваемых по FTP:
local_umask = 022
Включаем сообщение о необходимости выбрать каталог после регистрации:
dirmessage_enable = YES
Записывать в лог файл все транзакции по передаче файлов и использовать стандартный формат лога:
xferlog_enable = YES
xferlog_std_format=YES
Использовать порт 20 для передачи данных вместо случайного, это нужно для нормальной работы фаервола:
connect_from_port_20 = YES
Указываем, что нужно ожидать входящих соединений:
listen=YES
Использовать PAM-библиотеки:
pam_service_name=vsftpd
На завершение разрешим аутентификацию только пользователей, перечисленных в файле userlist:
userlist_enable = YES
Указываем файл с нашими виртуальными пользователями:
userlist_file=/etc/vsftpd.userlist
По умолчанию таким пользователям запрещён вход в систему, но мы хотим совсем обратное, поэтому добавьте такую строчку:
userlist_deny=NO
При входе пользователей на FTP-сервер, они могут работать только в корневом каталоге FTP. Если вы хотите, чтобы пользователи были ограничены только своей домашней папкой, то необходимо раскомментировать эти строчки:
chroot_local_user = YES
allow_writeable_chroot = YES
Первая строчка указывает, что нужно разместить пользователя в изолированном домашнем каталоге, а вторая, что ему можно разрешить запись в этот каталог. Настройка FTP Ubuntu почти завершена, сохраните изменения в конфигурационном файле и перезапустите vsftpd:
sudo systemctl restart vsftpd
Тестирование vsftpd
Сервер готов, но система настроена ещё не полностью. Сначала создадим нашего тестового пользователя с помощью useradd:
sudo useradd -m -c "Test User" -s /bin/bash testuser
sudo passwd testuser
Поскольку мы хотим подключаться от его имени к FTP-серверу, то нам нужно добавить его в vsftpd.userlist:
echo "testuser" | sudo tee -a /etc/vsftpd.userlist
cat /etc/vsftpd.userlist
Теперь самое время подключится к нашему FTP-серверу и проверить, как там всё работает. Попробуем войти от имени анонимного пользователя:
У нас ничего не получится. Теперь попробуем войти от имени нашего тестового пользователя, и всё заработает как нужно.
Обратите внимание, что опасно давать пользователям доступ на запись в их домашнюю папку. Делайте это, только если уверены в том, что это необходимо и безопасно.
Настройка домашних папок пользователей
Чтобы хоть как-то обойти проблемы с безопасностью, вы можете использовать другую папку вместо домашней для предоставления её пользователю. Сначала создадим такую папку для нашего пользователя:
sudo mkdir -p /home/testuser/ftp/files
Уберём право на запись для папки ftp:
sudo chown nobody:nogroup /home/testuser/ftp
sudo chmod a-w /home/testuser/ftp
Затем дайте необходимые полномочия пользователю на запись в подпапку.
sudo chown -R testuser:testuser /home/testuser/ftp/files
sudo chmod -R 0770 /home/testuser/ftp/files/
Теперь вернёмся к конфигурационному файлу vsftpd.conf. Сначала закомментируйте строчку:
allow_writeable_chroot = YES
Теперь добавьте такие строчки:
user_sub_token = $USER
local_root=/home/$USER/ftp
Первая из них добавляет переменную $USER, в которой содержится имя пользователя, а вторая задаёт корневую папку для каждого пользователя. Осталось снова перезапустить FTP-сервер:
sudo systemctl restart vsftpd
Теперь вы можете снова войти от имени этого пользователя и увидите, что сейчас используется указанная нами папка.
Настройка защищенного соединения
Установка FTP на Ubuntu 20.04 завершена, но в наше время небезопасно использовать открытую передачу данных через сеть. Всё, что только возможно, необходимо шифровать. Поэтому мы рассмотрим, как настроить защищённое соединение для vsftpd. Сначала создадим папку и сгенерируем сам сертификат, который будем использовать:
sudo mkdir /etc/ssl/private
sudo openssl req -x509 -nodes -days 720 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/private/vsftpd.pem
Затем нужно разрешить доступ к портам защищённого соединения FTP с фаерволе UFW:
sudo ufw allow 990/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw status
И осталось внести несколько правок в настройку самого FTP-сервера. Нам нужно включить ssl_enable и отключить поддержку шифрования sslv2 и sslv3, оставляем только tlsv1:
ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
Далее раскоментируйте такие строки:
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.key
Запретите вход анонимных пользователей по SSL:
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
Теперь установим самый сложный шифр SSL:
ssl_ciphers=HIGH
И настроим диапазон портов для передачи данных:
pasv_min_port=40000
pasv_max_port=50000
Осталось перезагрузить наш сервис:
sudo systemctl restart vsftpd
Теперь тестируем, что у нас получилось:
Как видите, мы уже не можем авторизоваться с помощью утилиты ftp. FTP-сервер выдаёт, что мы обязаны использовать шифрование. Поэтому для тестирования применим FileZilla:
Теперь все данные будут передаваться по зашифрованному соединению. Установка FTP-сервер Ubuntu завершена.
Выводы
В этой статье мы рассмотрели, как выполняется установка FTP на Ubuntu Server 20.04, также как настроить FTP для максимально безопасной работы, включая настройку работы по SSL. Если у вас остались вопросы, спрашивайте в комментариях!
Сервер FTP | Русскоязычная документация по Ubuntu
Сервер FTP
Протокол передачи файлов (FTP) — это TCP протокол для передачи файлов между компьютерами. В прошлом он использовался также для загрузки [файлов в интернете], но, поскольку этот метод не использует шифрование, пользовательские данные как и содержимое файлов передаются в открытую и легко перехватываются. Поэтому, если вы здесь ищете способ безопасно передавать и загружать файлы, лучше обратитесь к статье по OpenSSH в разделе Удаленное администрирование.
FTP работает на основе модели клиент/сервер. Серверный компонент называется сервисом FTP. Он постоянно слушает FTP запросы от удаленных клиентов. При получении запроса он управляет входом и установкой соединения. На протяжении сессии он выполняет любые команды, переданные FTP клиентом.
vsftpd — установка FTP сервера
vsftpd — это сервис FTP, доступный в Ubuntu. Его легко устанавливать, настраивать и поддерживать. Для установки vsftpd вы можете выполнить следующую команду:
sudo apt install vsftpd
Для запуска сервиса требуется добавить его в автозагрузку. Начиная с версии Ubuntu 15.04 используется Systemd, поэтому для добавления vsftpd в автозапуск надо ввести следующие команды:
sudo systemctl start vsftpd sudo systemctl enable vsftpd
В Ubuntu Server может использоваться файервол ufw. Тогда вам потребуется разрешить порты 20 и 21
sudo ufw allow 20/tcp sudo ufw allow 21/tcp
Конфигурационный файл содержит много параметров настройки. Информация по каждому параметру доступна в этом же файле. В качестве альтернативы вы можете посмотреть системное руководство по команде
man 5 vsftpd.conf
для уточнения деталей по каждому параметру.
Доступ к FTP серверу может быть организован двумя способами:
Анонимным (Anonymous)
Авторизованным (Authenticated)
В анонимном режиме удаленный клиент может получить доступ к FTP серверу, используя учетную запись пользователя по умолчанию с именем «anonymous» или «ftp» и передав адрес email в качестве пароля. В авторизованном режиме пользователь должен иметь учетное имя и пароль. Этот последний вариант крайне небезопасный и не должен использоваться за исключением специальных обстоятельств. Если вы хотите передавать файлы безопасно, смотрите SFTP в разделе по OpenSSH серверу. Пользовательский доступ к каталогам и файлам FTP сервера зависит от прав доступа пользователя, указанного при входе. Как правило, сервис FTP скрывает корневой каталог FTP сервера, подменяя его на домашний каталог FTP. Это скрывает корень файловой системы от удаленных сессий.
Настройка анонимного доступа по FTP
Прежде чем вносить какие-либо изменения в конфигурационный файл, рекомендуется скопировать образец для возможности отката изменений без переустановки пакета
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
Настройка vsftpd по умолчанию не разрешает анонимную загрузку. Если вы хотите разрешить анонимную загрузку, измените в /etc/vsftpd.conf следующее:
anonymous_enable=YES
В процессе установки создается пользователь ftp с домашним каталогом /srv/ftp. Это каталог по умолчанию для FTP.
Если вы желаете поменять его расположение, например, на /srv/files/ftp, просто создайте новый каталог и измените домашний каталог пользователя ftp:
sudo mkdir /srv/files/ftp sudo usermod -d /srv/files/ftp ftp
После изменений перезапустите vsftpd:
sudo service vsftpd restart
Под конец скопируйте все файлы и каталоги, которые вы хотите сделать доступными для анонимного FTP в /srv/files/ftp (или /srv/ftp, если вы хотите оставить настройки по умолчанию).
По умолчанию анонимный пользователь не имеет возможности загружать файлы на FTP сервер. Для изменения этой настройки уберите комментарий на следующей строке и перезапустите vsftpd:
anon_upload_enable=YES
Разрешение анонимному пользователю загружать файлы может оказаться серьезной угрозой безопасности. Лучше не разрешать анонимную загрузку файлов на сервера с прямым доступом из интернета.
Настройка авторизованного доступа по FTP
Прежде чем вносить какие-либо изменения в конфигурационный файл, рекомендуется скопировать образец для возможности отката изменений без переустановки пакета
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
Для аутентификации локальных пользователей надо раскоментировать строчку
local_enable=YES
По умолчанию vsftpd настроен на аутентификацию системных пользователей с возможностью получать файлы. Если вы хотите пользователям разрешить загружать файлы, измените в /etc/vsftpd.conf:
write_enable=YES
после чего перезагрузите vsftpd:
sudo service vsftpd restart
Теперь при входе системных пользователей по FTP они будут попадать в свои домашние каталоги, где они смогут скачивать, загружать [файлы], создавать каталоги и т.д.
Защита FTP
Ограничение пользователей
В /etc/vsftpd.conf существуют опции, помогающие сделать vsftpd более безопасным. Например, данная опция позволяет поместить локального пользователя в chroot() «заточение», выше которого (по дереву каталогов) он не сможет подняться.
chroot_local_user=YES
Вы также можете определить список пользователей, имеющих доступ только в домашний каталог:
chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list
После снятия комментариев с этих опций, создайте /etc/vsftpd.chroot_list, содержащий список пользователей по одному на строку. Затем перезапустите vsftpd:
sudo service vsftpd restart
Если вы сняли комментарии со всех трёх строчек, то пользователи из списка не будут ограничены своими домашними каталогами, в отличии от пользователей не вошедших в список
Аналогично файл /etc/ftpusers содержит список пользователей, которым запрещен доступ по FTP. По умолчанию он включает root, daemon, nobody и т.п. Для запрета доступа по FTP для дополнительных пользователей, просто добавьте их в этот список.
Если при попытке подключения вы видите ошибку 1):
Ответ: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
то это значит, что локальный пользователь имеет доступ на запись в домашний каталог, чего быть не должно. Способов решения этой ошибки несколько:
sudo chmod a-w /home/user/
- Отменить проверку записи в домашний каталог прописав в конфиге 2)
allow_writeable_chroot=YES
- Прописать /home каталогом, куда будут попадать локальные пользователи после входа на FTP сервер. Тогда каждый из них будет иметь возможность писать только в свой домашний каталог
local_root=/home
Шифрование
FTP может быть зашифрованным при использовании FTPS. В отличие от SFTP, FTPS — это FTP поверх SSL. SFTP — это сессия, подобная FTP, по зашифрованному SSH соединению. Основное отличие заключается в том, что пользователи SFTP должны иметь учетную запись с собственным окружением (shell account) вместо оболочки nologin. Предоставление всем пользователям доступа к оболочке может оказаться не лучшим решением для некоторых систем, таких как web сервер общего доступа. Однако есть возможность ограничить такие учетные записи только SFTP и запретить взаимодействие с оболочкой. Смотрите раздел по OpenSSH для дополнительной информации.
Для настройки FTPS, добавьте в конец файла /etc/vsftpd.conf следующее:
ssl_enable=Yes
Также обратите внимание на опции сертификата и ключа:
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
По умолчанию эти опции установлены в значения, предоставленные пакетом ssl-cert. Для рабочей среды они должны быть заменены на сертификат и ключ, созданные для определенного компьютера. Для дополнительной информации смотрите раздел Сертификаты.
Теперь перегрузите vsftpd и неанонимные пользователи будут использовать FTPS:
sudo service restart vsftpd
Чтобы позволить пользователям с оболочкой /usr/sbin/nologin получить доступ к FTP, но не предоставлять shell доступ, отредактируйте /etc/shells, добавив к оболочке nologin:
# /etc/shells: valid login shells /bin/csh /bin/sh /usr/bin/es /usr/bin/ksh /bin/ksh /usr/bin/rc /usr/bin/tcsh /bin/tcsh /usr/bin/esh /bin/dash /bin/bash /bin/rbash /usr/bin/screen /usr/sbin/nologin
Это необходимо, поскольку по умолчанию vsftpd использует авторизацию PAM, а файл настроек /etc/pam.d/vsftpd содержит:
auth required pam_shells.so
Модуль PAM shells ограничивает доступ к оболочкам, перечисленным в файле /etc/shells.
Наиболее популярные клиенты FTP могут быть настроены на использование FTPS. FTP клиент командной строки lftp также имеет возможность использовать FTPS.
Ссылки
Простой FTP-сервер на базе Ubuntu (vsftpd)
Время от времени у каждого системного администратора возникает потребность в FTP-сервере, чаще всего это связано с необходимостью обеспечить обмен информацией в автоматическом режиме между приложениями, например, при автообмене распределенной информационной базы 1С, или для доступа к файлам на веб-сервере. Сегодня мы расскажем, как меньше чем за полчаса создать такой сервер на платформе Ubuntu.
Но сначала немного теории. Протокол FTP (File Transfer Protocol) предназначен, как следует из названия, для передачи файлов и появился в 1971 году, но несмотря на свой преклонный возраст продолжает широко использоваться до сих пор. Хотя сегодня его использование носит чаще технический характер, для доступа конечных пользователей к данным обычно используют браузер и протокол HTTP. К достоинствам FTP можно отнести возможность докачки файла при обрыве связи и возможность одинаково легко как считывать файлы, так и записывать их. Но есть и недостатки, самый серьезный — низкая безопасность, поэтому этому вопросу следует уделить самое пристальное внимание.
FTP, как и PPTP, использует разные соединения для передачи команд и передачи данных. При инициации соединения клиент передает управляющие команды на порт 21 сервера, который в свою очередь устанавливает исходящее соединение для передачи данных на 20 порту, порт со стороны клиента определяется в результате согласования. Однако при нахождении клиента за NAT соединение подобным образом установить не удастся, поэтому был разработан дополнительный режим FTP passive mode (пассивный режим), когда соединение для передачи данных устанавливает не сервер, а клиент, однако с параметрами, указанными сервером. Эти моменты следует учитывать при форвардинге FTP и при настройке сетевого фильтра.
Для нашего сервера мы будем использовать vsftpd — простой, быстрый и безопасный FTP сервер. Так как он будет обслуживать как внешнюю, так и внутреннюю сети, то имеет смысл добавить эту роль нашему роутеру. Установка сервера предельно проста:
apt-get install vsftpd
Настройка сервера производится через конфигурационный файл /etc/vsftpd.conf он имеет простую структуру, хорошо откомментирован и позволяет настроить сервер без какой-либо инструкции при наличии минимальных знаний. Рассмотрим его основные параметры.
Сервер может быть запущен постоянно, как служба или стартовать при необходимости, нам больше подходит первый вариант:
listen=YES
Данная опция имеет взаимоисключающую запись, которую следует привести к виду:
listen_ipv6=NO
Разрешим вход только локальным пользователям:
anonymous_enable=NO
local_enable=YES
Разрешим пользователям записывать файлы и укажем серверу автоматически выставлять нужные права (755 на папки и 644 на файлы):
write_enable=YES
local_umask=022
Если требуется установить иной набор прав: 775 и 664, то umask должен быть равен 002.
По умолчанию сервер использует время GMT, чтобы файлам устанавливалось время вашего часового пояса, используйте опцию:
use_localtime=YES
Включим лог загружаемых и скачиваемых файлов:
xferlog_enable=YES
Разрешим серверу устанавливать соединения для передачи данных на порт 20:
connect_from_port_20=YES
Следующие опции задают место и формат хранения логов:
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
Зададим таймауты сессии:
idle_session_timeout=600
data_connection_timeout=120
Также в целях безопасности изолируем пользователя в его домашнем каталоге и сразу разрешим запись в его корень:
chroot_local_user=YES
allow_writeable_chroot=YES
Для коррекной работы с текстовыми данными можно включить поддержку ASCII, это позволит при передаче текстового файла с Windows системы в UNIX (Linux) корректно заменить символы переноса строки с CR+LF на LF для корректного отображение содержимого и выполнить обратное преобразование при передаче его назад.
ascii_upload_enable=YES
ascii_download_enable=YES
Можно включить только одну опцию, для закачки или скачивания. Обратите внимание, что при передаче бинарного файла в режиме ASCII последний может быть поврежден.
Достаточно интересная опция:
ls_recurse_enable=YES
Она позволяет рекурсивный просмотр каталогов, с одной стороны это удобно, с другой способно вызвать большую нагрузку на сервер, если, например, получить листинг директории, содержащей большое количество файлов и каталогов.
Все остальные опции оставляем по умолчанию, хотя можете отредактировать приветствие сервера, написав там все что вам нравится:
ftpd_banner=Welcome to Roga i Kopyta LLC FTP
В конце конфигурационного файла зададим настройки для пассивного режима, рекомендуется явно задать порты, чтобы была возможность указать их при форвардинге, если сервер стоит за NAT или в правилах брандмауера:
pasv_enable=YES
pasv_min_port=62000
pasv_max_port=62999
Перезапускаем сервер (это нужно делать всякий раз после внесения изменений в конфигурацию):
service vsftpd restart
и пробуем подключиться любым FTP-клиентом используя учетные данные существующего пользователя. Мы должны попасть в его домашнюю директорию и быть изолированы в ней.
В случае появления ошибки, связанной с некорректной работой vsftpd и системы безопасности seccomp:
500 OOPS: prctl PR_SET_SECCOMP failed
добавьте в файл недокументированную опцию:
seccomp_sandbox=NO
Однако помните, что FTP — небезопасный протокол, поэтому пускать на сервер любого локального пользователя, как это сделано сейчас, не самый лучший вариант. Чтобы избежать такой ситуации vsftpd имеет встроенный механизм контроля пользователей. Добавим в конфигурационный файл опцию:
userlist_enable=YES
и создадим файл списка пользователей:
touch /etc/vsftpd.user_list
По умолчанию vsftpd запрещает доступ к серверу пользователям, указанным в данном списке еще до ввода пароля, т.е. реализует принцип разрешено всем, кому не запрещено. Но гораздо лучше будет реализовать иной подход: запрещено всем, кому не разрешено. Т.е. разрешать доступ только указанным пользователям. Для этого добавим опцию:
userlist_deny=NO
Теперь доступ к FTP-серверу будут иметь только явно указанные пользователи, их следует указывать в vsftpd.user_list по одному в строку, например:
ivanov
petrov
Если не указано иное, то подключившись по FTP пользователи попадают в свой домашний каталог. Это не всегда удобно, часто нужно перенаправлять их в иную директорию. Если это общая для всех папка, скажем /var/ftp, то можно задать опцию:
local_root=/var/ftp
Которая перенаправит всех пользователей в указанный каталог и изолирует их там.
Это самая простая ситуация, реальные задачи обычно сложнее, допустим нам надо установить пользователю Иванову в качестве корневой директории /var/www/example1.com, а Петрову /var/www/example2.com, чтобы каждый из них работал со своей папкой. Для этих целей можно использовать еще одну возможность vsftpd — пользовательские настройки, которые перекрывают настройки основного конфигурационного файла.
Для этого добавим опцию:
user_config_dir=/etc/vsftpd_user_conf
Затем создадим саму директорию
mkdir /etc/vsftpd_user_conf
Чтобы задать пользователю собственные настройки в данной директории следует создать файл с именем пользовтаеля и добавить в него необходимые опции. Изменения применяются без перезапуска FTP-сервера при следующем подключении клиента.
Создадим файл с настройками для Иванова:
tocuh /etc/vsftpd_user_conf/ivanov
и внесем в него опцию:
local_root=/var/www/example1.com
При следующем подключении корневая директория пользователя изменится на указанную. Также в этом файле мы можем задавать любые персональные опции, например, другой umask или права на доступ к файлам. Однако мы не можем использовать здесь глобальные настройки: опции подключения, логгирования, аутентификации, они будут просто игнорироваться.
Если вам нужно скрыть реальных владельцев файлов и папок, то можно использовать опцию:
hide_ids=YES
В этом случае вместо реальных владельцев и групп будет указано ftp:ftp, это может быть полезным в случае публичного сервера или наличия в списке пользователей посторонних лиц, которым вы не хотите раскрывать реальные имена пользователей вашей системы.
Как видим, мы действительно создали рабочий FTP-сервер менее чем за полчаса.
Как установить FTP-сервер на Ubuntu — настройка защищенного vsftpd
Попробуйте настроить FTP-сервер по нашей инструкции — мы расскажем, как установить FTP-сервер на Ubuntu 20.04, настроить сервер vsftpd и подключить защищённое FTP-соединение простым способом. Инструкция также подойдет для дистрибутива Ubuntu версий 18.04 и 16.04.
С FTP-сервером можно работать благодаря одному из базовых протоколов интернета — FTP. В операционной системе Ubuntu можно подключить такие популярные FTP-серверы, как: proftpd, wu-ftpd, pureftpd и vsftpd. Мы рассмотрим, как установить vsftpd Ubuntu — один из самых быстрых и безопасных серверов.
Чтобы начать работу с FTP-сервером vsftpd, установите и настройте его. Затем подключите защищённое соединение SSL/TLS, назначьте доступ FTP-пользователям и настройте брандмауэр. В инструкции ниже мы подробно описали каждый из этих этапов.
Установка FTP-сервера vsftpd
Чтобы установить на Ubuntu server vsftpd:
-
1.Обновите пакеты apt:
-
2.Установите FTP-сервер vsftpd:
-
3.Проверьте работоспособность сервера:
sudo systemctl status vsftpd
Если сервер активен, в выводе появится надпись active:
FTP server Ubuntu
Готово, вы установили FTP-сервер vsftpd.
Настройка FTP-сервера на Ubuntu
Настройте сервер vsftpd через файл конфигурации — /etc/vsftpd.conf. Для этого:
-
1.Скопируйте оригинальный файл с настройками в файл /etc/vsftpd.conf.original:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.original
-
2.Откройте конфигурационный файл:
sudo nano /etc/vsftpd.conf
-
3.В файле укажите директивы и назначьте параметры с помощью указанных ниже команд.
- Настройте сервер для запуска:
и
- Настройте доступ к FTP-серверу, чтобы разрешить вход только локальным пользователям:
и
- Разрешите пользователям работать в файловой системе (загружать и удалять файлы):
- Назначьте права для новых файлов:
- Настройте сообщение о выборе каталога после регистрации:
- Разрешите серверу использовать локальный часовой пояс:
- Настройте запись всех передач файлов в лог:
- Настройте порт 20 для передачи данных:
- Задайте путь хранения логов и их формат:
xferlog_file=/var/log/vsftpd.log
и
- Откройте пользователям доступ только к своим домашним каталогам командами:
и
allow_writeable_chroot=YES
- Настройте возможность использования PAM-сервиса:
- Разрешите аутентификацию на FTP-сервере только тем пользователям, которые указаны в файле userlist с помощью команд:
userlist_file=/etc/vsftpd.userlist
и
-
4.Сохраните и закройте файл сочетанием клавиш Ctrl+X и Y.
Готово, вы настроили FTP-сервер.
Подключение защищенного соединения SSL/TLS
Для настройки защищённой FTP-передачи с помощью SSL/TLS нужен SSL-сертификат. Вы можете использовать уже существующий сертификат или создать самоподписанный. Чтобы настроить защищенное соединение через самоподписанный SSL-сертификат:
-
1.Сгенерируйте SSL-сертификат. Этой командой будет создан сертификат сроком действия 10 лет и 2048-битный закрытый ключ. Они будут храниться в файле vsftpd.pem.
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
-
2.Откройте конфигурационный файл vsftpd.conf:
sudo nano /etc/vsftpd.conf
-
3.Найдите директивы rsa_cert_file и rsa_private_key_file. Присвойте им значения пути к файлу vsftpd.pem командами:
rsa_cert_file=/etc/ssl/private/vsftpd.pem
и
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
-
4.Разрешите использование протокола SSL:
-
5.Сохраните и закройте файл сочетанием клавиш Ctrl+X и Y.
-
6.Перезапустите сервер:
sudo systemctl restart vsftpd
Готово, вы настроили защищённое соединение.
Создание FTP-пользователей и предоставление им доступа
Если у вас уже созданы FTP-пользователи, дайте им доступ:
-
1.Добавьте имена FTP-пользователей в созданный ранее файл /etc/vsftpd.userlist. Для этого откройте файл командой:
sudo nano /etc/vsftpd.userlist
Затем введите имена пользователей — в одной строке вводите одно имя.
-
2.Сохраните и закройте файл сочетанием клавиш Ctrl+X и Y.
Готово, вы назначили доступ FTP-пользователям.
Если таких пользователей ещё нет, сначала создайте их:
-
1.Создайте нового пользователя:
-
2.Назначьте ему пароль:
Где user — имя пользователя.
-
3.Предоставьте FTP-доступ пользователю. Добавьте его имя в файл /etc/vsftpd.userlist:
echo "user" | sudo tee -a /etc/vsftpd.userlist
Готово, вы создали FTP-пользователей и назначили им доступ.
Настройка работы брандмауэра
Если вы используете брандмауэр (firewall) UFW, разрешите FTP-трафик. Для этого:
-
1.Откройте порты 20, 21, 22, 990 и зарезервируйте диапазон портов 40000-50000 командами:
sudo ufw allow 40000:50000/tcp
-
2.Перезагрузите UFW:
sudo ufw disablesudo ufw enable
-
3.Проверьте работоспособность UFW:
Готово, вы открыли брандмауэр для работы по FTP. Теперь вы можете проверить соединение через FTP-клиент FileZilla и приступить к работе с сервером.
Итак, вы узнали, каким способом можно быстро установить и настроить защищенный фтп-сервер на Убунту.
Помогла ли вам статья?
0
раз уже
помогла
Ubuntu FTP сервер: установка и настройка
Известный факт: работа любой операционной системы зависит от того, какой сервер установлен на девайсе. Сервер FTP на Ubuntu имеет свои преимущества и недостатки. Он обладает своими специфическими особенностями. Следует знать важные аспекты установки и настройки ftp сервера linux. Также новичку следует знать о часто встречающихся ошибках установки ubuntu ftp server и проблемы, возникающие после при работе с ним.
Что такое FTP
FTP server linux – это один из базовых протоколов передачи файлов в сети на платформе убунту. С его помощью можно:
- подключаться к различным tftp серверам ubuntu;
- просматривать различные каталоги;
- загружать документы с одного сервера на другой (например, с tftp на atftpd ubuntu).
Это оборудование использует для своей работы различные программы – ubuntu ftp клиенты:
- File Zilla – универсальная программа, используется для всех протоколов и платформ.
- WinSCP – очень удобный с двумя панелями протокол для системы виндовс.
- FAR Manager – его используют только с помощью консоли Виндовс.
- FireFTP – этот сервер актуален для браузера Mozilla.
- Total Commander – популярный менеджер для Виндовс.
- Cyberduck – программное обеспечение для платформы Линукс.
Дальнейшие этапы установки, настройки и работы будут рассмотрены для ftp сервера ubuntu 14.04.
Совет! Для более полного ознакомления с имеющимися программами следует обратиться к специалистам.
Режимы работы FTP
При работе с таким протоколом есть 2 режима, которые отличаются между собой соединением между пользователем и сетью.
Автономный режим
По-другому этот вариант называется пассивным режимом. Это более безопасный для пользователя случай. Человек в этом случае не указывает номера порта.
Методика передачи файлов такова:
- Отправляют со своего временного порта запрос на порт сервера.
- Затем следует ответ сервера на временный порт индивидуума.
- Подтверждают соединение. Затем отправляют команду, утверждающую пассивный режим работы.
- Сервер в ответ подтверждает режим работы, выдает ip-адрес и номер порта для связи.
- Отправляют запрос с нового порта на соединение с выданным номером порта.
- Сервер подтверждает установку.
- После установления соединения клиент дает команды, и начинается передача.
Очень важно использовать этот режим, если установлен Firwall.
Нормальный режим
По-другому этот вариант называется активным режимом. В этом случае пользователь сам задает необходимый порт для связи.
Методика передачи файлов выглядит следующим образом:
- Клиент отправляет со своего временного порта запрос на порт сервера.
- Затем следует ответ сервера на временный порт индивидуума.
- Подтверждают соединение. Затем отправляют команду, утверждающую активный режим работы, свой ip-адрес и порт.
- Сервер в ответ подтверждает режим работы.
- Дают команды серверу.
- Сервер дает запрос на указанный пользователем порт о соединении.
- Клиент подтверждает это соединение, и передача файлов начинается.
Однако этот вариант опасен тем, что данные клиента могут попасть в «чужие руки», поскольку они никак не зашифрованы.
Установка FTP на Ubuntu Server
Этот процесс происходит с помощью команды vsftpd.
Алгоритм простой:
- Установка с помощью выражения sudo apt install vsftpd.
- Для запуска: sudo systemctl start vsftpd, sudo systemctl enable vsftpd.
- Разрешить порты для работы ufw: sudo ufw allow 20/tcp, sudo ufw allow 21/tcp.
- Запустится конфигурационный файл, содержащий множество параметров настройки. Руководство по каждому пункту вызывается с помощью команды: man 5 vsftpd.conf.
Совет! Новичку следует обратиться за помощью к сервисному центру.
Настройка FTP сервера на Ubuntu
Этот процесс имеет разные направления, которые различаются своими специфическими особенностями.
Настройка доступа пользователей
Есть 2 пути: анонимный и авторизированный. Первый случай простой, пользователь создает анонимный файл для связи. Второй случай более безопасный – должна быть учетная запись.
Анонимный доступ
Скопировать на всякий случай конфигурационный файл с помощью команды:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
Затем установить анонимный режим:
sudo cp /etc/vsftpd.conf / anonymous_enable=YES
После следует перезапустить сервер с помощью выражения:
sudo service vsftpd restart
Затем нужно скопировать файлы и каталоги для доступа анонимных клиентов.
Чтобы они тоже могли загружать файлы, нужно воспользоваться выражением:
anon_upload_enable=YES
Однако последний пункт может привести к нарушению безопасности работы сервера.
Авторизированный доступ
Повторить первый пункт предыдущего метода.
Для введения своих данных нужно создать строку с помощью:
local_enable=YES
Разрешить пользователям загрузку файлов можно с помощью команды:
write_enable=YES
Затем следует перезагрузить систему с помощью выражения:
sudo service vsftpd restart
После следует защитить систему другими опциями.
Смена номера порта
Сначала нужно подключиться к серверу по SSH.
Узнать, какой FTP-сервер установлен с помощью выражения:
dpkg -l | grep ftpd | awk ‘{print $2’}
Выполнить команды: либо vsftpd, либо proftpd.
Другие опции
Есть важные 2 направления, о которых каждый пользователь обязательно должен знать.
Ограничение пользователей
Управлять документами и запросами пользователями достаточно просто.
Для ограничения уровня любого человека можно воспользоваться командой:
chroot_local_user=YES
Установить список людей, которым будет доступен домашний каталог, можно с помощью команд:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
Затем следует перезапустить программу с помощью:
sudo service vsftpd restart
Также можно запретить доступ в домашний каталог другим пользователям с помощью:
sudo chmod a-w /home/user/
Отменить проверку на запись в домашний каталог можно выражением:
allow_writeable_chroot=YES
Разрешить пользователям только входить в свои каталоги:
local_root=/home
Шифрование
При наличии FTPS пользовательское место для увеличения безопасности можно зашифровать.
Для настройки такого режима следует в конце конфигурационного файла добавить:
ssl_enable=Yes
Ввести сертификат и ключ с помощью:
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
Перезагрузить программу:
sudo service restart vsftpd
Чтобы пользователям был доступ к серверу, а не к оболочке, следует отредактировать файл следующим образом:
# /etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/screen
/usr/sbin/nologin
Частые ошибки и проблемы
Частые проблемы новичков заключаются в следующем:
- Не видны те файлы, название которых начинаются с точки. Они считаются скрытыми. Для решения этой проблемы следует в файл /usr/local/etc/proftpd.conf вписать:
ListOptions -la
- Запрещен доступ пользователю с правами Root. В этом случае следует перейти на протокол SFTP.
- Невозможность подключения. Решение многоуровневое будет рассмотрено ниже.
Выполняя вышеперечисленные действия, человек может самостоятельно быстро настроить работу сервера.
Невозможность подключения через FTP
Чтоб разрешить проблему, следует принять ряд определенных мер.
Проверить установку
Нужно выполнить запрос:
# dpkg -l | grep -i «ftp»
Если сервер установлен, то придет ответ:
ii ftp 0.17-25 classical file transfer client
ii proftpd-basic 1.3.4a-1 Versatile , virtual-hosting FTP daemon — binaries
Если нет, то следует загрузить сервер:
# apt-get install proftpd
Проверить запуск
Нужно подключиться к серверу с помощью SSH и ввести команды:
# telnet localhost 21
# netstat -tulpn | grep :21
Должен быть ответ:
tcp6 0 0 :::21 :::* LISTEN 6208/proftpd: (acce
Другой способ заключается в введении выражения:
# netstat -a | grep ftp
В этом случает ответ будет выглядеть следующим образом:
tcp6 0 0 [::]:ftp [::]:* LISTEN
Если порт не открыт, то его следует запустить командой:
# /etc/init.d/proftpd start
Запрет для пользователя
Проверить отсутствие блокировки запросом:
# iptables -L -n
Ответ сервера в этом случае:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ISPMGR all — 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ISPMGR all — 0.0.0.0/0 0.0.0.0/0
Chain ISPMGR (2 references)
target prot opt source destination
Заключение
Сервер FTP на Ubuntu –базовый протокол передачи файлов для платформы Линукс. Установка и настройка его требует учета специфических нюансов. Для предотвращения каких-либо поломок нужно обратиться к специалисту.
Установка и настройка FTP-сервера в Linux
File Transfer Protocol, т. е. FTP – протокол передачи файлов и, как понятно из полного названия, предназначен для передачи файлов между удалёнными компьютерами через сеть. Несмотря на то, что сам протокол FTP является на сегодняшний день не самым совершенным из-за того, что передаваемые данные не шифруются, однако это не делает его устаревшим. Кроме того всё-таки к FTP возможно применять криптографическую защиту на основе протокола SSL, что и делает FTP достойным инструментом для передачи файлов.
Поскольку FTP работает по схеме клиент-серверного взаимодействия, то умелая и надёжная реализация протокола (да и вообще системы) в состоянии обеспечить ему надёжную защиту, высокую скорость и, как следствие — популярность, что и можно наблюдать на сегодняшний день, ведь большинство крупных проектов, таких как ftp.gnu.org, ftp.suse.com, ftp.redhat.com, ftp.gnome.org и т. д., используют для распространения программного обеспечения со своих серверов именно FTP. Надо заметить, что такой популярностью FTP обязан, в большей степени, одной из своих многочисленных реализаций — vsFTPd. Это FTP- сервер, поддерживающий работу с самыми современными технологиями по защите данных — SSL и IPv6, его реализация совмещает в себе высокую надёжность, стабильность, скорость работы и передачи данных, а также гибкую настройку работы сервера и широкий функционал. Разработчиком vsFTPd является Крис Эванс — профессиональный исследователь в сферах защиты данных и информационной безопасности. vsFTPd является FTP-сервером по-умолчанию практически во всех Linux-системах, поскольку, как уже упоминалось, помимо надёжности и высокой скорости работы, обладает большими функциональными возможностями, самыми значимыми из которых являются:
- Работа с виртуальными пользователями.
- Работа с виртуальными IP-адресами.
- Конфигурирование пользователей.
- Поддержка
- SSL-шифровние для защиты передаваемых данных.
- Контроль полосы пропускания.
В данной статье рассматривается установка и настройка FTP-сервера на примере vsFTPd, который, кстати, является свободно распространяемым программным обеспечением (ПО) с открытым исходным кодом. Официальная страница проекта: https://security.appspot.com/vsftpd.html.
Установка vsFTPd
Установить Vsftd в Debian-ориентированных дистрибутивах Linux позволяет команда:
$ sudo apt-get install vsftpd
Также полезно будет установить и простой FTP-клиент для тестирования соединения и передачи файлов:
$ apt-get install ftp
Для дистрибутивов на основе RPM-пакетов, CentOS, RedHat:
$ yum install vsftpd $ yum install ftp
Примечание: yum – это пакетный менеджер, тот же самый apt, но адаптированный для управления пакетами формата *.rpm.
После установки для vsFTPd будет доступна техническая документация, которая обычно находится в каталоге /usr/share/doc/vsftpd/examples – здесь приведены варианты различных конфигураций, в зависимости от характера и масштабов использования vsFTPd. Ознакомиться с документацией можно также с помощью команды:
$ man vsftpd.conf
Обычно после установки демон vsFTPd автоматически запускается, убедиться в этом можно с помощью следующих команд:
$ systemctl status vsftpd
или:
$ service vsftpd status
Запуск, перезапуск и остановка сервера:
$ systemctl start vsftpd $ systemctl restart vsftpd $ systemctl stop vsftpd
Для включения демона vsftpd в автозагрузку используется команда:
$ systemctl enable vsftpd
Аналогично и с командой service.
Если vsFTPd используется в серверных дистрибутивах, в которых часто работает фаервол, например ufw, то ещё может понадобиться разрешить использование портов 20 и 21:
$ ufw allow 20/tcp $ ufw allow 21/tcp
Настройка vsFTPd
Конфигурационным файлом для настройки vsFTPd является файл vsftpd.conf, который обычно находится в каталоге etc/. Ознакомиться с его одержимым можно командой cat:
$ cat /etc/vsftpd/vsftpd.conf
На всякий случай полезно перед редактированием оригинального файла настроек сделать его резервную копию:
$ sudo cp /etc/vsftpd.conf vsftpd.conf.backup
FTP-сервер vsFTPd предусматривает два основных варианта работы: с анонимными и авторизованными пользователями. Первый вариант считается «более безопасным», но только потому, что для обеспечения надёжной защиты практически ничего настраивать и не нужно. Но при грамотной организации авторизованного доступа, предполагающего работу с FTP локальных пользователей системы, можно обеспечить безопасность ничуть не хуже, чем при использовании анонимного доступа.
Настройка в режиме анонимного доступа
Работа vsFTPd в данном режиме заключается в том, что действия с файлами на удалённом сервере производятся одним определённым по умолчанию пользователем, например, пользователем с именем «ftp» или «anonymous», при этом в качестве пароля используется e-mail.
Чтобы включить анонимный доступ по FTP нужно в фале vsftpd.conf определить значение «YES» для соответствующей директивы:
anonymous_enable=YES
Теперь для управления файлами будет использоваться определённый каталог (обычно это /srv/ftp) и определённый пользователь — обычно ftp.
Можно определить и другое расположение файлов для анонимного доступа по FTP, т. е. изменить домашнюю директорию пользователя ftp:
$ sudo mkdir /srv/share/ftp $ sudo usermod -d /srv/share/ftp ftp
Если нужно, чтобы анонимные пользователи могли ещё и загружать файлы на удалённый сервер, то это позволит сделать директива:
anon_upload_enable=YES
Теперь можно скопировать необходимые для анонимного доступа файлы в домашнюю папку пользователя ftp и перезапустить демон vsftpd:
$ systemctl restart vsftpd
Обычно этого набора настроек достаточно для организации анонимного FTP-доступа. Для проверки соединения можно выполнить команду ftp address_host:
$ ftp 127.0.0.1
или:
$ ftp localhost
что в случае успешного выполнения даст примерно такой вывод:
Настройка в режиме авторизованного доступа
Для авторизованного доступа проще всего включить использование локальных учётных записей на сервере. Для этого нужно указать следующую директиву в файле конфигурации vsftpd.conf:
local_enable=YES
Для задания разрешения локальным авторизованным пользователям загружать файлы на сервер указывается директива:
write_enable=YES
Примечание: для авторизации локальных пользователей используется пароль пользователя для локального входа в систему.
Теперь нужно перезапустить vsftpd для активации сделанных изменений:
$ systemctl restart vsftpd
Ограничение пользователей в своих домашних каталогах
Для определения пользователей, которым разрешён доступ только к своему домашнему каталогу существуют директивы:
chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list
Первая включает использование списка пользователей, вторая определяет файл, в котором в каждой строке перечислены пользователи с доступом только к своим домашним каталогам. Если при этом ещё указать директиву:
chroot_local_user=YES
которая «запирает» в chroot() локальных пользователей и выше своих домашних каталогов они подняться не смогут, то в этом случае пользователи в файле vsftpd.chroot_list ограничиваться своими домашними каталогами не будут, в отличии от тех, кто в этот список не внесён.
При распределении FTP-доступа среди пользователей может возникнуть ошибка, которая возникает из-за того, что локальный пользователь имеет права на запись в корне домашнего каталога, что по соображениям безопасности недопустимо. Эта ошибка выглядит следующим образом:
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Лучшим способом исправить эту ошибку является указание некоего общего корневого каталога, куда при подключении будут попадать все пользователи, имея доступ лишь к своим домашним поддиректориям, например:
local_root=/home
Можно также для устранения этой ошибки отключить проверку на запись в домашний каталог:
allow_writeable_chroot=YES
Но всё же это стоит делать лишь тогда, когда есть чёткое понимание, зачем это нужно для конкретной ситуации.
Защита данных с помощью SSL
Чтобы иметь возможность шифровать передаваемые данные, следует настроить vsFTPd в режиме FTPS. Это та же самая передача данных по FTP, но организованная поверх SSL – протокола. Шифрующего и проверяющего данные с помощью сертификатов и ключей.
Для включения режима FTPS нужно задействовать следующую директиву:
ssl_enable=Yes
По умолчанию в конфигурационном файле vsftpd.conf также присутствуют опции, определяющие сертификаты и ключи, например:
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
Эти сертификат и ключ необходимо заменить. Для использования FTPS необходимо использовать сертификат и ключ. Cгенерированные (или полученные) для конкретного сервера или компьютера.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Как установить FTP-сервер с VSFTPD на Ubuntu 18.04
FTP (протокол передачи файлов) – это стандартный сетевой протокол, используемый для передачи файлов в удаленную сеть и из нее. Для более безопасной и быстрой передачи данных используйте SCP.
Для Linux доступно множество FTP-серверов с открытым исходным кодом. Самыми популярными и широко используемыми являются PureFTPd, ProFTPD и vsftpd. В этой статье мы будем устанавливать vsftpd. Это стабильный, безопасный и быстрый FTP-сервер. Мы также покажем вам, как настроить vsftpd для ограничения доступа пользователей к их домашнему каталогу и шифрования всей передачи с помощью SSL/TLS.
Хотя эта статья написана для Ubuntu 18.04, такие же инструкции применяются к Ubuntu 16.04 и любому дистрибутиву на базе Debian, включая Debian, Linux Mint и Elementary OS.
Предпосылки
Прежде чем продолжить эту статью, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo.
Установка vsftpd на Ubuntu 18.04
Пакет vsftpd доступен в репозиториях Ubuntu. Чтобы установить его, просто выполните следующие команды:
sudo apt update sudo apt install vsftpd
Служба vsftpd автоматически запустится после завершения процесса установки. Проверьте его, распечатав статус службы:
sudo systemctl status vsftpd
Результат будет выглядеть примерно так, показывая, что служба vsftpd активна и работает:
* vsftpd.service - vsftpd FTP server Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2018-10-15 03:38:52 PDT; 10min ago Main PID: 2616 (vsftpd) Tasks: 1 (limit: 2319) CGroup: /system.slice/vsftpd.service `-2616 /usr/sbin/vsftpd /etc/vsftpd.conf
Настройка vsftpd
Сервер vsftpd можно настроить, отредактировав файл /etc/vsftpd.conf. Большинство настроек задокументированы внутри файла конфигурации. Для всех доступных вариантов посетите официальную страницу vsftpd.
В следующих разделах мы рассмотрим некоторые важные настройки, необходимые для настройки безопасной установки vsftpd.
Начните с открытия файла конфигурации vsftpd:
sudo nano /etc/vsftpd.conf
1. Доступ к FTP
Мы разрешаем доступ к FTP-серверу только локальным пользователям, находим директивы anonymous_enable и local_enable и проверяем соответствие вашей конфигурации следующим строкам:
/etc/vsftpd.conf
anonymous_enable=NO local_enable=YES
2. Включение загрузки
Раскомментируйте настройку write_enable, чтобы разрешить изменения в файловой системе, такие как загрузка и удаление файлов.
/etc/vsftpd.conf
write_enable=YES
3. Chroot
Чтобы пользователи FTP не могли получить доступ к каким-либо файлам вне своих домашних каталогов, раскомментируйте настройку chroot.
/etc/vsftpd.conf
chroot_local_user=YES
По умолчанию для предотвращения уязвимости безопасности, когда chroot включен, vsftp откажется загружать файлы, если каталог, в котором пользователи заблокированы, доступен для записи.
4. Пассивные FTP-соединения
vsftpd может использовать любой порт для пассивных FTP-соединений. Мы укажем минимальный и максимальный диапазон портов, а затем откроем диапазон в нашем брандмауэре.
Добавьте в файл конфигурации следующие строки:
/etc/vsftpd.conf
pasv_min_port=30000 pasv_max_port=31000
5. Ограничение входа пользователя
Чтобы разрешить только определенным пользователям входить на FTP-сервер, добавьте следующие строки в конец файла:
/etc/vsftpd.conf
userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO
Когда эта опция включена, вам необходимо явно указать, какие пользователи могут войти, добавив имена пользователей в файл /etc/vsftpd.user_list (по одному пользователю в строке).
6. Обеспечение передачи с помощью SSL/TLS
Чтобы шифровать FTP-передачи с помощью SSL/TLS, вам необходимо иметь сертификат SSL и настроить FTP-сервер для его использования.
Вы можете использовать существующий сертификат SSL, подписанный доверенным центром сертификации, или создать самоподписанный сертификат.
Если у вас есть домен или поддомен, указывающий на IP-адрес FTP-сервера, вы можете легко создать бесплатный сертификат SSL для шифрования.
В этой статье мы сгенерируем самоподписанный сертификат SSL с помощью команды openssl.
Следующая команда создаст 2048-битный закрытый ключ и самоподписанный сертификат, действительный в течение 10 лет. Как закрытый ключ, так и сертификат будут сохранены в одном файле:
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Теперь, когда создан SSL-сертификат, откройте файл конфигурации vsftpd:
sudo nano /etc/vsftpd.conf
Найдите директивы rsa_cert_fileи rsa_private_key_file, измените их значение pam в пути к файлу и установите директиву ssl_enable на YES:
/etc/vsftpd.conf
rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES
Если не указано иное, FTP-сервер будет использовать только TLS для обеспечения безопасных подключений.
Перезапустите службу vsftpd
После того, как вы закончите редактирование, файл конфигурации vsftpd (исключая комментарии) должен выглядеть примерно так:
/etc/vsftpd.conf
listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO
Сохраните файл и перезапустите службу vsftpd, чтобы изменения вступили в силу:
sudo systemctl restart vsftpd
Открытие брандмауэра
Если вы используете брандмауэр UFW, вам необходимо разрешить FTP-трафик.
Чтобы открыть порт 21( порт команд FTP), порт 20( порт данных FTP) и 30000-31000(диапазон пассивных портов), выполните следующие команды:
sudo ufw allow 20:21/tcp sudo ufw allow 30000:31000/tcp
Чтобы избежать блокировки, мы откроем порт 22:
sudo ufw allow OpenSSH
Перезагрузите правила UFW, отключив и снова включив UFW:
sudo ufw disablesudo ufw enable
Чтобы проверить выполнение изменений:
sudo ufw status
Status: active To Action From -- ------ ---- 20:21/tcp ALLOW Anywhere 30000:31000/tcp ALLOW Anywhere OpenSSH ALLOW Anywhere 20:21/tcp (v6) ALLOW Anywhere (v6) 30000:31000/tcp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)
Создание пользователя FTP
Чтобы протестировать наш FTP-сервер, мы создадим нового пользователя.
- Если у вас уже есть пользователь, которому вы хотите предоставить FTP-доступ, пропустите 1-й шаг.
- Если вы установили allow_writeable_chroot=YES в своем файле конфигурации, пропустите 3-й шаг.
- Создайте нового пользователя с именем newftpuser:
sudo adduser newftpuser
- Добавьте пользователя в список разрешенных пользователей FTP:
echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list
- Создайте дерево каталогов FTP и установите правильные разрешения:
sudo mkdir -p /home/newftpuser/ftp/uploadsudo chmod 550 /home/newftpuser/ftpsudo chmod 750 /home/newftpuser/ftp/uploadsudo chown -R newftpuser: /home/newftpuser/ftp
Как обсуждалось в предыдущем разделе, пользователь сможет загружать свои файлы в каталог ftp/upload.
На данный момент ваш FTP-сервер полностью работоспособен, и вы должны иметь возможность подключаться к вашему серверу с любым FTP-клиентом, который может быть настроен на использование шифрования TLS, например FileZilla.
Отключение доступа к оболочке
По умолчанию при создании пользователя, если явно не указано, у пользователя будет доступ к серверу SSH.
Чтобы отключить доступ к оболочке, мы создадим новую оболочку, которая просто напечатает сообщение, сообщающее пользователю, что их учетная запись ограничивается только доступом к FTP.
Создайте оболочку /bin/ftponly и сделайте ее исполняемой:
echo -e '#!/bin/sh\necho "This account account is limited to FTP access only."' | sudo tee -a /bin/ftponlysudo chmod a+x /bin/ftponly
Добавьте новую оболочку в список допустимых оболочек в файл /etc/shells
echo "/bin/ftponly" | sudo tee -a /etc/shells
Измените оболочку пользователя на /bin/ftponly:
sudo usermod newftpuser -s /bin/ftponly
Заключение
В этой статье вы узнали, как установить и настроить безопасный и быстрый FTP-сервер в вашей системе Ubuntu 18.04.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Как настроить FTP-сервер в Ubuntu 18.04 с Vsftpd
FTP — это способ передачи файлов между двумя компьютерами. Один из старейших методов, а FTP — самый распространенный способ передачи файлов в Интернете.
В этом руководстве объясняется, как установить FTP-сервер в Ubuntu 18.04. Чтобы настроить FTP-сервер в Ubuntu, нам необходимо установить программное обеспечение FTP-сервера. Vsftpd, что означает очень безопасный FTP-демон, это лучшее FTP-решение для Ubuntu 18.04.
Чтобы настроить FTP-сервер, войдите в командную строку Ubuntu и выполните следующие шаги с правами root.
- Установите vsftpd с помощью команды apt-get:
apt-get обновить apt-get install vsftpd
- После установки откройте файл /etc/vsftpd.conf .
- Убедитесь, что для anonymous_enable установлено значение нет , а для local_enable установлено значение да :
anonymous_enable = НЕТ local_enable = ДА
- Раскомментируйте (удалите # в начале строки) строку write_enable и убедитесь, что для нее установлено значение YES :
write_enable = ДА
- Найдите и раскомментируйте: chroot_local_user = YES :
chroot_local_user = ДА
- Затем добавьте следующую строку, чтобы разрешить запись chroot:
allow_writeable_chroot = ДА
- Наконец, сохраните файл vsftpd.conf и перезапустите службу vsftpd:
systemctl перезапуск vsftpd.service
Теперь, когда мы настроили FTP-сервер в Ubuntu 18.04, вы можете использовать FTP-клиент (например, FileZilla) для доступа к FTP-серверу с удаленного компьютера.
(обратите внимание, что если ваш сервер Ubuntu находится за брандмауэром, вам необходимо открыть FTP-порт 21 на брандмауэре)
Включить пассивный режим FTP
При подключении к FTP-серверу клиент FTP будет использовать активный режим (по умолчанию) или пассивный режим.Если клиент находится за брандмауэром (например, брандмауэром Windows в Windows) активный режим не будет работать, и клиент FTP переключится в пассивный режим. В этом случае на FTP-сервере Ubuntu должен быть включен пассивный режим FTP.
Чтобы включить пассивный режим FTP, откройте файл /etc/vsftpd.conf .
- Добавьте строку pasv_enable = Yes:
pasv_enable = Да
- Определите диапазон портов, которые будут использоваться для передачи данных:
pasv_min_port = 10090 pasv_max_port = 10100
- Перезагрузите FTP-сервер:
systemctl перезапуск vsftpd.сервис
(Обратите внимание, что если сервер Ubuntu находится за брандмауэром, вам необходимо открыть диапазон портов, определенный в конфигурации, вместе с FTP-портом 21.)
Запуск, остановка и перезапуск FTP-сервера
Вы можете запускать, останавливать и перезапускать сервер vsftpd в Ubuntu с помощью команды systemctl, например, чтобы остановить FTP-сервер, выполните:
systemctl stop vsftpd
По умолчанию vsftpd настроен на автоматический запуск, если нет, запустите:
systemctl включить vsftpd
Если вы не хотите запускать сервер автоматически, запустите:
systemctl отключить vsftpd
Для просмотра статуса сервера запустите:
systemctl статус vsftpd
.
Как установить и настроить FTP-сервер в Ubuntu с VSFTPD
Если вы хотите установить FTP-сервер в Ubuntu, вы не сможете превзойти простоту vsftpd.
FTP означает протокол передачи файлов. Он похож на HTTP (протокол передачи гипертекста) тем, что определяет язык для передачи данных по сети. По умолчанию FTP не зашифрован, поэтому сам по себе это не лучший выбор для безопасной передачи данных.
Это руководство поможет вам установить и настроить FTP-сервер (vsftpd) в Ubuntu 18.04.
- Доступ к учетной записи пользователя с привилегиями sudo
- Доступ к окну терминала / командной строке (Ctrl-Alt-T)
- Менеджер пакетов apt , включен по умолчанию
Шаг 1: Обновите системные пакеты
Начните с обновления ваших репозиториев — введите следующее в окне терминала:
обновление sudo apt-get
Система переходит к обновлению репозиториев.
Шаг 2. Резервное копирование файлов конфигурации
Перед внесением любых изменений обязательно сделайте резервную копию файлов конфигурации.
1. Создайте резервную копию файла конфигурации по умолчанию, введя следующее:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf_default
Эта команда создает копию файла конфигурации по умолчанию.
2. Создайте новый файл конфигурации vsftpd /etc/vsftpd.conf , используя предпочитаемый текстовый редактор:
$ sudo nano / etc / vsftpd.конф
Шаг 3. Установка сервера vsftpd на Ubuntu
В Ubuntu обычно используется FTP-утилита с открытым исходным кодом vsftpd . Рекомендуется из-за простоты использования.
1. Для установки vsftpd введите команду:
sudo apt установить vsftpd
Это пример вывода в Ubuntu.
2. Чтобы запустить службу и включить ее при запуске:
sudo systemctl start vsftpd
sudo systemctl включить vsftpd
Примечание: Инструкция по установке и настройке FTP с Vsftpd также доступна для CentOS 7.
Создайте нового пользователя FTP с помощью следующих команд:
sudo useradd –m testuser
sudo пароль testuser
Система должна попросить вас создать пароль для новой учетной записи testuser . Создайте образец файла в домашней учетной записи нового пользователя:
sudo mkdir / главная / testuser
Шаг 5: Настройте брандмауэр для разрешения FTP-трафика
Если вы используете UFW, который входит в стандартную комплектацию Ubuntu, он по умолчанию блокирует FTP-трафик.Введите следующие команды, чтобы открыть портов 20 и 21 для трафика FTP:
sudo ufw разрешить 20 / tcp
sudo ufw разрешить 21 / tcp
Примечание: Если вы используете другой брандмауэр, обратитесь к инструкциям, чтобы разрешить доступ на порт 20 и порт 21 . Это порты прослушивания для службы FTP.
Шаг 6: Подключитесь к FTP-серверу Ubuntu
Подключитесь к FTP-серверу с помощью следующей команды:
судо ftp ubuntu-ftp
Замените ubuntu-ftp на имя вашей системы (взятое из командной строки).
Войдите в систему , используя учетную запись testuser и пароль, который вы только что установили. Теперь вы должны успешно войти на свой FTP-сервер.
Настройка и защита сервера Ubuntu vsftpd
По умолчанию FTP-сервер использует каталог / srv / ftp в качестве каталога по умолчанию. Вы можете изменить это, создав новый каталог и изменив домашний каталог пользователя FTP.
Чтобы изменить домашний каталог FTP, введите следующее:
sudo mkdir / SRV / ftp / новое_расположение
sudo usermod –d / srv / ftp / new_location ftp
Перезапустите службу vsftpd , чтобы изменения вступили в силу:
sudo systemctl перезапуск vsftpd.обслуживание
Теперь вы можете поместить любые файлы, которыми хотите поделиться через FTP, в папку / srv / ftp (если вы оставили ее по умолчанию) или в каталог / srv / ftp / new_location / (если вы поменял).
Если вы хотите разрешить авторизованным пользователям загружать файлы, отредактируйте файл vsftpd.conf , введя следующее:
Судо нано /etc/vsftpd.conf
Найдите запись с меткой write_enable = NO и измените значение на « YES .”
Сохраните файл, выйдите, затем перезапустите службу FTP со следующим:
sudo systemctl перезапуск vsftpd.service
Это позволяет пользователю вносить изменения в свой домашний каталог.
Многие эксплойты используют незащищенные FTP-серверы. В ответ, в vsftpd.conf есть несколько параметров конфигурации, которые могут помочь защитить ваш FTP-сервер.
Один из способов — ограничить пользователей их домашним каталогом.Откройте vsftpd.conf в редакторе и раскомментируйте следующую команду:
chroot_local_user = ДА
Это пример файла в nano :
Чтобы создать файл списка, отредактируйте /etc/vsftpd.chroot_list и добавьте по одному пользователю в каждой строке.
Укажите своему FTP-серверу ограничить этот список пользователей их собственными домашними каталогами, отредактировав vsftpd.conf :
chroot_local_user = ДА
chroot_list_file = / и т.д. / vsftpd.chroot_list
Изображение иллюстрирует внесенные правки:
Перезапустите службу vsftpd :
sudo systemctl перезапуск vsftpd.service
По умолчанию список пользователей, которым заблокирован доступ по FTP, хранится в / etc / ftpusers . Чтобы добавить заблокированных пользователей, отредактируйте этот файл и добавьте по одному пользователю в каждой строке.
Шифрование трафика с помощью FTPS
Другой метод защиты FTP-сервера — это шифрование трафика.Это делается с помощью FTPS — протокол передачи файлов через SSL (Secure Socket Layer).
Чтобы это работало, пользователи должны быть настроены с учетной записью оболочки на FTP-сервере. Это добавит уровень безопасного шифрования к вашему FTP-трафику. Чтобы настроить FTPS, откройте файл vsftpd.conf в редакторе и добавьте следующие строки:
ssl_enable = ДА
rsa_cert_file = / etc / ssl / certs / ssl-cert-snakeoil.pem
rsa_private_key_file = / etc / ssl / private / ssl-cert-snakeoil.ключ
Файл должен выглядеть так:
Перезапустите службу, чтобы изменения вступили в силу:
sudo systemctl перезапуск vsftpd.service
Примечание: Для получения дополнительной информации о конфигурации и сертификатах SSL см. Документацию по FTP-серверу Ubuntu. Также стоит отметить, что FTPS — это протокол, отличный от SFTP. SFTP расшифровывается как Secure File Transfer Protocol, и это совершенно другой протокол.
Теперь вы должны были установить FTP-сервер на Ubuntu с vsftpd .
Теперь у вас должна быть возможность настраивать списки пользователей и учетные записи, а также подключаться к новому FTP-серверу. Мы также подробно описали риски протокола FTP и способы их снижения.
.
Как настроить FTP-сервер с vsftpd в Ubuntu 18.04 LTS — Linux Hint
vsftpd — это FTP-сервер с открытым исходным кодом. Это очень безопасно и очень быстро. vsftpd тоже стабилен. Также его легко настроить. В этой статье я покажу вам, как установить и настроить FTP-сервер vsftpd в Ubuntu 18.04 LTS.
Установка vsftpd:
Vsftpd доступен в официальном репозитории пакетов Ubuntu. Таким образом, вы можете легко установить его на свой компьютер с Ubuntu с помощью диспетчера пакетов APT.
Сначала обновите кеш репозитория пакетов APT с помощью следующей команды:
Теперь установите vsftpd с помощью следующей команды:
$ sudo apt установить vsftpd
Должен быть установлен
vsftpd.
Файл конфигурации vsftpd:
Файл конфигурации vsftpd: /etc/vsftpd.conf .
Исходный файл конфигурации vsftpd содержит все поддерживаемые параметры (большинство из них закомментированы) с большим количеством документации, которая поможет вам легко понять, что эти параметры делают.Поэтому я предпочитаю хранить резервную копию исходного файла конфигурации и создавать новый пустой файл конфигурации. Затем поместите все параметры конфигурации, которые вы хотите применить, к новому файлу конфигурации. Таким образом, если вам понадобится помощь, вы всегда сможете взглянуть на файл конфигурации резервной копии. Файл конфигурации также будет очень маленьким и простым.
Чтобы создать резервную копию исходного файла конфигурации /etc/vsftpd.conf , выполните следующую команду:
$ sudo mv -v / и т.д. / vsftpd.conf /etc/vsftpd.conf.bk
Теперь создайте новый пустой файл конфигурации с помощью следующей команды:
$ sudo touch /etc/vsftpd.conf
Теперь вы можете получить доступ к исходному файлу конфигурации с резервной копией следующим образом:
$ меньше /etc/vsftpd.conf.bk
Если вам понадобится помощь, вы всегда можете посмотреть исходную резервную копию файла конфигурации.
Настройка vsftpd:
В этой статье я настрою очень простой FTP-сервер, на котором вы сможете войти в систему как любой пользователь на сервере и загружать файлы в соответствующие домашние каталоги.
Сначала откройте файл конфигурации vsftpd /etc/vsftpd.conf с помощью следующей команды:
$ sudo nano /etc/vsftpd.conf
Теперь введите следующие строки в файл конфигурации и сохраните файл, нажав
listen = YES
listen_ipv6 = NO
connect_from_port_20 = YES
anonymous_enable = NO
local_enable = YES
write_enable = YES
chroot_local_user = YES
allow_writeable_serd5000 vs
allow_writeable_chroot = YES
allow_writeable_chroot = YES
0005 allow_writeable_chroot = YES 9000
pasv_enable = ДА
pasv_min_port = 40000
pasv_max_port = 45000
userlist_enable = ДА
userlist_file = / etc / vsftpd.список пользователей
userlist_deny = NO
Теперь предположим, что вы хотите разрешить только пользователям linda , alex и bob получить доступ к своим домашним каталогам через FTP. Для этого вам нужно добавить эти имена пользователей в список /etc/vsftpd.userlist .
Теперь откройте файл /etc/vsftpd.userlist с помощью nano следующим образом:
$ sudo nano /etc/vsftpd.userlist
Теперь введите здесь имена пользователей, которым вы хотите разрешить доступ к их HOME каталогам через FTP.Затем сохраните файл, нажав
Теперь перезапустите службу vsftpd с помощью следующей команды:
$ sudo systemctl перезапуск vsftpd
Теперь выполните следующую команду, чтобы проверить, запущена ли служба vsftpd:
$ sudo systemctl статус vsftpd
Как видите, служба vsftpd запущена. Итак, мы настроили его правильно.
Добавление пользователей FTP:
Теперь вам нужно добавить новых пользователей (скажем, linda , bob , alex ) в ваших операционных системах. Затем эти пользователи смогут войти на FTP-сервер и загружать файлы.
Вы можете создать пользователя linda с помощью следующей команды:
Также необходимо установить пароль для входа для пользователя linda . Это также будет пароль для входа на FTP для пользователя linda .
Теперь установите пароль для входа в систему для пользователя linda с помощью следующей команды:
Теперь введите пароль для linda и нажмите
Повторно введите тот же пароль для linda и нажмите
Таким же образом создайте пользователя bob и alex .
Также установите пароль для пользователя bob и alex .
$ sudo passwd bob
$ sudo passwd алекс
Доступ к FTP-серверу:
Вы можете легко получить доступ к своему FTP-серверу с помощью FTP-клиента FileZilla. Вы также можете добавить учетную запись FTP в Windows в качестве сетевого расположения. В этом разделе я покажу вам оба способа доступа к FTP-серверу.
Сначала выполните следующую команду, чтобы узнать IP-адрес вашего FTP-сервера:
Как видите, IP-адрес моего FTP-сервера — 192.168.21.186 . Для вас все будет иначе.Так что убедитесь, что вы заменили его своим.
Чтобы подключиться с помощью FTP-клиента FileZilla, откройте FileZilla, введите IP-адрес в разделе Host , имя пользователя и пароль для входа в систему Username и Password section, Port 21, а затем нажмите Quickconnect . Вы должны быть связаны.
Как видите, я загрузил несколько файлов, и все заработало.
Если вы хотите подключить свою учетную запись FTP в качестве сетевого расположения в Windows, откройте File Explorer и щелкните Computer > Добавьте сетевое расположение , как отмечено на снимке экрана ниже.
Теперь нажмите Далее .
Теперь выберите Выберите настраиваемое сетевое расположение и нажмите Далее .
Теперь введите IP-адрес вашего FTP-сервера (ftp://192.168.21.186), как отмечено на скриншоте ниже, и нажмите Next .
Теперь убедитесь, что Вход анонимно не отмечен и введите свое имя пользователя FTP. Затем нажмите Далее .
Затем введите имя своего сетевого расположения. Это может быть что угодно. Затем нажмите Далее .
Теперь нажмите Готово .
Теперь введите пароль своего FTP-пользователя и нажмите Log On .
Вы должны войти в систему. Как видите, все файлы, которые я загружал ранее с помощью FileZilla, уже есть.
Как видите, я загрузил другой файл, и он работает.
Теперь, когда вы подключены, вы можете получить доступ к своей учетной записи FTP в любое время из проводника Windows.
Как видите, я добавил еще 2 FTP-аккаунта в Windows. Теперь я могу работать со всеми одновременно.
Итак, вот как вы устанавливаете и настраиваете FTP-сервер в Ubuntu 18.04 LTS с vsftpd.
.
Передача файлов между Ubuntu и Windows с использованием FTP
В этом руководстве мы узнаем, как использовать vsftpd в Linux, чтобы заставить машину Ubuntu работать как ftp-сервер и передавать файлы через Wi-Fi в локальной сети.
Во многих случаях вам необходимо локально копировать файлы с одного компьютера на другой и делать их резервные копии. Использование физического диска, такого как флэш-накопитель или внешний жесткий диск, не всегда возможно из-за множества ограничений, таких как большой размер файла, доступность внешнего диска.
Настройка
Мы можем использовать преимущества машин, находящихся в одной сети, для передачи файлов.
Чтобы следовать этому руководству, у вас должен быть доступ к следующим
- Ubuntu Machine
- Windows Machine
- Обе машины подключены к одной сети с помощью Ethernet или Wi-Fi
Как установить VFTP на Ubuntu
Откройте терминал для получения и установки vsftp
demon из официального репозитория ubuntu.
sudo apt-get install vsftpd
Приведенная выше команда установит демон vsftp
, что означает, что он всегда будет работать в фоновом режиме при запуске машины с использованием init
.
Используйте следующие команды для проверки службы vsftp
sudo service vsftpd status
Если служба запущена, то вышеуказанная команда выведет состояние службы со всеми порожденными идентификаторами процессов vsftp
.
Вы также можете проверить процесс vsftp с помощью grep
ps -ef | grep vsftp
Как настроить VSFTP для загрузки
Этот шаг не является обязательным, но если вы хотите разрешить загрузку с удаленного компьютера на свой сервер ubuntu, выполните следующие настройки.
После установки vsftp создаст файл конфигурации по пути /etc/vsftpd.conf
. Этот файл должен принадлежать root
и иметь конфигурацию vsftp по умолчанию. По умолчанию VSFTP не разрешает загрузку по ftp; чтобы включить его, раскомментируйте строку write_enable = YES
# Раскомментируйте это, чтобы разрешить любую форму команды записи FTP.
write_enable = ДА
Обратите внимание, что /etc/vsftpd.conf
будет принадлежать root
, чтобы делать любые изменения в конфигурации. sudo vim /etc/vsftpd.conf
или sudo gedit /etc/vsftpd.conf
Перезапустите демон vsftpd после завершения настройки.
sudo service vsftpd restart
Проверить статус после перезапуска.
sudo service vsftpd status
Как настроить брандмауэр Ubuntu для FTP
По умолчанию в Ubuntu должен быть запущен брандмауэр, известный как несложный брандмауэр ( ufw
). Правила брандмауэра по умолчанию не разрешают никаких внешних подключений.
Чтобы открыть порт ftp на этом брандмауэре, используйте следующие команды.
Проверьте статус брандмауэра с помощью
sudo ufw status
Брандмауэр должен быть активен и работать. Если он не активен, включите его, используя следующую команду, чтобы обезопасить свой компьютер.
Вы можете отключить его, если у вас есть такое требование, однако рекомендуется оставить его включенным. sudo ufw enable
Чтобы открыть ftp-порт 21
, используйте следующую команду:
sudo ufw allow ftp
или sudo ufw allow 21
Это добавит правило брандмауэра для приема ftp-соединений с другого компьютера в сети.После добавления правила ftp в вашем брандмауэре должны быть следующие записи. sudo ufw статус
Статус: активен
К действию от
- ------ ----
21 / tcp ALLOW Anywhere
21 / tcp (v6) РАЗРЕШИТЬ В любом месте (v6)
Настроить брандмауэр Windows
Брандмауэр должен разрешить вам инициировать сеанс ftp с компьютера Windows.Найдите Windows Firewall в меню «Пуск», чтобы открыть окно настройки брандмауэра.
Поскольку мы собираемся использовать один раз ftp, мы отключим брандмауэр и снова включим его после завершения ftp. В зависимости от того, к какой сети вы подключены: к домашней или общедоступной, вы можете отключить брандмауэр, как показано ниже.
Обратите внимание, что полное отключение брандмауэра не рекомендуется. Если вы собираетесь регулярно использовать ftp-сервер с компьютера Windows, создайте правила брандмауэра в Брандмауэр Windows с повышенной безопасностью на порту 21
Инициируйте сеанс FTP с помощью командной строки Windows
Как только мы закончим с необходимыми конфигурациями, мы можем начать сначала FTP-соединение из командной строки Windows.Сначала получите IP-адрес машины, на которой размещен FTP-сервер, с помощью команды ifconfig
на машине с Ubuntu. Используйте eth0 inet-адрес
, если вы подключены с помощью кабеля Ethernet. Для беспроводного подключения используйте inet адрес
интерфейса wlan0
. Моя машина ubuntu имеет следующий локальный IP-адрес 192.168.2.102
.
ifconfig
eth0 Link encap: Ethernet
ВВЕРХ ТРАНСЛЯЦИИ МУЛЬТИКАСТ MTU: 1500 Метрика: 1
Пакеты RX: 0 ошибок: 0 отброшено: 0 переполнений: 0 кадров: 0
Пакеты TX: 0 ошибок: 0 отброшено: 0 переполнений: 0 носитель: 0
коллизии: 0 txqueuelen: 1000
Байт RX: 0 (0.0 B) Байты TX: 0 (0,0 B)
wlan0 Link encap: Ethernet
inet адрес: 192.168.2.102 Bcast: 192.168.2.255 Маска: 255.255.255.0
ВВЕРХ ТРАНСЛЯЦИИ МУЛЬТИКАСТ MTU: 1500 Метрическая система: 1
Пакеты RX: 24006 ошибок: 0 отброшено: 0 переполнений: 0 кадров: 0
Пакеты TX: 8312 ошибок: 0 сброшено: 0 переполнений: 0 несущая: 0
коллизии: 0 txqueuelen: 1000
Байт приема: 12996852 (12,9 МБ) байтов передачи: 1224374 (1,2 МБ)
Чтобы инициировать соединение, откройте командную строку в Windows и используйте следующую команду. ftp 192.168.2.102
Он запросит имя пользователя и пароль. Имя пользователя будет таким же, как у пользователя ubuntu (в моем случае — techmonger), а пароль будет системным паролем пользователя ubuntu.
Чтобы получить файл с ftp-сервера ubuntu, перейдите в каталог и используйте команду get, как показано ниже.
ftp> получить имя файла
Чтобы загрузить файл с компьютера Windows на сервер ftp, введите команду, как показано ниже.
ftp> введите имя файла
Чтобы завершить сеанс ftp, используйте до свидания.
ftp> пока
Инициируйте FTP-соединение с использованием ftp-клиента в Windows
К настоящему моменту вы согласитесь, что выполнение ftp из командной строки Windows немного утомительно. Мы можем использовать ftp-клиент, такой как winscp или filezilla , чтобы получить графический интерфейс для операций ftp.
Использовать имя хоста как IP-адрес ftp-сервера (192.168.2.102 в моем случае) и те же учетные данные, что и у пользователя ubuntu.
Как показано ниже, вы можете инициировать соединение из filezilla.Вы можете использовать перетаскивание, чтобы загружать и выгружать файлы с компьютера Windows.
Аспекты безопасности FTP — брандмауэр и службы
Все ftp-соединения будут инициироваться в виде обычного текста. Вы должны использовать вышеуказанный метод, только если вы находитесь в локальной сети и полностью контролируете сеть . Для зашифрованных соединений используйте sftp
или ftps
.
Удалите правило брандмауэра из ubuntu, когда требования ftp будут выполнены.
Включите межсетевой экран Winows после того, как требование ftp будет выполнено.
Остановить демон vsftp, если ftp больше не нужен для экономии системных ресурсов. Это также сделает вашу систему менее уязвимой.
sudo service vsftpd stop
sudo ufw deny ftp
или sudo ufw deny 21
Заключение: вы можете настроить свой компьютер с Ubuntu как ftp-сервер и передавать файлы локально. Вам не нужен SMB (блок сообщений сервера) для передачи файлов между машиной Linux и машиной Windows по сети.
.