Supprimer toutes les interdictions de fail2ban dans Ubuntu Linux


16

Comment puis-je supprimer toutes les interdictions fail2ban dans Ubuntu? J'ai tout essayé mais je ne comprends pas.

Je veux juste supprimer toutes les interdictions - mais je ne connais aucune adresse IP.


1
Les interdictions sont généralement effectuées sur les adresses IP via votre pare-feu, vous devez donc consulter les règles du pare-feu.
Julie Pelletier

Oui je sais. mais je veux effacer toutes les interdictions sans dire d'adresse IP
Patrick

Réponses:


26

Réponse mise à jour

Depuis la version 0.10.0 fail2ban-client, la unbancommande peut être utilisée de deux manières:

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

De plus, les restart <JAIL>, reload <JAIL>et les reloadcommandes ont maintenant également l' --unbanoption.

Ancienne réponse

fail2ban utilise iptablespour bloquer le trafic. Si vous souhaitez voir les adresses IP actuellement bloquées, tapez

iptables -L -n

et recherchez les différentes chaînes nommées fail2ban-something, où somethingpointe vers la prison fail2ban (par exemple, Chain f2b-sshdfait référence à la prison sshd). Si vous ne souhaitez supprimer que le bloc d'une seule adresse IP <IP>pour une prison donnée <JAIL>, fail2ban propose son propre client:

fail2ban-client set <JAIL> unbanip <IP>

Vous pouvez également utiliser des numéros de ligne. D'abord, listez les iptablesrègles avec des numéros de ligne:

iptables -L -n --line-numbers

Ensuite, vous pouvez utiliser

iptables -D fail2ban-somejail <linenumber> 

pour supprimer une seule ligne du tableau. Pour autant que je sache, il n'y a pas d'option pour sélectionner une plage de numéros de ligne, donc je suppose que vous devriez encapsuler cette commande dans une boucle for:

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

Ici, j'ai composé le nombre 200. Vérifiez votre propre sortie de la commande avec --line-numberset notez que la dernière ligne (avec RETURN) doit rester. Voir le commentaire de @ roaima ci-dessous pour le raisonnement derrière le compte à rebours.


Merci @roaima! Je mettrai à jour la réponse en conséquence.
ph0t0nix

1
@roaima Oui, c'est le cas (au moins en zsh et bash): echo {5..1}entraînera 5 4 3 2 1.
ph0t0nix

Tu m'as sauvé. Merci beaucoup. Veuillez ajouter une commande complète car je devais comprendre que j'ai besoin de fail2ban-client en face de votre commande. (Parce que je suis un noob)
sebastian.roibu

L'ancienne réponse est toujours en cache sur DuckDuckGo, est venue dire la même chose que @roaima - snipboard.io/0oZkXy.jpg
Ari

15

La meilleure façon de démanteler toutes les adresses IP est de définir le bantime sur 1 seconde, puis toutes les adresses IP seront libérées immédiatement.

fail2ban-client set JailName bantime 1

Après cela, vous pouvez rétablir le temps d'interdiction approprié.

Il vaut mieux laisser fail2ban faire le démantèlement pour vous. Ne modifiez pas vous-même les iptables manuellement.


1
C'est la seule bonne réponse ici. Fail2ban gère sa propre base de données d'interdiction qui doit être effacée indépendamment. Chaque réponse parlant de la suppression des règles iptables ignore que le moment où fail2ban est redémarré, il ajoutera à nouveau les règles que vous venez de supprimer à iptables. De plus, toutes les configurations fail2ban n'utilisent pas iptables pour implémenter les interdictions.
Cliff Armstrong

3
trouver toutes les prisons avecfail2ban-client status
Flion

Je viens d'émettre cette commande et je regarde le nombre d'adresses IP dans ma prison diminuer vers zéro alors que fail2ban traite la prison. Ça n'arrive pas vraiment très vite, mais ça va, il y avait plus de cinq mille entrées en prison. Bonne réponse!
Eric M

5

Le dernier fail2ban-client(0.10) a une unban -allcommande. Les prisons peuvent également être «redémarrées» individuellement, supprimant ainsi efficacement les interdictions.

Si vous avez une ancienne version, cette astuce peut fonctionner pour les interdictions temporaires automatiques: supprimez la prison qui contient l'interdiction, puis redémarrez fail2ban pour que la prison (maintenant vide) soit recréée.

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

-tous ou -tous? Ou - tout?
Wildcard

3

Enregistrer la configuration iptable dans un fichier

$ iptables-save > iptables.conf

Modifiez-le avec n'importe quel éditeur que vous souhaitez puis chargez la configuration sur iptables

$ iptables-restore < iptables.conf

N'oubliez pas de stocker la configuration dans iptables afin qu'elle soit récupérée au redémarrage

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

C'est l'une des façons de procéder. Merci.
User9102d82

3

1. l'arrêt du service nettoiera toutes les règles ajoutées par fail2ban

service fail2ban stop

2. si vous n'avez pas d'autre règle iptables, vous pouvez la vider

iptables -F

soyez prudent: cela effacera toutes les autres règles de vos iptables.


3

voici une simple ligne pour démanteler toute la prison fail2ban de la bonne façon:

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

REMARQUE: la commande iptables prend le préfixe "f2b-" avant le nom de la prison tandis que "fail2ban-client" le vrai nom de la prison


C'est la meilleure réponse pour les versions fail2ban ci-dessous 0.10. Vous pouvez aller plus loin en créant un alias dans .bashrc comme fail2ban-purge avec un paramètre pour purger une prison entière. Remplacez simplement le mot récurrent ci-dessus par $ 1 et utilisez l'alias comme fail2ban-purge <JAIL_NAME>.
ADDISON74

2

En raison de la façon dont fail2banfonctionne, il n'y a que deux solutions possibles:

  • Créez un script de configuration du pare-feu qui inclut les fail2banprisons et redémarrez le pare-feu.
  • Supprimez les règles de pare-feu bloquant les adresses IP que vous souhaitez dissocier.

2

Ceci est le script que j'utilise pour démanteler toutes les adresses IP pour une prison ssh (remplacez simplement sshd occurence par le nom de la prison dont vous avez besoin ... par exemple 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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.