Estos dos programas buscan registros de fallos repetidos de acceso al ssh y en caso de detectar demasiados errores desde un mismo host (que se supone que entonces está tratando de violar la seguridad del sistema) automáticamente lo bloquean.
En el caso de fail2ban el bloqueo es temporal (normalmente se configura para que sea unos minutos) de tal forma que es suficiente para «aburrir» a un zombie pero nos permite repetir el acceso en caso de una configuración del cliente erronea.
Para instalarlo:
$ sudo apt-get install fail2ban
Aunque viene con una configuración por defecto que funciona sin problemas con el servicio open-SSH que trae Ubuntu, en el caso de que queramos variar su comportamiento el archivo de configuración lo encontramos en /etc/fail2ban/jail.conf . Podemos editarlo con:
$sudo nano /etc/fail2ban/jail.conf
Las reglas están comentadas, una vez que hagamos las modificaciones que nos interesen podemos reiniciar el servicio con:
$ sudo /etc/init.d/fail2ban restart
Podemos consultar un registro de su actividad en /var/log/fail2ban.log , mediante el comando cat podemos ver su salida:
$ cat /var/log/fail2ban.log
Respecto a denyhosts se basa en el análisis de los registros de acceso del servidor SSH pero también en listas de IPs malignas conocidas que se descargan y sincronizan desde el servidor principal de DenyHosts. Esto hace que estemos prevenidos de ellas incluso desde antes de que nos ataquen.
Para instalarlo, como siempre:
$ sudo apt-get install denyhosts
Una vez instalado la configuración viene determinada por /etc/denyhosts.conf , si queremos editarlo:
$ sudo nano /etc/denyhosts.conf
Aquí veremos varias posibilidades muy interesantes. Entre ellas podemos definir que se sincronice con el servidor de DenyHosts de forma periódica mediante la línea:
SYNC_SERVER = http://xmlrpc.denyhosts.net:9911
Con descomentarla borrando # es suficiente para activarlo. La actividad de sincronización con el servidor queda registrada en /var/log/denyhosts, con un:
$ cat /var/log/denyhosts
podemos consultarla para ver cómo va.
Si además queremos que cada vez que actúe se registre en los registros del sistema, deberemos poner en el archivo de configuración SYSLOG_REPORT a Yes:
SYSLOG_REPORT=YES
Hay muchas más opciones perfectamente comentadas (en inglés) para que lo ajustemos a nuestro gusto.
Las IPs que van siendo «castigadas» se suman a /etc/hosts.deny y el propio demonio se encarga de enviarnos un mail con la información de accesos erróneos y bloqueos.
Con estos dos programas y con las modificaciones de la configuración de ssh que comentamos en el artículo anterior tendremos nuestro sistema protegido de una manera muy básica, nada potente pero al menos muy fácil. Si alguien intentara introducirse en nuestro sistema es probable que terminara haciéndolo pero por lo menos nos protegemos de algunos scripts maliciosos, de zombies y de bots.
Deja una respuesta