Volver al Blog
José Manuel Requena Plens

Honeypot en MikroTik: Atrapa y Bloquea Escáneres de Puertos

Configura un honeypot en MikroTik para detectar escáneres de puertos, registrar actividad maliciosa y bloquear atacantes automáticamente con la tabla RAW.

Imagen de portada de Honeypot en MikroTik: Atrapa y Bloquea Escáneres de Puertos

Cualquier router conectado a internet sufre un bombardeo constante de escaneos automatizados. Los bots sondean sistemáticamente todo el espacio de direcciones IPv4 —y cada vez más IPv6— en busca de servicios vulnerables: servidores SSH con contraseñas débiles, bases de datos expuestas, endpoints RDP desactualizados o dispositivos IoT mal configurados.

La mayoría de administradores responden descartando silenciosamente estos paquetes. Pero, ¿y si pudieras convertir estos ataques en inteligencia accionable? Configurando tu router MikroTik como un honeypot ligero, puedes:

  1. Detectar reconocimientos no autorizados antes de que se conviertan en una brecha.
  2. Registrar las IPs de los atacantes para análisis y compartición de threat intelligence.
  3. Bloquear a los actores maliciosos para que no accedan a ningún servicio de tu red.

Esta guía te lleva paso a paso por la implementación de un honeypot listo para producción en RouterOS, con soporte completo para IPv4 e IPv6.


¿Qué es un honeypot?

Un honeypot es un mecanismo de seguridad que crea un sistema señuelo diseñado para atraer y detectar atacantes. Según Fortinet, los honeypots son sistemas intencionalmente vulnerables que alejan a los adversarios de los objetivos legítimos mientras recopilan inteligencia sobre sus métodos. NIST SP 800-53 incluye los honeypots como un control de seguridad formal (SC-26) para detectar y analizar este tipo de ataques.

Existen dos tipos principales de honeypots:

Tipos de honeypots
TipoComplejidadCaso de uso
Baja interacciónSimple, recursos mínimosDetecta escaneos automatizados y sondeos básicos. Simula servicios limitados.
Alta interacciónComplejo, SO/aplicaciones completosInvolucra a atacantes sofisticados para estudiar TTPs avanzados (Tácticas, Técnicas y Procedimientos).

Este enfoque es ligero, no requiere hardware adicional y proporciona protección inmediata a la vez que genera logs valiosos.


Entendiendo los estados de conexión TCP

Antes de configurar nuestro honeypot, es esencial comprender cómo los firewalls con estado como MikroTik clasifican el tráfico de red. A cada packet se le asigna un estado de conexión:

Estados de conexión en RouterOS
EstadoSignificadoEjemplo
newPrimer packet de un intento de conexión (TCP SYN o primer packet UDP)Escáner sondeando el puerto 22
establishedParte de una conexión ya aceptada (tráfico bidireccional detectado)Sesión SSH en curso
relatedNueva conexión relacionada con una existenteCanal de datos FTP, mensajes de error ICMP
invalidPacket que no pertenece a ninguna conexión conocidaPackets malformados, escaneos de puertos con flags inusuales

Por qué solo monitorizamos conexiones “new”

Nuestras reglas de honeypot apuntan específicamente a connection-state=new. A continuación se explica por qué esto es crítico:

RouterEscánerRouterEscáner¡El honeypot se activa aquí!Conexión ahora "established"SYN (nueva conexión)SYN-ACKACK
Handshake TCP de tres vías
  1. El reconocimiento ocurre en new: Los atacantes envían packets SYN para sondear qué puertos están abiertos. Este es el primer packet, el estado new.

  2. El tráfico established es legítimo: Una vez que una conexión completa el handshake y pasa a established, ya fue aprobada por tus reglas de firewall. Atrapar packets established crearía falsos positivos.

  3. Eficiencia: Al examinar solo el primer packet de cada conexión, minimizamos la carga de CPU. El router no necesita inspeccionar cada packet, solo el sondeo inicial.


La estrategia: detectar, registrar y bloquear

Nuestra estrategia de honeypot tiene tres fases:

Sí: Tabla RAW

