Как установить и настроить 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]. Эти настройки применяются ко всем джейлам, если они не переопределены:
| Параметр | Рекомендуемое значение | Что делает |
|---|---|---|
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), обновите параметр порта, чтобы он соответствовал.
Защита веб-сервера
Включите джейл, соответствующий вашему веб-серверу:
- 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, пока не превысите максимальное количество попыток. Вы должны быть заблокированы. Подтвердите это с помощью:
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 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 отправляет электронное письмо с деталями запрета, данными WHOIS и строками журнала, вызвавшими запрет. Используйте action_mw, если вам нужны только данные WHOIS. Вам понадобится установленный агент передачи почты, например sendmail, или SMTP-реле, настроенное через что-то вроде msmtp.
Для оповещений в Slack или Discord создайте скрипт, отправляющий webhook, и подключите его через пользовательский файл действий в /etc/fail2ban/action.d/.
Если вы ищете сервер с полным root-доступом и неизмеряемой пропускной способностью для запуска Fail2Ban, обратите внимание на выделенные серверы FDC.

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

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