Як встановити Pure-FTPd на Ubuntu 24.04: Покрокова інструкція

Як встановити Pure-FTPd на Ubuntu 24.04: Покрокова інструкція

 

Pure-FTPd — це безкоштовне програмне забезпечення FTP-сервера з відкритим вихідним кодом, доступне для Ubuntu та інших дистрибутивів Linux. Розроблений з акцентом на безпеку, продуктивність і простоту використання, Pure-FTPd пропонує надійні функції, такі як підтримка віртуальних користувачів, зашифровані з’єднання за допомогою TLS/SSL і різні механізми аутентифікації. Він також надає такі функції, як обмеження пропускної здатності, обмеження дозволів користувачів і ввімкнення анонімного доступу FTP. Pure-FTPd часто вибирають за його простоту конфігурації порівняно з іншими FTP-серверами, що робить його популярним вибором як для малих, так і для великомасштабних розгортань на системах Ubuntu.

Протокол передавання файлів (FTP) — це стандартний мережевий протокол, який використовується для передавання файлів між клієнтом і сервером через мережу, наприклад Інтернет. Розроблений на початку 1970-х років, FTP дозволяє користувачам завантажувати, завантажувати та керувати файлами на віддаленому сервері. Він функціонує за допомогою двох каналів: командного каналу для управління з’єднанням і каналу даних для передачі файлів. FTP може працювати як в активному, так і в пасивному режимі, який диктує, як сервер і клієнт встановлюють з’єднання. Хоча FTP широко використовується для передачі файлів, він вважається небезпечним, оскільки дані, включаючи облікові дані для входу, передаються у вигляді звичайного тексту; У цьому посібнику я покажу вам, як налаштувати Pure-FTPd для використання FTPS (FTP over SSL/TLS), зробивши FTP безпечним.

Цей посібник крок за кроком проведе вас через процес встановлення та налаштування Pure-FTPd на Ubuntu.

Передумови для встановлення Pure-FTPd

Перш ніж приступити до встановлення, переконайтеся, що у вас є:

  • Налаштування сервера Ubuntu
  • Доступ до облікового запису користувача з привілеямиsudo

Покроковий монтаж Pure-FTPd

Оновлення системних пакетів

Спочатку оновіть список пакетів вашої системи:

sudo apt update

Встановлення Pure-FTPd

Далі встановлюємо Pure-FTPd за допомогою наступної команди:

sudo apt install pure-ftpd

Налаштування Pure-FTPd для підвищення безпеки

Налаштування безпечного середовища

Створіть спеціальну групу для користувачів FTP:

sudo groupadd ftpgroup

Створіть користувача для Pure-FTPd:

sudo useradd -g ftpgroup -d /dev/null -s /etc ftpuser

Керування доступом користувачів

Щоб додати користувача на FTP-сервер:

sudo pure-pw useradd [username] -u ftpuser -g ftpgroup -d /home/ftpusers/[username]
sudo pure-pw mkdb

Замініть на бажане ім’я користувача.[username]

Налаштування TLS для безпечної передачі даних

Згенеруйте самопідписаний сертифікат:

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

Змініть конфігурацію Pure-FTPd для активації TLS:

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

Розширені параметри конфігурації

