Fail2Ban працює таким чином - ця утиліта відстежує системні журнали за допомогою вже написаних фільтрів. В цьому випадку розглянемо маленькі, але дієві налаштування для блокування ip
адрес з яких намагаються отримати доступ.
Встановлюємо:
sudo apt install fail2ban
В директорії /etc/fail2ban/
є файл jail.conf
як приклад різних конфігурацій, залишаємо його і в тій же директорії створюємо новий файл sudo nano /etc/fail2ban/jail.local
, а з прикладу беремо таку конфігурацію.
[DEFAULT]
bantime = 30m #час на який бокувати ip в даному випадку 30 хвилин
findtime = 30m #якщо за 30 хвилин буде якась кількість спроб
maxretry = 3 #кількість невдалих спроб отримати доступ
bantime.increment = true #збільшувати час блокування адресу якщо такий адрес був попередньо заблокований
banaction = iptables-multiport #використовувати iptables для блокування
action_ = %(banaction)s[port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"] #фукція блокування
action = %(action_)s #виконувати фукцію
[sshd]
# To use more aggressive sshd modes set filter parameter "mode" in jail.local:
# normal (default), ddos, extra or aggressive (combines all).
# See "tests/files/logs/sshd" or "filter.d/sshd.conf" for usage example and details.
#mode = normal
enabled = true #дозволити цю дію, їх може бути багато
port = 22 #стандартний порт ssh, бажано змінити
filter = sshd #назва фільтру в директорії `/etc/fail2ban/filter.d/`
logpath = %(sshd_log)s
backend = %(sshd_backend)s
Щоб дивитися на налаштування цього фільтру виконуємо команду:
sudo fail2ban-client status sshd
Список фільтрів:
sudo fail2ban-client status
В цьому випадку буде тільки один sshd
Щоб дивитися журнал або log:
tail -f /var/log/fail2ban.log
Утиліта tail з опцією -f
читає текстові файли з кінця та автоматичним оновленням.