From e9360c0e46cae14b18a234ee33e19954bcfbd8af Mon Sep 17 00:00:00 2001 From: postscriptum Date: Wed, 26 Nov 2025 05:25:42 +0200 Subject: [PATCH] change title --- ...ystuvatskoho-servera-ftp-na-bazi-vsftpd.md | 36 +++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/post/orhanizatsiia-bahatokorystuvatskoho-servera-ftp-na-bazi-vsftpd.md b/post/orhanizatsiia-bahatokorystuvatskoho-servera-ftp-na-bazi-vsftpd.md index 37fe8ea..6c9f7c1 100644 --- a/post/orhanizatsiia-bahatokorystuvatskoho-servera-ftp-na-bazi-vsftpd.md +++ b/post/orhanizatsiia-bahatokorystuvatskoho-servera-ftp-na-bazi-vsftpd.md @@ -1,4 +1,4 @@ -# Організація соціального сервера FTP на базі vsftpd +# Організація багатокористувацького файло-обмінника FTP на базі vsftpd У попередньому [матеріалі](https://devzone.org.ua/post/orhanizatsiia-hostyovoho-servera-ftp), я описував свій досвід з організації **гостьового** FTP сервера для доступу до файлів на читання. Утім, довго планував організувати саме соціальний, інтерактивний інстанс в дусі колишніх локалок: де unix-юзери можуть не тільки завантажувати цікавий для них контент, але й відвантажувати свій, не заважаючи при цьому іншим користувачам сервера. @@ -81,7 +81,37 @@ ps * `anonymous` - гостьовий псевдо-користувач, без нього анон не зможе підключитись! * `ps` - доданий користувач, інші облікові записи додаємо по одному на рядок -Якщо не вказувати білий список, то на FTP сервері можна буде залогінитись будь яким системним користувачем, включно з таким, до якого не було вказано пароль. У цьому плані, варто звернути увагу на утиліту [fail2ban](https://en.wikipedia.org/wiki/Fail2ban), але захист від [брутфорсу](https://uk.wikipedia.org/wiki/Пошук_грубою_силою) - це окрема історія. +Якщо не вказувати білий список, то на FTP сервері можна буде залогінитись будь яким системним користувачем, включно з таким, до якого не було вказано пароль. + +### Блокування брутфорсу засобами fail2ban + +В контексті попереднього пункту, буде корисним поставити [fail2ban](https://en.wikipedia.org/wiki/Fail2ban) - утиліту, яка блокуватиме клієнтський хост при введенні таким не правильної пари логін/пароль (для запобігання [брутфорсу](https://uk.wikipedia.org/wiki/Пошук_грубою_силою)). Адже підбираючи пароль до користувачів `/etc/vsftpd.userlist` можна так само підібрати пароль до SSH (якщо 22 порт відкритий і використовується авторизація паролем) + +``` bash +apt install fail2ban +``` + +Підтримка vsftpd в fail2ban є з коробки, я тільки вручну додав опцію: + +``` /etc/fail2ban/jail.conf +[vsftpd] +# .. +enabled = true +``` +* тут можна вказати кастомний шлях журналу, якщо він у вас відрізняється + +Правила фільтрації для журналу vsftpd задаються у файлі: + +``` /etc/fail2ban/filter.d/vsftpd.conf +#failregex = .. +``` +* я лишив стандартні - в мене вони працюють + +Користуючись fail2ban, важливо вказати в глобальній конфігурації (vsftpd.conf) опцію `dual_log_enable=YES`! + +Після запуску сервера, варто особисто перевірити роботу блокування, вказавши завідомо неправильний пароль: після n-ї спроби (налаштовується в конфігурації fail2ban) в FTP клієнті замість коду 530 має бути повідомлення вигляду: + +> Connection attempt failed with "ECONNREFUSED - Connection refused by server". ### Глобальна конфігурація vsftpd @@ -117,6 +147,8 @@ use_localtime=YES xferlog_enable=YES xferlog_std_format=NO vsftpd_log_file=/var/log/vsftpd.log +# дана опція використовується для коректної роботи fail2ban! +dual_log_enable=YES # налаштування анонімного режиму # ------------------------------