Ось список поширених параметрів, які можна налаштувати для Pure-FTPd в директорії /etc/pure-ftpd/conf/ на Ubuntu. Ім’я файлу конфігурації виділено жирним шрифтом.

  • AltLog: визначає альтернативні методи ведення журналу. Наприклад, AltLog clf:/var/log/pureftpd.log буде реєструвати передачі у форматі W3C.
  • AnonymousOnly: коли увімкнено (шляхом створення файлу з іменем AnonymousOnly), сервер обмежує можливість лише анонімного входу в систему.
  • AntiWarez: Якщо цей файл існує, користувачам заборонено завантажувати файли, які вже існують на сервері.
  • AutoRename: автоматично перейменовує завантажені файли, якщо існує файл із таким самим іменем.
  • Bind: прив’язує сервер до певної IP-адреси та порту. Наприклад, Bind 21 прив’язується до порту 21 на всіх доступних адресах.
  • BrokenClientsCompatibility: Забезпечує сумісність з клієнтами FTP, які не строго дотримуються стандартів FTP.
  • ChrootEveryone: Якщо увімкнено, обмежує всіх користувачів їхнім домашнім каталогом.
  • CreateHomeDir: Автоматично створює домашні каталоги, якщо вони не існують, коли користувач входить у систему.
  • CustomerProof: підвищує стійкість до поширених помилок, допущених у конфігураціях та командах клієнта.
  • Daemonize: Коли цей файл існує, Pure-FTPd працюватиме як фонова служба.
  • DisplayDotFiles: керує, чи відображаються точкові файли (приховані файли) чи ні.
  • DontResolve: запобігає роздільній здатності DNS для ведення журналів і контролю пропускної здатності, що може підвищити продуктивність.
  • ExtAuth: вказує зовнішню програму для автентифікації користувача.
  • ForcePassiveIP: змушує сервер повідомляти про певну IP-адресу клієнтам пасивного режиму.
  • FSCharset: встановлює набір символів файлової системи, корисний для імен файлів, відмінних від ASCII.
  • IPv4Only або IPv6Only: обмежує сервер лише для прослуховування IPv4 або IPv6 адрес.
  • KeepAllFiles: Запобігає видаленню будь-яких файлів на сервері.
  • LDAPConfigFile: вказує шлях до файлу конфігурації LDAP для автентифікації.
  • LimitRecursion: обмежує глибину рекурсії та кількість файлів, що відображаються у списках каталогів.
  • MaxClientsNumber: обмежує максимальну кількість одночасних клієнтів.
  • MaxClientsPerIP: обмежує кількість одночасних з’єднань з однієї IP-адреси.
  • MaxDiskUsage: обмежує відсоток використання диска.
  • MaxIdleTime: встановлює максимальний час простою в хвилинах перед відключенням клієнта.
  • MaxLoad: відключає клієнтів або відмовляється від нових підключень вище певного навантаження на систему.
  • MinUID: встановлює мінімальний UID для входу в систему. Користувачі з нижчим UID не можуть увійти в систему.
  • MySQLConfigFile: вказує шлях до файлу конфігурації MySQL для аутентифікації на основі бази даних.
  • NoAnonymous: вимикає анонімні входи, якщо цей файл існує.
  • NoChmod: вимикає команду CHMOD на сервері.
  • NoRename: забороняє користувачам перейменовувати файли.
  • PassivePortRange: визначає діапазон портів для пасивних з’єднань (наприклад, 30000 35000).
  • PerUserLimits: встановлює обмеження для кожного користувача.
  • PureDB: вказує шлях до файлу бази даних користувача PureDB.
  • Квота: встановлює обмеження квот користувачів.
  • SyslogFacility: визначає об’єкт системного журналу для ведення журналу.
  • TLSCipherSuite: вказує дозволені шифри TLS для зашифрованих з’єднань.
  • TrustedGID: визначає список ідентифікаторів довірених груп для входу в систему.
  • UMask: встановлює типовий umask для створення файлів.
  • UnixAuthentication: Вмикає автентифікацію за допомогою бази даних паролів UNIX.
  • UploadScript: вказує сценарій, який буде виконуватися після успішного завантаження.

Цей список охоплює найбільш часто використовувані параметри конфігурації, але не є вичерпним. Завжди звертайтеся до офіційної документації Pure-FTPd або використовуйте

pure-ftpd-wrapper --help

командування для отримання максимально точної та повної інформації.

Приклади

