Abuseipdb + Mikrotik: Baneo preventivo de IP

Todo aparato con una IP recibe conexiones deseadas e indeseadas. Nuestra misión es reducir las conexiones indeseadas lo más posible. Continua leyendo y os explicaré como aprovecharnos de un servicio de blacklist de internet para prevenir ciertas conexiones

Como siempre intento compartiros unas experiencias propias y en este caso nos apoyaremos en el servicio de https://www.abuseipdb.com/ (tiene tanto un plan gratuito como opciones de pago). Esta vez nos centraremos en automatizar la bajada de la blacklist y la carga en nuestro router mikrotik

Obtener la key para el API

Nos registraremos en la web y entrando en nuestra zona de usuario crearemos una «key» de su API

Script en equipo Windows

Vamos a apoyarnos en un equipo (en este ejemplo windows) para realizar los siguientes pasos:

  • Conectar al API para bajar las IP
  • Preparar el fichero para procesarlo en Mikrotik
  • Subir el fichero por ftp al Mikrotik
  • Conectar por ssh para procesar el fichero

Vamos a crear una carpeta donde dejaremos todos los ficheros, por ejemplo c:\abusedb

Dentro crearemos abusedb.bat con:

SetLocal EnableDelayedExpansion
set content=
set iplist=c:\abusedb\abusedb.txt
set output=c:\abusedb\salida.rsc
echo off
del c:\abusedb\salida.rsc
curl -G https://api.abuseipdb.com/api/v2/blacklist -d confidenceMinimum=90 -H "Key:$APIKEY" -H "Accept: text/plain" -o !iplist!

for /F "delims=" %%i in (!iplist!) do (call :bucle %%i)
echo on

ftp -i -s:c:\abusedb\ftp.config
putty.exe -ssh usuario@ip -pw password -m c:\abusedb\ssh.config

:bucle
if %1 == [] (echo ok) else (set content=/ip firewall address-list add list=ABUSEDB address=%1)
echo %content% >> !output!

Necesitaremos el fichero de ftp.config (con los parametros del ftp)

open $IP
$USUARIO
$PASSWORD
binary
put c:\abusedb\salida.rsc
disconnect
quit

Y el fichero de ssh.config (con el comando del ssh para ejecutar via putty)

/system script run abusedb

Podemos ejecutar el fichero abusedb.bat una vez al día con el programador de tareas de windows o con la herramienta que tengamos para ejecutar procesos de manera automatizada.

Conforme se ejecute siempre creará 2 ficheros:

  • abusedb.txt: fichero tal cual baja del API
  • salida.rsc: fichero listo para subir a Mikrotik y procesar

Script en mikrotik

En Mikrotik crearemos un Script (dentro del menú System>Script) que se llamará «abusedb»

/ip firewall address-list remove [/ip firewall address-list find list=ABUSEDB]
/import salida.rsc

Este Script borrará todas las IP que tengamos anteriores en la lista ABUSEDB y volverá a cargar todas las IP desde el fichero que hemos cargado vía ftp

Drop en mikrotik

Para «rematar» la faena, solo nos falta decirle a nuestro mikrotik que todas las conexiones que lleguen desde las IP de la lista ABUSEDB les haga drop directamente.

Para esto la opción más eficiente es crear una regla en IP>Firewall>Raw

Espero que os sea útil, suscribiros para que os lleguen avisos de la próxima entrada y no dudéis en comentar o mandar un mensaje con cualquier consulta, aportación o inquietud que tengáis…

… y si algo sale mal… La Culpa de Sistemas 😉

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

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