Denyhosts: dé-blacklister une adresse IP valide

J’ai déjà parlé de denyhosts et de tous le bien que j’en pensais (dans l’article filtrer-les-connexions-ssh) mais il arrive parfois qu’une adresse IP valide et ne devant pas être bloquée se retrouve blacklistée1. Du coup, l’adresse se retrouve systématiquement listée dans le fichier /etc/hosts.deny, ce qui fait qu’il est impossible de se connecter sur le serveur depuis ce site. Ce qui est catastrophique quand on a interdit toute connexion, SAUF depuis cette IP fixe…qui vient de se faire blacklister!.

Tout d’abord, lorsque vous mettez denyhosts en place sur un serveur, si vous avez une IP fixe depuis le site d’accès, pensez à vous autoriser en permanence afin de ne pas vous trouver renfermé dehors. Pour ce faire, il suffit d’ajouter la ligne suivante au fichier /etc/hosts.allow, en remplaçant les XXX par votre adresse IP fixe2:

ALL: XXX.XXX.XXX.XXX

Si vous êtes déjà enfermé dehors et que vous n’avez pas physiquement accès au serveur, il vous faut absolument changer d’adresse IP. Rebootez votre modem, ou allez chez un ami, un cybercafé ou au McDonald pour vous connecter au serveur et corriger le problème. Pensez ensuite à changer tous les mots de passe utilisés dès que vous rentrez chez vous.

Si vous avez blindé les accès au serveur et que vous n’arrivez pas à entrer, il va vous falloir être inventif. Dites vous que c’est comme ça qu’on apprend le métier et à être prudent3 . J’ai bien fait 1000 km AR en voiture juste pour re-démarrer un serveur qui avait pris un « halt » dans la mauvaise console, ce qui ne m’est plus jamais arrivé…

Mais si vous avez réussi à rentrer sur votre serveur, vous avez fait le plus gros:

  1. Arrêtez denyhosts (/etc/init.d/denyhosts stop)
  2. Supprimez l’entrée du fichier /etc/hosts.deny correspondant à votre IP
  3. Profitez en pour ajouter votre IP au fichier /etc/hosts.allow comme indiqué plus haut
  4. Allez dans le dossier /var/lib/denyhosts4. Vous devriez y trouver des fichiers comme ci dessous. Supprimez de ces fichiers toute occurrence à l’adresse IP concernée en supprimant complètement les lignes. la commande rgrep « xxx.xxx.xxx.xxx » /var/lib/denyhosts/ vous dira dans quels fichiers vous devez agir.
  5. Relancez ensuite denyhosts (/etc/init.d/denyhosts start)
  6. Envoyez moi une petite bénédiction
  7. Rentrez chez vous et allez vous coucher5

Liste des fichiers du dossier /var/lib/denyhosts:

112253 -rw-r--r-- 1 root root 140K 2010-12-08 22:26 hosts
112142 -rw-r--r-- 1 root root 140K 2010-12-08 22:26 hosts-restricted
112251 -rw-r--r-- 1 root root 140K 2010-12-08 22:26 hosts-root
112146 -rw-r--r-- 1 root root 140K 2010-12-08 22:26 hosts-valid
112148 -rw-r--r-- 1 root root  108 2010-12-08 22:26 offset
113817 -rw-rw-rw- 1 root root  27K 2010-12-08 11:42 purge-history
112147 -rw-r--r-- 1 root root    0 2010-12-08 22:26 suspicious-logins
112143 -rw-r--r-- 1 root root  109 2010-12-08 22:26 users-hosts
112145 -rw-r--r-- 1 root root  14K 2010-12-08 22:26 users-invalid
112144 -rw-r--r-- 1 root root  118 2010-12-08 22:26 users-valid

Vérifiez quand même que l’IP n’est pas bloquée pour de bonnes raisons. Ça m’est arrivé dernièrement à cause de mauvais droits sur le home de l’utilisateur, donc le serveur SSH m’envoyait systématiquement bouler. Par conséquent, au bout d’un certain nombre d’essais échoués, denyhosts a considéré que j’étais illégitime et a blacklisté l’IP.

Je confirme avoir cherché un moment6.

Articles en relation:

    Pas d’article

Notes:
  1. parce qu’on a fait des essais, qu’on a oublié le mot de passe ou fait une erreur dans le port à utiliser…Et c’est du vécu. []
  2. si votre IP est variable, ça ne sert strictement à rien. []
  3. Il existe deux types d’administrateurs : Ceux qui ont fait une très grosse connerie en tant que root et ceux qui vont en faire une… []
  4. sur Ubuntu. Dans le cas d’autres distributions, cela peut varier. Il semblerais que sur certaines versions ce soit dans/usr/share/denyhosts/data/ []
  5. c’est en général parce qu’on est fatigué qu’on fait ce type de bêtise. []
  6. que de souvenirs passionnant et haletants j’aurais à conter à mes petits enfants…! []
Catégories :linux, logiciel, planet-libre, sécurité, serveur, ubuntu Tags :
  1. Elemmire
    9 décembre 2010 à 10:36:43 | #1

    juste pour dire que pour éviter de balancer un halt (ou un reboot) sur la mauvaise console j’utilise molly-guard. cel oblige à confirmer le nom du serveur avant de lancer la séquence d’arret … ca m’a sauvé la vie plus d’une fois j’avoue !

    Par contre je ne comprend pas toute la procédure pour supprimer le blacklistage d’une IP … perso j’ajoute juste mon IP dans hosts.allow qui a la priorité sur le fichier hosts.deny ! donc peu importe si l’IP se trouve blacklisté du moment qu’elle se trouve dans hosts.allow !!!

  2. 9 décembre 2010 à 15:42:27 | #2

    @ Elemmire
    J’utilise aussi molly guard depuis cette histoire.

    J’ai pu constater que si, en théorie, le fichier allow est prioritaire, ça ne fonctionnait pas à tous les coups. Ajouter l’IP ne débloquait pas la possibilité de se connecter par ssh, une fois l’IP blacklistée.

    Par contre, je n’ai jamais eu le cas de me faire blacklister une adresse déjà présente dans le allow. Et pourtant, ça m’arrive assez souvent de tenter plusieurs MDP, vu que je ne sais pas toujours lequel j’ai pu mettre quelques jours avant.

  3. Elemmire
    10 décembre 2010 à 10:19:03 | #3

    j’ai refait un essai et j’arrive bien à la conclusion que hosts.allow est prioritaire sur le hosts.deny et cela immédiatement et malgré un blacklistage de mon IP par denyhosts …
    peut etre une subtilité qu’on aurait pas vu !

  4. 10 décembre 2010 à 10:49:41 | #4

    @ Elemmire
    Peut être une différence de version.
    Euh…même pas. Je viens de faire le test sur 2 serveurs en même version et l’un prend en compte le allow alors que l’autre non. Celui qui ne me le prend pas a un hosts.deny de 150 entrées environ, pas l’autre. Je vais essayer de leur mettre le même contenu, pour voir…

  5. zobi8225
    15 décembre 2010 à 15:55:51 | #5

    Hallélouilla

  6. 11 mai 2011 à 11:43:04 | #6

    J’ai fait une petite ligne de commande qui permet de déblacklister un ip si ça peut intéresser quelqu’un ça se passe par là : Débloquer une IP dans Denyhosts

    J’ai repris la liste des fichiers dans la faq de denyhosts 😉

  1. Pas encore de trackbacks

Anti-Spam Quiz:

antibot * Time limit is exhausted. Please reload the CAPTCHA.

3.80.85.76