No

No: Puerto 80/443

Sí: Puerto 22/3389/etc.

Escáner de Internet

¿IP en lista negra?

DROP instantáneo

¿Puerto trampa?

Permitir - Servidor Web

Honeypot activado

Registrar con prefijo

Syslog remoto

Añadir IP a BlackList

Descartar packet actual (Filter)

Flujo de detección del honeypot

¿Por qué usar la tabla RAW para el bloqueo?

Realizamos la detección en la tabla Filter (cadena Input), pero aplicamos el bloqueo en la tabla Raw (cadena Prerouting).


Referencia de puertos trampa

Las siguientes tablas listan puertos comúnmente atacados, basándose en el registro de nombres de servicio y números de puerto de IANA. Son candidatos ideales para trampas de honeypot porque los usuarios legítimos de internet nunca deberían necesitar acceder a ellos en tu router.

Puertos trampa TCP

Puertos TCP para detección del honeypot
Puerto(s)ServicioCategoríaPor qué los atacantes lo apuntan
22SSHAcceso remotoBrute force de credenciales, claves SSH filtradas
23TelnetAcceso remotoSin cifrar, a menudo credenciales por defecto
20, 21FTPLegadoTransferencia sin cifrar, abuso de login anónimo
25SMTPCorreoOpen relay para spam, campañas de phishing
79FingerLegadoEnumeración de usuarios en sistemas Unix
110POP3CorreoRobo de credenciales, acceso a correo sin cifrar
135MS-RPCWindowsExploits de ejecución remota de código
137-139NetBIOSWindowsAtaques de relay SMB, enumeración de red
143IMAPCorreoRobo de credenciales, acceso a correo sin cifrar
389LDAPWindowsEnumeración de Active Directory
445SMBWindowsEternalBlue (CVE-2017-0144), ransomware WannaCry
502ModbusIndustrialAtaques a sistemas ICS/SCADA
512-514R-servicesLegadoEjecución remota sin autenticación
593RPC/HTTPWindowsExploits de Exchange Server
636LDAPSWindowsEnumeración de Active Directory
1433MSSQLBase de datosSQL injection, distribución de malware
1521Oracle DBBase de datosEscalada de privilegios en bases de datos
1883, 8883MQTTIoTInterceptación no autorizada de mensajes
3128Squid ProxyProxyAbuso de proxy abierto para anonimización
3306MySQLBase de datosSQL injection, autenticación débil
3389RDPAcceso remotoBlueKeep (CVE-2019-0708), entrega de ransomware
5432PostgreSQLBase de datosExploits de base de datos, robo de datos
5900-5903VNCAcceso remotoControl de pantalla, a menudo sin contraseña o débil
6000-6009X11Acceso remotoSecuestro de pantalla en Unix
6379RedisBase de datosAcceso sin autenticación, RCE vía EVAL
8080, 8443, 8888HTTP AltWeb/AdminPaneles de administración, servidores de desarrollo
8291WinboxMikroTikToma de control del router mediante CVEs conocidos
10000WebminAdminRCE en interfaz de gestión web
27017-27018MongoDBBase de datosAcceso sin autenticación, ransomware
47808BACnetIndustrialAtaques a sistemas de automatización de edificios

Puertos trampa UDP

Los puertos UDP son especialmente valiosos para honeypots porque muchos se explotan en ataques de amplificación, donde los atacantes usan tu servidor para multiplicar el tráfico de ataque contra terceros.

Puertos UDP para detección del honeypot
PuertoServicioCategoríaPor qué los atacantes lo apuntan
53DNSAmplificaciónAmplificación 100x+ para ataques DDoS
69TFTPLegadoRobo de archivos de configuración (sin autenticación)
123NTPAmplificaciónAmplificación 500x+ mediante el comando monlist
137-139NetBIOSWindowsEnumeración de recursos compartidos de red
161SNMPAmplificaciónAmplificación 650x, fuga de información del dispositivo
520RIPEnrutamientoAtaques de inyección de rutas
1900SSDPAmplificaciónAmplificación 30x mediante descubrimiento UPnP
5060SIPVoIPFraude telefónico, interceptación de llamadas
5683CoAPIoTExplotación de dispositivos IoT
11211MemcachedAmplificación¡Amplificación 52.000x! Vector de DDoS récord
47808BACnetIndustrialSistemas de automatización de edificios

