Установка и настройка ProFTPD на Ubuntu 10.10
Размещено: 16-03-2015, 12:36 | Просмотров: 1339 | Комментариев: 0
Итак, у нас есть задача установить и настроить ProFTPD сервер на Ubuntu 10.10 для доступа к сайтам, расположенным на нашем сервере в каталоге /var/www. Каждый сайт находится в своей директории и виртуальные хосты уже настроены.

Для установки сервера 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, if
# it runs in daemon mode. It is not required in inetd/xinetd mode.
#

# 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
# https://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

и устанавливаем пароль, например, “Ts0yZh1V” (естественно, без кавычек).
passwd viktor

Когда пользователь добавлен, перезагружаем proftpd-сервер командой:
/etc/init.d/proftpd restart

Если перезагрузка сервера прошла успешно, продолжаем дальше. Если же нет, ищем ошибки в файле конфигурации proftpd.conf. Пробуем подключится через любой ftp менеджер, используя имя пользователя “viktor” c паролем “Ts0yZh1V”.

Если выдаёт ошибку
ProFTPD warning: cannot start neither in standalone nor in inetd/xinetd mode. Check your configuration.
Вместо inetd в конфиге поставь standalone