ProFTPd — FTP-сервер для Linux и UNIX-подобных операционных систем.
ProFTPd использует лишь один конфигурационный файл «/etc/proftpd/proftpd.conf». Может быть настроен для работы нескольких виртуальных хостов, поддерживает chroot. Может быть запущен в виде отдельного сервера или в составе суперсервера inetd. Также поддерживает IPv6.
Расширяем: поддерживает модули, добавляющие SSL/TLS шифрование, работу с LDAP и SQL.
Установка
# cd /usr/ports/ftp/proftpd # make install clean
В опциях я выбрал: BAN, CTRLS, IFSESSION, NLS, OPENSSL, QUOTA, RATIO, README, REWRITE, WRAP. Добавляем в /etc/rc.conf следующую строчку:
proftpd_enable="YES"
Настройка
Редактируем файл конфигурации /usr/local/etc/proftpd.conf:
# имя сервера, которое высвечивается при подключении
ServerName "ProFTPD"
ServerType standalone
# делаем сервером по умолчанию
DefaultServer on
ScoreboardFile /var/run/proftpd/proftpd.scoreboard
Port 21
# отключаем IPv6
#UseIPv6 on
Umask 022
MaxInstances 30
CommandBufferSize 512
User ftp
Group ftp
# запрещаем использования SITE CHMOD
<Limit SITE_CHMOD>
DenyAll
</Limit>
# настройки, которые активны для всех
<Global>
# домашняя папка пользователя - это то, куда будет подключаться пользователь по умолчанию
DefaultRoot ~
# запрещаем подключаться от пользователя root
RootLogin off
# максимальное число попыток залогиниться
MaxLoginAttempts 5
# как ни странно, это запрещает авторизоваться пользователям из списка /etc/ftpusers
UseFtpUsers on
# позволяем продолжать скачивания и закачки
AllowRetrieveRestart on
AllowStoreRestart on
LoginPasswordPrompt on
DirFakeGroup on
MaxClients 15
tcpNoDelay on
# удаляем незавершенные закачки
DeleteAbortedStores on
# разрешаем подключаться пользователям, у которых нет командной оболочки
RequireValidShell off
# указываем, что будем использовать порты 24000-26000 для PASV режима
PassivePorts 24000 24003
# без этой опции нельзя будет перезаписывать файлы
AllowOverwrite On
# а без этой будет выскакивать ошибка SECURITY VIOLATION: Passive connection from {host} rejected
AllowForeignAddress On
<Directory /usr/local/www/invent-live>
# прячем файлы, которые принадлежат пользователю root
HideUser root
# прячем файлы, которые пользователь не может изменить
HideNoAccess on
</Directory>
</Global>
# куда пишем лог
SystemLog /var/log/proftpd.log
# если не выключить эти две опции, то фтп при подключении будет сильно тормозить
IdentLookups off
UseReverseDNS off
