При запуске fail2ban 0.8.14 на CentOS 6.5 с Python 2.6.6, fail2ban помещает мой IP-адрес в список запрещенных, но на самом деле не мешает мне войти в систему.
Вот пример неудачного бана в /var/log/fail2ban.log (я так думаю?):
ERROR iptables -D fail2ban-SSH -s xxx.xxx.xxx.xxx -j REJECT --reject-with icmp-port-unreachable returned 100
Интересно, что у меня это работает на двух других машинах, одна из которых - CentOS 6.6, а другая - CentOS 6.5, и файлы jail.conf и jail.local идентичны на обоих.
Я перезапускал fail2ban несколько раз, добавил Port = <my number>
директива к jail.local
файл под [ssh-iptables]
, но все равно не повезло.
Опять же при запуске fail2ban-client status ssh-iptables
, IP отображается в списке запрещенных IP-адресов, но я все еще могу войти в систему.
Есть идеи, что может вызвать проблему?
ОБНОВЛЕНИЕ: кажется, что он работает с перебоями. Примерно через 20 минут ожидания мне, наконец, не удалось войти в систему. Полагаю, это просто огромная задержка?
Было бы полезно увидеть состояние ваших iptables, пока вы сталкиваетесь с проблемой.
fail2ban на самом деле не выполняет блокировку запросов на соединение, он только добавляет правила в брандмауэр iptables, когда обнаруживает запрещаемое действие, как определено в вашем jail.conf.local
.
Итак, сначала вы должны проверить состояние iptables
sudo iptables -S
и убедившись, что DROP
Правило, соответствующее машине, которую вы пытаетесь заблокировать, присутствует и настроено правильно.
журнал:
ОШИБКА iptables -D fail2ban-SSH -s xxx.xxx.xxx.xxx -j REJECT --reject-with icmp-port-unreachable возвращено 100
похоже, что fail2ban попытался разблокировать xxx.xxx.xxx.xxx
IP (по истечении периода разблокировки), удалив правило DROP из цепочки fail2ban-ssh.
Похоже, он вернул ошибку 100
код выхода, возможно, из-за правила, которое он пытался -D
(удалить) не было, что также может объяснить, почему вас не заблокировали - DROP
Правило не было правильно загружено в iptables.