Инструменты пользователя

Инструменты сайта


proftpd
			                          ProFTPd

Как-то, после покупки сервера, я подумал, что же первым мне реализовать, WEB или FTP ? Принял своё решение в пользу второго. Далее настало более важное решение, что же выбрать в роли моего FTP сервера (ProFTPd или vsftpd). Выбрал ProFTPd из-за его гибких возможностей в настройке, несмотря на то, что он будет потяжелее чем vsftpd.

Исторический факт: ProFTPd, это «эволюционный потомок» старого ftpd с гораздо большим функционалом, чем свой предок.

1.Установка:

a) apt-get install proftpd

Во время установки, появился окно с выбором режима работы вашего ftp демона, выбираем режим standalone, т.е. самостоятельный демон, который работает отдельно от inetd.

После установки в директории etc появится основная директория с конфигурационными файлами ProFTPd (/etc/proftpd/), файл /etc/ftpusers (список пользователей, которым не разрешено подключаться к вашему ftp серверу) и стандартная chroot директория /srv/ftp/

2.Настройка:

a) Открываем конфигурационный файл proftpd.conf

Include /etc/proftpd/modules.conf ← подключаем все необходимые нам модули.

UseIPv6 off ← отключаем IPv6. Даже если вы не используете протокол IPv6, будет лучше указать это в конфиге, чтобы proftpd не открывал дополнительные ipv6 сокеты.

IdentLookups off
UseReverseDNS off ← эти две опции необходимы для того, чтобы proftpd не преобразовывал адреса клиентов в доменное имя. Это это снизит время отведённое на авторизацию клиентов.

ServerName «MySuper-DuperFTP» ← развиваем фантазию и придумываем имя для нашего ftp сервера.

ServerAdmin spam@shit.com ← контактная информация.

ServerType standalone ← выбераем тип сервета (standaline/inetd).

ServerIdent on «BigSexy FTP» ← включаем идентификацию нашего ftp сервера.

DefaultRoot /home/ftp/ ← устанавливаем chroot окружение для всех ftp пользователей.

RootLogin off ← Запрещаём подключение root пользователем.

User proftpd

Group nogroup ← указываем пользователя и группу от которой будет запущен наш ftp.

Umask 022 022 ← устанавливаем права для загружаемых файлов.

MaxLoginAttempts 3 ← количество попыток авторизации, перед тем как сервер разорвёт соединение.

DeferWelcome on ← отключаем пригласительное сообщение для тех пользователей, которые ещё не прошли аутентификацию.

AccessDenyMsg «Are you mad ?» ← Данное сообщение пользователь получит при не правильной авторизации.

AccessGrantMsg «Woop-Woop» ← А это при правильной авторизации.

MultilineRFC2228 on ← поддержка многострочных сообщений. Данный протокол гарантирует доставку данных и аутентификацию соединений.

DefaultServer on ← включаем параметр on так как у нас нет других ftp серверов/вируальных хостов.

ShowSymlinks on ← Отображать симлинки.

TimeoutNoTransfer 7200 ← устанавливаем тайм аут для соединений без передачи данных.

TimeoutStalled 36000 ← тайм аут на сессию с передачей данных.

TimeoutIdle 36000 ← тайм аут на неактивную сессию.

TimeoutSession 36000 ← Общая длинна сессии.

DisplayLogin welcome.msg ← включаем отображение пригласительного сообщения. данный файл находится в директории /srv/ftp/

ListOptions «-l» ← В данной опции указываем «тип отображения» содержимого директорий. Аналог команды ls -l

DenyFilter \*.*/ ← в целях безопасности запрёщаем регулярное выражение «*». В данный параметр можно вписать те, опции и команды, которые мы запрещаем. В данном случаем, мы обезопасим себя от тех ситуаций, когда пользователи захотят вывести собержимое свех диреторий на нашем ftp сервере, что очень неблагоприятно сказывается на нагрузке на сервер.

Port 23799 ← порт на котором будет работать proftpd.

PassivePorts 50010 50050 ← диапазон портов для пассивного режима.

MaxInstances 30 ← указываем максимальное количество child процессов. Параметр none отключает лимит.

AllowOverwrite on ← разрешаем перезапись загруженных файлов пользователем.

AllowOverride off ← отключаемпарсинг файлов .ftpaccess

AllowStoreRestart on ← разрешаем пользователям восстанавливать скачивание файлов.

TransferLog /var/log/proftpd/xferlog ← логи загрузок/скачиваний.

SystemLog /var/log/proftpd/proftpd.log ← системные логи.

Include /etc/proftpd/conf.d/ ← директория для дополнительных конфигурационных файлов.

AuthUserFile /etc/proftpd/ftpd.passwd ← список пользователей.

AllowForeignAddress off ← запрещаем пересылку файлов от нашего ftp к другому ftp серверу.

AllowRetrieveRestart on ← разрешаем пользователям восстанавливать сессии

<IfModule mod_delay.c>
DelayEngine on
</IfModule>

<IfModule mod_ctrls.c>
ControlsEngine off
</IfModule>

<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>

<Limit READ DIRS>
IgnoreHidden on
</Limit>

<Limit SITE_CHGRP SITE_CHMOD>
Deny all
</Limit>

b)Открываем файл /etc/proftpd/modules.conf в убираем оттуда строчку LoadModule mod_tls_memcache.c.

Теперь нам нужно добавить пользователей для нашего ftp. Для этого используем команду ftpasswd:

ftpasswd –passwd –file=/etc/proftpd/ftpd.passwd –name=user1 –shell=/bin/false –home=/home/ftp/user1 –uid=1023 –gid=65534

И вводим пароль для нашего пользователя. Если пользователь забыл свой пароль, то мы можем его заменить используя коману:

ftpasswd –passwd –name=user1 –change-password

Для удаления пользователя:

ftpasswd –passwd –delete-user –file=/etc/proftpd/ftpd.passwd –name=user1

Перезагружаем proftpd, /etc/init.d/proftpd restart и проверяем, что служба запущена от пользователя proftpd (ps aux | grep proftd && lsof -c proftpd).

с) Немного про SFTP: Если вы хотите использовать безопасную передачу данных, то proftpd может использовать SFTP и FTPS. Для разворачивания sftp в конфиге proftpd,conf вам нужно указать модуль sftp.
<IfModule mod_sftp.c>
UseFtpUsers on
SFTPDisplayBanner «/etc/issue.net»
SFTPEngine on
SFTPLog /var/log/proftpd/sftp.log
Port 23799
SFTPDHParamFile /etc/proftpd/dhparams.pem
SFTPAuthMethods password
SFTPMaxChannels 50
SFTPCompression on
</IfModule>

d) Полезные команды:
Для просмотра подключенных пользователей можно использовать команду ftpwho, для мониторинга процессов ftptop а для статистики ftpstats.
proftpd -vv ← вывод подробной информации о версии и поддерживаемых модулях.
proftpd -l ← вывод загруженных модулей.
proftpd -t ← синтаксическая проверка конфигурационного файла.
Вот собственно и всё. Так же стоит отметить, что proftpd так же поддерживает возможность работы с СУБД, LDAP и так же имеет возможность работы на кластере. Существует множество вариантов настройки proftpd сервиса. Так же есть отличный мануал с подробным описанием всевозможных настроек: http://www.proftpd.org/docs/directives/configuration_full.html

proftpd.txt · Последние изменения: 2014/10/19 19:32 — 5.18.122.158