Comment puis-je supprimer toutes les interdictions fail2ban dans Ubuntu? Jai tout essayé mais je ne comprends pas.
Je veux simplement supprimer toutes les interdictions – mais je ne connais aucune adresse IP.
Commentaires
- Les interdictions sont généralement effectuées sur les adresses IP via votre pare-feu, vous devriez donc regarder les règles du pare-feu.
- oui je sais. mais je veux effacer toutes les interdictions sans indiquer dadresse IP
- » Jai tout essayé » non, vous navez ‘ t. Quavez-vous essayé?
Réponse
Réponse mise à jour
À partir de la version 0.10. 0 fail2ban-client
contient la commande unban
qui 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 commandes restart <JAIL>
, reload <JAIL>
et reload
ont désormais également loption --unban
.
Ancienne réponse
fail2ban utilise iptables
pour bloquer le trafic. Si vous souhaitez voir les adresses IP qui sont actuellement bloquées, tapez
iptables -L -n
et recherchez les différentes chaînes nommées fail2ban-something
, où something
pointe vers la prison fail2ban (par exemple, Chain f2b-sshd
fait référence à la prison sshd
). Si vous ne souhaitez supprimer le bloc que pour 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. Commencez par lister les règles iptables
avec les 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 ny a pas doption pour sélectionner une plage de numéros de ligne, donc je suppose que vous devriez envelopper cette commande dans une boucle for:
for lin in {200..1}; do iptables -D fail2ban-somejail $lin done
Ici, jai inventé le nombre 200. Vérifiez votre propre sortie de la commande avec --line-numbers
et notez que la dernière ligne (avec RETURN
) doit rester. Voir le commentaire de @roaima ci-dessous pour le raisonnement derrière le décompte.
Commentaires
- Vous mavez sauvé. Merci beaucoup. Veuillez ajouter une commande complète parce que je devais comprendre que javais besoin de fail2ban-client en marge de votre commande. (Parce que je suis un noob)
Réponse
La meilleure façon de débloquer toutes les adresses IP est de définir le bantime sur 1 seconde, puis toutes les adresses IP seront immédiatement libérées.
fail2ban-client set JailName bantime 1
Après cela, vous pouvez définir le temps de bannissement approprié.
Il est préférable de laisser fail2ban faire le retrait pour vous. Ne modifiez pas manuellement iptables vous-même.
Commentaires
- Cest la seule réponse correcte ici. Fail2ban gère sa propre base de données dinterdiction qui doit être effacée indépendamment . Chaque réponse concernant la suppression des règles iptables ignore quau moment du redémarrage de fail2ban, elle rajoutera les règles que vous venez de supprimer à iptables. De plus, toutes les configurations de fail2ban nutilisent pas iptables pour implémenter les interdictions.
- trouver toutes les prisons avec
fail2ban-client status
- Je viens démettre cette commande et je regarde le nombre dadresses IP dans ma prison diminuer vers zéro alors que fail2ban traite la prison. Ce nest pas le cas se passe vraiment très vite, mais ‘ est OK, il y avait plus de cinq mille entrées dans la prison. Bonne réponse!
Réponse
Le dernier fail2ban-client
(0,10) a une commande unban -all
. Les prisons peuvent également être « redémarrées » individuellement, effecti Si vous avez une version plus ancienne, cette astuce pourrait fonctionner pour les interdictions temporaires automatiques: supprimez la prison qui contient linterdiction puis redémarrez fail2ban afin que la prison (maintenant vide) soit recréée.
$ fail2ban-client stop sshd Jail stopped $ systemctl restart fail2ban
Commentaires
- -all ou -all? Ou –all?
Réponse
-
Larrêt du service nettoiera toutes les règles ajoutées par fail2ban
service fail2ban stop
-
Si vous navez pas dautres règles iptables, vous pouvez la vider
iptables -F
Attention: cela effacera toutes les autres règles de vos iptables .
Commentaires
- Il suffit de sarrêter puis de recommencer.
Réponse
Enregistrer la configuration iptable dans le fichier
$ iptables-save > iptables.conf
Modifiez-le avec nimporte quel éditeur que vous aimez Ensuite, chargez la configuration dans iptables
$ iptables-restore < iptables.conf
Noubliez pas de stocker la configuration dans iptables pour quelle soit choisie au redémarrage
$ service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
Réponse
voici un simple oneliner pour démanteler lensemble fail2ban jail de la bonne manière:
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 » est le vrai nom de la prison
Commentaires
- Cest la meilleure réponse pour les versions de 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écidif ci-dessus par $ 1 et utilisez lalias comme fail2ban-purge < JAIL_NAME >.
Réponse
En raison du fonctionnement de fail2ban
, il ny a que deux solutions possibles:
- Créez un script de configuration de pare-feu qui inclut des
fail2ban
jails et redémarrez le pare-feu. - Supprimez les règles de pare-feu bloquant les adresses IP que vous souhaitez annuler .
Réponse
Ceci est le script que jutilise pour désinterdire toutes les adresses IP dune prison ssh ( remplacez simplement loccourence sshd 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
Réponse
Peut-être que ce script pourrait aider quelquun avec une version < 0.10.0 comme moi:
#!/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