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