Если ваш VPS работает в интернете и доступен по SSH, он обязательно попадёт под прицел автоматических сканеров и взломщиков. Один из самых простых и надёжных способов защититься — использовать Fail2Ban. Эта система следит за логами и временно блокирует IP-адреса, с которых происходят подозрительные попытки входа. В этом руководстве вы узнаете, как установить и настроить Fail2Ban на Ubuntu или Debian, чтобы эффективно отражать brute-force атаки.
Что делает Fail2Ban и как он помогает
Fail2Ban сканирует логи (например, SSH) и автоматически блокирует IP, с которых поступает слишком много ошибочных попыток входа. Он работает в паре с iptables, создавая временные правила фильтрации. Это значительно снижает риск подбора паролей, особенно при открытом порту 22.
Преимущества Fail2Ban:
- Автоматическая блокировка нарушителей;
- Простая интеграция с системами на Linux;
- Гибкая настройка: исключения, длительность блокировки, лимиты попыток;
- Подходит как для Ubuntu 22.04, так и для Debian.
Установка Fail2Ban
На Ubuntu/Debian установка занимает пару минут:
sudo apt update sudo apt install fail2ban -y
Проверьте, что служба работает:
sudo systemctl status fail2ban
Первая настройка: jail.local
Все изменения лучше вносить в отдельный файл
jail.local
Скопируйте шаблон:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Откройте
jail.local
sudo nano /etc/fail2ban/jail.local
Найдите блок
[sshd]
[sshd] enabled = true port = ssh logpath = %(sshd_log)s maxretry = 4 bantime = 900 findtime = 600
Что это значит:
- — включаем фильтр для SSH;
enabled = true
- — IP блокируется после 4 неудачных входов;
maxretry = 4
- — блокировка на 15 минут;
bantime = 900
- — учитываются попытки за последние 10 минут.
findtime = 600
Исключения и белый список (whitelist)
Fail2Ban позволяет указать адреса, которые не должны блокироваться:
ignoreip = 127.0.0.1 ::1 ваш_IP_или_подсеть
Это особенно полезно, если вы подключаетесь к серверу из одного и того же офиса или через VPN.
Как посмотреть и разблокировать IP
Узнать текущие баны:
sudo fail2ban-client status sshd
Удалить IP из блокировки:
sudo fail2ban-client set sshd unbanip 123.123.123.123
Защита веб-интерфейсов: расширенная настройка
Помимо SSH, Fail2Ban можно применить и к другим сервисам. Например, для защиты WordPress-админки (
/wp-login.php
Создайте фильтр:
sudo nano /etc/fail2ban/filter.d/wp-login.conf
Добавьте:
[Definition] failregex = <HOST> .* "POST /wp-login.php ignoreregex =
Подключите в конфигурации:
[wp-login] enabled = true port = http,https filter = wp-login logpath = /var/log/apache2/access.log maxretry = 5 bantime = 1800
Мониторинг логов Fail2Ban
Fail2Ban пишет всё в отдельный лог:
tail -n 50 /var/log/fail2ban.log
Можно следить в реальном времени:
tail -f /var/log/fail2ban.log
Автозапуск и управление службой
Чтобы перезапустить Fail2Ban после изменений:
sudo systemctl restart fail2ban
Добавьте автозапуск при загрузке:
sudo systemctl enable fail2ban
Полезные советы
- Не ставьте слишком низкий , чтобы случайно не забанить себя.
maxretry
- Регулярно просматривайте логи Fail2Ban и IP-таблицы.
- Добавляйте IP в , если вы подключаетесь с одного и того же места.
ignoreip
- Используйте Fail2Ban вместе с UFW для усиленной фильтрации трафика.
- Следите, чтобы логи () не переполняли диск — настраивайте logrotate.
fail2ban.log
Fail2Ban — простой и мощный инструмент, который позволяет существенно повысить безопасность VPS за счёт автоматической блокировки попыток подбора пароля. Установив и настроив его один раз, вы обеспечите защиту своему серверу на годы вперёд.
👉 Разворачивая VPS на CloudVPS.by, вы получаете надёжную платформу с полной поддержкой Ubuntu, Debian и отличную техподдержку. Не забудьте добавить Fail2Ban в свой чеклист по безопасности!