Hur kan jag ta bort alla fail2ban-förbud i Ubuntu? Jag försökte allt men jag förstår inte det.

Jag vill bara ta bort alla förbud – men jag vet inte några IP-adresser.

Kommentarer

  • Förbuden görs vanligtvis på IP-adresser via din brandvägg, så du bör titta på brandväggsreglerna.
  • ja jag vet. men jag vill ta bort alla förbud utan att berätta en ip-adress
  • Jag försökte allt ” nej du ’ t. Vad försökte du?

Svar

Uppdaterat svar

Från och med version 0.10. 0 fail2ban-client har kommandot unban som kan användas på två sätt:

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

Dessutom har kommandona restart <JAIL>, reload <JAIL> och reload nu också alternativet --unban.

Gammalt svar

fail2ban använder iptables för att blockera trafik. Om du vill se de IP-adresser som för närvarande är blockerade skriver du

iptables -L -n 

och letar efter de olika kedjorna med namnet fail2ban-something, där something pekar på fail2ban-fängelset (till exempel Chain f2b-sshd hänvisar till fängelset sshd). Om du bara vill ta bort blocket för en enskild IP-adress <IP> för en viss fängelse <JAIL>, erbjuder fail2ban sin egen klient:

fail2ban-client set <JAIL> unbanip <IP> 

Alternativt kan du använda radnummer. Lista först iptables reglerna med radnummer:

iptables -L -n --line-numbers 

Därefter kan du använda

iptables -D fail2ban-somejail <linenumber> 

för att ta bort en enda rad från tabellen. Såvitt jag vet finns det inget alternativ att välja ett rad radnummer, så jag antar att du måste slå in kommandot i en for loop:

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

Här tog jag upp siffran 200. Kontrollera kommandot med --line-numbers och notera att den sista raden (med RETURN) ska stanna. Se @roaimas kommentar nedan för resonemanget bakom nedräkningen.

Kommentarer

  • Du räddade mig. Tack så mycket. Lägg till ett fullständigt kommando eftersom jag var tvungen att räkna ut att jag behöver fail2ban-klient i fronter av ditt kommando. (Eftersom jag är en noob)

Svar

Det bästa sättet att avblockera alla IP-adresser är att ställa in bantime till 1 sekund, då frigörs hela IP-adressen direkt.

fail2ban-client set JailName bantime 1 

Därefter kan du ställa in rätt förbjudningstid.

Det är bättre att låta fail2ban göra unban för dig. Redigera inte iptables manuellt.

Kommentarer

  • Det här är det enda rätta svaret här. Fail2ban upprätthåller sin egen bandatabas som måste rensas oberoende Varje svar som talar om att ta bort iptables-regler ignorerar att ögonblicket som fail2ban startas, säkerhetskopierar det igen de regler som du just raderat till iptables. Inte alla fail2ban-konfigurationer använder iptables för att implementera förbud.
  • hitta alla fängelser med fail2ban-client status
  • Jag har just utfärdat det här kommandot och tittar på hur många IP-adresser i mitt fängelse minskar mot noll när fail2ban bearbetar fängelset. händer riktigt riktigt snabbt, men att ’ är OK, det fanns över fem tusen poster i fängelset. Bra svar!

Svar

senaste fail2ban-client (0.10) har ett unban -all -kommando. Fängelser kan också ”startas om”, effecti väldigt rensa förbuden.

Om du har en äldre version kan detta trick fungera för automatiska tillfälliga förbud: ta bort fängelset som innehåller förbudet och starta sedan om fail2ban så att fängelset (nu tomt) återskapas.

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

Kommentarer

  • -all eller —all? Eller – alla?

Svar

  1. Att stänga av tjänsten rensar alla regler som läggs till av fail2ban

    service fail2ban stop 
  2. Om du inte har några andra iptables-regler kan du spola det

    iptables -F 

Var försiktig: detta raderar alla andra regler i dina iptables .

Kommentarer

  • Det var tillräckligt att bara stoppa och sedan börja om igen.

Svar

Spara iptable config i filen

$ iptables-save > iptables.conf 

Redigera den med vilken redigerare du gillar än ladda konfigurera tillbaka till iptables

$ iptables-restore < iptables.conf 

Glöm inte att lagra konfigurationen i iptables så att den väljs upp vid omstart

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

Svar

här är en enkel oneliner för att avblockera hela fail2ban-fängelse på rätt sätt:

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 

OBS: kommandot iptables tar prefixet ”f2b-” före fängelsens namn medan ”fail2ban-client” det riktiga fängelsens namn

Kommentarer

  • Detta är det bästa svaret för fail2ban-versioner under 0.10. Du kan gå vidare och skapa ett alias i .bashrc som fail2ban-purge med en parameter för att rensa ett helt fängelse. Byt bara tillbaka ordet ovan med $ 1 och använd alias som fail2ban-purge < JAIL_NAME >.

Svar

På grund av hur fail2ban fungerar finns det bara två möjliga lösningar:

  • Skapa ett brandväggskonfigurationsskript som innehåller fail2ban -fängelser och starta om brandväggen.
  • Ta bort brandväggsreglerna som blockerar IP-adresserna som du vill avblockera .

Svar

Detta är det skript jag använder för att avblockera alla IP-adresser för ett ssh-fängelse ( ersätt helt enkelt sshd-förekomst med namnet på fängelset du behöver … t.ex. 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 

Svar

Det här skriptet kanske kan hjälpa någon med en version < 0.10.0 som jag:

 #!/bin/bash for JAIL in $(fail2ban-client status | grep "Jail list:" | awk "BEGIN {FS="\t"} {print $2}" | sed "s/, / /g") do for IP in $(fail2ban-client status ${JAIL} | grep "Banned IP list:" | awk "BEGIN {FS="\t"} {print $2}" | sed "s/ /\n/g") do fail2ban-client set ${JAIL} unbanip ${IP} done done unset JAIL IP exit 0  

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *