🛡️ Sistema de Defensa Progresiva contra Accesos Fallidos en Red WAN con MikroTik

🎯 Objetivo General

Implementar un sistema automatizado en MikroTik que detecte, registre y bloquee direcciones IP externas que realicen múltiples intentos fallidos de conexión a servicios expuestos en la red WAN, aplicando bloqueos escalonados (10 minutos y luego 1 día), con notificaciones en el log y señales sonoras diferenciadas.


🧱 Componentes de la Solución

  1. Listas de direcciones dinámicas para rastrear intentos fallidos.
  2. Reglas de firewall para detección, conteo y bloqueo.
  3. Scripts para emitir sonidos y registrar eventos.
  4. Scheduler para ejecutar acciones automáticas.
  5. Logs personalizados para auditoría.
  6. Parámetros configurables para adaptarse a otros servicios (Winbox, FTP, etc.).

🔧 Configuración Paso a Paso

1. Crear listas de seguimiento por etapas

/ip firewall address-list

add list=whitelist address=192.168.88.0/24 comment=»Red interna confiable»

2. Detección de intentos nuevos (ej. SSH puerto 22)

/ip firewall filter

add chain=input protocol=tcp dst-port=22 connection-state=new src-address-list=!whitelist \

    action=add-src-to-address-list address-list=ssh_stage1 address-list-timeout=1m log=yes log-prefix=»SSH intento 1″

3. Escalado de intentos fallidos

Repetir para ssh_stage2 hasta ssh_stage5:

/ip firewall filter

add chain=input src-address-list=ssh_stage1 protocol=tcp dst-port=22 connection-state=new \

    action=add-src-to-address-list address-list=ssh_stage2 address-list-timeout=1m log-prefix=»SSH intento 2″

4. Bloqueo temporal (10 minutos)

/ip firewall filter

add chain=input src-address-list=ssh_stage5 action=add-src-to-address-list \

    address-list=ssh_block_10min address-list-timeout=10m log=yes log-prefix=»SSH BLOQUEO 10min»

add chain=input src-address-list=ssh_block_10min action=drop

5. Escalado a bloqueo de 1 día

/ip firewall address-list

add list=ssh_block_10min list=ssh_block_1day timeout=1d

/ip firewall filter

add chain=input src-address-list=ssh_block_1day action=drop log=yes log-prefix=»SSH BLOQUEO 1día»


🔔 Notificaciones Sonoras

Scripts para sonidos

/system script

add name=beep_10min policy=read,write source=»/beep frequency=1000 length=500ms»

add name=beep_1day policy=read,write source=»/beep frequency=2000 length=1000ms»

Scheduler para ejecutar sonidos

/system scheduler

add name=beep10min on-event=»/system script run beep_10min» interval=10m start-time=startup

add name=beep1day on-event=»/system script run beep_1day» interval=1d start-time=startup


🧹 Mantenimiento y Limpieza

Asegúrate de que las listas temporales se limpien automáticamente:

/ip firewall address-list

add list=ssh_stage1 timeout=1m

add list=ssh_stage2 timeout=1m


📋 Recomendaciones Adicionales

Descarga el archivos RSC:

Sistema de Defensa Progresiva contra Accesos Fallidos en Red WAN con MikroTik.rsc