Як встановити 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/ з прикладами для ілюстрації типів значень, які вони приймають:
- AltLog:
AltLog clf:/var/log/pureftpd.log
- Приклад:
clf:/var/log/pureftpd.log
- Приклад:
- AnonymousOnly: увімкнути, створивши файл з іменем .
AnonymousOnly
- Значення не потрібне.
- AntiWarez: увімкніть, створивши файл з іменем .
AntiWarez
- Значення не потрібне.
- AutoRename: увімкнути, створивши файл з іменем .
AutoRename
- Значення не потрібне.
- Bind:
Bind 21
- Приклад:
192.168.0.1,21
- Приклад:
- BrokenClientsCompatibility: Увімкнути, створивши файл з іменем .
BrokenClientsCompatibility
- Значення не потрібне.
- ChrootEveryone: увімкніть, створивши файл з іменем .
ChrootEveryone
- Значення не потрібне.
- CreateHomeDir: увімкнути, створивши файл з іменем .
CreateHomeDir
- Значення не потрібне.
- CustomerProof: увімкніть, створивши файл з іменем .
CustomerProof
- Значення не потрібне.
- Daemonize: увімкніть створенням файлу з іменем .
Daemonize
- Значення не потрібне.
- DisplayDotFiles: увімкніть, створивши файл з іменем .
DisplayDotFiles
- Значення не потрібне.
- DontResolve: Увімкніть, створивши файл з іменем .
DontResolve
- Значення не потрібне.
- ExtAuth:
ExtAuth /path/to/authenticator
- Приклад:
/usr/local/bin/myauth
- Приклад:
- ForcePassiveIP:
ForcePassiveIP 192.168.0.1
- Приклад:
192.168.0.1
- Приклад:
- FSCharset:
FSCharset utf-8
- Приклад:
utf-8
- Приклад:
- IPv4Only або IPv6Only: увімкнути, створивши файл з іменем або .
IPv4Only
IPv6Only
- Значення не потрібне.
- KeepAllFiles: увімкніть, створивши файл з іменем .
KeepAllFiles
- Значення не потрібне.
- LDAPConfigFile:
LDAPConfigFile /etc/pure-ftpd/ldap.conf
- Приклад:
/etc/pure-ftpd/ldap.conf
- Приклад:
- LimitRecursion:
LimitRecursion 10000 8
- Приклад: (10000 файлів, глибина 8 рівнів)
10000 8
- Приклад: (10000 файлів, глибина 8 рівнів)
- MaxClientsNumber:
MaxClientsNumber 50
- Приклад:
50
- Приклад:
- MaxClientsPerIP:
MaxClientsPerIP 8
- Приклад:
8
- Приклад:
- MaxDiskUsage:
MaxDiskUsage 95
- Приклад: (95 відсотків)
95
- Приклад: (95 відсотків)
- MaxIdleTime:
MaxIdleTime 15
- Приклад: (15 хвилин)
15
- Приклад: (15 хвилин)
- Максимальне навантаження:
MaxLoad 4.0
- Приклад:
4.0
- Приклад:
- MinUID:
MinUID 1000
- Приклад:
1000
- Приклад:
- MySQLConfigFile:
MySQLConfigFile /etc/pure-ftpd/mysql.conf
- Приклад:
/etc/pure-ftpd/mysql.conf
- Приклад:
- NoAnonymous: увімкнути, створивши файл з іменем .
NoAnonymous
- Значення не потрібне.
- NoChmod: увімкнути, створивши файл з іменем .
NoChmod
- Значення не потрібне.
- NoRename: увімкніть створенням файлу з іменем .
NoRename
- Значення не потрібне.
- PassivePortRange:
PassivePortRange 30000 35000
- Приклад:
30000 35000
- Приклад:
- Обмеження для кожного користувача:
PerUserLimits 8
- Приклад: (8 одночасних підключень на користувача)
8
- Приклад: (8 одночасних підключень на користувача)
- PureDB:
PureDB /etc/pure-ftpd/pureftpd.pdb
- Приклад:
/etc/pure-ftpd/pureftpd.pdb
- Приклад:
- Quota:
Quota 1000M
- Приклад: (1000 мегабайт)
1000M
- Приклад: (1000 мегабайт)
- SyslogFacility:
SyslogFacility ftp
- Приклад:
ftp
- Приклад:
- TLSCipherSuite:
TLSCipherSuite HIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3
- Приклад:
HIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3
- Приклад:
- TrustedGID:
TrustedGID 1000
- Приклад:
1000
- Приклад:
- Umask:
UMask 133:022
- Приклад: (файлів: 133, довідників: 022)
133:022
- Приклад: (файлів: 133, довідників: 022)
- UnixAuthentication: увімкніть створенням файлу з іменем .
UnixAuthentication
- Значення не потрібне.
- UploadScript:
UploadScript /path/to/script
- Приклад:
/usr/local/bin/uploadscript
- Приклад:
Ці приклади повинні уточнити, як налаштувати різні параметри в Pure-FTPd.
Моніторинг та обслуговування
Регулярно перевіряйте вхід на наявність будь-яких незвичайних дій або помилок./var/log/pure-ftpd/