Icono del sitio Binario 0

Cómo Proteger tu Servidor OpenVPN con Fail2Ban

Artículos Guías Manuales Sistemas Linux Windows Binario 0

Artículos Guías Manuales Sistemas Linux Windows Binario 0

FacebookEmailWhatsAppLinkedInRedditXShare

Guía paso a paso para proteger OpenVPN con Fail2Ban y cómo configurar todos los archivos necesarios. Fail2Ban es una herramienta que ayuda a proteger servicios como OpenVPN al bloquear las direcciones IP que muestran comportamientos sospechosos, como intentos de inicio de sesión fallidos.

Paso 1: Instalar Fail2Ban

Si no tienes Fail2Ban instalado, sigue estos pasos para instalarlo:

En Ubuntu/Debian:

sudo apt update
sudo apt install fail2ban

En CentOS/RHEL:

sudo yum install epel-release
sudo yum install fail2ban

Paso 2: Configurar Fail2Ban

1. Crear la configuración local

Primero, debes crear un archivo de configuración local para evitar modificar el archivo original, lo cual es útil en caso de que Fail2Ban se actualice:

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

Ahora editamos el archivo jail.local:

sudo nano /etc/fail2ban/jail.local

2. Crear una sección para OpenVPN

Debes crear una nueva "jail" para OpenVPN en el archivo jail.local para monitorear los intentos fallidos de inicio de sesión en el servicio OpenVPN.

Añade lo siguiente al final del archivo jail.local:

[openvpn]
enabled = true
port = 1194
protocol = udp
filter = openvpn
logpath = /var/log/openvpn.log
maxretry = 3
bantime = 3600

Paso 3: Configurar el filtro de OpenVPN en Fail2Ban

Fail2Ban usa expresiones regulares para detectar comportamientos sospechosos. Necesitamos crear un archivo de filtro para OpenVPN.

1. Crear el archivo de filtro:

sudo nano /etc/fail2ban/filter.d/openvpn.conf

2. Añadir reglas al filtro

Dentro de este archivo, añade las siguientes líneas:

[Definition]
failregex = ^.*?TLS Error: incoming packet authentication failed from \[AF_INET\]::<HOST>:.*
ignoreregex =

o
[Definition]
failregex = ^ (.*) TLS Error: incoming packet authentication failed from \[AF_INET\]<HOST>:\d+$
^ (.*) <HOST>:\d+ Connection reset, restarting
^ (.*) <HOST>:\d+ TLS Auth Error
^ (.*) <HOST>:\d+ TLS Error: TLS handshake failed$
^ (.*) <HOST>:\d+ VERIFY ERROR
^ (.*) <HOST>:\d+ TLS Error: TLS key negotiation failed to occur within 60 seconds.*$
ignoreregex =

Esto detectará los intentos fallidos de autenticación en OpenVPN. El patrón failregex define lo que Fail2Ban debe buscar en los registros de OpenVPN.

Paso 4: Configurar OpenVPN para Fail2Ban

Fail2Ban necesita tener acceso a los registros de OpenVPN. Asegúrate de que OpenVPN está configurado para registrar adecuadamente.

1. Verificar el archivo de configuración de OpenVPN:

Abre el archivo de configuración de OpenVPN:

sudo nano /etc/openvpn/server.conf

2. Asegúrate de que la opción de registro esté habilitada:

Debes tener una línea en tu archivo de configuración que especifique el archivo de registro:

status /var/log/openvpn.log

Guarda el archivo y reinicia OpenVPN para aplicar los cambios:

sudo systemctl restart openvpn@server

Paso 5: Reiniciar Fail2Ban

Ahora que tienes todo configurado, reinicia Fail2Ban para que cargue la nueva configuración:

sudo systemctl restart fail2ban

Paso 6: Verificar que Fail2Ban está funcionando

Para verificar que Fail2Ban está monitoreando OpenVPN correctamente, puedes usar el siguiente comando:

sudo fail2ban-client status openvpn

Este comando debería mostrarte información sobre las IPs baneadas y el estado de la "jail" de OpenVPN.

Paso 7: Ajustar la configuración según sea necesario

Si deseas ajustar el tiempo de baneo, la cantidad de intentos fallidos o cualquier otro parámetro, puedes editar el archivo jail.local y luego reiniciar Fail2Ban para aplicar los cambios:

sudo nano /etc/fail2ban/jail.local
sudo systemctl restart fail2ban

Conclusión

Siguiendo estos pasos, habrás configurado Fail2Ban para proteger tu servidor OpenVPN de intentos fallidos de autenticación. Fail2Ban bloqueará automáticamente las direcciones IP que intenten realizar ataques de fuerza bruta contra tu servicio de VPN. Es una capa adicional de seguridad que puede proteger eficazmente tu servidor contra ataques maliciosos.

Salir de la versión móvil