{{tag>serveur réseau système sécurité pare-feu}} ---- ====== DenyHosts ====== Paquet non disponible dans les dépôts d'[[trusty|Ubuntu 14.04]] (([[http://packages.ubuntu.com/search?suite=default§ion=all&arch=any&searchon=names&keywords=DenyHosts|Source]])). Une alternative est d’utiliser [[Fail2ban]]. 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 [[wpfr>Daemon|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. ===== Pré-requis ===== * Disposer des [[:sudo|droits d'administration]] ; * Disposer d'une connexion à Internet configurée et activée ; * Avoir [[:tutoriel:comment_installer_un_paquet|installé le paquet]] **openssh-server**. ===== Installation ===== Il vous suffit, pour cela, d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>denyhosts]]**. ===== Configuration ===== Le [[wpfr>Daemon|dæmon]] DenyHosts est tout de suite opérationnel. Cependant, vous pouvez personnaliser la configuration en [[:tutoriel:comment_editer_un_fichier|é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 | 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é. ===== Utilisation===== 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 ===== Désinstallation ===== Pour supprimer cette application, il suffit de [[:tutoriel:comment_supprimer_un_paquet|supprimer son paquet]]. La configuration de l'application sera conservée ou supprimée selon la méthode de désinstallation que vous choisirez. ===== Note sur la sécurité ===== 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. ===== Voir aussi ===== * **(en)** [[http://www.howtoforge.com/preventing_ssh_dictionary_attacks_with_denyhosts|HowToForge sur Denyhosts]] * [[http://dev.petitchevalroux.net/linux/denyhosts-supprimer-une-adresse-bloquee-linux.361.html|Débloquer une IP bannie par Denyhosts]] * [[fail2ban]] lit les logs de divers serveurs (SSH, Apache, FTP, etc.) à la recherche d'erreurs d'authentification répétées et ajoute une règle iptables pour bannir l'adresse IP de la source. * **(fr)** [[http://www.it-connect.fr/proteger-son-acces-ssh-avec-denyhosts%ef%bb%bf/|Tutoriel sur la configuration complète de DenyHosts]] sur IT-Connect ---- //Contributeurs : [[:utilisateurs:Elemmire|Matthieu Chauveau]], [[:utilisateurs:petitchevalroux|Patrick Poulain]].//