Hvordan kan jeg slette alle fail2ban-forbud i Ubuntu? Jeg prøvede alt, men jeg kan ikke få det.

Jeg vil bare slette alle forbud – men jeg kender ikke nogen IP-adresser.

Kommentarer

  • Forbudene udføres typisk på IP-adresser gennem din firewall, så du skal se på firewallreglerne.
  • ja jeg ved det. men jeg vil rydde alle forbud uden at fortælle en ip-adresse
  • Jeg prøvede alt ” nej, du har ikke ‘ t. Hvad prøvede du?

Svar

Opdateret svar

Fra og med version 0.10. 0 fail2ban-client indeholder unban kommando, der kan bruges på to måder:

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

Desuden har kommandoer restart <JAIL>, reload <JAIL> og reload nu også indstillingen --unban.

Gammelt svar

fail2ban bruger iptables til at blokere trafik. Hvis du ønsker at se de IP-adresser, der i øjeblikket er blokeret, skal du skrive

iptables -L -n 

og kigge efter de forskellige kæder med navnet fail2ban-something, hvor something peger på fail2ban-fængslet (for eksempel Chain f2b-sshd henviser til fængslet sshd). Hvis du kun vil fjerne blokken for en enkelt IP-adresse <IP> for en given fængsel <JAIL>, tilbyder fail2ban sin egen klient:

fail2ban-client set <JAIL> unbanip <IP> 

Alternativt kan du bruge linjenumre. Først skal du liste iptables reglerne med linjenumre:

iptables -L -n --line-numbers 

Dernæst kan du bruge

iptables -D fail2ban-somejail <linenumber> 

for at fjerne en enkelt linje fra tabellen. Så vidt jeg ved, er der ingen mulighed for at vælge en række linjenumre, så jeg antager, at du bliver nødt til at pakke denne kommando i en for loop:

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

Her lavede jeg tallet 200 op. Tjek din egen output af kommandoen med --line-numbers og bemærk, at den sidste linje (med RETURN) skal forblive. Se @roaimas kommentar nedenfor for ræsonnementet bag nedtælling.

Kommentarer

  • Du reddede mig. Mange tak. Tilføj venligst en fuld kommando fordi jeg var nødt til at finde ud af, at jeg har brug for fail2ban-klient foran din kommando. (Fordi jeg er en noob)

Svar

Den bedste måde at fjerne alle IP-adresser på er at indstille bantime til 1 sekund, så frigives al IP med det samme.

fail2ban-client set JailName bantime 1 

Derefter kan du indstille den korrekte forbudstid tilbage.

Det er bedre at lade fail2ban gøre unban for dig. Rediger ikke iptables manuelt.

Kommentarer

  • Dette er det eneste korrekte svar her. Fail2ban opretholder sin egen ban-database, der skal ryddes uafhængigt Hvert svar, der taler om sletning af iptables-regler, ignorerer, at i det øjeblik fail2ban startes, sikkerhedskopieres det igen og tilføjer de regler, du lige har slettet, tilbage til iptables. Ikke alle fail2ban-konfigurationer bruger iptables til at implementere forbud.
  • find alle fængsler med fail2ban-client status
  • Jeg har lige udstedt denne kommando og ser på antallet af IPer i min fængsel sænkes mod nul, da fail2ban behandler fængslet. Det gør det ikke ske virkelig rigtig hurtigt, men at ‘ er OK, der var over fem tusind poster i fængslet. Godt svar!

Svar

seneste fail2ban-client (0.10) har en unban -all kommando. Fængsler kan også “genstartes” individuelt, effecti nulstille rydningen af forbuddene.

Hvis du har en ældre version, fungerer dette trick muligvis for automatiske midlertidige forbud: Slet fængslet, der indeholder forbuddet, og genstart fail2ban, så fængslet (nu tom) bliver genskabt.

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

Kommentarer

  • -all eller —all? Eller –all?

Svar

  1. Stop af tjenesten rydder alle tilføjede regler af fail2ban

    service fail2ban stop 
  2. Hvis du ikke har andre iptables-regler, kan du skylle det

    iptables -F 

Vær forsigtig: dette sletter andre regler i dine iptables .

Kommentarer

  • Bare det at stoppe og starte igen var tilstrækkelig.

Svar

Gem iptabel konfiguration til fil

$ iptables-save > iptables.conf 

Rediger det med en hvilken som helst editor, du kan lide, end download config tilbage til iptables

$ iptables-restore < iptables.conf 

Glem ikke at gemme konfigurationen i iptables, så den bliver valgt op ved genstart

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

Svar

her er en simpel oneliner for at fjerne banerne fail2ban fængsel på den rigtige måde:

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 

BEMÆRK: kommandoen iptables tager præfikset “f2b-” foran fængselsnavnet, mens “fail2ban-client” det rigtige fængselsnavn

Kommentarer

  • Dette er det bedste svar på fail2ban-versioner nedenfor 0.10. Du kan gå videre med at oprette et alias i .bashrc som fail2ban-purge med en parameter for at rense et helt fængsel. Udskift blot tilbagevendende ord ovenfor med $ 1, og brug alias som fail2ban-purge < JAIL_NAME >.

Svar

På grund af den måde, fail2ban fungerer, er der kun to mulige løsninger:

  • Opret et firewall-konfigurationsscript, der inkluderer fail2ban -fængsler, og genstart firewallen.
  • Fjern firewallreglerne, der blokerer de IPer, du vil fjerne .

Svar

Dette er det script, jeg bruger til at fjerne alle IP-adresser til en ssh-fængsel ( udskift simpelthen sshd-forekomst med navnet på det fængsel, du har brug for … f.eks. 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

Måske kan dette script hjælpe nogen med en version < 0.10.0 som mig:

 #!/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  

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *