Linux ubuntu server ftp server

Как установить FTP-сервер на Ubuntu

Попробуйте настроить 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:

sudo systemctl status vsftpd

вывод

Если сервер активен, в выводе появится надпись active: FTP server Ubuntu

sudo systemctl enable vsftpd

Готово, вы установили FTP-сервер vsftpd.

Настройка FTP-сервера на Ubuntu

Настройте сервер vsftpd через файл конфигурации — /etc/vsftpd.conf. Для этого:

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.original

Источник

Сервер FTP

Протокол передачи файлов ( FTP ) — это TCP протокол для передачи файлов между компьютерами. В прошлом он использовался также для загрузки [файлов в интернете], но, поскольку этот метод не использует шифрование, пользовательские данные как и содержимое файлов передаются в открытую и легко перехватываются. Поэтому, если вы здесь ищете способ безопасно передавать и загружать файлы, лучше обратитесь к статье по OpenSSH в разделе Удаленное администрирование.

FTP работает на основе модели клиент/сервер. Серверный компонент называется сервисом FTP . Он постоянно слушает FTP запросы от удаленных клиентов. При получении запроса он управляет входом и установкой соединения. На протяжении сессии он выполняет любые команды, переданные FTP клиентом.

vsftpd — установка FTP сервера

vsftpd — это сервис FTP , доступный в Ubuntu. Его легко устанавливать, настраивать и поддерживать. Для установки vsftpd вы можете выполнить следующую команду:

Читайте также:  Install nodejs npm linux

Для запуска сервиса требуется добавить его в автозагрузку. Начиная с версии 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

Конфигурационный файл содержит много параметров настройки. Информация по каждому параметру доступна в этом же файле. В качестве альтернативы вы можете посмотреть системное руководство по команде

для уточнения деталей по каждому параметру.

Доступ к FTP серверу может быть организован двумя способами:

В анонимном режиме удаленный клиент может получить доступ к FTP серверу, используя учетную запись пользователя по умолчанию с именем «anonymous» или «ftp» и передав адрес email в качестве пароля. В авторизованном режиме пользователь должен иметь учетное имя и пароль. Этот последний вариант крайне небезопасный и не должен использоваться за исключением специальных обстоятельств. Если вы хотите передавать файлы безопасно, смотрите SFTP в разделе по OpenSSH серверу. Пользовательский доступ к каталогам и файлам FTP сервера зависит от прав доступа пользователя, указанного при входе. Как правило, сервис FTP скрывает корневой каталог FTP сервера, подменяя его на домашний каталог FTP . Это скрывает корень файловой системы от удаленных сессий.

Настройка анонимного доступа по FTP

Прежде чем вносить какие-либо изменения в конфигурационный файл, рекомендуется скопировать образец для возможности отката изменений без переустановки пакета

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

Настройка vsftpd по умолчанию не разрешает анонимную загрузку. Если вы хотите разрешить анонимную загрузку, измените в /etc/vsftpd.conf следующее:

В процессе установки создается пользователь 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, если вы хотите оставить настройки по умолчанию).

Читайте также:  Увеличить мощность wifi адаптера linux

По умолчанию анонимный пользователь не имеет возможности загружать файлы на FTP сервер. Для изменения этой настройки уберите комментарий на следующей строке и перезапустите vsftpd:

Разрешение анонимному пользователю загружать файлы может оказаться серьезной угрозой безопасности. Лучше не разрешать анонимную загрузку файлов на сервера с прямым доступом из интернета.

Настройка авторизованного доступа по FTP

Прежде чем вносить какие-либо изменения в конфигурационный файл, рекомендуется скопировать образец для возможности отката изменений без переустановки пакета

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

Для аутентификации локальных пользователей надо раскоментировать строчку

По умолчанию vsftpd настроен на аутентификацию системных пользователей с возможностью получать файлы. Если вы хотите пользователям разрешить загружать файлы, измените в /etc/vsftpd.conf:

после чего перезагрузите vsftpd:

sudo service vsftpd restart

Теперь при входе системных пользователей по FTP они будут попадать в свои домашние каталоги, где они смогут скачивать, загружать [файлы], создавать каталоги и т.д.

Защита FTP

Ограничение пользователей

В /etc/vsftpd.conf существуют опции, помогающие сделать vsftpd более безопасным. Например, данная опция позволяет поместить локального пользователя в chroot() «заточение», выше которого (по дереву каталогов) он не сможет подняться.

Вы также можете определить список пользователей, имеющих доступ только в домашний каталог:

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()

то это значит, что локальный пользователь имеет доступ на запись в домашний каталог, чего быть не должно. Способов решения этой ошибки несколько:

allow_writeable_chroot=YES

Прописать /home каталогом, куда будут попадать локальные пользователи после входа на FTP сервер. Тогда каждый из них будет иметь возможность писать только в свой домашний каталог

Читайте также:  Random numbers in linux

Шифрование

FTP может быть зашифрованным при использовании FTPS. В отличие от SFTP, FTPS — это FTP поверх SSL . SFTP — это сессия, подобная FTP , по зашифрованному SSH соединению. Основное отличие заключается в том, что пользователи SFTP должны иметь учетную запись с собственным окружением (shell account) вместо оболочки nologin. Предоставление всем пользователям доступа к оболочке может оказаться не лучшим решением для некоторых систем, таких как web сервер общего доступа. Однако есть возможность ограничить такие учетные записи только SFTP и запретить взаимодействие с оболочкой. Смотрите раздел по OpenSSH для дополнительной информации.

Для настройки FTPS, добавьте в конец файла /etc/vsftpd.conf следующее:

Также обратите внимание на опции сертификата и ключа:

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.

Источник

Оцените статью
Adblock
detector