Fail2Ban

Vigila el fichero de log de los servidores que tengamos instalados y banea aquellas IPs que hayan hecho un intento ilegal de entrar en el sistema mediante fuerza bruta:

sudo apt-get -y update

sudo apt install fail2ban

Ahora copiaremos el archivo de configuración por defecto de Fail2Ban como jail.local que sera ejecutado y nos sobreescribira las configuraciones que tengamos en jail.conf , ponemos el siguiente comando en el terminal SSH:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Y ahora abriremos el archivo copiado con el comando:

sudo nano /etc/fail2ban/jail.local

En la sección [DEFAULT], esta la configuración genérica del servicio:

ignoreip (IPs que no deseemos que se baneen, son las correspondientes al localhost y a la IP local del PC desde el que accedemos normalmente).

bantime (tiempo de baneo, expresado en segundos).

maxretry (numero de intentos fallidos de login para que se active el baneo).

En las secciones ([ssh] y [ssh-ddos]) se activa la seguridad del servidor SSH contra ataques de fuerza bruta y/o contra ataques DDoS (Distributed Denial of Service):

enabled = true al comienzo de cada una, para que se active.

port = ssh si se esta usando el puerto (22) o bien ponemos el número del puerto por el que este corriendo.

Modificamos su contenido, que quedará así:

[DEFAULT] 
# "ignoreip" can be an IP address, a CIDR mask or a DNS host 
ignoreip = 127.0.0.1/8 192.168.1.55
bantime = 1000
maxretry = 3

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

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

Fail2ban se puede aplicar también a otros web, servidores FTP o de correo.

Al acabar la configuración hay que reiniciar el servicio:

sudo /etc/init.d/fail2ban restart

Podemos comprobar:

Como conocer su estado:

sudo /etc/init.d/fail2ban status

Ver los servicos activos:

sudo fail2ban-client status

O el estado actual de un servicio, que nos mostrará si tiene alguna IP baneada en este momento.  En el caso del ssh :

sudo fail2ban-client status ssh

También se puede analizar fichero de log para comprobar si ha habido intentos de acceso no autorizados:

sudo cat /var/log/fail2ban.log

 

RECIBIR UN CORREO DE ALERTA AL BLOQUEAR UNA IP (aun por probar)

Podemos hacer que Fail2ban nos envíe un correo cuando detecte un intento de intrusión y bloquee una determinada IP, informándonos de este hecho. Para lograrlo, lo primero que hemos de hacer es  instalar un sistema de envío de correos desde la terminal.

Luego volvemos al fichero de configuración de Fail2ban:

sudo nano /etc/fail2ban/jail.conf

Dentro de él, en la sección # ACTIONS, localizamos y configuramos los siguientes parámetros:

destemail = Dirección de email para recibir los avisos

sender = pi@raspberrypi [Este es el email del remitente]

mta = mail [Servidor de correo que usamos]

action = %(action_mw)s [Está al final de la sección]

En la primera línea hemos de escribir la dirección de email en la que deseamos recibir los avisos, mientras que en las demás pondremos únicamente lo que aparece en color rojo.

Hecho lo anterior, guardamos los cambios realizados en el fichero y reiniciamos el servicio:

sudo service fail2ban restart

Así, cada vez que haya un intento de acceso no autorizado y se bloquee la IP correspondiente, enviando un aviso a la dirección de correo indicado con información sobre la IP y el ISP desde los que se ha intentado acceder sin permiso a nuestra máquina. También también avisará cada vez que se detenga o se reactive el servicio.