Paso 1: crear la lista blanca

Antes de desplegar cualquier regla de bloqueo, debes crear una allowlist. Esto evita bloquearte accidentalmente a ti mismo, a tu VPN, sistemas de monitorización o servicios legítimos que necesitan acceder a puertos específicos.

Cuándo usar una allowlist

Considera añadir IPs a tu allowlist para:

  • Tus propias IPs públicas — Casa, oficina o hotspots móviles que usas para gestión
  • Endpoints VPN — Si te conectas mediante una VPN con IP estática
  • Servicios de monitorización — Monitores de uptime, escáneres de vulnerabilidades que controlas
  • Socios de confianza — Auditores de seguridad, proveedores de servicios gestionados
  • Escáneres conocidos que hayas aprobado — Investigadores de seguridad que hayas incluido en la allowlist

Allowlist IPv4

ROUTEROSCreación de la allowlist IPv4
# Create the whitelist for IPv4
/ip firewall address-list

# Your local networks (never block these)
add list=WhiteList address=192.168.0.0/24 comment="LAN - Main Network"
add list=WhiteList address=192.168.99.0/24 comment="LAN - IoT Network"
add list=WhiteList address=192.168.100.0/24 comment="VPN - WireGuard Devices"

# Your static public IPs (management access)
add list=WhiteList address=203.0.113.50 comment="Office Static IP"
add list=WhiteList address=198.51.100.25 comment="Home Static IP"

# Monitoring and security services
add list=WhiteList address=192.0.2.10 comment="Uptime Monitor - Pingdom"
add list=WhiteList address=192.0.2.20 comment="Vulnerability Scanner"

Allowlist IPv6

ROUTEROSCreación de la allowlist IPv6
# Create the whitelist for IPv6
/ipv6 firewall address-list

# Your local IPv6 networks
add list=WhiteList address=fd00::/8 comment="ULA - Private IPv6 Range"
add list=WhiteList address=2001:db8:1::/48 comment="Your Assigned IPv6 Prefix"

# Link-local addresses (never block)
add list=WhiteList address=fe80::/10 comment="Link-Local Addresses"

# Trusted external IPv6 addresses
add list=WhiteList address=2001:db8:2::100 comment="Office IPv6 Address"

Paso 2: configuración del honeypot IPv4

Esta configuración incluye todas las reglas de detección del honeypot para IPv4, organizadas por categoría de servicio. Al final de la sección Filter, añadimos una regla DROP para bloquear inmediatamente cualquier origen que haya sido añadido a la lista negra antes de que pueda intentar otros ataques en la misma sesión.

honeypot-ipv4.rsc
# ═══════════════════════════════════════════════════════════════════════════════
# IPv4 HONEYPOT CONFIGURATION
# ═══════════════════════════════════════════════════════════════════════════════
# This configuration detects port scanners and blocks them automatically.
# Customize the ports based on your environment - don't trap ports you use!
# ═══════════════════════════════════════════════════════════════════════════════

# ───────────────────────────────────────────────────────────────────────────────
# FILTER TABLE - Detection Rules (Input Chain)
# ───────────────────────────────────────────────────────────────────────────────

# --- TCP: Remote Access Services ---
/ip firewall filter add chain=input action=add-src-to-address-list \
    address-list=BlackList_PortScanners address-list-timeout=4h \
    connection-state=new protocol=tcp \
    dst-port=22,23,3389,5900-5903,8291,6000-6009 \
    in-interface-list=WAN src-address-list=!WhiteList \
    log=yes log-prefix="[HONEYPOT TCP] " \
    comment="HONEYPOT: Remote Access (SSH, Telnet, RDP, VNC, Winbox, X11)"

