Як встановити та налаштувати Fail2Ban в Linux
9 хв читання - 14 травня 2026 р.

Покрокове керівництво по встановленню, налаштуванню та тестуванню Fail2Ban на серверах Linux на базі Ubuntu, Debian та RHEL.
Як встановити та налаштувати Fail2Ban у Linux
Fail2Ban відстежує журнали вашого сервера на предмет підозрілої активності та автоматично блокує IP-адреси порушників, оновлюючи правила брандмауера. Він зупиняє атаки методом грубої сили, зменшує шум у журналах і після налаштування тихо працює у фоновому режимі. Цей посібник охоплює встановлення на Ubuntu/Debian, основне налаштування, налаштування jail та кілька додаткових опцій, про які варто знати.
Необхідні умови
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)". Друга команда показує список активних jails. Переконайтеся, що Fail2Ban увімкнено при завантаженні за допомогою sudo systemctl is-enabled fail2ban.
Налаштування Jails
Налаштування за замовчуванням
Відкрийте /etc/fail2ban/jail.local і налаштуйте [DEFAULT] . Ці налаштування застосовуються до всіх джейл, якщо їх не замінено:
| Параметр | Рекомендоване значення | Що робить |
|---|---|---|
bantime | 3600 | Блокує IP-адресу на 1 годину |
findtime | 600 | Підраховує помилки протягом 10-хвилинного вікна |
maxretry | 3 до 5 | Кількість помилок, після яких спрацьовує блокування |
ignoreip | 127.0.0.1/8 ::1 | IP-адреси, які ніколи не блокуються |
Додайте власну IP-адресу адміністратора, щоб ignoreip щоб не заблокувати собі доступ. Приклад: ignoreip = 127.0.0.1/8 ::1 203.0.113.50.
Захист SSH
Увімкніть SSH-тюрму в jail.local:
[sshd]
enabled = trueПеревірте, чи logpath вказує на правильний файл журналу для вашого дистрибутива. Якщо ви перенесли SSH на нестандартний порт (наприклад, 2222), оновіть port відповідним чином.
Захист веб-сервера
Увімкніть jail, що відповідає вашому веб-серверу:
- Nginx:
[nginx-http-auth]для помилок автентифікації,[nginx-botsearch]для шкідливих ботів - Apache:
[apache-auth]для аутентифікації,[apache-badbots]для ботів
Recidive Jail
Recidive [recidive] jail виловлює IP-адреси, які постійно блокуються в інших jail, і застосовує до них більш тривале покарання, зазвичай на один тиждень (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:
grep "Ban\|Unban" /var/log/fail2ban.logКорисні команди управління:
| Команда | Призначення |
|---|---|
fail2ban-client status | Перелік усіх активних блокувань |
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 action надсилає електронний лист із деталями блокування, даними WHOIS та рядками журналу, що спричинили блокування. Використовуйте action_mw , якщо вам потрібні лише дані WHOIS. Вам знадобиться встановлений агент передачі пошти, такий як sendmail, або SMTP-ретранслятор, налаштований за допомогою чогось на зразок msmtp.
Для сповіщень у Slack або Discord створіть скрипт, який надсилає веб-хук, і підключіть його через файл користувацької дії у /etc/fail2ban/action.d/.
Якщо ви шукаєте сервер з повним root-доступом та необмеженою пропускною здатністю для запуску Fail2Ban, ознайомтеся з виділеними серверами FDC.

Втомилися від повільного розгортання або обмежень пропускної здатності? FDC Servers пропонує миттєве виділення потужності, глобальне охоплення та гнучкі плани, створені для будь-якого масштабу. Готові до оновлення?
Розблокувати продуктивність зараз
Посібник з налаштування Prometheus та node_exporter
Встановіть Prometheus та node_exporter, налаштуйте цілі вилучення, налаштуйте системні служби та захистіть стек моніторингу. Покрокова інструкція для Linux.
15 хв читання - 29 травня 2026 р.
XDP та eBPF для обробки пакетів у Linux
14 хв читання - 27 травня 2026 р.

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