Администрирование FreeBSD, Linux, ... Установка ftp-сервера ProFTPD на Debian 11 Sun, April 28 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Установка ftp-сервера ProFTPD на Debian 11 Печать
Добавил(а) microsin   

ProFTPD это бесплатный FTP-сервер, который используется либо как отдельное приложение, либо как модуль для других программ. Сервер ProFTPD разработан с учетом недостатков Wu-ftpd, с акцентом на высокую производительность, безопасность и гибкое конфигурирование. ProFTPD работает на многих платформах, включая SCO, OpenBSD, AIX, Linux, Mac OS X, NetBSD, Solaris. По факту многие известные компании, такие как Slackware, SourceForge, Duno, Linksys доверяют свой высокий трафик серверу ProFTPD.

В дополнение к поддержке стандарта RFC 959, определяющего протокол FTP, сервера proFTPD также обладают многими продвинутыми функциями, включая конфигурационные файлы в стиле Apache, маскировка файлов и директорий, возобновление прерванных загрузок, псевдонимы файлов и директорий.

В сравнении с другими решениями, которые больше фокусируются, например, на простоте, скорости или безопасности, основное назначение дизайна ProFTPD - реализовать очень мощный FTP-сервер с широким диапазоном опций конфигурации. Некоторые серверы FTP, наподобие Spiceworks и SolarWinds, работают как часть полнофункциональных сетевых инструментов управления. Для некоторых серверов FTP, таких как ProFTPd, требуется включить опцию NoSessionReuseRequired, если вы используете режим Transport Layer Security (TLS), преемник Secure Socket Layer (SSL).

Основные функциональные особенности ProFTPD:

• Любой администратор, кто использует web-сервер Apache, сразу разберется в директивах главного конфигурационного файла и директивах групп.
• Предоставляется конфигурация ".ftpaccess" для директории.
• Поддерживается вывод в лог и utmp/wtmp.
• Функция простого конфигурирования нескольких виртуальных серверов FTP и анонимных сервисов FTP.
• Требуются системные функции хоста Unix для запуска ProFTPD в stand alone mode.
• Даже для учетных записей, срок действия которых истек, поддерживается shadow password suite.
• Поддерживается модульность и IPv6.

Преимущества сервера ProFTPD:

• Сервер ProFTPD не поддерживает команду SITE EXEC, представляющую кошмар для безопасности в современном Интернет-окружении.
• В зависимости от загрузки системы пользователи запускают ProFTPD либо как отдельный сервер, или из inetd/xinetd.
• ProFTPD позволяет скрывать директории и файлы, используя права владения по пользователям/группам и разрешения доступа стиля Unix.
• Настройка ProFTPD простая, и в сети можно найти примеры файлов конфигурации.
• Разработчики и администраторы получают полный доступ к исходному коду для аудита.
• Для уменьшения риска атак, позволяющих использовать "root" возможности, ProFTPD работает в автономном режиме (stand alone mode), как программируемый не привилегированный пользователь.
• Дизайн создан с акцентом на простое расширение с использованием модулей.
• Совместим с различными платформами, включая SCO, OpenBSD, AIX, Linux, Mac OS X, NetBSD, Solaris, и т. д.
• Пользователи могут легко проверить, сколько полосы канала занимают их сессии FTP с использованием ProFTPD.
• Очень широкие возможности по конфигурированию, предоставляется управление доступа на основе TCPwrappers.

Далее описывается пошаговый процесс установки. Подразумевается, что на сервере используется Debian, и для установки есть доступ пользователя root либо пользователя с привилегиями sudo.

[Шаг 1: начало]

Залогиньтесь на сервер и обновите все системные пакеты до последней версии следующими командами.

# apt update -y
# apt upgrade -y

После обновления всех пакетов можно приступить к установке сервера ProFTPD.

[Шаг 2: установка сервера ProFTPD]

Сервер PoFTPD доступен в репозитории Debian по умолчанию. Для установки запустите следующую команду, установка займет несколько секунд:

# apt install proftpd -y

После завершения установки вы можете запустить службу ProFTPD следующей командой:

# systemctl start proftpd

Проверим статус активности службы ProFTPD следующей командой:

# systemctl status proftpd
● proftpd.service - ProFTPD FTP Server
     Loaded: loaded (/lib/systemd/system/proftpd.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2023-10-29 04:20:01 MSK; 3min 20s ago
   Main PID: 15746 (proftpd)
      Tasks: 1 (limit: 1140)
     Memory: 1.7M
        CPU: 71ms
     CGroup: /system.slice/proftpd.service
             └─15746 proftpd: (accepting connections)

Oct 29 04:20:00 5-63-155-210.cloudvps.regruhosting.ru systemd[1]: Starting ProFTPD FTP Server...
Oct 29 04:20:00 5-63-155-210.cloudvps.regruhosting.ru proftpd[15744]: Checking syntax of configuration file
Oct 29 04:20:00 5-63-155-210.cloudvps.regruhosting.ru systemd[1]: proftpd.service: Can't open PID file /run/proftpd.pid (yet>
Oct 29 04:20:01 5-63-155-210.cloudvps.regruhosting.ru systemd[1]: Started ProFTPD FTP Server.

Обратите внимание, что стиль вывода состояния сервера очень похож на вывод состояния сервера веб-сервера nginx [3].

По умолчанию сервер ProFTPD устанавливается для прослушивания порта 21. Это можно проверить следующей командой.

# ss -antpl | grep proftpd
LISTEN 0      128     *:21     *:*    users:(("proftpd",pid=15746,fd=0))

[Шаг 3: создание пользователя ProFTPD]

Теперь нужно создать пользователя FTP для проверки работы сервера ProFTPD. Для создания пользователя с именем ftpuser запустите следующую команду.

# adduser ftpuser

После создания пользователя FTP залогиньтесь под ftpuser следующей командой.

# su - ftpuser

Далее создайте несколько директорий (folder1, folder2) и файлов (testing1 testing2) следующими командами.

$ mkdir folder1 folder2
touch testing1 testing2

После этого выйдите из сессии пользователя ftpuser командой exit:

$ exit

После этого вы уже можете подключиться извне под пользователем ftpuser и получить полный доступ к содержимому его домашней директории (/home/ftpuser). Также у ftpuser есть возможность просматривать структуру каталогов сервера, где работает ProFTPD, но без права доступа к содержимому файлов, и конечно без права доступа на запись.

[Шаг 4: конфигурирование сервера ProFTPD]

/etc/proftpd/proftpd.conf это обычно единственный конфигурационный файл, который использует ProFTPD. Каждая директива в этом файле чаще всего находится в одной строке, где указано имя и значение. Каждая директива устанавливает один настраиваемый параметр, такой как место размещения (location), или приветственное сообщение при входе (welcome message), или имя скрытого файла. Дополнительно здесь присутствуют специальные директивы контейнера (container) для объединения других директив, охватывающих множество строк, но относящихся только к одному виртуальному серверу или директории.

Далее нам предстоит отредактировать файл конфигурации по умолчанию ProFTPD и поменять его настройки.

# nano /etc/proftpd/proftpd.conf

Поменяйте следующие настройки:

ServerName Debian11
UseIPV6 on
Port 21
SystemLog /var/log/proftpd/proftpd.log
DefaultRoot ~

Далее добавьте следующие строки в конец файла:

< Directory /home/ftpuser>
  Umask 022
  AllowOverwrite off
  < Limit LOGIN>
    AllowUser ftpuser
    DenyAll
  < /Limit>
  < Limit ALL>
    AllowUser ftpuser
    DenyAll
  < /Limit>
< /Directory>

Сохраните файл, выйдите из редактора, и перезапустите ProFTPD командой:

# systemctl restart proftpd

Такое может произойти, если у пользователя по какой-то причине отсутствует домашняя директория (подкаталог в папке /home, носящий имя пользователя).

Для устранения ошибки создайте каталог для пользователя, сделайте его владельцем этого каталога. Пример команд для пользователя andrey:

# mkdir /home/andrey
# chown andrey /home/andrey

[Шаг 5: как подключиться к ProFTPD из командной строки?]

На операционных системах Linux есть утилита ftp, которая позволяет из командной строки работать с FTP-сервером. Подразумевается, что вы подключились удаленно к машине Linux, открыли интерфейс командной строки. Тогда для подключения к серверу ProFTPD введите следующую команду (здесь aaa.bbb.ccc.ddd это IP-адрес сервера ProFTPD или доменное имя, соответствующее его IP-адресу):

$ ftp aaa.bbb.ccc.ddd

Команда запросит имя пользователя FTP и пароль.

Connected to ftp-server-ip.
220 ProFTPD Server (debian11) [::ffff:ftp-server-ip]
Name (ftp-server-ip:vyom): ftpuser
331 Password required for ftpuser
Password:

После успешного логина вы получите шелл FTP, как показано ниже.

230 User ftpuser logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

Теперь вы можете проверить ваши файлы и директории, которые вы создали на шаге 3, для этого выполните следующие команды.

ftp> ls
drwxr-xr-x 2 ftpuser ftpuser 4096 Dec 29 13:08 folder1
drwxr-xr-x 2 ftpuser ftpuser 4096 Dec 29 13:08 folder2
-rw-r--r-- 1 ftpuser ftpuser    0 Dec 29 13:08 testing1
-rw-r--r-- 1 ftpuser ftpuser    0 Dec 29 13:08 testing2

На Windows существуют также удобные программы для доступа через FTP, например FileZilla или TotalCommander.

[Шаг 6: конфигурирование ProFTPD для поддержки SSL/TLS]

Будет хорошей идеей защитить FTP-трафик сервера ProFTPD шифрованием протокола SSL/TLS. Для этого сначала установим инструментарий SSL.

# apt-get install openssl -y

Сгенерируйте сертификаты SSL:

# openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/proftpd.key -out \
 /etc/ssl/certs/proftpd.crt -nodes -days 365

Generating a RSA private key
............................+++++
................................................................+++++
writing new private key to 'https://имядомена/etc/ssl/private/proftpd.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----

Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:NJ
Locality Name (eg, city) []:server
Organization Name (eg, company) [Internet Widgits Pty Ltd]:EDU
Organizational Unit Name (eg, section) []:IT
Common Name (e.g. server FQDN or YOUR name) []:server
Email Address []:admin@example.com

Затем установите правильные разрешения на сгенерированных файлах сертификата:

# chmod 600 /etc/ssl/private/proftpd.key
# chmod 600 /etc/ssl/certs/proftpd.crt

После этого отредактируйте файл конфигурации ProFTPD, и определите путь файла конфигурации TLS:

# nano /etc/proftpd/proftpd.conf

Добавьте в файл следующую строку:

Include /etc/proftpd/tls.conf

Сохраните и закройте файл /etc/proftpd/proftpd.conf, и затем отредактируйте файл конфигурации TLS:

# nano /etc/proftpd/tls.conf

В этом файле определите сертификаты TLS и другую конфигурацию, как показано ниже:

TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
TLSRequired on
TLSOptions NoCertRequest EnableDiags NoSessionReuseRequired
TLSVerifyClient off

Сохраните и закройте файл, после чего перезапустите службу ProFTPD для внесенных изменений:

# systemctl restart proftpd

После завершения всех этих действий вы можете попробовать подключиться к ProFTPD через GUI-интерфейс программы FileZilla.

[Шаг 7: доступ к ProFTPD с помощью FTP-клиента FileZilla]

Существует несколько клиентов FTP с графическим (GUI) интерфейсом пользователя. Здесь мы подключимся к серверу ProFTPD с помощью программы FileZilla.

A) Сначала установите FileZilla на машине, удаленной по отношению к ProFTPD. Это может быть операционная система Linux или Windows, у которой есть сетевой доступ к серверу ProFTPD по известному IP или доменному имени.

B) Далее кликните на "create new connection". Вы увидите диалог настройки соединения FTP.

C) Укажите FTP IP, username, password, и кликните на кнопку "connect". После успешного подключения вы должны увидеть файлы и директории, которые были созданы на шаге 3.

[Ссылки]

1. How to Install ProFTPD on Debian 11 Server (Step by Step) site:cloudinfrastructureservices.co.uk.
2. TFTP vs FTP – What’s the Difference? (Pros and Cons) site:cloudinfrastructureservices.co.uk.
3. Установка веб-сервера Nginx на Debian 11.
4. ProFTPD create user : How to add a new user? site:bobcares.com.

 

Добавить комментарий


Защитный код
Обновить

Top of Page