Перейти до основного вмісту

Як встановити та налаштувати Fail2ban

Debian 11

Основне її призначення — захист хоста від несанкціонованого доступу, що можливе завдяки ретельному відстеженню активності мережі на основних портах і читанню журналів записів (лог-файлів). Програма особливо ефективна проти так званих brute-force атак, оскільки вона нейтралізує атакуючого таким чином, що всі пакети, відправлені з пристрою, IP-адреса якого з тієї чи іншої причини потрапила до чорного списку, відкидаються. Блокування налаштовується шляхом внесення змін до правил iptables.

sudo apt-get update 
sudo apt-get install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

Зверніть увагу на секцію [DEFAULT].

Вона містить основні правила, задані за замовчуванням для Fail2ban.

ignoreip - значення цього параметра говорять про те, які IP-адреси не будуть блокуватися зовсім. Якщо ви хочете, щоб Fail2ban ігнорував при перевірці кілька IP-адрес, їх необхідно вказати у значенні ignoreip через пропуск.

bantime - цей параметр означає час у секундах, протягом якого підозрілий IP буде заблоковано. Спочатку його значення становить 10 хвилин.

//Щоб заборонити IP хосту доступ до серверу після бану "назавжди" потрібно встановити цей параметр в -1
sudo nano /etc/fail2ban/jail.local
sudo systemctl restart fail2ban

findtime - визначає проміжок часу в секундах, протягом якого програмою буде визначатися наявність підозрілої активності.

maxretry - допустима кількість неуспішних спроб отримання доступу до сервера. При перевищенні вказаного IP значення потрапляє в бан.

Після редагування jail.local обов'язково зробіть перезапуск команд Fail2ban

sudo service fail2ban restart
tail /var/log/fail2ban.log

Налаштування Fail2ban

Налаштування Fail2ban

Насамперед налаштуємо захист свого VPS за протоколом SSH за допомогою програми Fail2ban. Для цього знайдемо у файлі jail.local секцію [ssh].

Вона має бути активною за умовчанням. Проте, про всяк випадок, переконайтеся, що значення параметра enabled встановлено true, а не false.

Вкажіть значення параметрів, на основі яких Fail2ban повинен відстежувати активність:

filter – фільтр, який буде використовуватись. За замовчуванням це /etc/fail2ban/filter.d/sshd.conf;

action — дії, які виконуватиме Fail2ban при виявленні атакуючої IP-адреси, всі правила реагування на дії зловмисника описані у файлі /etc/fail2ban/action.d. Відповідно, як значення параметра action не може бути зазначена інформація, якої немає у файлі /etc/fail2ban/action.d;

logpath - повний шлях до файлу, в який буде записуватись інформація про спроби отримання доступу до VPS.

findtime - час у секундах, протягом якого спостерігається підозріла активність;

maxretry - дозволена кількість повторних спроб підключення до сервера;

bantime — проміжок часу, протягом якого IP, що потрапив у чорний список, залишатиметься заблокованим.

Варто звернути увагу на той факт, що зовсім необов'язково прописувати значення вищезазначених параметрів у кожній секції. Якщо їх не згадувати, наберуть чинності налаштування, зазначені в головному розділі [DEFAULT]. Головне, щоб для змінної enabled було вказано значення true.

Захист протоколу SSH

Розглянемо застосування параметрів реагування детальніше. Приклад конфігурації Fail2ban на порту SSH:

[ssh]
enabled = true
port = ssh
filter = sshd
action = iptables[name=sshd, port=ssh, protocol=tcp]
sendmail-whois[name=ssh, dest=****@gmail.com, sender=fail2ban@***.com]
logpath = /var/log/auth.log
maxretry = 3
bantime = 600

Запис вище означає, що якщо виконано понад 3 невдалих спроби підключення до VPS через основні порти SSH, то IP-адреса, з якої виконувалася авторизація, потрапить у бан на 10 хвилин. Правило заборони буде додано до iptables. Водночас власник сервера отримає повідомлення на e-mail, вказаний у значенні змінної dest, про те, що вказаний IP був заблокований за спробу отримання несанкціонованого доступу за протоколом SSH. Також у повідомленні буде вказана WHOIS інформація про заблокований IP.

Важливо! Щоб повідомлення про блокування зловмисника надсилалося на ваш e-mail, необхідна наявність поштового сервера на VPS.