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.
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.
Risposte:
A partire dalla versione 0.10.0 fail2ban-client
presenta il unban
comando 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
fail2ban utilizza iptables
per 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 something
punta alla jail fail2ban (ad esempio, si Chain f2b-sshd
riferisce 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 iptables
regole 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-numbers
e 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.
echo {5..1}
si tradurrà in 5 4 3 2 1
.
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.
fail2ban-client status
L' ultima fail2ban-client
(0.10) ha un unban -all
comando. 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
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 ]
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
A causa del modo in cui fail2ban
funziona, ci sono solo due possibili soluzioni:
fail2ban
jail e riavvia il firewall.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