Cuando tenemos un servidor con Linux andando, uno de los principales ataques que solemos sufrir, son los de fuerza bruta.
Estos ataques se basan en bot o redes de bot que usan combinaciones de usuarios y contraseñas, mediante diccionarios.
Una buena configuración de Denyhosts nos puede ayudar a proteger nuestro servidor de estos ataques.
Indice de Contenidos
¿Que es y porque asegurar tu servidor con Denyhosts?
Denyhosts, lo que hace es analizar el fichero «/var/log/auth.log» y ver los logins fallidos que hay. Según lo que le indiquemos en el fichero de configuración, baneará esa ip introduciendola en /etc/hosts.deny o le dejara algún reintento mas.
Instalación
Primeramente lo instalamos
apt-get install denyshosts
Configuración de Denyhosts
Una vez instalado vamos configurarlo, para ello editaremos el archivo denyshots.conf, que lo encontraremos en la siguiente ruta «/etc/denyhosts.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 especificamos todos.
DENY_THRESHOLD_INVALID = 3
Numero de intentos para una cuenta que no existe. Lo vamos a dejar en 3 intentos. Básicamente porque es bastante sospechoso que un usuario intente 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
Notificaciones
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.
Baneos
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.
Reinicio
/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.
Asistente de Configuracion de Denyhosts
Para cualquier duda o consulta no dudes en consultarme.
Deja un Comentario
Debes de estar logueado para comentar.