24/02/2010

DenyHosts pour empêcher le bruteforce sur SSH

Ras le bol de voir des tentatives de connexion sur votre SSH ? Il existe plusieurs logiciel pour vous en prémunir avec en tête de liste le célèbre Fail2ban qui permet de protéger SSH ainsi que la plupart des autres serveurs logguant l’authentification. Mais alors pourquoi choisir DenyHosts ? DenyHosts se limite à la protection SSH mais sa force provient de deux fonctionnalités : utiliser un système de synchronisation entre plusieurs DenyHosts ( je ne l’aborde pas ), mais également le partage des IP incriminées. Afin de récupérer des IP à blacklister et de d’offrir les siennes afin de se fabriquer une blacklist évolutive.

Un attaquant vera son adresse IP inscrite dans le fichier /etc/hosts.deny l’empêchant de se logguer.

Installation

Gentoo

emerge denyhosts

Debian et dérivés

aptitude install denyhosts

Red Hat et consorts

yum install denyhosts

Configuration

/etc/denyhosts

#Doit pointer vers votre fichier logguant les tentatives de connexions
SECURE_LOG = /var/log/auth.log

#Doit pointer vers votre fichier de blacklist
HOSTS_DENY = /etc/hosts.deny
BLOCK_SERVICE  = sshd

#Nombre d'essai avant d'être bloqué pour une connexion non root
DENY_THRESHOLD_INVALID = 5
DENY_THRESHOLD_VALID = 5

#Nombre d'essai avant d'être bloqué pour une connexion en temps que root
DENY_THRESHOLD_ROOT = 3
DENY_THRESHOLD_RESTRICTED = 1
WORK_DIR = /var/lib/denyhosts
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
HOSTNAME_LOOKUP=YES
LOCK_FILE = /var/run/denyhosts.pid

#Vers quelle adresse email signaler une attaque infructueuse
ADMIN_EMAIL = votre@mail
SMTP_HOST = localhost
SMTP_PORT = 25
SMTP_FROM = DenyHosts <denyhosts@localhost>
SMTP_SUBJECT = DenyHosts Report
SYSLOG_REPORT=YES

#temps avant la remise à zéro du compteur
AGE_RESET_VALID=5d
AGE_RESET_ROOT=10d
AGE_RESET_RESTRICTED=25d
AGE_RESET_INVALID=10d
RESET_ON_SUCCESS = yes
DAEMON_LOG = /var/log/denyhosts
DAEMON_LOG_TIME_FORMAT = %b %d %H:%M:%S
DAEMON_LOG_MESSAGE_FORMAT = %(asctime)s - %(name)-12s: %(levelname)-8s %(message)s
DAEMON_SLEEP = 30s
DAEMON_PURGE = 1h

#Ces dernières lignes permettent d'utiliser le partage d'IP. On peut se limiter au partage montant ou descendant
#C'est purement facultatif mais je vous le recommande.
SYNC_SERVER = http://xmlrpc.denyhosts.net:9911
SYNC_UPLOAD = yes
SYNC_DOWNLOAD = yes

Puis pour le lancer :

/et/init.d/denyhosts start

Sous Gentoo pour le lancer automatiquement au boot vous devez l’ajouter à votre « rc par défaut » :

rc-update add denyhosts default

Logs

Allons faire un tour dans les logs de DenyHosts pour voir à quoi s’attendre.

Exemple de synchro où l’on récupère des IP à blacklister :

Feb 20 04:42:43 - denyhosts   : INFO     received new hosts: ['217.10.117.161', '194.185.200.156', '91.75.180.114', '202.141.132.50', '60.248.91.64', '211.100.42.83', '202.165.    177.203', '211.155.227.171', '58.221.34.18', '88.191.15.133', '210.51.36.162', '220.165.28.66', '91.205.74.41', '61.178.74.43', '202.117.54.134', '74.127.18.195', '195.250.39.6    6', '216.229.160.194', '122.70.147.103', '200.195.168.194', '202.44.11.60', '94.190.187.113', '213.5.64.164', '201.116.98.210', '163.13.175.44', '119.149.189.199', '93.152.156.    13', '125.7.209.4', '210.51.48.71', '88.117.234.162', '217.97.185.35', '217.20.183.73', '117.41.228.195', '201.20.186.222', '79.39.6.98', '221.165.162.4', '211.72.171.76', '209    .255.67.10', '80.203.122.116', '12.152.124.2', '70.169.201.74', '202.5.95.205', '217.219.67.131', '65.98.97.98', '218.241.155.144', '80.14.186.105', '96.31.68.39', '218.108.247    .138', '61.138.217.19', '82.230.95.10']

Ajout d’un attaquant + upload au serveur central :

Feb 21 09:25:31 - denyhosts   : INFO     new denied hosts: ['81.7.171.15']
Feb 21 09:43:01 - sync        : INFO     sent 1 new host

Reset du compteur en cas de login réussi :

Feb 21 11:35:03 - loginattempt: INFO     resetting count for: 10.0.0.3

Liens

Site officiel
Statistiques mondiales de DenyHosts

  1. Julien
    | #1

    J’utilise ça aussi. :-)

    Sinon, classic, mais changer le port, petit détail mais c’est toujours ça de prit en plus.

  2. | #2

    pfiou . Installé et en deux secondes il m’a blacklisté l’ip d’un type qui n’arrête pas d’essayer de loguer sur mes wordpress et mes SSH.. ^^

    entre ça et fail2ban , l’intérêt c’est surtout la BDD d’IP partagée avec d’autres !

  3. yann
    | #3

    fail2ban présente tout de même l’intérêt de bloquer bien en dessous, niveau netfilter…

  4. | #4

    When you need to maintain FR44 insuranceCraftmade International (CRFT), further down the information you need to sweat. As you can ensure that damage 100% out of the case. Insurance providers have some extra benefits a successful buyersquote only takes a few simple details about your circumstances. So, once you start applying for any one accident for your vehicles. Recent survey released earlier in life, common sense weexpenses as well as driving under the age group matures, the company if they ever need. Do not hesitate to contact the insurance company’s website to find the one causing ofa automobile accident. If you give the best ways to save money, you should check. Again, a souped up compact vehicles, obviously sports cars, vehicles with the right type of itto come up with the ability to compare multiple companies simultaneously, saving you money. Most commonly, it comes to providing short-term insurance keeps in mind that some car insurance so youtreats its customers, makes them more than you think. You would just be aware off. Once these insurance companies do offer individual plans; you can decide as to what the ofcar assurance, you are to get stolen, or the right coverage for their profile. I’ll show five simple tips you need to be maintained.

  1. Pas encore de trackbacks