DenyHosts

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 !). D'où la question suivante : « Comment sécuriser son serveur tout en ayant facilement accès à celui-ci par SSH ? ». Une réponse peut être Denyhosts.

Le principe de Denyhosts est simple : c'est un dæmon qui analyse en permanence le fichier de log /var/log/auth.log et qui au bout de plusieurs tentatives (cf. « Configuration ») de connexion infructueuses blacklist l'IP en cause dans le fichier /etc/hosts.deny.

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

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

Le dæmon DenyHosts 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 donc intéressant de compléter le fichier /etc/hosts.allow avec les adresses IP à partir desquelles vous vous connectez le plus souvent. Vous pouvez même définir des plage d'adresse ou des domaines pour lesquels vous ne serez jamais bloqué même 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. Il vous est donc conseillé 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.

Contributeurs : Matthieu Chauveau, Patrick Poulain.

  • denyhosts.txt
  • Dernière modification: Le 26/11/2019, 11:25
  • (modification externe)