Як встановити та налаштувати Fail2ban на Ubuntu 24.04 | 22.04
Fail2ban — це безкоштовний IPS (програмне забезпечення для запобігання вторгненню) з відкритим вихідним кодом, яке допомагає адміністраторам захистити сервери Linux від зловмисного входу в систему та атак грубої сили. Fail2ban написаний на Python і поставляється з фільтрами для різних сервісів, таких як Apache2, SSH, FTP тощо. Fail2ban зменшує кількість шкідливих спроб входу, блокуючи IP-адреси джерел атак.
Fail2ban працює шляхом сканування файлів журналів сервісів (наприклад, /var/log/auth.log) та блокування IP-адрес, які показують зловмисні спроби входу, такі як занадто багато неправильних паролів, пошук експлойтів тощо. Fail2ban також підтримує кілька бекендів брандмауерів, таких як iptables, ufw і firewalld. Також дозволяє налаштувати сповіщення електронною поштою про кожну заблоковану спробу входу.
У цьому посібнику ви дізнаєтеся, як встановити Fail2ba на сервер Ubuntu 24.04. Ви налаштуєте jail Fail2ban, вивчите базову команду fail2ban-client, а потім дізнаєтеся, як банити і розблоковувати IP-адреси за допомогою Fail2ban.
Передумови
Щоб розпочати роботу з цим посібником, переконайтеся, що у вас:
- Сервер Ubuntu 24.04 | 22.04
- Користувач без прав root і має права адміністратора
Установка Fail2ban і UFW (нескладний брандмауер)
Fail2ban – це IPS (програмне забезпечення для запобігання вторгнень), яке захищає сервери від атак грубої сили. Він доступний за замовчуванням у більшості репозиторіїв Linux і підтримує кілька модулів брандмауера. У цьому розділі ви встановите Fail2ban, а потім налаштуєте UFW (Uncomplicated Firewall), який буде використовуватися як сервер брандмауера для Fail2ban.
Спочатку виконайте наведену нижче команду, щоб оновити індекс пакетів Ubuntu.
sudo apt update
Тепер встановіть пакети ‘fail2ban‘ та ‘ufw‘ за допомогою наступної команди ‘apt‘. Введіть «Y», щоб підтвердити встановлення.
sudo apt install fail2ban ufw
Після завершення інсталяції виконайте наведену нижче команду, щоб відкрити порт для SSH і включити UFW. Введіть «Y», щоб підтвердити, запустити та ввімкнути UFW.
sudo ufw allow OpenSSH sudo ufw enable
Як тільки UFW буде включено, ви побачите вихідний сигнал «Firewall is active and enabled on system startup».
Далі виконайте наступну команду, щоб перевірити статус UFW. Ви побачите, що UFW «active» з увімкненим «OpenSSH».
sudo ufw status
Нарешті, виконайте команду ‘systemctl’ нижче, щоб запустити, увімкнути та перевірити службу ‘fail2ban‘.
sudo systemctl enable --now fail2ban sudo systemctl status fail2ban
Нижче ви можете побачити, що ‘fail2ban‘ активний (запущений) і включений.
Налаштування Fail2ban
Після установки fail2ban необхідно налаштувати його до того, як Fail2ban виконає дію (перевірка і блокування). У цьому розділі ви зміните конфігурацію fail2ban ‘/etc/fail2ban/jail.local’, налаштуєте глобальну конфігурацію для ‘bantime‘, ‘maxretry‘ та ‘findtime‘, налаштуєте дію за замовчуванням та сервер брандмауера UFW, а потім активуєте jail ‘sshd‘ для захисту служби SSH від атак грубої сили.
Щоб почати, скопіюйте конфігурацію fail2ban за замовчуванням у ‘/etc/fail2ban/jail.local‘ з наступним:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Відкрийте файл ‘/etc/fail2ban/jail.local‘ за допомогою наступної команди редактора ‘nano‘.
sudo nano /etc/fail2ban/jail.local
Додайте свою локальну мережу до опції «ignoreip». Будь-яка підмережа в межах цієї опції не буде заблокована fail2ban.
ignoreip = 127.0.0.1/8 ::1 192.168.1.0/24 192.168.10.20
Налаштуйте конфігурацію за замовчуванням для ‘bantime‘ (час IP-адреси буде заблоковано), ‘findtime‘ (тривалість між кількістю збоїв до дії блокування) та ‘maxretry‘ (кількість збоїв для IP-адрес для блокування). У цьому прикладі ви налаштуєте “bantime” на “1 hour“, “findtime” на “10 minutes”, а “maxretry” на “5 times“.
bantime = 1h findtime = 10m maxretry = 5
За бажанням змініть стандартну «action» на «%(action_mw)s», щоб заблокувати IP-адреси та надіслати сповіщення адміністратору електронною поштою. Крім того, не забудьте змінити параметри “destmail” і “sender”.
action = %(action_mw)s destemail = admin@infoit.com.ua sender = admin@infoit.com.ua
Змініть стандартне ‘banaction‘ на ‘ufw‘. При цьому IP-адреси будуть заблоковані fail2ban через UFW.
banaction = ufw
Тепер змініть jail за замовчуванням для ‘sshd‘ за допомогою наведених нижче налаштувань. У цьому прикладі в’язниця ‘sshd‘ матиме нетипові параметри для ‘bantime‘, ‘maxretry‘ та ‘findtime‘.
[sshd] enabled = true maxretry = 3 findtime = 15m bantime = 3h port = ssh logpath = %(sshd_log)s backend = %(sshd_backend)s
Збережіть файл і вийдіть із нього, коли закінчите.
Нарешті, виконайте команду ‘systemctl’ нижче, щоб перезапустити службу ‘fail2ban‘ і застосувати свої зміни.
sudo systemctl restart fail2ban
Перевірка правил fail2ban за допомогою fail2ban-client
На даний момент служба Fail2ban запущена і працює з увімкненим jail ‘sshd’. Тепер ви вивчите базову команду ‘fail2ban-client’ для перевірки та управління встановленням Fail2ban.
Щоб переконатися, що fail2ban запущено, виконайте команду ‘fail2ban-client‘ нижче.
sudo fail2ban-client ping
Якщо fail2ban запущено, ви побачите вихідний ‘PONG’.
Тепер перевірте стан в’язниці ‘sshd‘ за допомогою наступної команди. Це покаже вам список виявлених і заблокованих IP-адрес для в’язниці ‘sshd‘.
sudo fail2ban-client status sshd
Далі виконайте команду ‘fail2ban-client get‘ нижче, щоб перевірити конкретні правила вашої в’язниці fail2ban. У цьому розділі ви побачите пункти «bantime», «maxretry», «actions», «findtime» та «ignoreip» у в’язниці «sshd».
sudo fail2ban-client get sshd bantime sudo fail2ban-client get sshd maxretry sudo fail2ban-client get sshd actions sudo fail2ban-client get sshd findtime sudo fail2ban-client get sshd ignoreip
Як забанити та розблокувати IP-адресу за допомогою fail2ban-client
Важливо знати, як забанити або розблокувати IP-адреси вручну за допомогою ‘fail2ban-client’. Завдяки цьому ви можете легко видалити свою IP-адресу зі списку заборонених. Ви будете використовувати команду fail2ban-client’ для блокування та розблокування IP-адрес на Fail2ban.
Щоб заблокувати IP-адреси вручну через fail2ban, запустіть команду ‘fail2ban-client‘ нижче. У цьому випадку заблокована IP-адреса потрапляє до jail ‘sshd‘.
sudo fail2ban-client set sshd banip IP-ADDRESS
Тепер виконайте наступну команду, щоб розблокувати IP-адресу з jail fail2ban ‘sshd‘.
Sudo fail2ban-client set sshd unbanip IP-ADDRESS
Нарешті, ви можете перевірити стан в’язниці ‘sshd‘ за допомогою наведеної нижче команди. Ви побачите, що IP-адресу видалено.
sudo fail2ban-client status sshd
Висновок
Вітаємо! Ви завершили встановлення fail2ban на сервері Ubuntu 24.04. Ви також вивчили базову конфігурацію для налаштування Fail2ban, включаючи налаштування глобальної конфігурації та jail. Нарешті, ви також вивчили базове використання команди ‘fail2ban-client’ для перевірки статусу fail2ban, статусу в’язниці, конфігурації jail, а також блокування та розблокування IP-адрес вручну.