Skip to main content

Cómo instalar y poner en marcha Fail2ban en Ubuntu Server 12.04 LTS

Fail2ban es una pequeña utilidad que se ejecuta en el servidor y que monitoria varios archivos de log del sistema. Cuando detecta un comportamiento sospechoso proveniente de un visitante en alguno de los servicios que monitoriza lo banea para que deje de molestar.

La configuración por defecto de Fail2ban monitoriza el servicio ssh, pero puede además monitorizar, el ftp, el mail, o el servicio web entro otros si se activa y configura adecuadamente.

Para instalar Fail2ban ejecutamos en un terminal el siguiente comando.

sudo aptitude install fail2ban

Una vez instalado vamos a editar su fichero de configuración. Lo abrimos con:

sudo nano /etc/fail2ban/jail.conf

El archivo se organiza en pequeñas secciones llamadas jaulas, donde se configura como se monitoriza un servicio en concreto. Todas estas jaulas tienen una línea con donde se puede activar o desactivar cambiando enable a false o true. Veamos la jaula para SSH:


[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6

Tal como esta, funciona perfectamente sin cambiar nada. Nos aseguramos que en nuestro fichero de configuración este también en true. Si el puerto por el que accedemos al servicio SSH esta cambiado por otro debemos también cambiarlo en la configuración de la jaula por el que corresponda. La línea con maxretry indica que en esta jaula cuando el visitante malicioso intente ingresar más de 6 veces será baneado el tiempo en segundos que indique la línea:

bantime = 600

Si queremos que cuando Fail2ban banea a un visitante malicioso nos envíe un correo para informarnos, podemos poner el correo de destino en la línea:

destemail = usuario@example.com

Y podemos pedir que el informe enviado a nuestro correo sea bastante completo cambiando la línea:

action = %(action_)s

por:

action = %(action_mwl)s

Cuando estemos satisfechos con los cambios guardamos y reiniciamos fail2ban con:

sudo service fail2ban restart

Y para conocer el estado del servicio Fail2ban podemos usar:

sudo fail2ban-client status

Endureciendo SSH en Ubuntu Server 12.04 LTS

Endureciendo SSH o más técnicamente SSH Hardening es una labor que debemos realizar inmediatamente después de dejar instalado nuestro servidor.

Una vez creemos los usuarios administrativos para operar con el servidor debemos usar llaves publicas para acceder a él. Esto lo vimos recientemente en Identificación con el servidor SSH usando llaves RSA Ubuntu server 12.04 LTS. Simultáneamente activaremos un contrafuegos tal como vimos en Configurar cortafuegos UFW en servidor Ubuntu 12.04 LTS .

Después haremos algunas modificaciones al archivo de configuración de Open ssh. Desde la línea de comando haremos una copia de seguridad del archivo de configuración:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original
Seguidamente abrimos para editar con:
sudo nano /etc/ssh/sshd_config
Revisaremos las siguientes claves para que queden de la siguiente manera. Evitamos que el usuario root puede acceder remotamente. El usuario root es un administrador con nombre de usuario conocido y va a ser el que sufra más frecuentes ataques.
Nos aseguramos que SSH usa el protocolo más reciente.
Cambiamos el puerto. Pero para hacer esto debemos asegurarnos primero que el puerto este habilitado en el cortafuegos, si no perderemos el acceso al servidor.
Obviamente, inhabilita las contraseñas vacías.
Hay bastantes más opciones que pueden fortalecer la seguridad con SSH pero estas dependerán del uso que demos al servidor. Por ejemplo:
Reduce el tiempo para establecer una sesión SSH a 30 segundos.
Aumenta la fortaleza de las llaves. Se puede poner también 2048.
Cierra la conexión con el servidor automáticamente si no hay actividad pasados 10 minutos (60*10 segundos).

Se recomienda además deshabilitar el acceso con contraseñas y usar claves públicas. Alternativamente o simultáneamente se puede usar contraseñas muy fuertes.

Una vez hechos los cambios reiniciamos el servicio SSH con:
sudo /etc/init.d/ssh restart
Por último usar Fail2ban con SSH para banear a IPs sospechosas que intenten entrar en el servidor.

Configurar cortafuegos UFW en servidor Ubuntu 12.04 LTS

Uncomplicated Firewall o UFW es un cortafuegos básico que funciona muy bien y es sencillo de configurar.

Para instalarlo:

sudo apt-get install ufw

Una vez instalado podemos conocer el estado del cortafuegos con:

sudo ufw status verbose

Que en este paso nos dirá que esta inactivo.

Agregamos una reglas para los servicios ssh y http:

sudo ufw allow ssh
sudo ufw allow http

Y ahora lo activamos sin que interrumpa la conexión ssh al servidor con:

sudo ufw enable

Podemos probar que tal hace su trabajo si lo tenemos instalado con nmap:

sudo nmap -r -v -O servidor.com

Donde servidor.com lo sustituimos por nuestro servidor.