Ceci est une ancienne révision du document !



denyhost

Lorsque nous mettons un serveur en ligne sur internet, nous avons tous à subir de nombreuses tentatives de connexion sur le port ssh (et oui les attaques ssh par dictionnaire sont courantes). Il est difficile de fermer ce port que nous utilisons pour nous connecter de chez nous à notre serveur préféré (pas toujours simple de n'utiliser que la console!!!). Je me suis souvent posé la question "comment sécuriser mon serveur tout en ayant facilement accès à celui-ci par ssh?". J'ai alors découvert "Denyhost".

Le principe de Denyhost est simple : c'est un daemon qui analyse en permanence le fichier de log /var/log/auth.log et qui au bout de plusieurs (Cf configuration) tentatives de connexion infructueuses blacklist l'IP en cause dans le fichier /etc/hosts.deny

L'administrateur pourra même être averti par mail lorsqu'une IP sera mise en liste noire

Il vous suffit, pour cela, d'installer le paquet denyhosts .

Le daemon denyhost est tout de suite opérationnel. Cependant, vous pouvez personnaliser la configuration en éditant le fichier /etc/denyhosts.conf

Vous pourrez alors configurer de nombreuses options parmi lesquelles :

  • BLOCK_SERVICE = ALL ou sshd ⇒ pour bloquer l'accès à tous les services ou seulement à ssh
  • DENY_THRESHOLD_INVALID = 5 ⇒ indiquer le nombre d'échec avec un login invalide avant blocage
  • DENY_THRESHOLD_VALID =10 ⇒ indiquer le nombre d'échec avec un login valide avant blocage
  • DENY_THRESHOLD_ROOT = 1 ⇒ indiquer le nombre d'échec avec le login root avant blocage
  • ADMIN_EMAIL = root@localhost ⇒ indiqué l'adresse mail qui sera informé à chaque blocage d'une IP
  • SMTP_HOST = localhost ⇒ définir le relay SMTP pour l'envoi des mails de notification
  • SMTP_PORT = 25 ⇒ définir le port SMTP
  • SMTP_FROM = DenyHosts <nobody@localhost> ⇒ définir le nom de l'expéditeur de la notification
  • SMTP_SUBJECT = DenyHosts Report ⇒ définir le sujet du mail de notification

Je vais vous épargner l'ensemble des variables de configuration car elles sont plutôt nombreuses. Ils vous suffit d'aller voir le fichier de configuration qui est très bien commenté.

Attention !!! Vous pouvez perdre le contrôle de votre serveur si vous vous trompez trop souvent de mot de passe.

Il est intéressant alors de compléter le fichier /etc/hosts.allow avec les adresses IP à partir desquelles vous vous connectez le plus souvent. Vous pouvez meme définir des plage d'adresse ou des domaines pour lesquels vous ne serez jamais bloqué meme en cas d'échec important.

la syntaxe dans le fichier /etc/hosts.allow sera de cette forme là :

ALL: 192.168.1.
ALL: 192.168.12.
ALL: .mondomaine.com

Pour supprimer cette application, il suffit de supprimer son paquet. La configuration de l'application sera conservée ou supprimée selon la méthode de désinstallation que vous choisirez.

Il ne faut pas se croire en sécurité grâce à ce seul logiciel !!! La sécurité d'un système est liée à un ensemble de règles à respecter et une vigilance constante de la part des utilisateurs ainsi que de l'administrateur système. Denyhosts ne représente qu'une toute petite brique permettant de sécuriser un serveur. Je vous conseil donc de lire attentivement le chapitre sur la sécurité qui, s'il n'est pas exhaustif, constitue tout de même un bon point de départ.
  • fail2banlit les logs de divers serveurs (ssh, apache, ftp,…) à la recherche d'erreurs d'authentification répétées et ajoute une règle iptables pour bannir l'adresse IP de la source.

Contributeurs : Matthieu CHAUVEAU.

  • denyhosts.1215607296.txt.gz
  • Dernière modification: Le 09/07/2008, 16:14
  • (modification externe)