DenyHosts: Cómo prevenir ataques de diccionario o fuerza bruta contra SSH

Si estamos preocupados por la seguridad de nuestros servidores y mas del servicio/protocolo Secure Shell cuando esta relacionado con ataques de fuerza bruta ya sea por medio de diccionarios, entonces debemos de utilizar DenyHosts, esta aplicación nos permitirá detectar posibles ataques antes de que estos hagan efecto.

La manera en que funciona DenyHosts es que monitorea el archivo /var/log/auth.log (en el caso de Debian – Ubuntu…) para detectar errores de autentificación al sistema y despues bajo ciertas reglas bloquer la IP o servicio que queramos mediante el archivo /etc/hosts.deny

Bueno, ahora que conocemos como funciona DenyHosts, es hora de empezar con la instalación, y para variar!! la forma mas sencilla (mas que en windows) es con un simple:

apt-get install denyhosts

Despues procedemos con la configuración que se encuentra en /etc/denyhosts.conf algunos de los parametros importantes son:

# Lugar donde se encuentra nuestro archivo de Log, en este caso para Debian
SECURE_LOG = /var/log/auth.log
# Lugar donde se encuentra nuestro archivo de bloqueo de hosts
HOSTS_DENY = /etc/hosts.deny
# El periodo en el que la IP va a ser eliminada de la lista de bloqueo, puede ser en hora (h), dias (d)…
PURGE_DENY = 12h
# Cual servicio queremos que sea bloqueado, puede ser sshd, o ALL para todos
BLOCK_SERVICE = ALL
# Numero de veces de error cuando se ingresa con un usuario NO existente
# Se supone que el root conoce a sus usuarios y no debe de equivocarse
DENY_THRESHOLD_INVALID = 2
# Numero de veces de error con un usuario SI existente en el sistema
DENY_THRESHOLD_VALID = 10
# Numero de veces de error con el usuario ROOT
DENY_THRESHOLD_ROOT = 2
DENY_THRESHOLD_RESTRICTED = 1
WORK_DIR = /var/lib/denyhosts
# Reportar entradas sospechosas
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
# Buscar el nombre del host del atacante si este esta disponible
HOSTNAME_LOOKUP=YES
LOCK_FILE = /var/run/denyhosts.pid
# Email para notificar los bloqueos
ADMIN_EMAIL = [email protected]
SMTP_HOST = localhost
SMTP_PORT = 25
SMTP_FROM = DenyHosts
SMTP_SUBJECT = DenyHosts Reporte
SMTP_DATE_FORMAT = %a, %d %b %Y %H:%M:%S %z
AGE_RESET_VALID=5d
AGE_RESET_ROOT=25d
AGE_RESET_RESTRICTED=25d
AGE_RESET_INVALID=10d
DAEMON_LOG = /var/log/denyhosts
DAEMON_SLEEP = 30s
DAEMON_PURGE = 1h

Y listo, reiniciamos el servicio DenyHosts / etc/init.d/denyhosts restart ahora solo falta esperar los correos los cuales llegan con el siguiente formato:

Added the following hosts to /etc/hosts.deny:

66.189.86.152 (66-189-86-152.static.oxfr.ma.charter.com)
212.227.97.129 (s15260807.onlinehome-server.info)
85.25.149.125 (static-ip-85-25-149-125.inaddr.intergenia.de)

A lo cual nos ha bloqueado 3 direcciones IP., ahora ya podemos dormir tranquilos, por lo menos algunas noches :-)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *