1. Установка Fail2Ban
Debian/Ubuntu:
sudo apt update && sudo apt install fail2ban -y
CentOS/RHEL:
sudo yum install epel-release -y
sudo yum install fail2ban -y
Arch Linux:
sudo pacman -S fail2ban
2. Управление сервисом
Запуск и включение Fail2Ban
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
Перезапуск и проверка статуса
sudo systemctl restart fail2ban
sudo systemctl status fail2ban
3. Конфигурация Fail2Ban
Файл конфигурации по умолчанию:
/etc/fail2ban/jail.conf
Рекомендуется создать локальную копию:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Редактировать:
sudo nano /etc/fail2ban/jail.local
Основные параметры
[DEFAULT]
bantime = 10m # Время бана (10 минут)
findtime = 10m # Временной промежуток для поиска нарушений
maxretry = 5 # Количество неудачных попыток до блокировки
ignoreip = 127.0.0.1/8 # IP-адреса, которые не будут заблокированы
4. Настройка фильтров
Фильтры хранятся в
/etc/fail2ban/filter.d/. Пример фильтра sshd.conf (
/etc/fail2ban/filter.d/sshd.conf):[Definition]
failregex = ^%(__prefix_line)sFailed password for .* from <HOST> port \d+ ssh2
ignoreregex =
5. Настройка jail для SSH
Файл
/etc/fail2ban/jail.local:[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log # Для Debian/Ubuntu
# logpath = /var/log/secure # Для CentOS/RHEL
maxretry = 3
bantime = 1h
6. Перезапуск и проверка работы
sudo systemctl restart fail2ban
sudo fail2ban-client status
Проверить конкретный jail:
sudo fail2ban-client status sshd
7. Разблокировка IP
Список заблокированных IP:
sudo fail2ban-client status sshd
Разблокировать IP:
sudo fail2ban-client set sshd unbanip 192.168.1.100
8. Логирование и отладка
Просмотр журнала Fail2Ban:
sudo journalctl -u fail2ban --no-pager
Лог-файл:
sudo tail -f /var/log/fail2ban.log
9. Полезные команды
Блокировка IP вручную
sudo fail2ban-client set sshd banip 192.168.1.200
Добавление в белый список (whitelist)
Добавьте IP в
ignoreip в /etc/fail2ban/jail.local:ignoreip = 127.0.0.1/8 192.168.1.100
Удаление бана с IP
sudo fail2ban-client set sshd unbanip 192.168.1.100
Удаление всех банов
sudo fail2ban-client set sshd unban --all
10. Автозапуск после перезагрузки
sudo systemctl enable fail2ban
11. Интеграция с UFW (Ubuntu)
Если используется UFW:
sudo nano /etc/fail2ban/jail.local
Добавьте:
[sshd]
enabled = true
backend = auto
port = ssh
filter = sshd
banaction = ufw
Перезапустите Fail2Ban:
sudo systemctl restart fail2ban
Эта шпаргалка содержит основные команды и конфигурации для защиты сервера от атак с помощью Fail2Ban. 🚀
@sysadmin1