Les instructions d'installation sont ici.
Les scripts sont ici.
Il s'agit ici de blacklister (interdire) les Ips des machines qui tentent de s'introduire sur votre serveur dédié en utilisant des noms d'utilisateurs existant comme root, nobody etc... ou des noms bidons tels que guest, test, paul, jack etc...
Pour tenter de s'introduire ces hackers utilisent des robots qui tentent de se connecter sur le port ssh (22) de votre machine.
Ce que nous voulons faire, c'est empêcher ces pirates de poursuivre leurs tentatives en essayant des quantités importantes de mots de passe.
Notre espoir secret c'est de les voir se lasser et d'aller faire leurs tentatives ailleurs. Aussi la stratégie que nous utilisons, c'est le blacklistage d'une machine qui a fait plusieurs tentatives infructueuses de connexion.
Comme l'adresse Ip de la machine que nous voulons blacklister est peut-être une adresse dynamique, au bout d'un certain temps, nous souhaitons pouvoir rétablir l'Ip en question.
Nous avons choisi la simplicité. Nous allons examiner le fichier de log qui enregistre les tentatives de connexion ssh puis au bout de quelques tentatives infructueuses pour la même Ip, nous allons générer une règle de rejet de toute connexion TCP de l'Ip en question.
La machine indélicate ne pourra plus se connecter à quelque service que ce soit sur notre serveur, ni même le pinguer. S'il y a un utilisateur devant l'écran de la machine pirate, il verra s'afficher un message du style "No route to host"
Au bout d'une durée que nous choisirons, nous allons réautoriser cette adresse Ip à se reconnecter en enlevant la règle de rejet.
Pour des raisons de simplicité, nous avons choisi de scinder ces fonctionnalités
en 4 scripts :
ssh-blacklist.sh
Script shell permettant de lancer ssh-black.pl en tâche de fond et d'enregistrer un log des actions commises dans /var/log/blacklist.
ssh-black.pl
Ce script perl analye en temps reel le fichier /var/log/messages et detecte les tentatives d'intrusion via ssh. Au bout de 3 (configurable) tentatives, l'adresse IP est blacklistée. Elle sera retablie par le script un-black.pl lancé par un cron toutes les heures (par exemple).
un-blacklist.sh
Script shell permettant de lancer un-black.pl en tâche de fond depuis un cron et d'enregistrer un log des actions commises dans /var/log/blacklist.
un-black.pl
Ce script perl lancé par un cron périodiquement analyse les Ips blacklistées et rétablit celles qui ont été blacklistées depuis plus longtemps que la durée d'interdiction choisie.
Il se peut que vous-même fassiez des erreurs de frappe successive en tapant votre mot de passe, ce qui aura pour conséquence de blacklister (!!!) votre adresse Ip et de vous interdire de vous connecter à votre serveur. Si c'est le cas vous avez deux possibilités selon que vous avez une ip fixe ou pas :
Si vous n'y arrivez vraiment, il ne vous reste plus qu'a aller chez un ami ou dans un cyber café pour vous reconnecter sur la machine.
Rassurez-vous selon le délai de blacklistage que vous avez paramétré, votre ip sera à nouveau utilisable sitôt ce délai passé.