# --- TCP: Database Services ---
/ip firewall filter add chain=input action=add-src-to-address-list \
    address-list=BlackList_PortScanners address-list-timeout=4h \
    connection-state=new protocol=tcp \
    dst-port=1433,1521,3306,5432,6379,27017,27018 \
    in-interface-list=WAN src-address-list=!WhiteList \
    log=yes log-prefix="[HONEYPOT TCP] " \
    comment="HONEYPOT: Databases (MSSQL, Oracle, MySQL, PostgreSQL, Redis, MongoDB)"

# --- TCP: Windows/Enterprise Services ---
/ip firewall filter add chain=input action=add-src-to-address-list \
    address-list=BlackList_PortScanners address-list-timeout=4h \
    connection-state=new protocol=tcp \
    dst-port=135,137-139,445,389,636,593 \
    in-interface-list=WAN src-address-list=!WhiteList \
    log=yes log-prefix="[HONEYPOT TCP] " \
    comment="HONEYPOT: Windows Services (SMB, NetBIOS, LDAP, RPC)"

# --- TCP: Legacy Protocols ---
/ip firewall filter add chain=input action=add-src-to-address-list \
    address-list=BlackList_PortScanners address-list-timeout=4h \
    connection-state=new protocol=tcp \
    dst-port=20,21,69,512-514,79 \
    in-interface-list=WAN src-address-list=!WhiteList \
    log=yes log-prefix="[HONEYPOT TCP] " \
    comment="HONEYPOT: Legacy Services (FTP, TFTP, R-services, Finger)"

# --- TCP: Insecure Mail Protocols ---
/ip firewall filter add chain=input action=add-src-to-address-list \
    address-list=BlackList_PortScanners address-list-timeout=4h \
    connection-state=new protocol=tcp \
    dst-port=25,110,143 \
    in-interface-list=WAN src-address-list=!WhiteList \
    log=yes log-prefix="[HONEYPOT TCP] " \
    comment="HONEYPOT: Insecure Mail (SMTP, POP3, IMAP)"

# --- TCP: Web Admin Panels & Proxies ---
/ip firewall filter add chain=input action=add-src-to-address-list \
    address-list=BlackList_PortScanners address-list-timeout=4h \
    connection-state=new protocol=tcp \
    dst-port=8080,8443,8888,3128,10000 \
    in-interface-list=WAN src-address-list=!WhiteList \
    log=yes log-prefix="[HONEYPOT TCP] " \
    comment="HONEYPOT: Web Admin/Proxy (Alt-HTTP, Squid, Webmin)"

# --- TCP: IoT & Industrial Protocols ---
/ip firewall filter add chain=input action=add-src-to-address-list \
    address-list=BlackList_PortScanners address-list-timeout=4h \
    connection-state=new protocol=tcp \
    dst-port=1883,8883,502,47808 \
    in-interface-list=WAN src-address-list=!WhiteList \
    log=yes log-prefix="[HONEYPOT TCP] " \
    comment="HONEYPOT: IoT/Industrial (MQTT, Modbus, BACnet)"

# --- UDP: Amplification Attack Vectors ---
/ip firewall filter add chain=input action=add-src-to-address-list \
    address-list=BlackList_PortScanners address-list-timeout=4h \
    connection-state=new protocol=udp \
    dst-port=53,123,161,1900,11211 \
    in-interface-list=WAN src-address-list=!WhiteList \
    log=yes log-prefix="[HONEYPOT UDP] " \
    comment="HONEYPOT: UDP Amplification (DNS, NTP, SNMP, SSDP, Memcached)"

# --- UDP: Legacy Protocols ---
/ip firewall filter add chain=input action=add-src-to-address-list \
    address-list=BlackList_PortScanners address-list-timeout=4h \
    connection-state=new protocol=udp \
    dst-port=69,137-139,520 \
    in-interface-list=WAN src-address-list=!WhiteList \
    log=yes log-prefix="[HONEYPOT UDP] " \
    comment="HONEYPOT: UDP Legacy (TFTP, NetBIOS, RIP)"

