Hoy nos adentraremos un poco más en el funcionamiento de este programa, integrándolo en el cortafuegos "UFW" y creando una jaula desde cero para "OPENVPN".
Cuando baneamos cualquier ip a través de "JAILBAN", este crea una regla en "iptables" para denegar el acceso a dicha ip mediante una acción. La acción por defecto que utiliza el programa se encuentra en el archivo "/etc/fail2ban/action.d/iptables-multiport.conf" Si, como es mi caso, tenemos instalado el programa "UFW", estas reglas no se ven reflejadas en el propio programa.
Para solucionar el problema crearemos un archivo que contenga las acciones personalizadas para "UFW" para la jaula "OPENVPN":
$ sudo nano /etc/fail2ban/action.d/ufw-openvpn.conf
Añadiremos las siguientes líneas:
[Definition]
actionstart = actionstop = actioncheck = actionban = ufw insert 1 deny from <ip> to any port 1194 # Definimos la acción de baneo para que deniege el acceso a la ip a través del puerto 1194 como primera regla. actionunban = ufw delete deny from <ip> to any port 1194 # Declararamos la acción de desbaneo para que borre la regla descrita en "actionban". |
Lo siguiente será determinar los filtros que utilizará "FAIL2BAN" para activar las acción de baneo. Por tanto, crearemos un nuevo archivo en "/etc/fail2ban/filter.d/", que es el directorio donde se encuentra todos los filtros del programa:
$ sudo nano /etc/fail2ban/filter.d/openvpn.conf
Añadimos estos parámetros:
[INCLUDES]
before = common.conf [Definition] _daemon = openvpn # Definimos el demonio # Declaramos el filtro de fallo con la ayuda de la expresiones regulares failregex = <HOST>:[0-9]{4,5} TLS Auth Error: Auth Username/Password verificatio n failed for peer ignoreregex = |
Una vez guardado, solo nos queda configurar nuestra jaula:
$ sudo nano /etc/fail2ban/jail.conf
Añadimos al final del archivo:
[openvpn]
enabled = true # Activamos la jaula. port = 1194 # Señalamos el puerto protocol = udp # Indicamos el protocolo filter = openvpn # Declaramos la ruta del archivo del filtro que configuramos en #/etc/fail2ban/filter.d/openvpn.conf banaction = ufw-openvpn # Archivo que contiene las acciones que añadimos en #/etc/fail2ban/action.d/ufw-openvpn. logpath = /var/log/openvpn.log # Ruta donde se encuentra los logs de registro en el cual se #aplicarán los filtros. maxretry = 3 # Numero maximo de intentos de acceso. |
Ya tenemos lista nuestra jaula para "OPENVPN".
Para probarla, monitorizamos los logs de "FAILBAN":
$ sudo tail -f /var/log/fai2ban.log
Intentaremos acceder desde cualquier pc o dispositivo con credenciales erróneas.
Tras tres intentos fallidos, veremos reflejados en el archivo log como se ha baneado la ip:
Si también nos fijamos en "UFW", una nueva regla se ha añadido en la tabla, denegando el acceso a la ip del dispositvo al puerto 1194.
Si queremos desbanear la ip, solo tendremos que borrar dicha regla.
$ sudo ufw delete 1
En este tutorial hemos adquirido los conocimientos suficientes para crear nuestra propia jaula, aplicar nuestros propios filtros y acciones para evitar los ataques de fuerza bruta hacia los servicios más críticos de nuestra red doméstica.
Un saludo...
No hay comentarios:
Publicar un comentario