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.
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.
Réponses:
Depuis la version 0.10.0 fail2ban-client
, la unban
commande 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 reload
commandes ont maintenant également l' --unban
option.
fail2ban utilise iptables
pour 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ù something
pointe vers la prison fail2ban (par exemple, Chain f2b-sshd
fait 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 iptables
rè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-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 compte à rebours.
echo {5..1}
entraînera 5 4 3 2 1
.
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.
fail2ban-client status
Le dernier fail2ban-client
(0.10) a une unban -all
commande. 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
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 ]
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
En raison de la façon dont fail2ban
fonctionne, il n'y a que deux solutions possibles:
fail2ban
prisons et redémarrez le pare-feu.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