Hoe kan ik alle fail2ban-bans in Ubuntu verwijderen? Ik heb alles geprobeerd, maar ik snap het niet.
Ik wil gewoon alle verboden verwijderen – maar ik ken geen IP-adressen.
Opmerkingen
- De bans worden meestal gedaan op IP-adressen via je firewall, dus je moet naar de firewallregels kijken.
- Ja, dat weet ik. maar ik wil alle verboden opheffen zonder een ip-adres op te geven
- ” Ik heb alles geprobeerd ” nee dat heb je niet ‘ t. Wat heb je geprobeerd?
Antwoord
Bijgewerkt antwoord
Vanaf versie 0.10. 0 fail2ban-client
bevat de unban
-opdracht die op twee manieren kan worden gebruikt:
unban --all unbans all IP addresses (in all jails and database) unban <IP> ... <IP> unbans <IP> (in all jails and database)
Bovendien hebben de restart <JAIL>
, reload <JAIL>
en reload
opdrachten nu ook de --unban
optie.
Oud antwoord
fail2ban gebruikt iptables
om verkeer te blokkeren. Als je de IP-adressen wilt zien die momenteel geblokkeerd zijn, typ je
iptables -L -n
en zoek je naar de verschillende ketens met de naam fail2ban-something
, waarbij something
verwijst naar de fail2ban jail (Chain f2b-sshd
verwijst bijvoorbeeld naar de jail sshd
). Als je alleen het blok voor een enkel IP-adres <IP>
voor een bepaalde gevangenis <JAIL>
wilt verwijderen, biedt fail2ban zijn eigen client aan:
fail2ban-client set <JAIL> unbanip <IP>
U kunt ook regelnummers gebruiken. Maak eerst een lijst van de iptables
regels met regelnummers:
iptables -L -n --line-numbers
Vervolgens kun je
iptables -D fail2ban-somejail <linenumber>
om een enkele regel uit de tabel te verwijderen. Voor zover ik weet, is er geen optie om een reeks regelnummers te selecteren, dus ik denk dat je dit commando in een for-lus zou moeten plaatsen:
for lin in {200..1}; do iptables -D fail2ban-somejail $lin done
Hier heb ik het getal 200 verzonnen. Controleer uw eigen uitvoer van het commando met --line-numbers
en merk op dat de laatste regel (met RETURN
) moet blijven. Zie de opmerking van @roaima hieronder voor de redenering achter het aftellen.
Opmerkingen
- Je hebt me gered. Heel erg bedankt. Voeg een volledig commando toe omdat ik erachter moest komen dat ik fail2ban-client nodig had voor jouw commando. (Omdat ik een noob ben)
Answer
De beste manier om alle IPs ongedaan te maken, is door de bantime in te stellen op 1 seconde, waarna alle IP meteen wordt vrijgegeven.
fail2ban-client set JailName bantime 1
Daarna kun je de juiste ban-tijd terugzetten.
Het is beter om fail2ban de unban voor je te laten doen. Bewerk iptables niet zelf.
Reacties
- Dit is het enige juiste antwoord hier. Fail2ban onderhoudt zijn eigen ban-database die onafhankelijk moet worden gewist Elk antwoord dat spreekt over het verwijderen van iptables-regels negeert dat zodra fail2ban wordt opgestart, het de regels die je zojuist hebt verwijderd opnieuw zal toevoegen aan iptables. Ook gebruikt niet elke fail2ban-configuratie iptables om bans te implementeren.
- vind alle jails met
fail2ban-client status
- Ik heb zojuist dit commando gegeven en kijk hoe het aantal IPs in mijn gevangenis afneemt naar nul terwijl fail2ban de gevangenis verwerkt. gebeuren echt heel snel, maar dat ‘ s OK, er waren meer dan vijfduizend inzendingen in de gevangenis. Goed antwoord!
Antwoord
De laatste fail2ban-client
(0.10) heeft een unban -all
commando. Jails kunnen ook individueel “herstart” worden, effecti vely de bans opheffen.
Als je een oudere versie hebt, kan deze truc werken voor automatische tijdelijke bans: verwijder de jail die de ban bevat en herstart fail2ban zodat de (nu lege) jail opnieuw zou worden aangemaakt.
$ fail2ban-client stop sshd Jail stopped $ systemctl restart fail2ban
Reacties
- -all of -all? Of –all?
Answer
-
Het stoppen van de service zal alle toegevoegde regels opschonen by fail2ban
service fail2ban stop
-
Als u geen andere iptables-regels heeft, kunt u deze leegmaken
iptables -F
Wees voorzichtig: dit zal alle andere regels in uw iptables wissen .
Reacties
- Gewoon stoppen en dan opnieuw beginnen was voldoende.
Answer
Bewaar iptable-configuratie in bestand
$ iptables-save > iptables.conf
Bewerk het met een willekeurige editor dan laad de configuratie terug naar iptables
$ iptables-restore < iptables.conf
Vergeet niet om de configuratie op te slaan in iptables zodat deze wordt gekozen opstart bij herstart
$ service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
Antwoord
hier is een simpele oneliner om het geheel te ontkoppelen fail2ban jail op de juiste manier:
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
OPMERKING: iptables commando neemt “f2b-” prefix voor de jail naam terwijl “fail2ban-client” de echte jail naam is
Reacties
- Dit is het beste antwoord voor fail2ban-versies hieronder 0.10. Je kunt verder gaan met het maken van een alias in .bashrc zoals fail2ban-purge met één parameter om een hele jail te zuiveren. Vervang gewoon het recidieve woord hierboven door $ 1 en gebruik alias als fail2ban-purge < JAIL_NAME >.
Answer
Vanwege de manier waarop fail2ban
werkt, zijn er slechts twee mogelijke oplossingen:
- Maak een firewallconfiguratiescript dat
fail2ban
jails bevat en start de firewall opnieuw. - Verwijder de firewallregels die de IP-adressen blokkeren die je ongedaan wilt maken .
Answer
Dit is het script dat ik gebruik om alle IP-adressen voor een ssh-gevangenis ( vervang gewoon sshd-occourence door de naam van de jail die je nodig hebt … bijv. 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
Answer
Misschien kan dit script iemand helpen met een versie < 0.10.0 zoals ik:
#!/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