Come mostrare tutti gli IP vietati con fail2ban?


36

Quando eseguo questo comando fail2ban-client status sshdho ottenuto questo:

Status for the jail: sshd
|- Filter
|  |- Currently failed: 1
|  |- Total failed:     81
|  `- File list:        /var/log/auth.log
`- Actions
   |- Currently banned: 2
   |- Total banned:     8
   `- Banned IP list:   218.65.30.61 116.31.116.7

Mostra solo due IP nell'elenco IP vietati anziché 8 proprio come dice Total Banned.

Mentre lo faccio tail -f /var/log/auth.logho ottenuto questo:

Mar 29 11:08:40 DBSERVER sshd[29163]: error: maximum authentication attempts exceeded for root from 218.65.30.61 port 50935 ssh2 [preauth]
Mar 29 11:08:40 DBSERVER sshd[29163]: Disconnecting: Too many authentication failures [preauth]
Mar 29 11:08:40 DBSERVER sshd[29163]: PAM 5 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.65.30.61  user=root
Mar 29 11:08:40 DBSERVER sshd[29163]: PAM service(sshd) ignoring max retries; 6 > 3
Mar 29 11:08:44 DBSERVER sshd[29165]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.65.30.61  user=root
Mar 29 11:08:46 DBSERVER sshd[29165]: Failed password for root from 218.65.30.61 port 11857 ssh2
Mar 29 11:09:01 DBSERVER CRON[29172]: pam_unix(cron:session): session opened for user root by (uid=0)
Mar 29 11:09:01 DBSERVER CRON[29172]: pam_unix(cron:session): session closed for user root
Mar 29 11:10:01 DBSERVER CRON[29226]: pam_unix(cron:session): session opened for user root by (uid=0)
Mar 29 11:10:02 DBSERVER CRON[29226]: pam_unix(cron:session): session closed for user root
Mar 29 11:10:18 DBSERVER sshd[29238]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=113.122.43.185  user=root
Mar 29 11:10:20 DBSERVER sshd[29238]: Failed password for root from 113.122.43.185 port 46017 ssh2
Mar 29 11:10:33 DBSERVER sshd[29238]: message repeated 5 times: [ Failed password for root from 113.122.43.185 port 46017 ssh2]
Mar 29 11:10:33 DBSERVER sshd[29238]: error: maximum authentication attempts exceeded for root from 113.122.43.185 port 46017 ssh2 [preauth]
Mar 29 11:10:33 DBSERVER sshd[29238]: Disconnecting: Too many authentication failures [preauth]
Mar 29 11:10:33 DBSERVER sshd[29238]: PAM 5 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=113.122.43.185  user=root
Mar 29 11:10:33 DBSERVER sshd[29238]: PAM service(sshd) ignoring max retries; 6 > 3
Mar 29 11:11:36 DBSERVER sshd[29245]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.7  user=root
Mar 29 11:11:38 DBSERVER sshd[29245]: Failed password for root from 116.31.116.7 port 24892 ssh2
Mar 29 11:11:43 DBSERVER sshd[29245]: message repeated 2 times: [ Failed password for root from 116.31.116.7 port 24892 ssh2]
Mar 29 11:11:43 DBSERVER sshd[29245]: Received disconnect from 116.31.116.7 port 24892:11:  [preauth]
Mar 29 11:11:43 DBSERVER sshd[29245]: Disconnected from 116.31.116.7 port 24892 [preauth]
Mar 29 11:11:43 DBSERVER sshd[29245]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.7  user=root
Mar 29 11:12:39 DBSERVER sshd[29247]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.7  user=root
Mar 29 11:12:41 DBSERVER sshd[29247]: Failed password for root from 116.31.116.7 port 26739 ssh2
Mar 29 11:12:45 DBSERVER sshd[29247]: message repeated 2 times: [ Failed password for root from 116.31.116.7 port 26739 ssh2]
Mar 29 11:12:45 DBSERVER sshd[29247]: Received disconnect from 116.31.116.7 port 26739:11:  [preauth]
Mar 29 11:12:45 DBSERVER sshd[29247]: Disconnected from 116.31.116.7 port 26739 [preauth]
Mar 29 11:12:45 DBSERVER sshd[29247]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.7  user=root
Mar 29 11:13:41 DBSERVER sshd[29249]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.7  user=root
Mar 29 11:13:43 DBSERVER sshd[29249]: Failed password for root from 116.31.116.7 port 27040 ssh2

IP vietato ancora in prova.

Tuttavia quando controllo con sudo iptables -L INPUT -v -nho ottenuto questo:

Chain INPUT (policy ACCEPT 228 packets, 18000 bytes)
 pkts bytes target     prot opt in     out     source               destination
 6050  435K f2b-sshd   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 22

Cosa sto facendo di sbagliato qui?

Come posso mostrare tutto l'elenco IP vietato?

Grazie in anticipo.


"Totale" indica il totale mai bandito, non il totale attualmente vietato. L'unico posto in cui troverai gli indirizzi precedentemente vietati è nei registri (se li hai conservati).
Smetti di fare del male a Monica il

in jail.local o jail.conf, sembra che tu abbia un piccolo bantime. Renderlo 200mo anche più in alto e poi farlo sudo service fail2ban restarte poifail2ban-client status sshd
Allen King

Risposte:


19

Tieni presente che il divieto fail2ban dell'IP è di natura temporanea.

Il modo migliore per dare un'occhiata all'elenco completo degli IP che sono stati bloccati sarebbe quello di controllare il file di registro:

sudo zgrep 'Ban:' /var/log/fail2ban.log*

Il seguente comando può anche darti un elenco pulito di regole di input:

sudo iptables -L INPUT -v -n | less

3
Non ci sono due punti nei miei file di log (quindi necessari per regolare il grep). Lasciando però un commento piuttosto che una modifica, poiché non so quanto sia diffuso / se si tratta di una modifica recente.
kwah,

Ricorda che elencare le regole di iptables funziona solo nel caso in cui iptables sia la tua azione di divieto. A volte non è così.
Gilad Mayani,

@kwah stesso per me, nessun punto nel file di registro. Probabilmente una recente modifica dell'output o un refuso.
David Mordigal,

Rimuovere ":" dopo il termine di ricerca "Escludi" perché ":" non è più scritto nel file di registro. Quindi sarai in grado di vedere di nuovo gli IP bloccati con il comando sopra menzionato.
Mario Neubauer,

9

Per visualizzare la linea completa di iptables:

sudo iptables -L -n | awk '$1=="REJECT" && $4!="0.0.0.0/0"'

Per visualizzare solo l'indirizzo IP:

sudo iptables -L -n | awk '$1=="REJECT" && $4!="0.0.0.0/0" {print $4}'

È possibile modificare "REJECT" con "DROP", a seconda del caso.


6

Simile a NA AE sopra con i commenti di kwaa inclusi, questo elenca tutti gli IP:

sudo zgrep 'Ban' /var/log/fail2ban.log*

ma quell'output ha così tante righe. Questo conta le linee di tutti gli IP vietati (e probabilmente non programmati) registrati:

sudo zgrep 'Ban' /var/log/fail2ban.log* | wc -l

L'output del comando precedente (con conteggio delle righe) deve corrispondere al conteggio "Totale vietato" nell'output dello stato di fail2ban:

fail2ban-client status sshd

testato in Ubuntu 18.04.1 LTS.

Il mio output dalla riga 'wc -l':

7244

E dallo stato di fail2ban, viene verificato lo stesso numero 7244:

Status for the jail: sshd
|- Filter
|  |- Currently failed: 7
|  |- Total failed: 49457
|  `- File list:    /var/log/auth.log
`- Actions
   |- Currently banned: 9
   |- Total banned: 7244
   `- Banned IP list:   [...]

