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

Майор

Premium
Premium
Регистрация
04.09.14
Сообщения
2.951
Реакции
2.024
Баллы
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
 

Майор

Premium
Premium
Регистрация
04.09.14
Сообщения
2.951
Реакции
2.024
Баллы
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
#   #          
#   #
#
#
 

Майор

Premium
Premium
Регистрация
04.09.14
Сообщения
2.951
Реакции
2.024
Баллы
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”.
 
Последнее редактирование:

Майор

Premium
Premium
Регистрация
04.09.14
Сообщения
2.951
Реакции
2.024
Баллы
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
Возраст
31
профтпд дырявый )) там каждые пол года критические дырки находят :crazy:
 
Сверху Снизу