# --- UDP: IoT & VoIP ---
/ip firewall filter add chain=input action=add-src-to-address-list \
    address-list=BlackList_PortScanners address-list-timeout=4h \
    connection-state=new protocol=udp \
    dst-port=5683,47808,5060 \
    in-interface-list=WAN src-address-list=!WhiteList \
    log=yes log-prefix="[HONEYPOT UDP] " \
    comment="HONEYPOT: UDP IoT/VoIP (CoAP, BACnet, SIP)"

# --- DROP already-blacklisted scanners (prevents further probing) ---
/ip firewall filter add chain=input action=drop \
    in-interface-list=WAN src-address-list=BlackList_PortScanners \
    comment="DROP: Blacklisted Port Scanners"


# ───────────────────────────────────────────────────────────────────────────────
# RAW TABLE - High-Performance Blocking (Prerouting Chain)
# ───────────────────────────────────────────────────────────────────────────────
# The RAW table processes packets BEFORE connection tracking.
# Blocking here is more efficient and reduces CPU/memory usage.

/ip firewall raw add chain=prerouting action=drop \
    in-interface-list=WAN src-address-list=BlackList_PortScanners \
    comment="DROP: Blacklisted Port Scanners (RAW - High Performance)"

Paso 3: configuración del honeypot IPv6

El escaneo IPv6 está aumentando rápidamente a medida que más redes adoptan configuraciones dual-stack. La estructura es idéntica a IPv4, usando una lista de direcciones separada para los escáneres IPv6.

honeypot-ipv6.rsc
# ═══════════════════════════════════════════════════════════════════════════════
# IPv6 HONEYPOT CONFIGURATION
# ═══════════════════════════════════════════════════════════════════════════════
# Mirrors the IPv4 configuration for comprehensive dual-stack protection.
# Uses a separate address list: BlackList_PortScanners_v6
# ═══════════════════════════════════════════════════════════════════════════════

# ───────────────────────────────────────────────────────────────────────────────
# FILTER TABLE - Detection Rules (Input Chain)
# ───────────────────────────────────────────────────────────────────────────────

# --- TCP: Remote Access Services ---
/ipv6 firewall filter add chain=input action=add-src-to-address-list \
    address-list=BlackList_PortScanners_v6 address-list-timeout=4h \
    connection-state=new protocol=tcp \
    dst-port=22,23,3389,5900-5903,8291,6000-6009 \
    in-interface-list=WAN src-address-list=!WhiteList \
    log=yes log-prefix="[HONEYPOT TCP] " \
    comment="HONEYPOT IPv6: Remote Access (SSH, Telnet, RDP, VNC, Winbox, X11)"

# --- TCP: Database Services ---
/ipv6 firewall filter add chain=input action=add-src-to-address-list \
    address-list=BlackList_PortScanners_v6 address-list-timeout=4h \
    connection-state=new protocol=tcp \
    dst-port=1433,1521,3306,5432,6379,27017,27018 \
    in-interface-list=WAN src-address-list=!WhiteList \
    log=yes log-prefix="[HONEYPOT TCP] " \
    comment="HONEYPOT IPv6: Databases (MSSQL, Oracle, MySQL, PostgreSQL, Redis, MongoDB)"

# --- TCP: Windows/Enterprise Services ---
/ipv6 firewall filter add chain=input action=add-src-to-address-list \
    address-list=BlackList_PortScanners_v6 address-list-timeout=4h \
    connection-state=new protocol=tcp \
    dst-port=135,137-139,445,389,636,593 \
    in-interface-list=WAN src-address-list=!WhiteList \
    log=yes log-prefix="[HONEYPOT TCP] " \
    comment="HONEYPOT IPv6: Windows Services (SMB, NetBIOS, LDAP, RPC)"

# --- TCP: Legacy Protocols ---
/ipv6 firewall filter add chain=input action=add-src-to-address-list \
    address-list=BlackList_PortScanners_v6 address-list-timeout=4h \
    connection-state=new protocol=tcp \
    dst-port=20,21,69,512-514,79 \
    in-interface-list=WAN src-address-list=!WhiteList \
    log=yes log-prefix="[HONEYPOT TCP] " \
    comment="HONEYPOT IPv6: Legacy Services (FTP, TFTP, R-services, Finger)"

# --- TCP: Insecure Mail Protocols ---
/ipv6 firewall filter add chain=input action=add-src-to-address-list \
    address-list=BlackList_PortScanners_v6 address-list-timeout=4h \
    connection-state=new protocol=tcp \
    dst-port=25,110,143 \
    in-interface-list=WAN src-address-list=!WhiteList \
    log=yes log-prefix="[HONEYPOT TCP] " \
    comment="HONEYPOT IPv6: Insecure Mail (SMTP, POP3, IMAP)"

# --- TCP: Web Admin Panels & Proxies ---
/ipv6 firewall filter add chain=input action=add-src-to-address-list \
    address-list=BlackList_PortScanners_v6 address-list-timeout=4h \
    connection-state=new protocol=tcp \
    dst-port=8080,8443,8888,3128,10000 \
    in-interface-list=WAN src-address-list=!WhiteList \
    log=yes log-prefix="[HONEYPOT TCP] " \
    comment="HONEYPOT IPv6: Web Admin/Proxy (Alt-HTTP, Squid, Webmin)"

# --- TCP: IoT & Industrial Protocols ---
/ipv6 firewall filter add chain=input action=add-src-to-address-list \
    address-list=BlackList_PortScanners_v6 address-list-timeout=4h \
    connection-state=new protocol=tcp \
    dst-port=1883,8883,502,47808 \
    in-interface-list=WAN src-address-list=!WhiteList \
    log=yes log-prefix="[HONEYPOT TCP] " \
    comment="HONEYPOT IPv6: IoT/Industrial (MQTT, Modbus, BACnet)"

# --- UDP: Amplification Attack Vectors ---
/ipv6 firewall filter add chain=input action=add-src-to-address-list \
    address-list=BlackList_PortScanners_v6 address-list-timeout=4h \
    connection-state=new protocol=udp \
    dst-port=53,123,161,1900,11211 \
    in-interface-list=WAN src-address-list=!WhiteList \
    log=yes log-prefix="[HONEYPOT UDP] " \
    comment="HONEYPOT IPv6: UDP Amplification (DNS, NTP, SNMP, SSDP, Memcached)"

# --- UDP: Legacy Protocols ---
/ipv6 firewall filter add chain=input action=add-src-to-address-list \
    address-list=BlackList_PortScanners_v6 address-list-timeout=4h \
    connection-state=new protocol=udp \
    dst-port=69,137-139,520 \
    in-interface-list=WAN src-address-list=!WhiteList \
    log=yes log-prefix="[HONEYPOT UDP] " \
    comment="HONEYPOT IPv6: UDP Legacy (TFTP, NetBIOS, RIP)"

# --- UDP: IoT & VoIP ---
/ipv6 firewall filter add chain=input action=add-src-to-address-list \
    address-list=BlackList_PortScanners_v6 address-list-timeout=4h \
    connection-state=new protocol=udp \
    dst-port=5683,47808,5060 \
    in-interface-list=WAN src-address-list=!WhiteList \
    log=yes log-prefix="[HONEYPOT UDP] " \
    comment="HONEYPOT IPv6: UDP IoT/VoIP (CoAP, BACnet, SIP)"

# --- DROP already-blacklisted scanners ---
/ipv6 firewall filter add chain=input action=drop \
    in-interface-list=WAN src-address-list=BlackList_PortScanners_v6 \
    comment="DROP: Blacklisted IPv6 Port Scanners"


# ───────────────────────────────────────────────────────────────────────────────
# RAW TABLE - High-Performance Blocking (Prerouting Chain)
# ───────────────────────────────────────────────────────────────────────────────

/ipv6 firewall raw add chain=prerouting action=drop \
    in-interface-list=WAN src-address-list=BlackList_PortScanners_v6 \
    comment="DROP: Blacklisted IPv6 Port Scanners (RAW - High Performance)"

Comprendiendo la configuración

Examinemos los parámetros clave que hacen efectivo este honeypot:

