311 votes

Comment débanner une IP correctement avec Fail2Ban

J'utilise Fail2Ban sur un serveur et je me demande comment débanner une IP correctement.

Je sais que je peux travailler directement avec IPTables : iptables -D fail2ban-ssh <number>

Mais n'y a-t-il pas un moyen de le faire avec la fonction fail2ban-client ?

Dans les manuels, il est dit quelque chose comme : fail2ban-client get ssh actionunban <IP> . Mais ça ne marche pas.

Aussi, je ne veux pas /etc/init.d/fail2ban restart car cela ferait perdre toutes les interdictions de la liste.

0 votes

Je me suis accidentellement verrouillé lorsque j'ai essayé de me connecter à mon VPS Linode, donc maintenant je dois arrêter Fail2Ban via la console web pour me connecter avec PuTTY. J'espère que l'interdiction n'est pas permanente car je veux continuer à me connecter sans avoir à désactiver fail2ban.

1 votes

@HeavenlyHarmony une façon d'éviter cela à l'avenir est de configurer votre prison afin d'inclure votre adresse IP dans le fichier ignoreips valeur. J'ai ajouté mes deux points de sortie VPN ainsi que les plages SPF pour le réseau de Google, puisque la boîte qui exécute fail2ban est une instance GCP Compute. L'ajout de votre adresse IP à cette ignoreips vous permettra d'exécuter n'importe quelle commande infâme sans vous bannir.

0 votes

Notez que cette question est très ancienne maintenant, et elle utilisait un système pré-Systemd.

2voto

mack Points 11

A partir de la version 0.8.8, cela pourrait être un script pratique pour vous - pourrait facilement être modifié pour débanner de toutes les prisons.

Je l'appelle simplement " getf2bstatus.sh "

Exemple d'utilisation ./getf2bstatus.sh 1.2.3.4

