Registrar ataques fail2ban con geolocalización en mysql

por | 7 octubre, 2017

Después de algunas entradas que había publicado sobre el tema, he querido ir más allá. La idea es registrar todos intentos fallidos que recibimos con los avisos de Fail2ban en una base de datos y, aparte de eso, obtener la geolocalización de cada IP e incluirla en la tabla. Esto os puede servir para sacar estadísticas de ataques que reciben en sus servidores y establecer medidas de seguridad en el caso de que se incremente los ataques en algún servicio en especial. También podemos obtener, por ejemplo, un listado de las IPs que más se repiten o de las ubicaciones desde las cuales recibimos más ataques. Esta sería la versión beta y, por supuesto, está abierta a mejoras.

Fail2ban con geolocalización en mysql

En primer lugar debemos conectarnos a mysql, ya sea desde la consola o con phpmyadmin para ejecutar los comandos que nos ayudarán a crear la base de datos donde volcaremos toda la información.

Crear base de datos fail2ban

Crear tabla baneados

Con los comandos anteriores creamos una base de datos y una tabla similar a la que se muestra a continuación.

fail2ban con geolocalización en mysql

Pues bien, ahora vamos a proceder con la creación del script que hará la parte más importante de este proyecto. Crearemos un script en la ubicación que queramos con con el nombre “baneados”.

En las líneas comentadas podrás ver que hace cada parte del script.

Script geolocalización y registro mysql

Damos permisos al script que hemos creado.

Configuración Fail2ban

Ahora necesitamos incluir en las acciones de Fail2ban la ejecución del script que hemos preparado, para ello tenemos que editar la acción o acciones que utilizamos habitualmente, en mi caso sería “iptables-multiport.conf “, en caso de utilizar otro tipo de acciones, realizar la misma operación con el resto.

Editar vi /etc/fail2ban/action.d/iptables-multiport.conf y agregar ruta del script debajo de la línea “actionban”, tal y como se muestra a continuación

Ojo, es importante incluir las variables de <name> y <ip> después de la ruta del script, ya que las necesita para completar la información que se insertará en la base de datos.

Por último solo tenemos que reiniciar fail2ban para que los cambios surtan efecto.

Podéis hacer una prueba ejecutando el script e indicando los parámetros con una IP y Nombre inventados.

Si revisáis en vuestra base de datos, podréis ver el resultado como se muestra a continuación.

fail2ban con geolocalización en mysql

Entradas relacionadas

Mapear carpeta remota en linux con sshfs Tengo 2 servidores linux y necesito compartir carpetas entre ambos sin usar samba. ¿Como hago para mapear una carpeta usando ssh?. Es posible que ...
Envío de avisos Fail2ban con Gmail Si utilizas Fail2ban para bloquear los ataques por fuerza bruta en tu servidor, probablemente estarás interesado en recibir un correo con cada acción ...
Registrar baneados por fail2ban en base de datos m... Registrar baneados por fail2ban en mysql Hoy os explicaré un script para registrar baneados por fail2ban en una base de datos mysql. Esto nos puede s...

Un pensamiento en “Registrar ataques fail2ban con geolocalización en mysql

  1. Pingback: Registrar baneados por fail2ban en base de datos mysql | elAyo Sistemas

Los comentarios están cerrados.