Fail2Ban Corretamente tenta proibir o IP, mas o IP não é banido - a cadeia de iptables existe, mas não funciona

11

Funcionando no Ubuntu 14.04 Server.

Portanto, eu configurei o fail2ban corretamente para processar /var/log/auth.log para tentativas de login do SSH.

Após 3 tentativas malsucedidas, vejo isso no log do fail2ban:

2014-11-19 15:22:56,822 fail2ban.actions: WARNING [ssh] Ban BANNED_IP_ADDY

iptables -L mostra esta cadeia:

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

No entanto, a partir desse IP, ainda consigo fazer login via SSH sem problemas.

A mesma história se aplica a todas as minhas cadeias fail2ban. Apache, por exemplo, eu posso ver o fail2ban corretamente detectar o log e dizer que ele bane um IP. O IP acaba em uma cadeia de iptables, mas o IP não está sendo REJEITADO.

Tenho a sensação de que nesses casos o SSH não está na porta padrão. Está em uma porta diferente.

Então, se eu forçar a regra da cadeia ssh a usar a nova porta:

[ssh]

enabled  = true
port     = 32323
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 5

Então vejo este erro:

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

Se eu deixar como

 port = ssh

Em seguida, ele entra no iptables corretamente, mas a cadeia não está funcionando para REJECT tráfego (como mencionado acima).

UPDATE:

Se eu mudar:

banaction = iptables-multiport

Para:

banaction = iptables-allports

Então parece funcionar. Qual é a repercussão dessa mudança?

Parece que causar fail2ban banir um IP por causa do SSH com este allports baniu TODAS as portas daquele IP. Propositadamente foi banido devido a falhas repetidas no login do SSH. Também foi banido em todos os outros serviços.

    
por Halsafar 19.11.2014 / 22:35

1 resposta

1

As cadeias fail2ban não estão vinculadas corretamente às suas cadeias INPUT e OUTPUT. Por favor, edite sua pergunta e forneça a saída de:

iptables -n -L INPUT
iptables -n -L OUTPUT

e todas as cadeias fail2ban também, e eu serei mais preciso.

    
por 01.06.2017 / 14:31