#!/bin/bash
echo "Jails where $1 is locked up:"
JAILS=`fail2ban-client status | grep "Jail list" | sed -E 's/^[^:]+:[ \t]+//' | sed 's/,//g'`
for JAIL in $JAILS
do
  currentjail=`fail2ban-client status $JAIL | grep -B 8 $1 | grep Status | awk '{printf $5}'`
  if [[ ${#currentjail} -gt a ]] ; then
        echo $currentjail
  fi
done
echo
echo "To unban $1 use the following commands:"
for JAIL in $JAILS
do
  currentjail=`fail2ban-client status $JAIL | grep -B 8 $1 | grep Status | awk '{printf $5}'`
  if [[ ${#currentjail} -gt a ]] ; then
        echo "fail2ban-client set $currentjail unbanip $1"
   fi
done

Sortie ?

Jails where 1.2.3.4 is locked up:
ssh

To unban 1.2.3.4 use the following commands:
fail2ban-client set ssh unbanip 1.2.3.4

1voto

yolabingo Points 11

Si un IP est dans plusieurs prisons, cela devient un problème.

une ligne pour supprimer 192.168.1.2 de toutes les prisons :

 for jail in $(fail2ban-client status | grep 'Jail list:' | sed 's/.*Jail list://' | sed 's/,//g'); do fail2ban-client set $jail unbanip 192.168.1.2; done

un script pour faire la même chose https://gist.github.com/yolabingo/c810db6fe7f8bfcb9eb4f6ffc531e474

1voto

Billou Points 11

Vous pouvez utiliser mon simple script :D

echo "Display all service"
#Edit and Add/Del your service
sudo fail2ban-client status phpmyadmin-syslog
sudo fail2ban-client status apache-fakegooglebot
sudo fail2ban-client status apache-noscript
sudo fail2ban-client status apache-overflows
sudo fail2ban-client status apache-auth
sudo fail2ban-client status  apache-badbots
sudo fail2ban-client status  mysqld-auth
sudo fail2ban-client status  proftpd
sudo fail2ban-client status  sshd
echo "Choose service to unban"
read service
echo "Status of Service"
sudo fail2ban-client status $service
echo "Enter ip to be unban"
read ip
sudo fail2ban-client set $service unbanip $ip
echo "Status of service after unban"
sudo fail2ban-client status $service

Sauvegardez et entrez 'sh yourfilename.sh'.

Optionnel, si vous voulez recevoir le résultat par mail vous pouvez utiliser ceci :)

#Empty file log
echo "" > /home/pi/Scripts/log/ban.log
#Add Date to log
date >> /home/pi/Scripts/log/ban.log

#Add status service on log
sudo fail2ban-client status phpmyadmin-syslog >> /home/pi/Scripts/log/ban.log
sudo fail2ban-client status apache-fakegooglebot >> /home/pi/Scripts/log/ban.log
sudo fail2ban-client status apache-noscript >> /home/pi/Scripts/log/ban.log
sudo fail2ban-client status apache-overflows >> /home/pi/Scripts/log/ban.log
sudo fail2ban-client status apache-auth >> /home/pi/Scripts/log/ban.log
sudo fail2ban-client status  apache-badbots >> /home/pi/Scripts/log/ban.log
sudo fail2ban-client status  mysqld-auth >> /home/pi/Scripts/log/ban.log
sudo fail2ban-client status  proftpd >> /home/pi/Scripts/log/ban.log
sudo fail2ban-client status  sshd >> /home/pi/Scripts/log/ban.log

#Send mail 
mutt -b "yourname@gmail.com" -s "Sujet: Log Fail2Ban" < /home/pi/Scripts/log/ban.log ```

1voto

kittonian Points 11

Si vous ne vous souciez pas de lever le bannissement d'une prison spécifique, l'incarnation actuelle de Fail2Ban permet une commande très simple :

fail2ban-client débanner IPADDRESS

Cela supprimera l'IP de toutes les prisons. Super facile !

1voto

Je trouve l'échec en faisant grep 10.20.30.40 /var/log/fail2ban.log

ce qui donne une sortie comme

2021-08-23 10:09:17,394 fail2ban.filter         [581]: INFO    [ssh] Found 10.20.30.40 - 2021-08-23 10:09:17
2021-08-23 10:09:17,395 fail2ban.filter         [581]: INFO    [sshd] Found 10.20.30.40 - 2021-08-23 10:09:17
2021-08-23 10:09:20,936 fail2ban.filter         [581]: INFO    [sshd] Found 10.20.30.40 - 2021-08-23 10:09:20
2021-08-23 10:09:20,940 fail2ban.filter         [581]: INFO    [ssh] Found 10.20.30.40 - 2021-08-23 10:09:20
2021-08-23 10:09:22,654 fail2ban.filter         [581]: INFO    [ssh] Found 10.20.30.40 - 2021-08-23 10:09:22
2021-08-23 10:09:22,655 fail2ban.filter         [581]: INFO    [sshd] Found 10.20.30.40 - 2021-08-23 10:09:22
2021-08-23 10:09:22,917 fail2ban.actions        [581]: NOTICE  [ssh] Ban 10.20.30.40
2021-08-23 10:09:23,085 fail2ban.filter         [581]: INFO    [recidive] Found 10.20.30.40 - 2021-08-23 10:09:22
2021-08-23 10:09:23,384 fail2ban.actions        [581]: NOTICE  [sshd] Ban 10.20.30.40
2021-08-23 10:09:24,084 fail2ban.actions        [581]: NOTICE  [recidive] Ban 10.20.30.40
2021-08-23 10:09:24,099 fail2ban.filter         [581]: INFO    [recidive] Found 10.20.30.40 - 2021-08-23 10:09:23

A partir de là, je peux voir que je dois débanaliser l'IP de trois prisons :
fail2ban-client set sshd unbanip 10.20.30.40
fail2ban-client set ssh unbanip 10.20.30.40
fail2ban-client set recidive unbanip 10.20.30.40

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X