Установка и настройка Pure‐FTPd в Ubuntu 22.04 - vovan58/1c_referance GitHub Wiki

Установка Pure-FTPd в Ubuntu 22.04

Pure-FTPd Documentation

Установка и настройка Pure-FTPD (Pure FTP)

Настройка Pure-FTPd

Виртуальные пользователи PureDB

Механизм Virtual Users в Pure-FTPD (README.Virtual-Users), представляет из себя следующее - в системе заводится системный пользователь, который ассоциируется с виртуальным пользователем. Можно ассоциировать несколько виртуальных пользователей с реальным системным пользователем. Для виртуальных пользователей назначается свой каталог, можно назначить ему так же квоты и прочее.

Включим авторизацию из база данных пользователей PureDB (создадим символическую ссылку), по умолчанию была настроена авторизация Unix(no - выключена) и PAM (yes - включена). При аутентификации важен порядок загрузки, потому добавим цифру 60 в название создаваемой символической ссылки, чтобы проверка пользователя начиналась именно с проверки из PureDB

ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/60PureDB
ls -l /etc/pure-ftpd/auth/
 
lrwxrwxrwx 1 root root 26 Sep 17 12:32 60PureDB -> /etc/pure-ftpd/conf/PureDB
lrwxrwxrwx 1 root root 26 Sep 17 12:29 65unix -> ../conf/UnixAuthentication
lrwxrwxrwx 1 root root 25 Sep 17 12:29 70pam -> ../conf/PAMAuthentication

Настройка

Теперь остается задать важные параметры в конфиге, например: Создавать домашнюю директорию автоматически:

echo "yes" | sudo tee /etc/pure-ftpd/conf/CreateHomeDir

Запрещать анонимный доступ:

echo "yes" | sudo tee /etc/pure-ftpd/conf/NoAnonymous

Пользователь не уйдет дальше своего каталога (не подымется выше):

echo "yes" | sudo tee /etc/pure-ftpd/conf/ChrootEveryone

Человеческий лог:

echo "yes" | sudo tee /etc/pure-ftpd/conf/VerboseLog

Работаем только по IPv4:

echo "yes" | sudo tee /etc/pure-ftpd/conf/IPV4Only

Максимальное количество клиентов:

echo "100" | sudo tee /etc/pure-ftpd/conf/MaxClientsNumber 

Максимальное количество клиентов с одного IP:

echo "8" | sudo tee /etc/pure-ftpd/conf/MaxClientsPerIP

Не показывать системный файлы (вида .имя_файла):

echo "no" | sudo tee /etc/pure-ftpd/conf/DisplayDotFiles 

Время простоя до отключения — 15 минут:

echo "15" | sudo tee /etc/pure-ftpd/conf/MaxIdleTime

Максимальная параллельная (?) загрузка:

echo "16" | sudo tee /etc/pure-ftpd/conf/MaxLoad  

FTP, порты пассивного режима:

echo "50000 50300" | sudo tee /etc/pure-ftpd/conf/PassivePortRange  

Генерируем самоподписанный сертификат:

sudo openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
sudo chmod 600 /etc/ssl/private/pure-ftpd.pem

Измените конфигурацию Pure-FTPD для активации TLS (2 - для отключения простого ftp и оставления только tls):

echo 1 | sudo tee /etc/pure-ftpd/conf/TLS

Не забываем после изменений сделать перезапуск:

sudo /etc/init.d/pure-ftpd restart

Теперь все работает — замечательно.

Ну и просмотреть логи можно так:

more /var/log/messages | grep pure-ftpd

Использование утилит Pure-FTPD

Теперь можно добавить виртуального пользователя:

pure-pw useradd remote -u ftpuser -g ftpgroup -d /home/pubftp/remote -N 10

Где remote — имя пользователя для доступа к FTP, а /home/pubftp/remote — персональная директория, с которой он будет работать. -N 10 задает квоту в 10МБ (ограничение на использование дискового пространства). Эту директорию не нужно создавать вручную, т.к. она появится автоматически (параметр задается при конфигурировании, об этом чуть позже) при первом подключении и обмене данными с сервером.

Список существующих пользователей:

pure-pw list

Подробная информация о пользователе:

pure-pw show remote

Удаление пользователя — когда-нибудь может пригодиться, но не сейчас:

pure-pw userdel remote