Cómo Bloquear Netflix y YouTube en MikroTik RouterOS: Guía de Configuración Layer 7, TLS Host y Pruebas de Validación

Este artículo técnico aborda el diseño conceptual, la implementación de scripts y los protocolos de auditoría para restringir de manera absoluta el tráfico hacia las plataformas de streaming Netflix y YouTube dentro de entornos de red gestionados por MikroTik RouterOS. Implementaremos metodologías avanzadas de filtrado mediante la inspección del campo TLS Host (SNI – Server Name Indication) y expresiones regulares en Capa 7 (Layer 7 Protocols), asegurando el cese de la transmisión de datos sin comprometer el rendimiento general del procesador del router (CPU Overhead). Al finalizar este despliegue, el administrador de red habrá establecido una arquitectura de políticas de firewall simétricas y automatizadas, complementada con técnicas de mitigación de bypass por DNS alternativos y herramientas nativas de validación de paquetes.

Requisitos Previos de la Infraestructura de Red

Antes de proceder con la inyección de código y reglas en el firewall de RouterOS, es obligatorio verificar que el hardware y la topología de software cumplan con los umbrales operativos mínimos para evitar la degradación del servicio de conmutación de paquetes.

Especificaciones de Hardware y Versión de RouterOS

  • Arquitectura de CPU recomendada: Procesadores ARM, ARM64 o Tile (como las series CCR y RB4011/RB5009). Se desaconseja el uso intensivo de expresiones regulares Layer 7 en arquitecturas MIPSBE de recursos limitados bajo tráfico masivo.
  • Versión del Sistema Operativo: RouterOS v7.x (versión estable o superior). Los comandos detallados en esta guía han sido depurados para la sintaxis moderna de la API de MikroTik v7.
  • Acceso Administrativo: Privilegios de superusuario (full permissions) a través de Winbox, interfaz web (Webfig) o sesión de terminal segura (SSH).

Diagnóstico Inicial de la Tabla de Conexiones

Monitoree el estado del consumo de CPU y la tasa de paquetes por segundo actual mediante la consola de comandos. Ejecute la siguiente instrucción para validar que el enrutador se encuentra en un estado estable inferior al 40% de uso de CPU antes de aplicar la inspección profunda de paquetes:

/resource monitor within-time=5s

Bloque 1: Configuración de Bloqueo para Netflix

Netflix utiliza una red de distribución de contenidos distribuidos (Open Connect CDN) y arquitecturas multi-cloud que cambian constantemente de direcciones IP públicas. Por lo tanto, el bloqueo basado en listas estáticas de subredes IPv4 es ineficaz a largo plazo. La estrategia óptima requiere combinar el análisis de expresiones regulares en Capa 7 con la captura dinámica de direcciones en un Address List mediante la inspección del saludo TLS (Client Hello TLS SNI).

Paso 1: Creación del Matcher Layer 7 para Netflix

Abra la terminal de MikroTik e introduzca el script para instanciar la expresión regular (Regex) que escaneará el tráfico de inicialización de conexión TCP/UDP buscando patrones coincidentes con los dominios principales y subdominios secundarios de Netflix:

/ip firewall layer7-protocol
add comment="Regex de captura para dominios Netflix" name=l7_netflix regexp="^.*(netflix|nflximg|nflxvideo|nflxext|nflxso).*$"

Paso 2: Reglas de Redirección y Detección Dinámica en Mangle

La inspección Layer 7 consume una cantidad crítica de ciclos de reloj de la CPU si se aplica a cada paquete individual. Para optimizar el rendimiento, se utiliza el menú Mangle con la finalidad de evaluar únicamente los primeros paquetes de una conexión y almacenar las direcciones IP de destino en una lista dinámica (Address List) con un tiempo de vida (TTL) predeterminado.

