На данный момент под Linux популярно ставить два сервера: ProFTPD и vsftpd(Very Secure FTP Daemon). Но vsftpd мне честно не нравиться, хотя бы тем что он последний раз обновлялся в 2015 году. По этому я остановлюсь на ProFTP.
apt-get install proftpd
Во время установки, вас попросят выбрать как будет работать сервер. Выбираем standalone.
Ну а теперь настройки nano /etc/proftpd/proftpd.conf
Найдем и раскомпрометируется строчку:
DefaultRoot ~ что бы пользователи не могли выйти из домашнего каталога. RootLogin off пользователь root не может зайти на сервер. Если нету добавляем. RequireValidShell on пользователи кому запрещен shell не могут войти. AllowOverwrite on перезапись файлов разрешена.
На этом собственно самая простая настройка закончена. Перезапускаем сервер.
/etc/init.d/proftpd restart
Но это далеко не все возможности этого сервера.
Давайте добавим еще виртуальных пользователей.
Для начала нам надо сделать файл с пользователями. ProFTP умеет работать и MySQL, но не в этой статье.
ftpasswd — -passwd — -file=/etc/proftpd/ftpd.passwd — -name=test — -uid=33 — -gid=33 — -home=/var/www/test.ru — -shell=/bin/false
Создадим пользователя test c uid и gid 33,домашней директорией /var/www/test, shell /bin/false. Указание id группы и пользователя помогут избежать проблем с правами на файл. Например 33 по умолчанию у пользователя Apache(www-data).
В итоге у нас получиться файл ftpd.passwd с похожим содержанием:
test:$3ret732fghaF$Jsdfrterethfdfg/HrRE.:33:33::/var/www/html:/bin/false
Кстати, изменить пароль пользователя можно следующей командой:
ftpasswd — -passwd — -name=test — -change-password —file /etc/proftpd.passwd
Для AuthGroupFiles, используем —group:
ftpasswd —group —name=group-name —gid=group-id —member=user-member1 \ —member=user-member2 … —member=user-memberN
Теперь поменяем настройки сервера nano /etc/proftpd/proftpd.conf
RequireValidShell off иначе виртуальный пользователь не сможет войти. Не проверять если шелл.
AuthUserFile /etc/proftpd/ftpd.passwd путь к файлу с пользователями.
# Use only AuthUserFiles when authenticating, and not the system’s /etc/passwd
AuthOrder mod_auth_file.c если мы хотим что бы только виртуальные пользователи входили.
Перезагружаем /etc/init.d/proftpd restart.
Защитить сервер от подбора паролей можно с помощью Fail2Ban .
Более подробно о файле конфигурации вы можете почитать на официальном сайте http://www.proftpd.org/docs/example-conf.html , Успехов.
Denian/Ubuntu. На других Linux дистрибутивах установка может отличаться.
P.S. Обнаруженный в модуле mod_copy баг затрагивает все версии ProFTPd вплоть до 1.3.5b включительно, однако опасность грозит только тем серверам, где модуль включен по умолчанию — особенно это касается таких дистрибутивов, как Debian и Ubuntu. Так как для указанных ОС обновленной версии ProFTPD пока нет, лучший вариант — отключить опасный модуль в настройках сервера.
Более 1 миллиона серверов оказались под угрозой кибератак из-за критической уязвимости в программном обеспечении ProFTPD. Уязвимость позволяет удалённо выполнить произвольный код и получить доступ к информации на FTP-сервере.