Le site des administrateurs systèmes sous Mac OS X
  Il y a deux sortes d’administrateurs systèmes : ceux qui ont déjà fait une connerie sous root et ceux qui ne vont pas tarder à en faire une.



Accueil du site > Trucs & Astuces > Se protéger des attaques SSH par dictionnaire
Se protéger des attaques SSH par dictionnaire


Bloquer ces tests de connexion SSH sur mon serveur. samedi 15 septembre 2007, par Jayce Piel

Description de l’utilisation de DenyHosts, un script python qui permet de bloquer les machines qui tentent de s’infiltrer par la force via SSH.


Si vous avez activé l’accès SSH sur votre serveur, regardez dans le fichier /var/log/secure.log , vous risquez d’être surpris d’être la victime d’attaques, et ce, même si votre serveur n’a que quelques jours…

DenyHosts permet de limiter les dégâts en bloquant les machines incriminées au niveau du système.

L’installation est relativement simple : téléchargez les sources ici, et, dans le terminal, tapez les commandes

tar zxf /Chemin/vers/Denyhosts-2.X.tar.gz
cd Denyhosts-2.X
sudo python setup.py install
sudo touch /etc/hosts.deny

Il faut ensuite modifier le fichier de configuration /usr/share/denyhosts/denyhosts.cfg (le créer à partir de /usr/share/denyhosts/denyhosts.cfg-dist) :

  • trouver la ligne commençant par SECURE_LOG et ajouter un # devant
  • un peu plus bas, enlever le # devant le SECURE_LOG correspondant à votre système (pour Tiger, modifier asl.log par secure.log)
  • modifier ensuite la valeur PURGE_DENY en rajoutant # devant la première (never) et en l’enlevant devant la 3e (5 days)
  • enlever le # devant PURGE_THRESHOLD = 2
  • dans la section LOCK_FILE, supprimer le # devant le LOCK_FILE de Debian pour utiliser le fichier denyhosts.pid et en rajouter un devant celui de Redhat/Fedora.
  • rajouter .log au nom du fichier défini dans DAEMON_LOG
  • enfin, enlever le # devant SYNC_SERVER (ceci permet la synchronisation avec un serveur de référence)
Zip - 5 ko
Exemple de fichier denyhosts.cfg

Vous pouvez également définir ADMIN_EMAIL à votre adresse et enlever le # du début de ligne pour que denyhosts vous prévienne de ce qu’il fait.

Créer ensuite le fichier daemon_control à partir de daemon_control-dist et modifier la valeur de DENYHOSTS_LOCK pour mettre la même que celle de LOCK_FILE ci-dessus. Enfin, déplacez le fichier denyhosts.py vers /usr/bin
(sudo mv /System/Library/Frameworks/Python.framework/Versions/Current/bin/denyhosts.py /usr/bin).

Vous pouvez tester en lançant sudo daemon_control start
et vérifier le bon lancement en regardant le fichier de log (remplacer start par stop pour arrêter).

Si tout marche correctement, créez un démon Launchd avec Lingon (ou téléchargez le fichier suivant, placez le dans /Library/LaunchDaemons/ et redémarrez).

Zip - 388 octets
Fichier LaunchDaemon
À dézipper et à mettre dans /Library/LaunchDaemons/

PS : Un bug de la version 2.6 et précédentes ne permet pas d’utiliser correctement l’utilitaire en mode manuel, seul le mode démon décrit ci-dessus est pleinement fonctionnel. (j’ai cependant envoyé la correction à faire à l’auteur et j’espère qu’elle sera intégrée dans les prochaines mises à jour).

PS2 : Pour je ne sais quelle raison obscure, denyhosts a ajouté l’adresse de localhost (127.0.0.1) à /etc/hosts.deny. Pour éviter que cela se produise, vous pouvez rajouter dans un fichier /usr/share/denyhosts/data/allowed-hosts cette adresse IP ainsi que toute adresse « sûre ». (voir http://denyhosts.sourceforge.net/faq.html#allowed)


[ Haut ] Enregistrer au format PDF

Creative Commons License

Cette création est mise à disposition sous un contrat Creative Commons.




Recommandez ce site à un ami :

Votre Prénom : E-mail de votre ami :

Valid XHTML 1.0 Transitional

FORUM DE L'ARTICLE :



1 Message
Se protéger des attaques SSH par dictionnaire

1er avril 2009 20:52, par Sohbet
Thank you.

Voir en ligne : Sohbet