Elimina tutti i divieti fail2ban in Ubuntu Linux


16

Come posso eliminare tutti i divieti fail2ban in Ubuntu? Ho provato di tutto ma non capisco.

Voglio solo eliminare tutti i divieti, ma non conosco alcun indirizzo IP.


1
I divieti vengono in genere eseguiti su indirizzi IP attraverso il firewall, quindi è necessario esaminare le regole del firewall.
Julie Pelletier,

si, lo so. ma voglio cancellare tutti i divieti senza dirlo a un indirizzo IP
Patrick,

Risposte:


26

Risposta aggiornata

A partire dalla versione 0.10.0 fail2ban-clientpresenta il unbancomando che può essere utilizzato in due modi:

unban --all                              unbans all IP addresses (in all
                                         jails and database)
unban <IP> ... <IP>                      unbans <IP> (in all jails and
                                         database)

Inoltre, i comandi e restart <JAIL>, ora hanno anche l' opzione.reload <JAIL>reload--unban

Vecchia risposta

fail2ban utilizza iptablesper bloccare il traffico. Se si desidera visualizzare gli indirizzi IP attualmente bloccati, digitare

iptables -L -n

e cerca le varie catene denominate fail2ban-something, dove somethingpunta alla jail fail2ban (ad esempio, si Chain f2b-sshdriferisce alla jail sshd). Se si desidera rimuovere il blocco solo per un singolo indirizzo IP <IP>per un determinato jail <JAIL>, fail2ban offre il proprio client:

fail2ban-client set <JAIL> unbanip <IP>

In alternativa puoi usare i numeri di riga. Innanzitutto, elenca le iptablesregole con i numeri di riga:

iptables -L -n --line-numbers

Successivamente puoi usare

iptables -D fail2ban-somejail <linenumber> 

per rimuovere una singola riga dalla tabella. Per quanto ne so non esiste alcuna opzione per selezionare un intervallo di numeri di riga, quindi suppongo che dovresti avvolgere questo comando in un ciclo for:

for lin in {200..1}; do
   iptables -D fail2ban-somejail $lin
done

Qui ho inventato il numero 200. Controlla il tuo output del comando con --line-numberse nota che l'ultima riga (con RETURN) dovrebbe rimanere. Vedi il commento di @ roaima di seguito per il ragionamento alla base del conto alla rovescia.


Grazie @roaima! Aggiornerò la risposta di conseguenza.
ph0t0nix,

1
@roaima Sì, lo è (almeno in zsh e bash): echo {5..1}si tradurrà in 5 4 3 2 1.
ph0t0nix,

Mi hai salvato. Molte grazie. Per favore, aggiungi un comando completo perché ho dovuto capire che ho bisogno di fail2ban-client prima del tuo comando. (Perché io sono un noob)
sebastian.roibu

La vecchia risposta è ancora memorizzata nella cache di DuckDuckGo, è arrivata a dire la stessa cosa di @roaima - snipboard.io/0oZkXy.jpg
Ari

15

Il modo migliore per sbloccare tutti gli IP, è impostare il tempo di attesa su 1 secondo, quindi tutti gli IP verranno liberati immediatamente.

fail2ban-client set JailName bantime 1

Successivamente è possibile impostare il tempo di ban corretto indietro.

È meglio lasciare che fail2ban faccia il unban per te. Non modificare manualmente iptables.


1
Questa è l'unica risposta corretta qui. Fail2ban mantiene il proprio database di ban che deve essere cancellato in modo indipendente. Ogni risposta relativa all'eliminazione delle regole di iptables ignora che nel momento in cui fail2ban viene riavviato aggiungerà nuovamente le regole appena eliminate a iptables. Inoltre, non tutte le configurazioni fail2ban utilizzano iptables per implementare i ban.
Cliff Armstrong,

3
trova tutte le prigioni confail2ban-client status
Flion,

Ho appena emesso questo comando e sto osservando il numero di IP nella mia prigione diminuire verso zero mentre fail2ban elabora la prigione. Non succede molto velocemente, ma va bene, c'erano più di cinquemila voci nel carcere. Buona risposta!
Eric M,

5

L' ultima fail2ban-client(0.10) ha un unban -allcomando. Le jail possono anche essere "riavviate" individualmente, eliminando efficacemente i divieti.

Se hai una versione precedente, questo trucco potrebbe funzionare per i ban temporanei temporanei: elimina il jail che contiene il ban quindi riavvia fail2ban in modo da ricreare il jail (ora vuoto).

$ fail2ban-client stop sshd
Jail stopped
$ systemctl restart fail2ban

-tutti o —tutti? Oppure ... tutti?
Wildcard il

3

Salva iptable config su file

$ iptables-save > iptables.conf

Modificalo con qualsiasi editor ti piaccia, quindi carica nuovamente la configurazione su iptables

$ iptables-restore < iptables.conf

Non dimenticare di memorizzare la configurazione all'interno di iptables in modo che venga prelevata al riavvio

$ service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

Questo è uno dei modi in cui uno potrebbe farlo. Grazie.
User9102d82,

3

1. l'arresto del servizio pulirà tutte le regole aggiunte da fail2ban

service fail2ban stop

2. se non hai altre regole per iptables, puoi scaricarlo

iptables -F

fai attenzione: questo cancellerà qualsiasi altra regola nel tuo iptables.


3

ecco un semplice oneliner per sbrogliare l'intera prigione fail2ban nel modo giusto:

iptables -L f2b-recidive -n | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | grep -v 0.0.0.0 | xargs -n 1 fail2ban-client set recidive unbanip

NOTA: il comando iptables prende il prefisso "f2b-" prima del nome del jail mentre "fail2ban-client" il nome del jail reale


Questa è la risposta migliore per le versioni fail2ban sotto 0.10. Puoi andare oltre creando un alias in .bashrc come fail2ban-purge con un parametro per eliminare un intero jail. Sostituisci la parola recidiva sopra con $ 1 e usa l'alias come fail2ban-purge <JAIL_NAME>.
ADDISON74

2

A causa del modo in cui fail2banfunziona, ci sono solo due possibili soluzioni:

  • Crea uno script di configurazione del firewall che includa fail2banjail e riavvia il firewall.
  • Rimuovi le regole del firewall che bloccano gli IP che desideri annullare.

2

Questo è lo script che sto usando per sbloccare tutti gli indirizzi IP per una jail ssh (sostituisci semplicemente sshd occourence con il nome della jail che ti serve ... ad esempio mysqld-auth)

#!/bin/bash
j=$(iptables -L f2b-sshd | grep -c 'REJECT')
for ((i=1;i<=j;i++))
do
  fail2ban-client set sshd unbanip $(fail2ban-client status sshd | grep 'Banned IP list:' | cut -c23-)
done
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.