OVH Community, votre nouvel espace communautaire.

[Sécurité] Bannir les tentatives de connexion ssh


quentinheb
12/05/2009, 18h18
Bonjour à tous !
Voici un petit script bien utile ( je n'en suis pas l'auteur) .

1) Créer un fichier blacklist.log dans /var/log
2) Dans /root créé un fichier appelé BruteForceBlocking.sh avec ceci :
Code:
#!/bin/sh
PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin

#on récupère les ip des vilains pirates à partir du fichier secure , et on l'inclus dans le fichier blacklist.log pour le traitement.

cat /var/log/secure | grep "Failed" | awk -F "from" '{ print $2 }' | awk '{ print $1 }' | sort -u >/var/log/blacklist.log
cat /var/log/secure | grep "Illegal" | awk -F "from" '{ print $2 }' | awk '{ print $1 }' | sort -u >>/var/log/blacklist.log

#pour chaque ip on compte combien il y a eu d'erreurs d'authentification

for i in `cat /var/log/blacklist.log` ; do
  nberreurs1=`cat /var/log/secure | grep "Failed" | grep $i | wc -l`
  nberreurs2=`cat /var/log/secure | grep "Illegal" | grep $i | wc -l`
  let nberreurs=$nberreurs1+$nberreurs2

#si il y a eu plus de 3 erreurs et que l'ip n'est pas déjà blacklistée et bien on la blackliste !
if [ "$nberreurs" -ge "3" ]
    then
    if [ "`cat /etc/hosts.deny | grep $i`" = "" ]
      then
      echo "ALL: $i" >>/etc/hosts.deny
    fi
  fi
done
Le script va lire le fichier /var/log/secure et bannir les ip qui ont fait plus de trois tentatives de connexion FAILED ou Illegal.
Les ips des méchants sont ajoutés dans /etc/hosts.deny

N'hésitez pas à faire vos commentaires
Ps: oubliez pas le cronjob