Integraciones de firewall

Conectar Q-Feeds a MikroTik RouterOS

Dos scripts de código abierto mantienen llena de direcciones IP maliciosas una address-list de RouterOS. Uno hace la importación completa, el otro recoge solo los cambios, y el programador ejecuta ambos para que sus reglas de filtrado trabajen siempre con inteligencia actual.

Los scripts son de código abierto y están en GitHub: Q-Feeds/Q-Feeds-Integration-for-Mikrotik-RouterOS. Descárguelos siempre de allí para tener con seguridad la versión actual. Necesita permisos de administrador en el router, HTTPS saliente a api.qfeeds.com y un token API de Q-Feeds. Consulte Obtener sus threat feeds.

Requisitos

  • RouterOS: 7.15 o posterior, probado en 7.15, 7.17 y 7.20
  • Permisos: una cuenta con permisos de administrador completos
  • Feed: lista de IP maliciosas (feed_type=malware_ip)
  • Red: HTTPS saliente del router hacia api.qfeeds.com
  • Address-list: Malware-List, que los scripts crean si todavía no existe

Obtener los scripts

El repositorio contiene dos archivos:

  • Malware Import FULL.rsc carga la lista completa.
  • Malware Import DIFF.rsc aplica solo los cambios desde su última descarga.

Abra ambos en GitHub y copie su contenido, o descargue el repositorio en ZIP. En el router no se instala nada, se pega el texto del script en RouterOS.

Poner su token

Ambos scripts empiezan con un bloque corto de variables. Sustituya el token de ejemplo por el suyo:

:local apitoken "YOUR_API_TOKEN_HERE";

La siguiente variable decide dónde se guardan las entradas:

:local useDynamic "yes";
  • "yes" mantiene las entradas en RAM. Desaparecen al reiniciar y el programador las restaura en la siguiente ejecución. Es el valor por defecto y la opción adecuada con actualizaciones frecuentes, porque nunca se escribe en la memoria flash del router.
  • "no" escribe las entradas en disco. Sobreviven a un reinicio, pero con una lista de este tamaño y una actualización cada veinte minutos se desgasta la flash y crece el archivo de configuración.

Añadir los scripts en RouterOS

En Winbox o WebFig, vaya a System, Scripts y cree dos scripts. Los nombres importan, porque la importación completa busca el programador diferencial por su nombre:

  • Malware Update - Full con el contenido de Malware Import FULL.rsc
  • Malware Update - Diff con el contenido de Malware Import DIFF.rsc

Dé a los dos scripts las políticas read, write, policy y test, o no podrán gestionar la address-list ni el programador.

Crear los programadores

/system scheduler add name="Malware Update - Full" \
    start-time=startup interval=1d \
    on-event="Malware Update - Full"

/system scheduler add name="Malware Update - Diff" \
    start-time=startup interval=20m \
    on-event="Malware Update - Diff"

Ejecute la importación completa a diario o cada semana. Ajuste el intervalo del diferencial a su licencia: 1d en Community, 4h en Plus y 20m en Premium. Consultar más a menudo de lo que permite la licencia no devuelve nada nuevo.

Ejecute la importación completa una vez a mano antes de confiar en la actualización diferencial. La API devuelve los cambios desde su última descarga, así que sin una primera descarga completa no hay base y el diferencial se queda vacío.

/system script run "Malware Update - Full"

Bloquear el tráfico

Los scripts solo llenan la lista. Las reglas de filtrado las crea usted, por ejemplo:

/ip firewall filter
add chain=forward src-address-list="Malware-List" action=drop \
    comment="Q-Feeds: drop traffic from malicious hosts"
add chain=forward dst-address-list="Malware-List" action=drop \
    comment="Q-Feeds: drop traffic to malicious hosts"

Coloque las reglas lo bastante arriba en la cadena para que se evalúen antes de una regla accept general, y añada reglas en la cadena input si también quiere proteger el propio router.

Cómo funciona

  • Importación completa: el script desactiva el programador diferencial, renombra las entradas actuales a Malware-List - Old, descarga el feed página a página en bloques de 4.000 direcciones y se detiene en cuanto una página vuelve vacía.
  • Reversión: las entradas antiguas solo se eliminan cuando la importación ha producido entradas de verdad. Si falla la descarga, la lista anterior se renombra de vuelta y el router conserva su protección.
  • Actualización diferencial: las líneas con + delante entran en la address-list y las líneas con - salen. Cada clave API tiene su propio historial, así que recibe exactamente los cambios desde su última descarga, dentro del ritmo de su licencia.
  • Coordinación: la importación completa apaga el programador diferencial mientras se ejecuta y lo vuelve a encender después, para que nunca se estorben.
  • Formatos de dirección: IPv4, IPv6 y notación CIDR como 192.0.2.0/24. RouterOS valida cada dirección y omite en silencio lo que no puede interpretar.
  • Registro: ambos scripts apagan la primera acción de logging mientras se ejecutan, para no llenar el log con miles de líneas sueltas, y la vuelven a encender al terminar.

Comprobar

/ip firewall address-list print count-only where list="Malware-List"
/ip firewall address-list print where list="Malware-List"
/log print where message~"Malware"
/system scheduler print

Tras una importación completa correcta, el contador llega a cientos de miles según su licencia, y el log muestra una línea por página procesada más un mensaje final.

Resolución de problemas

  • La lista sigue vacía: revise el token en los dos scripts, confirme que el router llega a https://api.qfeeds.com y lance la importación completa a mano desde el terminal.
  • El diferencial nunca cambia nada: ejecute primero la importación completa. Use el mismo token API en los dos scripts, porque el historial va ligado a la clave.
  • La lista desaparece tras reiniciar: es lo esperado con useDynamic "yes". El programador la vuelve a llenar en la siguiente ejecución. Ponga la variable en "no" solo si necesita persistencia de verdad.
  • Reversión en el log: la importación falló y se restauró la lista anterior. Revise la conectividad, la validez del token y la memoria libre del router.
  • No se ejecuta nada: mire con /system scheduler print si hay algún programador desactivado y compruebe que los nombres de los scripts coinciden exactamente con los de los programadores.
  • Soporte: support@qfeeds.com o la página de soporte. ¿Ha encontrado un fallo en los scripts? Abra una issue en el repositorio de GitHub.

Los feeds de URL maliciosas de Q-Feeds no son compatibles con RouterOS. Una address list compara direcciones IP, y solo un proxy o un filtro web puede inspeccionar la ruta completa de una URL. Quédese aquí con el feed de IP de malware.

Ver los scripts en GitHub Sobre la integración con MikroTik

¡Evalúe nuestra inteligencia hoy mismo!

Simplifique sus operaciones de seguridad, inicie su prueba gratuita de Q-Feeds y compruebe la diferencia.

Activar el acceso gratuito