Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
denyhosts [Le 09/07/2008, 12:14] Elemmire |
denyhosts [Le 11/09/2022, 12:06] (Version actuelle) moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>serveur réseau système securite}} | + | {{tag>Xenial serveur réseau système sécurité pare-feu}} |
---- | ---- | ||
- | ====== denyhost ====== | + | ====== 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 [[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**. | ||
- | >Lorsque nous mettons un serveur en ligne sur internet, nous avons tous a subir de nombreuses tentatives de connexion sur le port ssh (et oui les attacques ssh par dictionnaire sont courantes). Il est difficile de fermer se port que nous utilisons pour nous connecter de chez nous à notre serveur préféré (pas toujour 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". | + | L'administrateur pourra même être averti par courriel lorsqu'une IP sera mise en liste noire. |
- | + | ||
- | 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 plusieures (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 | + | |
===== Pré-requis ===== | ===== Pré-requis ===== | ||
- | |||
* Disposer des [[:sudo|droits d'administration]] ; | * Disposer des [[:sudo|droits d'administration]] ; | ||
Ligne 23: | Ligne 20: | ||
===== Installation ===== | ===== Installation ===== | ||
- | Il vous suffit, pour cela, d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt://denyhosts|denyhosts]] **. | + | Il vous suffit, pour cela, d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>denyhosts]]**. |
===== Configuration ===== | ===== Configuration ===== | ||
- | Le daemon denyhost est tout de suite opérationnel. Cependant, vous pouvez personnalisé la configuration en [[:tutoriel:comment_editer_un_fichier|éditant le fichier]] **/etc/denyhosts.conf** | + | 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 : | Vous pourrez alors configurer de nombreuses options parmi lesquelles : | ||
- | * BLOCK_SERVICE = ALL ou sshd => pour bloquer l'acces à tous les services ou seulement à ssh | + | | BLOCK_SERVICE = ALL ou sshd | pour bloquer l'accès à tous les services ou seulement à ssh | |
- | * DENY_THRESHOLD_INVALID = 5 => indiquer le nombre d'echec avec un login invalide avant blocage | + | | DENY_THRESHOLD_INVALID = 5 | indiquer le nombre d'échec avec un login invalide avant blocage | |
- | * DENY_THRESHOLD_VALID =10 => indiquer le nombre d'echec avec un login valide 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'echec avec le login root 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 | + | | 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 mail de notification | + | | SMTP_HOST = localhost | définir le relay SMTP pour l'envoi des mails de notification | |
- | * SMTP_PORT = 25 => définir le prt SMTP | + | | 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_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 | + | | 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é. | 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===== | ===== Utilisation===== | ||
- | <note importante>Attention !!! Vous pouvez perdre le contrôle de votre serveur si vous vous trompez trop souvent de mot de passe.</note> | + | <note importante>Attention :!: Vous pouvez perdre le contrôle de votre serveur si vous vous trompez trop souvent de mot de passe.</note> |
- | 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à : | + | 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. | ||
- | <code>ALL: 192.168.1. | + | la syntaxe dans le fichier **/etc/hosts.allow** sera de cette forme-là : |
+ | |||
+ | <file> | ||
+ | ALL: 192.168.1. | ||
ALL: 192.168.12. | ALL: 192.168.12. | ||
- | ALL: .mondomaine.com</code> | + | ALL: .mondomaine.com |
- | + | </file> | |
===== Désinstallation ===== | ===== 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. | 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é ===== | ===== Note sur la sécurité ===== | ||
- | <note importante>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 [[:securite|sécurité]] qui si il n'est pas exhaustif constitue tout de même un bon point de départ.</note> | + | <note importante> |
+ | 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. | ||
+ | </note> | ||
Ligne 74: | Ligne 75: | ||
* **(en)** [[http://www.howtoforge.com/preventing_ssh_dictionary_attacks_with_denyhosts|HowToForge sur Denyhosts]] | * **(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 | ||
+ | * [[wpfr>TCP_Wrapper]] | ||
+ | * [[https://wiki.visionduweb.fr/index.php?title=Sommaire_S%C3%A9curit%C3%A9#Introduction_.C3.A0_DenyHosts|Installer DenyHosts]] (Mise à jour en 2020.) | ||
---- | ---- | ||
- | + | //Contributeurs : [[:utilisateurs:Elemmire|Matthieu Chauveau]], [[:utilisateurs:petitchevalroux|Patrick Poulain]], [[:utilisateurs:Zer00CooL|Zer00CooL]].// | |
- | //Contributeurs : [[utilisateurs:Elemmire|Matthieu CHAUVEAU]].// | + | |
- | + |