Fail2Ban poprawnie próbuje zablokować IP, ale IP nie zostaje zablokowany - łańcuch iptables istnieje, ale nie działa


12

Działa na serwerze Ubuntu 14.04.

Więc poprawnie skonfigurowałem fail2ban do przetwarzania /var/log/auth.logpró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 REJECTruchu (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 fail2banzablokowania adresu IP z powodu SSH allportszablokował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ę.


Nigdy nie spotkałem się z tym problemem z fail2ban. Jeśli chcesz wrócić do blokowania pojedynczego portu, spróbuj tego rozwiązania: oschgan.com/drupal/index.php?q=node/52 . Alternatywnie fail2ban może korzystać z innych mechanizmów, takich jak hosts.deny lub trasy zerowe, jeśli iptables powoduje problemy.
digitaladdictions

Sprawdź /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
Michael

1
Co jeszcze jest w twoich iptables? Podaj pełne dane wyjściowe 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.
jplitza

Miałem dokładnie ten sam problem. Fail2Ban blokuje IP, widzę adres w łańcuchu fail2ban, dostałem email, który został zbanowany, ale adres IP nadal ma dostęp. Zmiana banowania na allports działała, ale nie mam pojęcia, dlaczego!
Ergec,

Odpowiedzi:


2

Łańcuchy fail2ban nie są poprawnie połączone z łańcuchami INPUT i OUTPUT. Edytuj swoje pytanie i podaj dane wyjściowe:

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

i wszystkie łańcuchy fail2ban, i będę mógł być bardziej precyzyjny.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.