/ip firewall mangle
add action=add-dst-to-address-list address-list=nflx_blocked_ips address-list-timeout=1d chain=prerouting comment="Capturar IPs de Netflix por Layer 7" connection-state=new layer7-protocol=l7_netflix protocol=tcp dst-port=443
add action=add-dst-to-address-list address-list=nflx_blocked_ips address-list-timeout=1d chain=prerouting comment="Capturar IPs de Netflix por TLS Host" connection-state=new protocol=tcp dst-port=443 tls-host=*netflix*
add action=add-dst-to-address-list address-list=nflx_blocked_ips address-list-timeout=1d chain=prerouting comment="Capturar IPs secundarias de Netflix por TLS Host" connection-state=new protocol=tcp dst-port=443 tls-host=*nflximg*

Paso 3: Implementación de la Regla de Descarte en el Filtro del Firewall

Una vez que las direcciones IP públicas de los servidores de Netflix son agregadas dinámicamente a la lista nflx_blocked_ips, la regla del filtro de paquetes (Filter Rule) bloqueará el tráfico de forma inmediata en la cadena de reenvío (Forward chain) sin necesidad de reevaluar la expresión regular, reduciendo el consumo de hardware a valores cercanos a cero.

/ip firewall filter
add action=drop chain=forward comment="Bloqueo absoluto de trafico hacia Address List de Netflix" dst-address-list=nflx_blocked_ips
add action=drop chain=forward comment="Bloqueo preventivo directo por TLS SNI" protocol=tcp dst-port=443 tls-host=*netflix.com*

Bloque 2: Configuración de Bloqueo para YouTube

El bloqueo de YouTube presenta una complejidad superior debido a la integración física de sus servicios dentro de los servidores perimetrales de Google (Google Global Cache) y el uso extendido del protocolo de transporte rápido QUIC basado en UDP puertos 443 y 80, el cual evade los filtros estándar de TLS Host de TCP.

Paso 1: Mitigación del Protocolo QUIC (UDP 443 / UDP 80)

Los navegadores web modernos basados en Chromium intentan negociar conexiones de video a través de QUIC para acelerar la carga. Si el router bloquea de forma forzada este protocolo, el navegador se degrada automáticamente a una conexión TCP clásica (HTTPS), donde las reglas de TLS Host y Layer 7 vuelven a ser efectivas. Ejecute este comando para forzar la desactivación de QUIC en toda la red local:

/ip firewall filter
add action=drop chain=forward comment="Forzar caida de QUIC de YouTube: Bloqueo UDP 443" dst-port=443 protocol=udp
add action=drop chain=forward comment="Forzar caida de QUIC de YouTube: Bloqueo UDP 80" dst-port=80 protocol=udp

Paso 2: Definición de Patrones Layer 7 para el Ecosistema de Google Video

YouTube procesa sus transmisiones multimedia a través de dominios variables conocidos como googlevideo.com y subdominios asociados a la marca. Defina la estructura de expresiones regulares en el firmware mediante la siguiente sentencia:

/ip firewall layer7-protocol
add comment="Captura de trafico de streaming de YouTube" name=l7_youtube regexp="^.*(youtube|googlevideo|ytimg|ggpht|youtu.be).*$"

Paso 3: Creación de Reglas de Captura Mangle para YouTube

Direccione los flujos de inicio de sesión de nuevos sockets hacia una lista de direcciones dedicada llamada yt_blocked_ips. La inclusión del puerto de destino asegura que los servicios estándar de búsqueda en Google web no se vean interrumpidos por falsos positivos:

/ip firewall mangle
add action=add-dst-to-address-list address-list=yt_blocked_ips address-list-timeout=00:30:00 chain=prerouting comment="Captura de IPs YouTube via L7" connection-state=new layer7-protocol=l7_youtube protocol=tcp dst-port=443
add action=add-dst-to-address-list address-list=yt_blocked_ips address-list-timeout=00:30:00 chain=prerouting comment="Captura de IPs YouTube via TLS SNI principal" connection-state=new protocol=tcp dst-port=443 tls-host=*youtube.com*
add action=add-dst-to-address-list address-list=yt_blocked_ips address-list-timeout=00:30:00 chain=prerouting comment="Captura de IPs YouTube via TLS SNI CDN" connection-state=new protocol=tcp dst-port=443 tls-host=*googlevideo.com*

