Установка и настройка ProFTPD на Debian

Майор

Администратор
Команда форума
Регистрация
04.09.14
Сообщения
2.834
Реакции
1.939
Баллы
113
ProFTPd - FTP-сервер для Linux и UNIX-подобных операционных систем.
ProFTPd использует лишь один конфигурационный файл proftpd.conf, который располагается по умолчанию в:
  • Linux — /etc/proftpd/proftpd.conf.
  • FreeBSD — /usr/local/etc/proftpd.conf.
Сервер может быть настроен для работы нескольких виртуальных хостов, также поддерживает chroot. Может быть запущен в виде отдельного сервера (демона) или в составе суперсервера inetd. Также поддерживает IPv6.

Расширения: поддерживает модули, добавляющие SSL/TLS-шифрование, аутентификацию через LDAP, работу с SQL, туннелирование соединений через SSH.

Работает со следующими операционными системами: AIX, BSD/OS, Cygwin, FreeBSD, HP-UX, IRIX, zSeries, Linux (включая Linux для IBM S/390), Mac OS X, NetBSD, OpenBSD, Solaris, Maemo. Встроенная поддержка Microsoft Windows отсутствует.
Также имеется графический фронтенд для ProFTPd под названием gProFTPd.

Итак, наша задача на сегодня - установить и настроить ProFTPD сервер на Debian Linux
Для установки наберём следующую команду:
Код:
apt-get install proftpd
Система загрузит нужные для установки модули с сервера debian и приступит к установке. Во время установки в систему будет добавлен пользователь ftp и создана его домашняя директория /home/var.
Если вас не устраивает такое положение вещей, как лишняя директория в /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
 

Майор

Администратор
Команда форума
Регистрация
04.09.14
Сообщения
2.834
Реакции
1.939
Баллы
113
Далее я покажу пример файла 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 on # включаем использование IP version 6
ServerName "FTP" # имя 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
# директория на которую устанавливается сервер
# (сейчас указана home директория подлюченного пользователя)
DefaultRoot ~
# авторизовывать клиента только если он имеет основной shell из списка /etc/shells;
# область действия - основной сервер, Global, VirtualHost, Anonymous (ВАЖНО!!!)
RequireValidShell off
# Порт сервера
Port 21
# PassivePorts 49152 65534 # диапазон для пассивного режима ftp
# If your host was NATted, this option is useful in order to
# allow passive tranfers to work. You have to use your public
# address and opening the passive ports used on your firewall as well.
# MasqueradeAddress 1.2.3.4
# DynMasqRefresh 28800
# максимальное число одновременно запускаемых процессов в режиме standalone
MaxInstances 30
# Пользователь и группа от которого работает сервер
User proftpd
Group nogroup
# права с которыми будут создаваться файлы и папки
Umask 022 022
# разрешить перезаписывать существующие файлы,
# область действия - server config, VirtualHost, Anonymous, Directory, Global, .ftpaccess
AllowOverwrite on
# держать ли открытыми файлы /etc/passwd и /etc/group во время работы proftpd, включая chroot
# PersistentPasswd off
# This is required to use both PAM-based authentication and local passwords
# AuthOrder mod_auth_pam.c* mod_auth_unix.c
# UseSendFile off
# обрабатывать ли сайт ftpusers в котором перечислены пользователи,
# которым нужно запретить доступ по ftp
UseFtpUsers on
TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log
QuotaEngine off
Ratios 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
#
# Подключение файлов конфигурации для авторизиции по разным протоколам
#
#Include /etc/proftpd/ldap.conf
#Include /etc/proftpd/sql.conf
#
# Используется для FTPS соединений
#
#Include /etc/proftpd/tls.conf
# Базовая конфигурация и директории для анонимных пользователей
#
# User ftp
# Group nogroup
# # We want clients to be able to login with "anonymous" as well as "ftp"
# UserAlias anonymous ftp
# # Cosmetic changes, all files belongs to ftp user
# DirFakeUser on ftp
# DirFakeGroup on ftp
#
# RequireValidShell off
#
# # Limit the maximum number of anonymous logins
# MaxClients 10
#
# # We want 'welcome.msg' displayed at login, and '.message' displayed
# # in each newly chdired directory.
# DisplayLogin welcome.msg
# DisplayChdir .message
#
# # Limit WRITE everywhere in the anonymous chroot
#
#
# DenyAll
#
#
#
# # Uncomment this if you're brave.
# #
# # # Umask 022 is a good standard umask to prevent new files and dirs
# # # (second parm) from being group and world writable.
# # Umask 022 022
# #
# # DenyAll
# #
# #
# # AllowAll
# #
# #
#
#
 

