Configurar Fail2Ban en VPS con Plesk y CentOS

Etiquetas: ,
Configurar Fail2Ban en VPS con Centos y Plesk

Después del post de ayer sobre como instalar el escaner de CLAM AV en un VPS, hoy un breve post sobre como configurar el envío de emails de Fail2Ban bajo Plesk en un VPS con CENTOS.

Fail2Ban es una aplicación para la prevención de intrusos en un sistema, que actúa penalizando o bloqueando las conexiones remotas que intentan accesos por fuerza bruta.

El problema es que al activar Fail2Ban en el archivo de configuración por defecto usa la dirección de email fail2ban@example.com para realizar el envío de los emails y la dirección you@example.com para la recepción de los mismos.

Estos emails no se pueden entregar al destinatario (you@example.com) y van colapsando la cola de correo electrónico. Dependiendo de la cantidad de bloqueos, puede llegar a haber miles de emails en la cola de mails sin entregar. Y esto puede llegar a ser un problema (además de que no nos enteremos de los bloqueos que se producen, porque no llegan las notificaciones).

La cola de correo electrónico en PLESK se puede ver en Herramientas & Ajustes / Configuración servidor de correo / Cola de correo.

Cuando nos hackean un servidor y envían miles de emails a través de él, aquí es el lugar donde encontraremos el problema y podremos vaciar la cola.

Normalmente con Fail2Ban activado, pero sin configurar las direcciones de email, vamos a encontrar aquí varios cientos de emails que no se pueden entregar a you@example.com.

¿Cómo podemos configurar correctamente las direcciones de email en Fail2Ban?

OJO: Esto solo es para usuarios avanzados. Las instrucciones son para CENTOS 6.

La forma más sencilla es siguiendo estos pasos:

Vamos a la carpeta donde está Fail2Ban:
cd /etc/fail2ban/
Creamos una copia local del archivo de configuración. Así podremos estar seguros que no se perderá la configuración al actualizarse Fail2Ban:
cp jail.conf jail.local
Editamos el archivo de configuración local:
vi jail.local
Reemplazamos you@example.com con la dirección en la cual queremos recibir los avisos (en este ejemplo hemos usado: hola@dominio.es)
:%s/you@example.com/hola@dominio.es/
Reemplazamos fail2ban@example.com con la dirección que queremos que aparezca como remitente de los avisos (en este ejemplo hemos usado: fail2ban@servidor.es)
:%s/fail2ban@example.com/fail2ban@servidor.es/
Guardamos los cambios:
:wq
Forzamos a Fail2Ban a volver a iniciarse. Es posible que este paso haya que ejecutarlo 2 o 3 veces hasta que pare y arranque correctamente el servicio (debe aparecer OK al pararlo y OK al reiniciarlo):
service fail2ban restart

De esta forma tendremos correctamente configurados los avisos de Fail2Ban, no colapsaremos la cola de correo electrónico del servidor y recibiremos los avisos por email.

¿Cómo añadir el nombre del servidor al asunto del aviso?

Si tenéis más de un servidor, seguro que os interesa añadir el nombre del servidor al asunto del aviso. Pues lo podemos hacer de esta forma:

La acción que envía los emails está en:
cd /etc/fail2ban/action.d/
Creamos una copia del archivo de configuración como local y editamos ese archivo. Al igual que antes para no perder la personalización en caso de actualizaciones:
cp sendmail-whois.conf sendmail-whois.local
Editamos el archivo de configuración local:
vi sendmail-whois.local

Hay editar tres líneas. La primera la de «actionstart». El mensaje cuando arranca Fail2ban:
actionstart = printf %%b "Subject: [Fail2Ban] : started
Nos ponemos al final y añadimos el nombre del servidor (si no os deja añadir texto pulsar la tecla INSERT y VI cambiará de modo reemplazar a insertar). En este ejemplo hemos puesto como nombre del servidor SERVIDOR, pero esto hay que personalizarlo. Se quedará así:
actionstart = printf %%b "Subject: [Fail2Ban] : started on SERVIDOR
La primera la de «actionstop». El mensaje cuando paramos Fail2ban:
actionstop = printf %%b "Subject: [Fail2Ban] : started
y la dejamos así:
actionstop = printf %%b "Subject: [Fail2Ban] : started on SERVIDOR
Y finalmente la notificación de un bloqueo:
actionban = printf %%b "Subject: [Fail2Ban] : banned
y la dejamos así:
actionban = printf %%b "Subject: [Fail2Ban] : banned on SERVIDOR

tecla ESC
:wq

Volvemos a arrancar Fail2ban:
service fail2ban restart
y ya tenemos notificaciones incluyendo el nombre del servidor en el asunto.

Créditos imágenes: Shutterstock – fotogestoeber, Shutterstock – watcharakun, Shutterstock – watcharakun, Shutterstock – isak55

Salir de la versión móvil