Для установки сервера ProFTPd введём в консоли следующую команду:
apt-get install proftpd
Система загрузит нужные для установки модули и приступит к установке. Во время установки в систему будет добавлен пользователь ftp и создана его домашняя директория /home/ftp.
Если Вас не устраивает лишняя директория в /home, можно переместить ее, например, в /var/ftp. Делается это командами:
# меняем домашнюю директорию пользователя ftp на /var/ftp
usermod -d /var/ftp ftp
# копируем файл welcome.msg в нужную директорию
cp /home/var/welcome.msg /var/ftp
# удаляем папку из /home и файл приветствия
rm /home/ftp/welcome.msg && rmdir /home/ftp
Ненужную директорию спрятали, теперь переходим непосредственно к конфигурированию и настройке ProFTPD сервера.
Открываем для редактирования файл /etc/proftpd/proftpd.conf в помощью любого текстового редактора, например, nano:
nano /etc/proftpd/proftpd.conf
Далее приведен пример файл proftpd.conf
#
# /etc/proftpd/proftpd.conf -- This is a basic ProFTPD configuration file.
# To really apply changes reload proftpd after modifications.
# Includes DSO modules
Include /etc/proftpd/modules.conf
UseIPv6 off # выключаем использование IP v6 за ненадобностью
ServerName "FTP server" # Любое имя для ftp-сервера
ServerType standalone
DeferWelcome off
RootLogin off # запрещаем подключать от пользователя root
# определять имя хоста клиента по IP адресу (желательно отключать для ускорения доступа)
UseReverseDNS off
# использование протокола ident (RFC 1413) для идентификации подслединившегося клиента;
# рекомендуется отключить, все равно этот протокол никто больше не использует;
# область действия - основной сервер, Global, VirtualHost
IdentLookups off
MultilineRFC2228 on
DefaultServer on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions "-l"
DenyFilter \\\\*.*/
# Автоматическое удаление недогруженного файла.
DeleteAbortedStores on
# директория, на которую устанавливается сервер
# (сейчас указана домашняя директория подключенного пользователя)
DefaultRoot ~
# авторизовывать клиента, только если он имеет основной shell из списка /etc/shells;
RequireValidShell off
# Порт сервера
Port 21 # из соображений безопасности можете поставить любой незанятый
# максимальное число одновременно запускаемых процессов в режиме standalone
MaxInstances 30
# Пользователь и группа, от которого работает сервер
User proftpd
Group nogroup
# права, с которыми будут создаваться файлы и папки
Umask 022 022
# разрешить перезаписывать существующие файлы,
# область действия - server config, VirtualHost, Anonymous, Directory, Global, .ftpaccess
AllowOverwrite on
# обрабатывать ли файл /etc/ftpusers, в котором перечислены пользователи,
# которым нужно запретить доступ по ftp
UseFtpUsers on
TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log
QuotaEngine off
# Delay engine reduces impact of the so-called Timing Attack described in
# http://security.lss.hr/index.php?page=details&ID=LSS-2004-10-02
# It is on by default.
DelayEngine on
ControlsEngine off
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock
AdminControlsEngine off
Теперь осталось создать пользователя и дать ему доступ по ftp. Пусть это будет юзер с ником “viktor” и паролем “Ts0yZh1V” ;). Добавляем его в систем, запрещаем ему доступ к системе через shell и указываем ему в качестве домашней директории /var/www/www.site1.ru/htdocs следующей командой:
useradd viktor --home /var/www/www.site1.ru/htdocs --shell /bin/false --group nogroup
passwd viktor
и устанавливаем пароль, например, “Ts0yZh1V” (естественно, без кавычек).
Когда пользователь добавлен, перезагружаем proftpd-сервер командой:
/etc/init.d/proftpd restart
Если перезагрузка сервера прошла успешно, продолжаем дальше. Если же нет, ищем ошибки в файле конфигурации proftpd.conf. Пробуем подключится через любой ftp менеджер, используя имя пользователя “viktor” c паролем “Ts0yZh1V”.
Изменено: 07.11.2012