Działa na serwerze Ubuntu 14.04.
Więc poprawnie skonfigurowałem fail2ban do przetwarzania /var/log/auth.log
prób logowania SSH.
Po 3 nieudanych próbach widzę to w dzienniku fail2ban:
2014-11-19 15:22:56,822 fail2ban.actions: WARNING [ssh] Ban BANNED_IP_ADDY
iptables -L
pokazuje ten łańcuch:
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
Jednak z tego adresu IP mogę nadal logować się przez SSH bez żadnych problemów.
Ta sama historia dotyczy wszystkich moich więzień fail2ban. Na przykład Apache, widzę, że fail2ban poprawnie wykrywa dziennik i twierdzi, że zakazuje adresu IP. IP kończy się w łańcuchu iptables, ale tak naprawdę nie jest ODRZUCONY.
Mam wrażenie, że w tych przypadkach SSH nie znajduje się na standardowym porcie. Jest na innym porcie.
Więc jeśli zmuszę regułę więzienia ssh do użycia nowego portu:
[ssh]
enabled = true
port = 32323
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
Następnie widzę ten błąd:
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
Jeśli zostawię to jako
port = ssh
Następnie trafia do iptables poprawnie, ale łańcuch nie działa w REJECT
ruchu (jak wspomniano powyżej).
AKTUALIZACJA:
Jeśli zmienię:
banaction = iptables-multiport
Do:
banaction = iptables-allports
Potem wydaje się działać. Jakie są konsekwencje tej zmiany?
Wygląda na to, że spowodowanie fail2ban
zablokowania adresu IP z powodu SSH allports
zablokowało KAŻDY port dla tego adresu IP. Celowo zbanowany z powodu powtarzającego się nieudanego logowania ssh. Został zbanowany za każdą inną usługę.
/etc/fail2ban/actions.d
, ma plik odpowiadający każdej z tych akcji bana. Wewnątrz zobaczysz, które polecenia są używane do blokowania, odblokowywania, uruchamiania i zatrzymywania fail2ban. Możesz spróbować uruchomić polecenia Actionban ręcznie i zobaczyć, co się stanie. I
iptables -L -n -v
(w razie potrzeby redagowanie adresów IP). W szczególności zwróć uwagę na -v
, który da liczniki bajtów i pakietów dla każdego łańcucha i reguły, ułatwiając debugowanie.