Referencia de parámetros de las reglas
ParámetroValorPropósito
chain=inputinputApunta al tráfico destinado al propio router, no al tráfico reenviado.
connection-state=newnewSolo se activa con el primer packet de una conexión (SYN). Previene falsos positivos de sesiones establecidas.
address-list-timeout=4h4 horasBloqueo temporal. Las IPs dinámicas cambian, así que los bloqueos permanentes arriesgan bloquear a usuarios legítimos después.
src-address-list=!WhiteListNOT WhiteListEl operador ! excluye las IPs de la allowlist. Crítico para evitar bloquearte a ti mismo.
log=yesActivadoRegistra cada detección en el log del sistema. Esencial para análisis y threat intelligence.
log-prefix="[HONEYPOT TCP] "Prefijo personalizadoEtiqueta las entradas de log para filtrado fácil. Útil para reenviar a sistemas externos.
in-interface-list=WANInterfaces WANSolo monitoriza tráfico de redes externas, no dispositivos LAN.

Aprovechando los logs para threat intelligence

El parámetro log=yes genera entradas que pueden reenviarse a sistemas de seguridad externos. Configurando MikroTik para enviar logs a un servidor syslog remoto, puedes:

  1. Alimentar CrowdSec — Contribuir con atacantes detectados a la blocklist comunitaria y recibir protección contra ataques vistos globalmente.
  2. Reportar a AbuseIPDB — Compartir threat intelligence y ayudar a otros a bloquear IPs maliciosas conocidas.
  3. Crear dashboards — Visualizar patrones de ataque, países de origen y puertos objetivo.
ROUTEROSConfiguración de syslog remoto
# Configure remote syslog destination
/system logging action set [find name=remote] remote=192.168.0.100 src-address=192.168.0.1

# Send firewall logs (including honeypot) to remote server
/system logging add action=remote topics=firewall prefix="[FIREWALL]"

Integración con CrowdSec

A continuación se muestra una configuración funcional para parsear los logs del honeypot MikroTik con CrowdSec. Esta configuración captura los prefijos [HONEYPOT TCP/UDP] que configuramos anteriormente y extrae las IPs de los atacantes para bloqueo automático.

Paso 1: recibir logs mediante rsyslog

En tu servidor Linux que ejecuta CrowdSec, configura rsyslog para recibir syslog UDP desde MikroTik y escribirlo en un archivo dedicado:

/​etc/​rsyslog.d/​10-mikrotik.conf
# Load UDP input module
module(load="imudp")
input(type="imudp" port="514")

# Write all UDP syslog to MikroTik log file
if ($inputname == "imudp") then {
    action(type="omfile" file="/var/log/mikrotik.log")
    stop
}

Tras crear este archivo, reinicia rsyslog:

sudo systemctl restart rsyslog

Puedes verificar que los logs están llegando comprobando el archivo:

2026-01-19T10:37:39.291+01:00 mikrotik firewall,info [FIREWALL]: [HONEYPOT TCP] input: in:PPPoE_DIGI out:(unknown 0), connection-state:new proto TCP (SYN), 167.94.138.144:33601->YOUR_WAN_IP:389, len 60
2026-01-19T10:38:50.781+01:00 mikrotik firewall,info [FIREWALL]: [HONEYPOT TCP] input: in:PPPoE_DIGI out:(unknown 0), connection-state:new proto TCP (SYN), 109.227.42.233:48036->YOUR_WAN_IP:23, len 60
2026-01-19T10:44:01.360+01:00 mikrotik firewall,info [FIREWALL]: [HONEYPOT TCP] input: in:PPPoE_DIGI out:(unknown 0), connection-state:new proto TCP (SYN), 102.156.174.56:61901->YOUR_WAN_IP:445, len 52

Paso 2: configurar la adquisición en CrowdSec

Indica a CrowdSec que lea el archivo de log de MikroTik. Crea un archivo de adquisición:

/​etc/​crowdsec/​acquis.d/​mikrotik.yaml
filenames:
  - /var/log/mikrotik.log
labels:
  type: mikrotik-logs
source: file

Paso 3: instalar el parser de MikroTik

Instala el parser comunitario de MikroTik desde CrowdSec Hub:

sudo cscli parsers install a1ad/mikrotik-logs