Майор

Администратор
Команда форума
Регистрация
04.09.14
Сообщения
2.834
Реакции
1.939
Баллы
113
Подробнее хотел бы пояснить следующих несколько директив: RootLogin, UseFtpUsers, DefaultRoot и RequireValidShell.
RootLogin
– включает/отключает доступ по ftp пользователю root. Рекомендую отключить эту директиву и не использовать доступ от root в целях безопасности, так как по ftp передаются не зашифрованный пароль.
UseFtpUsers – обрабатывать ли файл ftpusers. В данном файле находится имена пользователей, которым запрещён доступ по ftp. Включаем его на всякий случай.
DefaultRoot – директория для доступа. Устанавливаем его в «~», то есть при заходе по ftp, пользователь будет попадать в свой домашний каталог и не сможет подняться выше него.
RequireValidShell – разрешить/запретить авторизовывать клиента только если он имеет основной shell из списка /etc/shells.

Итак, остался последний шаг, а именно добавления своего ftp пользователя в систему. К примеру, мы хотим подключаться по ftp от пользователя “alexey” с паролем “56s4a27e”. Добавляем его в систему. Сразу запрещаем доступ это пользователя к системе через shell и указываем домашнюю директорию /home. Делается это следующей командой:
Код:
# создание пользователя alexey
useradd –home /home –shell /bin/false –group nogroup alexey
[I]# присвоение пароля пользователю[/I]
passwd [I]alexey [/I](после выполнения команды вам нужно будет ввести необходимый пароль для пользователя, в нашем случае 56s4a27e)
Когда пользователь добавлен, перезагружаем proftpd сервер, командой:

/etc/init.d/proftpd restart

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

Майор

Администратор
Команда форума
Регистрация
04.09.14
Сообщения
2.834
Реакции
1.939
Баллы
113
Упустил один момент: настройка ssl и tls шифрования. Эти протоколы позволяют осуществлять связь в сети таким образом, чтобы предотвратить прослушивание и несанкционированный доступ.

Сначала сгенерируем сертификат:
Код:
openssl req -new -x509 -days 365 -nodes -out \
/etc/ssl/certs/proftpd.cert.pem -keyout \
/etc/ssl/certs/proftpd.key.pem
Заполним регистрационную форму
Код:
Country Name (2 letter code) [AU]: RU
State or Province Name (full name) [SomeState]: Ufa
Locality Name (eg, city) []: Ufa
Organization Name (eg, company) [Internet Widgits Pty Ltd]: artcom
Organizational Unit Name (eg, section) []: IT
Common Name (eg, YOUR name) []: artcom-ufa.ru
Email Address []: root@localhost
Редактируем конфигурационный файл /etc/proftpd/tls.conf:
Код:
nano /etc/proftpd/tls.conf
Его содержимое:
Код:
TLSEngine on
TLSLog /var/log/proftpd/proftpd_tls.log
TLSProtocol SSLv23
TLSOptions NoCertRequest
TLSRSACertificateFile /etc/ssl/certs/proftpd.cert.pem
TLSRSACertificateKeyFile /etc/ssl/certs/proftpd.key.pem
TLSVerifyClient on TLSRequired off
Включим TLS в конфиге proftpd путем раскоментирования или добавления строки
Код:
Include /etc/proftpd/tls.conf
На этом настройка шифрования окончена
 
Последнее редактирование:

redflag

Юзверь
Проверенный +
Регистрация
22.05.15
Сообщения
8
Реакции
3
Баллы
3
Возраст
30
профтпд дырявый )) там каждые пол года критические дырки находят :crazy:
 
Сверху Снизу