Fail2Ban: разбан IP и проверка статуса — практическое руководство
Введение: зачем нужен Fail2Ban и что пошло не такFail2Ban мониторит логи (sshd, exim, nginx), банит IP через iptables при неудачных попытках входа. Но иногда банит "своих": тестовый IP, CDN, мониторинг. Типичный сценарий из логов: text
fail2ban-client status exim
Status for the jail: exim
|- Filter
| |- Currently failed: 1
| |- Total failed: 150
| `- File list: /var/log/exim4/mainlog
`- Actions
|- Currently banned: 5
|- Total banned: 42
`- Banned IP list: 185.189.14.130 94.26.115.245 ...
IP Команда 1: Проверка общего статуса Fail2Banbash
fail2ban-client status
Вывод: text
Status
|- Number of jail: 3
`- Jail list: sshd, exim, nginx-http-auth
Зачем: Видите все активные jail'ы. Если exim нет — проверьте Команда 2: Статус конкретного jail'а (exim)bash
fail2ban-client status exim
Полный разбор вывода:
Совет: Команда 3: Разбан IP через Fail2Ban (основной метод)bash
fail2ban-client set exim unbanip 185.189.14.130
Что происходит:
Проверка: Повторите Для всех jail'ов сразу: bash
fail2ban-client set ALL unbanip 185.189.14.130
Ручная чистка iptables (когда Fail2Ban глючит)Если bash
# Найти цепочку Fail2Ban
iptables -L | grep f2b
# Удалить правило для IP (2 варианта из примера)
iptables -D f2b-exim -s 185.189.14.130 -j DROP
iptables -D fail2ban-exim -s 185.189.14.130 -j DROP
# Перезагрузить Fail2Ban (сохранит состояние)
fail2ban-client reload
Осторожно: Настройка exim-jail для предотвращенияСоздайте text
[exim]
enabled = true
port = smtp,ssmtp,submission
filter = exim
logpath = /var/log/exim4/mainlog
maxretry = 5
bantime = 3600
findtime = 600
ignoreip = 127.0.0.1/8 185.189.14.130 # ваши IP
Перезапуск: Полный workflow разбана (скрипт)Сохраните как bash
#!/bin/bash
IP=$1
if [ -z "$IP" ]; then
echo "Usage: $0 <IP>"
exit 1
fi
echo "=== Проверка статуса ==="
fail2ban-client status
echo "=== Разбан $IP во всех jail'ах ==="
fail2ban-client set ALL unbanip $IP
echo "=== Проверка iptables ==="
iptables -L | grep $IP && echo "Остатки удалите вручную"
echo "=== Готово. Проверьте: fail2ban-client status ==="
Использование: Сравнение методов разбанаТипичные ошибки и решения
Мониторинг: ЗаключениеFail2Ban спасает от брутфорса, но требует ухода. Команды Сохраните скрипт, добавьте в PATH — проблема решена за 5 сек. Тестируйте на staging, делитесь в комментах своими jail'ами! |

Оплачиваем статьи заинтересованным пользователям проекта