Paso 4: Reglas de Drop en el Firewall Filter para YouTube

Establezca las políticas de descarte definitivo de paquetes en el firewall de MikroTik posicionando estas reglas en la zona superior de la cadena de reenvío para optimizar la velocidad de procesamiento:

/ip firewall filter
add action=drop chain=forward comment="Bloqueo de trafico hacia Address List de YouTube" dst-address-list=yt_blocked_ips
add action=drop chain=forward comment="Filtro preventivo TLS SNI directo para subdominios YouTube" protocol=tcp dst-port=443 tls-host=*.youtube.com*

Bloque 3: Prevención de Evasión (DNS Bypass Protection)

Un error crítico en la administración de redes consiste en ignorar que los usuarios avanzados pueden modificar los servidores DNS locales en sus estaciones de trabajo (configurando valores estáticos como 8.8.8.8 o 1.1.1.1) para saltarse las listas de resolución controladas por el router.

Paso 1: Secuestro del Tráfico de Consultas DNS (Port Forwarding)

Para anular esta vulnerabilidad, se configura una regla de Redirección en la tabla de NAT (Network Address Translation). Esta regla interceptará cualquier paquete UDP/TCP dirigido al puerto 53 en el exterior y lo reenviará forzadamente hacia el servicio de DNS local del propio router MikroTik.

/ip firewall nat
add action=redirect chain=dstnat comment="Secuestrar consultas DNS UDP externas hacia DNS local" dst-port=53 protocol=udp to-ports=53
add action=redirect chain=dstnat comment="Secuestrar consultas DNS TCP externas hacia DNS local" dst-port=53 protocol=tcp to-ports=53

Paso 2: Bloqueo de DNS sobre HTTPS (DoH) y DNS sobre TLS (DoT)

Los navegadores modernos implementan cifrado nativo en las consultas DNS (DoH) utilizando el puerto HTTPS estándar (443). Para neutralizar esto en servidores públicos conocidos, configure reglas de descarte específicas para los proveedores más comunes (Cloudflare y Google) mediante el uso de expresiones de coincidencia estricta:

/ip firewall filter
add action=drop chain=forward comment="Bloquear DNS-over-HTTPS Cloudflare" dst-port=443 protocol=tcp tls-host=cloudflare-dns.com
add action=drop chain=forward comment="Bloquear DNS-over-HTTPS Google" dst-port=443 protocol=tcp tls-host=dns.google

Bloque 4: Pruebas de Validación y Auditoría del Bloqueo

Posterior a la ejecución del entorno lógico del firewall, es fundamental iniciar una fase de aseguramiento de la calidad de las reglas aplicadas para garantizar la efectividad del bloqueo y validar la ausencia de fugas de tráfico (Data Leaks).

Paso 1: Depuración de Caché en Clientes e Infraestructura

La caché DNS almacenada localmente en los sistemas operativos de los usuarios finales impedirá que las solicitudes pasen inicialmente por el firewall de filtrado dinámico. Por ende, antes de realizar los test, es obligatorio purgar los registros activos.

  1. En el enrutador MikroTik, ejecute la limpieza del sistema de resolución de nombres mediante el comando: /ip dns cache flush
  2. En la terminal de comandos del sistema operativo cliente (Windows), ejecute de manera imperativa: ipconfig /flushdns
  3. Si el dispositivo de pruebas es un terminal móvil (Android/iOS), active el modo avión por un período de 10 segundos para forzar el reinicio de las interfaces de red y la disolución de los sockets TCP abiertos.

Paso 2: Pruebas de Conectividad mediante Herramientas ICMP y HTTP

Utilice utilidades de diagnóstico de red para enviar paquetes dirigidos y rastrear la respuesta del firewall de MikroTik. Ejecute las siguientes pruebas en una computadora conectada al segmento LAN afectado:

