Hvordan kan jeg slette alle fail2ban-forbud i Ubuntu? Jeg prøvde alt, men jeg skjønner ikke det.

Jeg vil bare slette alle forbud – men jeg vet ikke noen IP-adresser.

Kommentarer

  • Forbudene gjøres vanligvis på IP-adresser gjennom brannmuren, så du bør se på brannmurreglene.
  • ja jeg vet. men jeg vil fjerne alle forbud uten å fortelle en ip-adresse
  • » Jeg prøvde alt » nei du gjorde ikke ‘ t. Hva prøvde du?

Svar

Oppdatert svar

Fra og med versjon 0.10. 0 fail2ban-client inneholder unban -kommandoen som kan brukes på to måter:

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

Videre har kommandoene restart <JAIL>, reload <JAIL> og reload nå også alternativet --unban.

Gammelt svar

fail2ban bruker iptables for å blokkere trafikk. Hvis du vil se IP-adressene som er blokkert for øyeblikket, skriver du

iptables -L -n 

og ser etter de forskjellige kjedene som heter fail2ban-something, der something peker på fail2ban fengsel (for eksempel Chain f2b-sshd refererer til fengselet sshd). Hvis du bare vil fjerne blokken for en enkelt IP-adresse <IP> for en gitt fengsel <JAIL>, tilbyr fail2ban sin egen klient:

fail2ban-client set <JAIL> unbanip <IP> 

Alternativt kan du bruke linjenumre. Først oppgir du iptables reglene med linjenumre:

iptables -L -n --line-numbers 

Neste kan du bruke

iptables -D fail2ban-somejail <linenumber> 

for å fjerne en enkelt linje fra tabellen. Så vidt jeg vet er det ikke noe alternativ å velge et rekke linjenumre, så jeg antar at du må pakke denne kommandoen i en for loop:

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

Her lagde jeg tallet 200 opp. Sjekk din egen utdata av kommandoen med --line-numbers og merk at den siste linjen (med RETURN) skal forbli. Se @roaimas kommentar nedenfor for begrunnelsen bak nedtelling.

Kommentarer

  • Du reddet meg. Tusen takk. Legg til en full kommando fordi jeg måtte finne ut at jeg trenger fail2ban-klient foran din kommando. (Fordi jeg er en noob)

Svar

Den beste måten å oppheve utelukkelse av alle IP-er, er å stille inn bantime til 1 sekund, da frigjøres all IP med en gang.

fail2ban-client set JailName bantime 1 

Deretter kan du stille tilbake riktig forbudstid.

Det er bedre å la fail2ban gjøre unban for deg. Ikke rediger iptables manuelt.

Kommentarer

  • Dette er det eneste riktige svaret her. Fail2ban opprettholder sin egen banedatabase som må tømmes uavhengig . Hvert svar som snakker om å slette iptables-regler, ignorerer at øyeblikket fail2ban startes, vil det legge til reglene du nettopp har slettet, tilbake til iptables. Det er heller ikke alle fail2ban-konfigurasjoner som bruker iptables for å implementere forbud. finn alle fengsler med fail2ban-client status
  • Jeg har nettopp utstedt denne kommandoen og ser på at antall IP-er i fengselet minker mot null når fail2ban behandler fengselet. skje veldig fort, men at ‘ er OK, det var over fem tusen oppføringer i fengselet. Godt svar!

Svar

siste fail2ban-client (0.10) har en unban -all kommando. Fengsler kan også «startes på nytt», effecti vely rydde forbudene.

Hvis du har en eldre versjon, kan dette trikset fungere for automatiske midlertidige forbud: slett fengselet som inneholder forbudet, og start deretter fail2ban på nytt slik at fengselet (nå tomt) blir gjenskapt.

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

Kommentarer

  • -all eller —all? Eller – alt?

Svar

  1. Hvis du stopper tjenesten, blir alle regler lagt til av fail2ban

    service fail2ban stop 
  2. Hvis du ikke har noen andre iptables-regler, kan du tømme den

    iptables -F 

Vær forsiktig: Dette vil slette andre regler i iptables .

Kommentarer

  • Bare å stoppe og starte på nytt var tilstrekkelig.

Svar

Lagre iptable config i filen

$ iptables-save > iptables.conf 

Rediger den med en hvilken som helst editor du liker, enn last config tilbake til iptables

$ iptables-restore < iptables.conf 

Ikke glem å lagre konfigurasjonen i iptables, så den blir plukket opp ved omstart

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

Svar

her er en enkel oneliner for å fjerne bannet fra hele fail2ban fengsel på riktig måte:

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 

MERK: kommandoen iptables tar prefikset «f2b-» før fengselsnavnet mens «fail2ban-client» det virkelige fengselsnavnet

Kommentarer

  • Dette er det beste svaret for fail2ban-versjoner nedenfor 0.10. Du kan gå videre med å lage et alias i .bashrc som fail2ban-purge med en parameter for å tømme et helt fengsel. Bare erstatt tilbakevendende ord ovenfor med $ 1 og bruk alias som fail2ban-purge < JAIL_NAME >.

Svar

På grunn av måten fail2ban fungerer, er det bare to mulige løsninger:

  • Lag et brannmurkonfigurasjonsskript som inkluderer fail2ban fengsler og start brannmuren på nytt.
  • Fjern brannmurreglene som blokkerer IP-adressene du vil fjerne .

Svar

Dette er skriptet jeg bruker for å fjerne alle IP-adresser for et ssh-fengsel ( bare bytt ut sshd-forekomst med navnet på fengselet du trenger … 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

Kanskje dette skriptet kan hjelpe noen med en versjon < 0.10.0 som meg:

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

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *