Intentos de intrusión en el servidor: Denyhosts

Denyhosts es un programa desarrollado en Python que se usa para evitar intrusiones en nuestro sistema, ya sean intentos de autenticación fallidos, ataques basados en diccionario o ataques por fuerza bruta por SSH.
Lo primero que debemos hacer es asegurarnos que tenemos Python instalado en nuestro equipo (con el comando ‘python  –V’ nos muestra la versión instalada). Después actualizamos los repositorios e instalamos nuestro programa:
apt-get update
apt-get install denyhosts
El funcionamiento de Denyhosts se basa en analizar cada cierto tiempo los registros de acceso al servidor (en Debian, el archivo es /var/log/auth.log) y si detecta demasiados errores de acceso desde una misma IP, esa dirección pasa a formar parte de una “lista negra” que el servicio SSH examina e impide que se inicie sesión desde ella.
Primero configuraremos el archivo /etc/denyhosts.conf. En él, entre otras cosas, podemos definir el número máximo de intentos fallidos de conexión con el servidor antes de bloquear esa IP, tanto de usuarios existentes (DENY_THRESHOLD_VALID), como inexistentes (DENY_THRESHOLD_INVALID) poniendo los valores que creamos oportunos. Incluso podríamos limitar los intentos de acceso de ROOT (DENY_THRESHOLD_ROOT). En ese mismo archivo de configuración  podemos enviarnos un correo cuando una IP sea baneada añadiendo una dirección de correo en la cláusula ADMIN_EMAIL, el servidor SMTP (SMTP_HOST) y el puerto (SMTP_PORT). Otra de las posibles configuraciones interesantes es el indicarle qué servicios queremos bloquear para la IP bloqueada. Por defecto únicamente impedirá el acceso por SSH, pero en BLOCK_SERVICE podemos añadir otro servicio o todos.
A continuación modificamos el archivo hosts.allow. En él incluiremos las IPs desde donde nos vamos a conectar para evitar ser bloqueados por cualquier error.
Nano /etc/hosts.allow
Y añadimos la línea:
sshd: (IP correspondiente)(Para no bloquear el servicio SSH en la dirección indicada) o
ALL: (IP correspondiente) (Para no bloquear ningún servicio en esa IP)
Captura
En el archivo /etc/hosts.deny encontraremos todas las direcciones IP bloqueadas por denyhosts. Se van añadiendo al final del archivo:
 
Captura2
Para desbloquear una IP que aparezca en este archivo puedes seguir los pasos que se describen en esta página: https://volkanrivera.com/esp/2009/07/removiendo-un-ip-valido-de-denyhosts/
Para reiniciar el servicio después de las configuraciones escribimos /etc/init.d/denyhosts restart.