Abra una ventana de la terminal de comandos de su sistema operativo y lance una petición de ping continuo hacia las plataformas restringidas. El resultado correcto debe reflejar una pérdida total de paquetes por tiempo de espera agotado (Request timed out):

ping netflix.com -n 10
ping youtube.com -n 10

A continuación, intente una conexión directa al socket HTTPS utilizando la herramienta de línea de comandos curl para verificar que el apretón de manos (Handshake TLS) se interrumpe inmediatamente y el servidor no devuelve datos:

curl -I -k https://www.netflix.com
curl -I -k https://www.youtube.com

Nota de diagnóstico: Si la herramienta curl devuelve un encabezado HTTP con estado de respuesta HTTP/1.1 200 OK o similar, significa que la inspección SNI ha fallado y el paquete evadió la regla de filtrado.

Paso 3: Inspección de Logs y Contadores en Tiempo Real

Para comprobar que el enrutador MikroTik está procesando de manera efectiva la política de descarte, redirija el estado de las reglas del firewall hacia el sistema de registros (Logs) y observe el incremento numérico de los bytes rechazados.

Modifique temporalmente la regla de descarte en el enrutador agregando el parámetro de trazabilidad (logging flag) con el siguiente script:

/ip firewall filter
set [find comment="Bloqueo absoluto de trafico hacia Address List de Netflix"] log=yes log-prefix="NETFLIX_DROP_ALERT:"
set [find comment="Bloqueo de trafico hacia Address List de YouTube"] log=yes log-prefix="YOUTUBE_DROP_ALERT:"

Posteriormente, visualice la salida de la terminal de registros en tiempo real ejecutando el comando de monitorización estructurada:

/log print follow-only where topics~"firewall"

Examine la estructura de salida en pantalla. El sistema debe imprimir una ráfaga continua de líneas con la siguiente arquitectura sintáctica, confirmando el origen exacto del cliente bloqueado:

firewall,info NETFLIX_DROP_ALERT: forward: in:ether2-lan out:ether1-wan, src-mac 00:0C:29:XX:XX:XX, proto TCP (SYN), 192.168.88.254:51240->108.175.32.12:443, len 60

Una vez concluida la validación científica del bloqueo de datos, proceda a desactivar la función de logging para prevenir la saturación innecesaria de la memoria interna del equipo (Storage wear protection):

/ip firewall filter
set [find comment="Bloqueo absoluto de trafico hacia Address List de Netflix"] log=no
set [find comment="Bloqueo de trafico hacia Address List de YouTube"] log=no

Bloque 5: Consideraciones Finales y Buenas Prácticas

La implementación de filtros de seguridad restrictivos genera repercusiones colaterales en la arquitectura lógica de la infraestructura de red corporativa o residencial. Aplique los siguientes criterios técnicos para garantizar el mantenimiento preventivo a largo plazo:

  • Ubicación Estratégica de las Reglas (Rule Ordering): Las reglas asociadas a las listas de direcciones dinámicas (Address Lists) deben colocarse por encima de las reglas genéricas de aceptación de tráfico establecido (Established/Related connections) en el módulo de Filter Rules. Esto evita el bypass de sockets de streaming que iniciaron su transferencia de datos un milisegundo antes de que la IP entrara en la lista de bloqueo.
  • Actualización Automática de Listas por Scripting: Dado que las grandes corporaciones adquieren periódicamente nuevos rangos de sistemas autónomos (ASN), se sugiere crear un script de RouterOS programado en el /system scheduler que realice barridos cíclicos automáticos sobre los dominios críticos cada 12 horas.
  • Control del Falsos Positivos: Al usar reglas basadas en cadenas de texto genéricas (como *youtube* o *netflix* en TLS Host), verifique periódicamente que aplicaciones legítimas de gestión empresarial o páginas web educativas que citan dichos nombres en sus URLs de recursos CDN estáticos no estén siendo descartadas erróneamente por el motor de inspección profunda del firewall.


🔥Tendencia🔥


Notas interesantes


Lo más reciente