Ось список налаштувань Pure-FTPd у /etc/pure-ftpd/conf/ з прикладами для ілюстрації типів значень, які вони приймають:

  • AltLogAltLog clf:/var/log/pureftpd.log
    • Приклад: clf:/var/log/pureftpd.log
  • AnonymousOnly: увімкнути, створивши файл з іменем .AnonymousOnly
    • Значення не потрібне.
  • AntiWarez: увімкніть, створивши файл з іменем .AntiWarez
    • Значення не потрібне.
  • AutoRename: увімкнути, створивши файл з іменем .AutoRename
    • Значення не потрібне.
  • BindBind 21
    • Приклад: 192.168.0.1,21
  • BrokenClientsCompatibility: Увімкнути, створивши файл з іменем .BrokenClientsCompatibility
    • Значення не потрібне.
  • ChrootEveryone: увімкніть, створивши файл з іменем .ChrootEveryone
    • Значення не потрібне.
  • CreateHomeDir: увімкнути, створивши файл з іменем .CreateHomeDir
    • Значення не потрібне.
  • CustomerProof: увімкніть, створивши файл з іменем .CustomerProof
    • Значення не потрібне.
  • Daemonize: увімкніть створенням файлу з іменем .Daemonize
    • Значення не потрібне.
  • DisplayDotFiles: увімкніть, створивши файл з іменем .DisplayDotFiles
    • Значення не потрібне.
  • DontResolve: Увімкніть, створивши файл з іменем .DontResolve
    • Значення не потрібне.
  • ExtAuthExtAuth /path/to/authenticator
    • Приклад: /usr/local/bin/myauth
  • ForcePassiveIP: ForcePassiveIP 192.168.0.1
    • Приклад: 192.168.0.1
  • FSCharsetFSCharset utf-8
    • Приклад: utf-8
  • IPv4Only або IPv6Only: увімкнути, створивши файл з іменем або .IPv4OnlyIPv6Only
    • Значення не потрібне.
  • KeepAllFiles: увімкніть, створивши файл з іменем .KeepAllFiles
    • Значення не потрібне.
  • LDAPConfigFileLDAPConfigFile /etc/pure-ftpd/ldap.conf
    • Приклад: /etc/pure-ftpd/ldap.conf
  • LimitRecursionLimitRecursion 10000 8
    • Приклад: (10000 файлів, глибина 8 рівнів)10000 8
  • MaxClientsNumberMaxClientsNumber 50
    • Приклад: 50
  • MaxClientsPerIPMaxClientsPerIP 8
    • Приклад: 8
  • MaxDiskUsageMaxDiskUsage 95
    • Приклад: (95 відсотків)95
  • MaxIdleTimeMaxIdleTime 15
    • Приклад: (15 хвилин)15
  • Максимальне навантаженняMaxLoad 4.0
    • Приклад: 4.0
  • MinUIDMinUID 1000
    • Приклад: 1000
  • MySQLConfigFileMySQLConfigFile /etc/pure-ftpd/mysql.conf
    • Приклад: /etc/pure-ftpd/mysql.conf
  • NoAnonymous: увімкнути, створивши файл з іменем .NoAnonymous
    • Значення не потрібне.
  • NoChmod: увімкнути, створивши файл з іменем .NoChmod
    • Значення не потрібне.
  • NoRename: увімкніть створенням файлу з іменем .NoRename
    • Значення не потрібне.
  • PassivePortRangePassivePortRange 30000 35000
    • Приклад: 30000 35000
  • Обмеження для кожного користувачаPerUserLimits 8
    • Приклад: (8 одночасних підключень на користувача)8
  • PureDB: PureDB /etc/pure-ftpd/pureftpd.pdb
    • Приклад: /etc/pure-ftpd/pureftpd.pdb
  • QuotaQuota 1000M
    • Приклад: (1000 мегабайт)1000M
  • SyslogFacilitySyslogFacility ftp
    • Приклад: ftp
  • TLSCipherSuiteTLSCipherSuite HIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3
    • Приклад: HIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3
  • TrustedGIDTrustedGID 1000
    • Приклад: 1000
  • Umask: UMask 133:022
    • Приклад: (файлів: 133, довідників: 022)133:022
  • UnixAuthentication: увімкніть створенням файлу з іменем .UnixAuthentication
    • Значення не потрібне.
  • UploadScriptUploadScript /path/to/script
    • Приклад: /usr/local/bin/uploadscript

Ці приклади повинні уточнити, як налаштувати різні параметри в Pure-FTPd.

Моніторинг та обслуговування

Регулярно перевіряйте вхід на наявність будь-яких незвичайних дій або помилок./var/log/pure-ftpd/

Прокрутка до верху