Configurar Fail2Ban en VPS con Plesk y CentOS

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.

configurar-fail2ban

¿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.

fail2ban-configurar-direccion-de-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.

Fail2Ban: Incluir nombre del servidor en el asunto de las notificaciones

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

2 comentarios en “Configurar Fail2Ban en VPS con Plesk y CentOS

  1. Luis Enrique

    LA verdad soy muy nuevo en esto de echo noob, me costo como no tienes idea agregar una linea de MySql al servidor y con esto creo que me llevare muchas horas, me interesaría como cambiar las DNS de mi VPS , como todo proveedor aveces te lo dan pre configurado y el dominio principal solo viene a puntado la ip del servidor, pero no se como personalizar las ns de dominio principal para que mis demás dominios cojan por ejemplo ns1.midominio.com estoy un poco confundido al igual ya que no se si tenga que ver con el nombre del host del servidor desde el panel de plesk, sabrás de casualidad como configurar correctamente esa parte ? cabe mencionar que solo tengo una ip dedicada y no se si se pueda hacer solo con una ip o se requiere 2 ip para configurar ns1 y ns1 saludos excelente post

    Responder
    1. Hablando de Internet (Administrador)

      Buenos días Luis Enrique,

      La verdad es que con este tema no te podemos ayudar mucho porque para la gestión de DNS utilizamos siempre un servicio externo dedicado y configuramos todo allí. Usamos los servicios de DNSmadeEasy y también de DYN. De esta forma nunca perdemos la conectividad DNS.

      No obstante lo que si que te podemos decir es que te hacen falta dos IPs: Según las especificaciones RFC 2182 (“Selection and Operation of Secondary DNS Servers”) del Grupo Especial sobre Ingeniería de Internet (“Internet Engineering Task Force” – IETF) todo dominio de Internet debe tener al menos dos servidores DNS con IP distinta.

      Siento que no te podamos ayudar más.

      Responder

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Los comentarios de esta página se procesan por un sistema automático de moderación por lo cual no siempre se publican de forma instantánea. Por favor respeta a los demás y ciñete al tema del post. Nos reservamos el derecho de eliminar cualquier comentario o enlace que nos parezca inadecuado o tenga una expresión de grosería, insulto, odio, hostilidad o negatividad.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.