4

Solo un FYI:

  • "Totale bannato" sono gli IP totali che sono stati bannati per quella prigione (e probabilmente sono stati non bannati).
  • "Attualmente vietati" sono gli SOLO IP attualmente vietati per quel carcere (e l'elenco IP lo conferma).

Spero che sia d'aiuto.


4

se si desidera visualizzare l'elenco di IP vietati con il relativo timeout (il timeout scade, vengono rimossi dal pool bannato) è possibile utilizzare:

ipset list

2

Questo mostrerà ciò che è attualmente vietato (REJECT) nella parte Chain di fail2ban-ssh di iptables.

sudo iptables -L fail2ban-ssh -v -n

2

Per aggiungere una risposta più generica:

Nota che iptables potrebbe non essere la risposta corretta e potrebbe non fornirti informazioni rilevanti (per il poster originale lo è). Dipende dal valore per banaction = [action] che stai utilizzando nella tua DEFAULT o dalla definizione di jail specifica.

Ho molte piccole scatole alimentate da ARM che eseguono Linux ma il kernel non ha tutti i moduli iptables disponibili, quindi iptables non funzionerà in quel caso.

* BSD potrebbe non avere affatto iptables e usare invece qualcosa come pf .

Sulle mie scatole ARM sto usando il percorso per bloccare. Aggiunge un percorso non valido per gli IP vietati e pertanto i pacchetti di restituzione non sono recapitabili e l'IP è essenzialmente bloccato. Funziona molto bene In tal caso puoi controllare gli IP vietati usando:

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
# normal routing entries
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
# banned IPs (no gateway, no iface)
223.96.95.85    -               255.255.255.255 !H    0      -        0 -

Hai molte opzioni per vietare. E quindi molte opzioni per controllare l'elenco dei divieti. Quale usare dipende dalla tua piattaforma e dalle tue preferenze. Ci sono molti file di configurazione preconfigurati in: /etc/fail2ban/action.d/ tra cui scegliere.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.