Как установить и настроить Fail2Ban в Linux
9 мин чтения - 14 мая 2026 г.

Пошаговое руководство по установке, настройке и тестированию Fail2Ban на Linux-серверах на базе Ubuntu, Debian и RHEL.
Как установить и настроить Fail2Ban в Linux
Fail2Ban отслеживает журналы вашего сервера на предмет подозрительной активности и автоматически блокирует нарушителей, обновляя правила брандмауэра. Он останавливает атаки методом перебора, уменьшает количество лишних записей в журналах и после настройки работает незаметно в фоновом режиме. В этом руководстве рассматриваются установка на 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)». Вторая команда выводит список ваших активных jail. Убедитесь, что Fail2Ban включен при загрузке с помощью sudo systemctl is-enabled fail2ban.
Настройка Jails
Настройки по умолчанию
Откройте /etc/fail2ban/jail.local и настройте [DEFAULT] раздел. Эти настройки применяются ко всем jail, если не переопределены:
| Параметр | Рекомендуемое значение | Что делает |
|---|---|---|
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] 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 предлагает мгновенную выделенную мощность, глобальный охват и гибкие планы, рассчитанные на любой масштаб. Готовы к модернизации?
Разблокируйте производительность прямо сейчасПочему важно иметь мощный и не тарифицируемый VPS
Неизмеряемый VPS предоставляет пропускную способность по фиксированной ставке при фиксированной скорости порта. Чем он отличается от дозированных тарифных планов, когда он окупается и что нужно проверить перед покупкой.
7 мин чтения - 9 мая 2025 г.
Управление памятью в Linux: Подкачка, убийца OOM и Cgroups
12 мин чтения - 31 мая 2026 г.

У вас есть вопросы или вам нужно индивидуальное решение?
Гибкие варианты
Глобальный охват
Мгновенное развертывание
Гибкие варианты
Глобальный охват
Мгновенное развертывание