¿Que es y porque asegurar tu servidor con Denyhosts?
Denyhosts es un programa que nos protege de los ataques de fuerza bruta. Estos ataques intentan de encontrar el password de acceso, mediante combinaciones hasta dar con el password. Denyhosts, lo que hace es analizar el fichero «/var/log/auth.log» y ver los logins fallidos que hay. Segun lo que le indiquemos en el fichero de configuracion, baneara esa ip introduciendola en /etc/hosts.deny o le dejara algun reintento mas. Asi que si te animas, entra que te enseño la configuracion de denyhosts.
Configuracion de Denyhosts
El fichero de configuracion de denyhosts, es /etc/denyhosts.conf y vamos a pasar a comentar su configuracion.
Primero de todo lo instalamos
apt-get install denyshosts
Empezamos con denyshots.conf
SECURE_LOG = /var/log/auth.log
Le estamos indicando el fichero desde el cual tiene que analizar los intentos fallidos. Esta linea sera valida para Debian.
HOSTS_DENY = /etc/hosts.deny
Fichero donde se introducirán las ips baneadas.
PURGE_DENY = 2w
El tiempo que durara el baneo. En esta caso seran 2 semanas. Se pueden especificar minutos, horas, dias, semanas y años.
PURGE_THRESHOLD = 3
El numero de baneos que puede tener una ip. Si llega a 3 baneos, el baneao sera definitivo.
BLOCK_SERVICE = ALL
Los servicios que seran denegados a la ip baneada, en esta caso todos.
DENY_THRESHOLD_INVALID = 3
Numero de intentos para una cuenta que no existe. Le dejamos 3 intentos, ya que es algo sospechoso que un usuario intenta acceder con una cuenta que no existe.
DENY_THRESHOLD_VALID = 5
Lo mismo que lo anterior, pero para cuentas que existan. Un maximo de 5 intentos para una cuenta que existe en el servidor.
DENY_THRESHOLD_ROOT=1
Numero de intentos para el acceso como root
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
Reportar entradas sospechosas.
HOSTNAME_LOOKUP=YES
Si es posible apuntar el nombre de host.
LOCK_FILE = /var/run/denyhosts.pid
Donde guarda el pid el programa.
ADMIN_EMAIL = root@localhost
SMTP_HOST = localhost
SMTP_PORT = 25
SMTP_FROM = DenyHosts <nobody@localhost>
SMTP_SUBJECT = Reporte DenyHosts
Para que nos notifique por correo los baneos.
SYSLOG_REPORT=NO
Si queremos que nos reporte los ficheros de sistema.
AGE_RESET_VALID=5d
Periodo de tiempo tras el cual se reiniciará el contador de intentos para los usuarios validos
AGE_RESET_ROOT=25d
Lo mismo pero para el usuario root.
AGE_RESET_INVALID=10d
Para usuarios que nos existen.
RESET_ON_SUCCESS = yes
Se resetearan los intentos al hacer login.
DAEMON_LOG = /var/log/denyhosts
Log del Denyhosts.
DAEMON_SLEEP = 30s
Intervalo de tiempo en el que revisara el log de entrada.
DAEMON_PURGE = 1h
Intervalo de tiempo para quitar los baneos.
SYNC_SERVER = https://xmlrpc.denyhosts.net:9911
SYNC_INTERVAL = 1h
Denyhosts actualizara la lista de hosts baneados cada hora con el servidor de Denyhosts.
SYNC_UPLOAD = yes
SYNC_DOWNLOAD = yes
SYNC_DOWNLOAD_THRESHOLD = 5
Subiremos nuestros hosts baneados, actualizaremos nuestra lista con los hosts que han subido otros usuarios, pero solamente los que le coinciden al menos a 5 usuarios.
Ahora solamente tenemos que arrancar el denyhosts.
/etc/init.d/denyhosts start
Como has podido comprobar configurar Denyhosts, no tiene mucha complicacion, aunque lo ideal es complementarlo con un buen iptables.
Si tuvieras cualquier duda para configurarlo, aqui te dejo un asistente para generar el fichero de configuracion.
Para cualquier duda o consulta no dudes en consultarme.