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

9 хв читання - 14 травня 2026 р.

hero section cover
Зміст
  • Як встановити та налаштувати Fail2Ban в Linux
  • Передумови
  • Встановлення Fail2Ban в Ubuntu/Debian
  • Налаштування в'язниць
  • Тестування та моніторинг
  • Розширена конфігурація
Поділитися

Покрокове керівництво по встановленню, налаштуванню та тестуванню Fail2Ban на серверах Linux на базі Ubuntu, Debian та RHEL.

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

Fail2Ban відстежує журнали вашого сервера на предмет підозрілої активності і автоматично забороняє IP-адреси порушників, оновлюючи правила брандмауера. Після налаштування він зупиняє атаки грубої сили, зменшує шум в журналах і тихо працює у фоновому режимі. У цьому посібнику описано встановлення на Ubuntu/Debian, конфігурацію ядра, налаштування джейла та кілька додаткових опцій, про які варто знати.

Передумови

Fail2Ban працює на більшості дистрибутивів Linux: Ubuntu, Debian, AlmaLinux, CentOS, RHEL, Rocky Linux та Fedora. Вам знадобиться

  • Встановлений в системіPython 3
  • Привілеїroot або sudo для встановлення пакунків та зміни брандмауера
  • Активний брандмауер (iptables, nftables, ufw або firewalld)
  • Файли журналів, які фіксують невдалі спроби входу(/var/log/auth.log на системах на основі Debian, /var/log/secure на основі RHEL)

На системах на основі RHEL спочатку увімкніть сховище EPEL. Перед встановленням Fail2Ban переконайтеся, що ваш брандмауер запущено за допомогою ufw status або systemctl status firewalld.

Встановлення Fail2Ban в Ubuntu/Debian

Оновіть пакунки та встановіть Fail2Ban:

sudo apt update && sudo apt upgrade -y
sudo apt install fail2ban

Увімкніть службу, щоб вона запускалася при завантаженні, а потім запустіть її:

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Скопіюйте конфігурацію за замовчуванням до локального файлу заміни. Завжди редагуйте jail.local, а не jail.conf, щоб оновлення пакунків не перезаписували ваші налаштування:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Переконайтеся, що все працює:

sudo systemctl status fail2ban
sudo fail2ban-client status

Перша команда повинна показати "Active: active (running)". Друга команда покаже список ваших активних джейлів. Переконайтеся, що Fail2Ban увімкнено під час завантаження за допомогою sudo systemctl is-enabled fail2ban.

Налаштування в'язниць

Налаштування за замовчуванням

Відкрийте файл /etc/fail2ban/jail.local і налаштуйте розділ [DEFAULT ]. Ці налаштування застосовуються до всіх в'язниць, якщо їх не перевизначено:

ПараметрРекомендоване значенняЩо робить
час бану3600Блокує IP на 1 годину
findtime600Підраховує збої в 10-хвилинному вікні
maxretryвід3 до 5Відмови до спрацьовування бану
ignoreip127.0.0.1/8 ::1IP-адреси, які ніколи не будуть заблоковані

Додайте свій власний керуючий IP до ignoreip, щоб не заблокувати себе. Приклад: ignoreip = 127.0.0.1/8 ::1 203.0.113.50.

Захист SSH

Увімкніть в'язницю SSH у файлі jail.local:

[sshd]
enabled = true

Переконайтеся, що шлях до журналу вказує на правильний файл журналу для вашого дистрибутива. Якщо ви перемістили SSH на нестандартний порт (наприклад, 2222), змініть параметр порту на відповідний.

Захист веб-сервера

Увімкніть в'язницю, яка відповідає вашому веб-серверу:

  • Nginx: [nginx-http-auth] для помилок автентифікації, [nginx-botsearch ] для шкідливих ботів
  • Apache: [apache-auth] для автентифікації, [apache-badbots] для ботів

Рецидивна в'язниця

В'язниця [recidive] ловить IP-адреси, які продовжують бути забаненими в інших в'язницях, і застосовує довший термін покарання, як правило, один тиждень (604 800 секунд). Це корисно для постійних зловмисників, які змінюють свій підхід.

Після внесення змін перезавантажте:

sudo systemctl restart fail2ban
sudo fail2ban-client status

Тестування та моніторинг

Тестування заборон

Перш ніж покладатися на Fail2Ban у виробництві, протестуйте його. З віддаленого комп'ютера (не з IP-адреси адміністратора) спробуйте увійти по SSH, поки не перевищите maxretry. Ви повинні бути заблоковані. Підтвердіть це за допомогою:

sudo fail2ban-client status sshd

Спостерігайте за заборонами в реальному часі:

tail -f /var/log/fail2ban.log

Якщо ви випадково забанили законний IP, розблокуйте його:

sudo fail2ban-client set sshd unbanip 203.0.113.50

Щоденний моніторинг

Переглядайте історію банів, витягнувши лог:

grep "Ban\|Unban" /var/log/fail2ban.log

Корисні команди керування:

КомандаПризначення
fail2ban-client статус клієнтаПерерахувати всі активні джейли
fail2ban-client bannedПоказати всі поточні заборонені IP-адреси
fail2ban-client set <jail> unbanip <IP>Зняти заборону з певного IP
fail2ban-client unban --allОчистити всі бани
fail2ban-client set <jail> banip <IP>Заборонити IP вручну

Заборони зберігаються після перезапуску. Fail2Ban зберігає їх у базі даних SQLite за адресою /var/lib/fail2ban/fail2ban.sqlite3.

Розширена конфігурація

Перехід на nftables

nftables - це сучасна заміна iptables. Він обробляє IPv4 і IPv6 в єдиному фреймворку, краще масштабується з великими списками заборон і має вбудоване обмеження швидкості. Якщо ви використовуєте Ubuntu 22.04+, Debian 11+ або будь-який інший свіжий дистрибутив, це найкращий вибір.

Встановіть його в jail.local:

[DEFAULT]
banaction = nftables-multiport

Перезапустіть Fail2Ban, а потім перевірте за допомогою sudo nft list ruleset. Ви повинні побачити f2b-table і f2b-chain у виводі. Використовуйте iptables, тільки якщо у вас стара система або є вимоги до сумісності.

Сповіщення електронною поштою

За замовчуванням Fail2Ban забороняє мовчки. Щоб отримувати сповіщення на електронну пошту, додайте наступне до розділу [DEFAULT ] у файлі jail.local:

[DEFAULT]
destemail = [email protected]
sender = [email protected]
mta = sendmail
action = %(action_mwl)s

Дія action_mwl надсилає електронний лист з деталями бану, даними WHOIS і рядками журналу, які спричинили заборону. Використовуйте action_mw, якщо вам потрібні лише дані WHOIS. Вам знадобиться встановлений агент передачі пошти, наприклад sendmail, або SMTP-ретранслятор, налаштований за допомогою чогось на зразок msmtp.

Для сповіщень Slack або Discord створіть скрипт, який надсилає веб-хук, і підключіть його через спеціальний файл дій в /etc/fail2ban/action.d/.

Якщо ви шукаєте сервер з повним root-доступом і необмеженою пропускною здатністю для запуску Fail2Ban, зверніть увагу на виділені сервери FDC.

background image
Ваш сервер стримує ваш розвиток?

Втомилися від повільного розгортання або обмежень пропускної здатності? FDC Servers пропонує миттєве виділення потужності, глобальне охоплення та гнучкі плани, створені для будь-якого масштабу. Готові до оновлення?

Розблокувати продуктивність зараз

Блог

На цьому тижні

Більше статей
Контрольний список для зміцнення сервера Linux

Контрольний список для зміцнення сервера Linux

Покроковий контрольний список для захисту Linux-сервера. Охоплює SSH, брандмауери, виправлення, дозволи на файли, SELinux/AppArmor та ведення журналів аудиту

15 хв читання - 8 травня 2026 р.

iperf3 Підручник: Вимірювання швидкості мережі в Linux та Windows

10 хв читання - 7 травня 2026 р.

Більше статей
background image

Маєте запитання або потребуєте індивідуального рішення?

icon

Гнучкі варіанти

icon

Глобальне охоплення

icon

Миттєве розгортання

icon

Гнучкі варіанти

icon

Глобальне охоплення

icon

Миттєве розгортання