change title

This commit is contained in:
postscriptum 2025-11-26 05:25:42 +02:00
parent b0bf570e0b
commit e9360c0e46

View file

@ -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
# налаштування анонімного режиму
# ------------------------------