Назад | Перейти на главную страницу

Fail2Ban правильно пытается заблокировать IP, но IP не забанен - ​​цепочка iptables существует, но не работает

Работает на сервере 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