Работает на сервере Ubuntu 14.04.
Поэтому у меня fail2ban правильно настроен для обработки /var/log/auth.log
попыток входа по SSH.
После 3 неудачных попыток я вижу это в журнале fail2ban:
2014-11-19 15:22:56,822 fail2ban.actions: WARNING [ssh] Ban BANNED_IP_ADDY
iptables -L
показывает эту цепочку:
Chain fail2ban-ssh (1 references)
target prot opt source destination
REJECT all -- BANNED_IP_ADDY anywhere reject-with icmp-port-unreachable
RETURN all -- anywhere anywhere
Тем не менее, с этого IP я все еще могу войти через SSH без каких-либо проблем.
Та же самая история относится ко всем моим fail2ban-тюрьмам. В Apache, например, я вижу, что fail2ban правильно определяет журнал и утверждает, что он запрещает IP. IP заканчивается в цепочке iptables, но на самом деле IP не отклоняется.
У меня такое ощущение, что в этих случаях SSH не на стандартном порте. Он находится в другом порту.
Поэтому, если я заставлю правило ssh jail использовать новый порт:
[ssh]
enabled = true
port = 32323
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
Тогда я вижу эту ошибку:
2014-11-19 15:30:06,775 fail2ban.actions.action: ERROR iptables -D INPUT -p tcp -m multiport --dports 32323 -j fail2ban-ssh
iptables -F fail2ban-ssh
iptables -X fail2ban-ssh returned 400
2014-11-19 15:30:06,778 fail2ban.actions.action: ERROR iptables -N fail2ban-ssh
iptables -A fail2ban-ssh -j RETURN
iptables -I INPUT -p tcp -m multiport --dports 32323 -j fail2ban-ssh returned 400
2014-11-19 15:30:06,779 fail2ban.actions.action: ERROR iptables -n -L INPUT | grep -q 'fail2ban-ssh[ \t]' returned 100
2014-11-19 15:30:06,780 fail2ban.actions.action: CRITICAL Unable to restore environment
Если я оставлю это как
port = ssh
Затем он корректно попадает в iptables, но цепочка не работает с REJECT
трафиком (как упоминалось выше).
ОБНОВИТЬ:
Если я изменю:
banaction = iptables-multiport
Для того, чтобы:
banaction = iptables-allports
Тогда, кажется, работает. Каковы последствия этого изменения?
Похоже, что вызывая fail2ban
бан IP из-за SSH с этим allports
он забанил КАЖДЫЙ порт для этого IP. Преднамеренно забанен из-за повторных неудачных попыток входа по ssh. Также был забанен на любом другом сервисе.
/etc/fail2ban/actions.d
, у него есть файл, соответствующий каждому из этих действий запрета. Внутри вы увидите, какие команды используются для запрета, отмены, запуска и остановки fail2ban. Вы можете попробовать запустить команды actionban вручную и посмотреть, что произойдет. Я
iptables -L -n -v
(редактирование IP-адресов при необходимости). В частности, обратите внимание на то -v
, что будут давать байты и счетчики пакетов для каждой цепочки и правила, облегчая отладку.