06 октября 2026 г. · by Alex M.
Если у вас есть VPS SSD или VPS NVMe, открытый в интернет, одна из первых угроз, с которой вы столкнётесь — это brute-force атаки: боты, перебирающие тысячи комбинаций логин/пароль на SSH, панелях администрирования или веб-формах. Fail2Ban — классическое, лёгкое и крайне эффективное решение, которое мониторит лог-файлы и автоматически блокирует подозрительные IP на уровне файрвола.
В этом руководстве вы узнаете, как установить, настроить и кастомизировать Fail2Ban на Ubuntu 22.04 / Debian 12, с практическими примерами для SSH, Nginx и других сервисов.
Fail2Ban — это демон на Python, который сканирует лог-файлы сервисов (SSH, Apache, Nginx, FTP, email и т.д.) и обнаруживает паттерны неудачных аутентификаций. Когда количество ошибок превышает настраиваемый порог за заданный интервал времени, Fail2Ban автоматически добавляет правило в iptables (или nftables/ufw), блокируя IP атакующего на заданный период.
Ключевые преимущества:
Перед началом убедитесь, что у вас есть:
sudoiptables или ufwЕсли у вас ещё нет сервера, ознакомьтесь с предложениями VPS NVMe от CLIQHOST — идеально для проектов, требующих безопасности и производительности.
Всегда начинайте с обновления пакетов:
sudo apt update && sudo apt upgrade -y
Установите Fail2Ban:
sudo apt install fail2ban -y
Проверьте, что сервис запущен:
sudo systemctl status fail2ban
Если сервис не запускается автоматически:
sudo systemctl enable --now fail2ban
Fail2Ban имеет гибкую архитектуру конфигурации:
/etc/fail2ban/fail2ban.conf — глобальная конфигурация демона/etc/fail2ban/jail.conf — правила по умолчанию для всех «jail»/etc/fail2ban/jail.local — ВАШ файл переопределений; НИКОГДА не изменяйте jail.conf напрямую!/etc/fail2ban/filter.d/ — предустановленные фильтры (regex для логов)/etc/fail2ban/action.d/ — предустановленные действия (iptables, email и т.д.)Золотое правило: все изменения делайте в файлах .local — при обновлении пакета файлы .conf могут быть перезаписаны.
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Откройте файл:
sudo nano /etc/fail2ban/jail.local
Найдите секцию [DEFAULT] и скорректируйте значения:
[DEFAULT]
# IP-адреса или сети, которые никогда не будут заблокированы
ignoreip = 127.0.0.1/8 ::1 ВАШ_ДОМАШНИЙ_IP
# Длительность бана (в секундах). 3600 = 1 час
bantime = 3600
# Временное окно для подсчёта попыток (в секундах)
findtime = 600
# Максимальное число неудачных попыток до бана
maxretry = 5
# Бэкенд для чтения логов
backend = auto
# Действие по умолчанию: бан через iptables
banaction = iptables-multiport
Важно: Добавьте ваш домашний или офисный IP в
ignoreip, чтобы случайно не заблокировать себя!
SSH — первая цель любого бота. Активируйте защиту:
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
maxretry = 3
bantime = 86400
Здесь мы установили bantime = 86400 (24 часа) и maxretry = 3 — строже, чем глобальные значения. Адаптируйте под свои нужды.
Если вы сменили порт SSH (рекомендация по безопасности):
[sshd]
enabled = true
port = 2222
logpath = %(sshd_log)s
maxretry = 3
bantime = 86400
Применение конфигурации:
sudo systemctl reload fail2ban
Если вы запускаете Nginx на VPS, можно защитить как HTTP-аутентификацию, так и вредоносные запросы.
[nginx-http-auth]
enabled = true
port = http,https
logpath = /var/log/nginx/error.log
maxretry = 5
bantime = 3600
Создайте кастомный фильтр:
sudo nano /etc/fail2ban/filter.d/nginx-badbots.conf
[Definition]
failregex = ^<HOST> -.*"(GET|POST|HEAD).*HTTP.*" (400|444|403|408) .*$
ignoreregex =
Добавьте jail в jail.local:
[nginx-badbots]
enabled = true
port = http,https
filter = nginx-badbots
logpath = /var/log/nginx/access.log
maxretry = 10
bantime = 7200
findtime = 300
Почтовые серверы часто становятся целью атак. Активируйте jail для Postfix и Dovecot:
[postfix]
enabled = true
port = smtp,465,submission
logpath = %(postfix_log)s
maxretry = 5
[dovecot]
enabled = true
port = pop3,pop3s,imap,imaps,submission,465,sieve
logpath = %(dovecot_log)s
maxretry = 5
bantime = 3600
Для расширенных конфигураций или если вы предпочитаете управляемое решение, изучите услуги администрирования серверов CLIQHOST.
После настройки вы будете часто использовать эти команды:
sudo fail2ban-client status
sudo fail2ban-client status sshd
Типичный вывод:
Status for the jail: sshd
|- Filter
| |- Currently failed: 2
| |- Total failed: 47
| `- Journal matches: ...
`- Actions
|- Currently banned: 1
|- Total banned: 8
`- Banned IP list: 198.51.100.42
sudo fail2ban-client set sshd unbanip 198.51.100.42
sudo fail2ban-client set sshd banip 203.0.113.15
sudo fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf
Fail2Ban может отправлять email при каждом бане — удобно для мониторинга:
[DEFAULT]
destemail = admin@вашдомен.com
sender = fail2ban@вашдомен.com
mta = sendmail
action = %(action_mwl)s
action_mwl = бан + email с релевантными логами (whois + log).
Убедитесь, что sendmail или другой MTA установлен на сервере. Либо используйте внешний SMTP.
Если вы используете UFW как файрвол (распространено на Ubuntu), настройте Fail2Ban для работы с ним:
[DEFAULT]
banaction = ufw
Убедитесь, что UFW активен:
sudo ufw enable
sudo ufw status
Fail2Ban будет использовать команду ufw для добавления и удаления правил бана.
Продвинутая функция — IP-адреса, которые банятся несколько раз, получают всё более длительные баны:
[recidive]
enabled = true
logpath = /var/log/fail2ban.log
maxretry = 3
findtime = 86400
bantime = 604800
Этот jail мониторит сам лог Fail2Ban: если IP забанен 3 раза за 24 часа — он получает бан на 7 дней.
Следите за активностью в реальном времени:
sudo tail -f /var/log/fail2ban.log
Типичный вывод:
2025-07-01 03:14:22,105 fail2ban.actions [1234]: NOTICE [sshd] Ban 198.51.100.42
2025-07-01 03:16:01,002 fail2ban.actions [1234]: NOTICE [sshd] Ban 203.0.113.7
Fail2Ban — важный компонент, но не единственный. Сочетайте его с:
Для enterprise-проектов или если хотите делегировать администрирование, управляемые выделенные серверы CLIQHOST включают проактивный мониторинг и защиту.
sudo journalctl -xe -u fail2ban
Проверьте синтаксические ошибки в jail.local.
Протестируйте вручную:
sudo fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf --print-all-matched
Зайдите на сервер через VNC/KVM-консоль (доступна в панели управления CLIQHOST) и выполните:
sudo fail2ban-client set sshd unbanip ВАШ_IP
Fail2Ban — незаменимый инструмент для любого администратора Linux-сервера. За несколько десятков минут настройки вы значительно сократите поверхность атаки вашего VPS — без дополнительных затрат и без существенного потребления ресурсов.
Ключевые шаги:
aptjail.local (не в .conf!)Если вы ищете производительный и безопасный Linux VPS для применения этого руководства, изучите варианты VPS SSD и VPS NVMe от CLIQHOST — инфраструктура в Молдове, реальная техподдержка и прозрачные цены. По вопросам или для сложных конфигураций свяжитесь с нашей командой.
Real reviews from customers who trust CLIQHOST for performance, reliability and expert technical support.
"We moved our online shop from a foreign host and the difference is night and day — pages load instantly and support replies in minutes, in Romanian."
"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."
"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."