Paso 4: parser personalizado para logs del honeypot (opcional)

Para un parseo avanzado que capture específicamente nuestros prefijos [HONEYPOT TCP/UDP], crea un parser personalizado:

/​etc/​crowdsec/​parsers/​s01-parse/​mikrotik-honeypot.yaml
onsuccess: next_stage
name: local/mikrotik-honeypot
description: "Parser for MikroTik honeypot firewall logs"
filter: "evt.Line.Raw contains '[HONEYPOT'"

pattern_syntax:
  # Pattern for honeypot detections with [HONEYPOT TCP] or [HONEYPOT UDP] prefix
  MIKROTIK_HONEYPOT: '^%{TIMESTAMP_ISO8601:timestamp} %{HOSTNAME} firewall,.*? \[HONEYPOT %{WORD:hp_proto}\]\s+%{WORD:chain}: in:%{DATA:if_in} out:%{DATA:if_out},.*?proto %{WORD:proto}.*?, %{IP:source_ip}:%{INT:src_port}->%{IP:dst_ip}:%{INT:dst_port}.*len %{INT:length}'

nodes:
  - grok:
      pattern: "%{MIKROTIK_HONEYPOT}"
      apply_on: Line.Raw
    statics:
      - meta: service
        value: mikrotik_honeypot
      - meta: log_type
        value: honeypot_detection
      - meta: dst_port
        expression: "evt.Parsed.dst_port"
      - meta: proto
        expression: "evt.Parsed.proto"

statics:
  - meta: source_ip
    expression: "evt.Parsed.source_ip"
  - target: evt.StrTime
    expression: "evt.Parsed.timestamp"

Paso 5: recargar CrowdSec

Tras añadir el parser y la configuración de adquisición, recarga CrowdSec:

sudo systemctl reload crowdsec

Verifica que la adquisición está funcionando:

sudo cscli metrics

Deberías ver /var/log/mikrotik.log en las fuentes de adquisición con líneas parseadas incrementándose a medida que ocurren eventos del honeypot.

Resultados reales

Para darte una idea de qué esperar, aquí tienes estadísticas reales de mi red doméstica en un período de 24 horas — un MikroTik RB5009 detrás de una conexión FTTH estándar en España:


Probando tu honeypot

Antes de considerar tu honeypot listo para producción, verifica que funciona correctamente:

Procedimiento de prueba

  1. Añade tu IP de prueba para monitorizar (opcional):
ROUTEROSMonitorizar logs del honeypot
/log print follow where message~"HONEYPOT"
  1. Desde una IP que NO esté en tu allowlist (p.ej., datos móviles):

    • Intenta conectarte a un puerto trampa: telnet TU_IP_WAN 23
    • O intenta SSH: ssh root@TU_IP_WAN
  2. Comprueba la lista de direcciones:

ROUTEROSComprobar IPs en la lista negra
/ip firewall address-list print where list~"BlackList"

Tu IP de prueba debería aparecer con la cuenta atrás del timeout.

  1. Verifica que el bloqueo funciona:

    • Intenta hacer ping al router desde la misma IP
    • Debería dar timeout (la regla RAW descarta todo el tráfico)
  2. Limpieza (eliminar la IP de prueba):

ROUTEROSEliminar IP de prueba de la lista negra
/ip firewall address-list remove [find address=YOUR_TEST_IP]

Siguientes pasos

Ahora tienes un router que se defiende a sí mismo y que:

  • Detecta intentos de reconocimiento en tiempo real
  • Registra las IPs de los atacantes con prefijos estructurados
  • Bloquea a los atacantes en el punto más temprano posible (tabla RAW)
  • Protege tanto IPv4 como IPv6
  • Se integra con CrowdSec para threat intelligence comunitaria

Considera ampliar esta configuración con:

  1. Reportar a AbuseIPDB — Comparte threat intelligence con la comunidad de seguridad más amplia
  2. Crear dashboards en Grafana — Visualiza patrones de ataque, países de origen y puertos objetivo
  3. Configurar alertas — Recibe notificaciones cuando se ataquen puertos específicos o aumente el volumen de ataques