Работает на сервере 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. Также был забанен на всех остальных сервисах.
Цепочки fail2ban неправильно связаны с вашими цепочками INPUT и OUTPUT. Отредактируйте свой вопрос и предоставьте результат:
iptables -n -L INPUT
iptables -n -L OUTPUT
и все цепочки fail2ban тоже, я буду точнее.
INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh