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.
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).
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.
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.