Sophos Firewall: bit reservado TCP no válido por Accurate ECN
Si Sophos Firewall descarta tráfico TCP legítimo con Invalid TCP reserved bit, la causa puede ser Accurate ECN. Una regla Allow adicional o una excepción en el filtro web no resuelven el problema en este caso porque el descarte ya se produce durante la validación TCP estricta.
Sophos indica como solución temporal la desactivación global de strict-policy. Este cambio solo debe realizarse después de obtener una prueba clara: se aplica a todo el firewall y no relaja la comprobación únicamente para el flujo de tráfico afectado.
Identificar el error de forma concluyente
La solución temporal solo es adecuada si se cumplen todas las condiciones siguientes:
- Una conexión TCP concreta falla de forma reproducible o no llega a establecerse.
- Log Viewer o Packet Capture muestra Invalid TCP reserved bit como motivo del descarte.
- La regla de firewall, NAT y el enrutamiento coinciden con la ruta de tráfico esperada.
- Una regla Allow amplia no modifica el comportamiento.
- La captura del handshake TCP muestra AE, CWR y ECE establecidos en el SYN inicial descartado. AE se denominaba anteriormente NS y Sophos y los decodificadores antiguos aún lo etiquetan como
NS.
Para la primera prueba, abrir Log viewer en la esquina superior derecha de Web Admin, seleccionar el módulo Firewall y limitar los resultados por intervalo de tiempo, IP de origen e IP de destino con Timer filter y Add filter. Buscar además Invalid TCP reserved bit como texto libre. No obstante, una sesión interrumpida puede no aparecer de inmediato: Sophos Firewall suele registrar las sesiones de firewall cuando se cierra la conexión.
Por ello, hay que confirmar el motivo del descarte en Diagnostics > Packet capture. En Configure, por ejemplo, este filtro BPF limita la visualización a dos direcciones de documentación y a HTTPS:
host 192.0.2.10 and host 198.51.100.20 and port 443
Sustituir ambas direcciones IP y el puerto por los valores de la conexión que falla. Activar Trace On, provocar un solo intento de conexión y volver a detener la captura. En Display filter, seleccionar Status: Violation y Reason: INVALID_TRAFFIC. Así, SFOS confirma la infracción y el motivo Invalid TCP reserved bit; la vista de WebAdmin se utiliza únicamente para esta confirmación.
Para analizar por completo el handshake TCP y los indicadores, realizar por separado mediante SSH una captura tcpdump limitada por tiempo, hosts y puerto. Guardarla como PCAP y abrirla en Wireshark u otro decodificador. Seguir el procedimiento Recopilar registros con la herramienta tcpdump de Sophos Firewall. Wireshark actual usa el campo tcp.flags.ae; tcp.flags.ns es terminología antigua.
Si falta el motivo concreto del descarte, no se debe desactivar strict-policy por precaución. Primero hay que probar la regla de firewall, NAT y el flujo de paquetes.
Por qué Accurate ECN se identifica como no válido
Explicit Congestion Notification, o ECN, señaliza una congestión sin descartar un paquete únicamente por ese motivo. Accurate ECN amplía este mecanismo y denomina AE al bit antes conocido como NS. Sophos NC-169842 y los decodificadores antiguos aún usan el nombre NS.
Para reconocer la firma del problema conocido es necesario capturar el handshake TCP: el SYN inicial descartado tiene establecidos SYN junto con AE (antes NS), CWR y ECE. Si se reenvía el SYN, hay que inspeccionar el SYN/ACK para determinar si la negociación de Accurate ECN tuvo éxito. AE/NS por sí solo no es concluyente. En un flujo establecido, las combinaciones de AE, CWR y ECE forman el contador ACE, no los significados antiguos de cada indicador. Véanse RFC 9768, sección 3.1.1 y sección 3.2.2.
Sophos indica en NC-169842 que la validación estricta puede interpretar el bit AE, que aún denomina NS, como un bit TCP reservado establecido y descartar el tráfico. El registro muestra por ello Invalid TCP reserved bit, aunque el emisor utilice los bits para Accurate ECN. La definición del problema comprobada para este procedimiento identifica ECE, CWR y NS (ahora AE) como firma y ofrece dos alternativas: generar tráfico sin esos bits de Accurate ECN o desactivar desde la CLI la comprobación TCP de Strict Policy.
Este procedimiento se limita deliberadamente a la única versión identificada entonces como afectada: SFOS 21.5.0 GA Build 171 (21.5.0.171); no se indicaba ninguna versión correctiva. La ayuda de SFOS 22.0 sigue documentando el parámetro strict-policy, pero eso no demuestra que NC-169842 afecte también a SFOS 22.0. En otra build, se debe usar el workaround solo tras verificar la firma completa y abrir primero un caso de soporte con la captura y el extracto del registro. Si las notas de una build más reciente indican expresamente que NC-169842 está corregido, se debe preferir esa actualización probada a mantener el workaround global.
Comprobar Strict Policy
Los comandos se ejecutan en el prompt console> de la Device Console, no en la Advanced Shell:
- Iniciar sesión en el firewall mediante SSH o la consola local.
- En el menú principal, seleccionar 4. Device Console.
- Mostrar el estado actual:
show advanced-firewall
Buscar esta línea en la salida:
Strict Policy : on
La salida completa contiene otros parámetros globales del firewall. No deben modificarse para esta prueba. Si el acceso todavía no está configurado, consultar Conectar con Sophos Firewall mediante SSH.
En SFOS 22.0, on es el valor predeterminado documentado. Para la reversión, sigue prevaleciendo el valor actual que se acaba de consultar con show advanced-firewall. Si ya es off, la solución temporal ya está activa: no hay que cambiarla, sino analizar el caso con Sophos Support. Comprobar Advanced Firewall Settings de forma segura explica los demás valores, la línea base, la prueba de control y la reversión.
Probar la solución temporal de forma controlada
⚠️ Efecto en la seguridad:
strict-policy offdesactiva globalmente la validación estricta de paquetes. Sophos Firewall deja de rechazar mediante esta comprobación determinados patrones de paquetes inusuales o potencialmente dañinos. El comando no crea una excepción para una dirección IP, un dominio o una regla de firewall concretos.
Antes del cambio, guardar un estado actual de la configuración, documentar el caso de prueba afectado y programar una ventana de mantenimiento. A continuación, ejecutar:
set advanced-firewall strict-policy off
Comprobar el nuevo estado:
show advanced-firewall
Línea esperada:
Strict Policy : off
Ahora se debe volver a probar exclusivamente el flujo documentado previamente. Si funciona de inmediato y desaparece Invalid TCP reserved bit, se confirma que Strict Policy provoca el descarte. Solo un handshake capturado con SYN junto con AE/NS, CWR y ECE en el SYN inicial descartado vincula el descarte con la firma de NC-169842.
Si el error no cambia, se debe volver a activar strict-policy inmediatamente. En ese caso, la causa probablemente se encuentra en otro punto del flujo de paquetes.
Volver a activar Strict Policy
Si el valor anotado antes del cambio era on, el comando de reversión es:
set advanced-firewall strict-policy on
Después, volver a utilizar show advanced-firewall para comprobar que se muestra Strict Policy : on y verificar tanto el caso de prueba como el tráfico normal. Si el SYN inicial repetido contiene la misma firma AE/NS, CWR y ECE y sigue la misma ruta, Invalid TCP reserved bit debería reaparecer. Si no es así, comparar los indicadores del handshake y la ruta antes de sacar conclusiones.
Aunque la solución temporal funcione, strict-policy off no debe convertirse en un estado permanente sin una evaluación. El orden preferible es:
- Comprobar si el emisor, el sistema operativo, la aplicación o un servicio situado antes en la ruta puede desactivar Accurate ECN o negociarlo de otra manera.
- Comprobar si las notas de las versiones de mantenimiento de SFOS disponibles mencionan expresamente una corrección para
NC-169842. - Implicar a Sophos Support y proporcionar la versión de SFOS, la marca de tiempo, el origen y el destino, el motivo del descarte y Packet Capture.
- Solo si no existe una solución más específica, mantener el cambio global tras aceptar el riesgo y documentar la supervisión y el procedimiento de reversión.
Las pruebas necesarias pueden recopilarse con Guardar registros de Sophos Firewall para un caso de soporte.
Lo que no resuelve el problema
- Una regla de firewall más amplia: La validación TCP estricta no forma parte del matching normal de reglas.
- Excepciones web o TLS: El descarte puede producirse antes de que estas políticas procesen el tráfico.
- Una excepción IPS por precaución: Para
NC-169842, Sophos identifica expresamente Strict Policy como causa y solución temporal. - Desactivar la opción global sin una referencia inicial: Sin una prueba reproducible antes y después, no queda demostrado que Accurate ECN fuera la causa.