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

Покрокове керівництво по встановленню, налаштуванню та тестуванню 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 годину |
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Переконайтеся, що шлях до журналу вказує на правильний файл журналу для вашого дистрибутива. Якщо ви перемістили 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.

Втомилися від повільного розгортання або обмежень пропускної здатності? FDC Servers пропонує миттєве виділення потужності, глобальне охоплення та гнучкі плани, створені для будь-якого масштабу. Готові до оновлення?
Розблокувати продуктивність зараз
Контрольний список для зміцнення сервера Linux
Покроковий контрольний список для захисту Linux-сервера. Охоплює SSH, брандмауери, виправлення, дозволи на файли, SELinux/AppArmor та ведення журналів аудиту
15 хв читання - 8 травня 2026 р.
iperf3 Підручник: Вимірювання швидкості мережі в Linux та Windows
10 хв читання - 7 травня 2026 р.

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