El túnel cae, el kill switch informa que se activó y una descarga sigue en marcha. Nada está roto en las reglas de IPv4. La aplicación simplemente se movió a una ruta para la que esas reglas nunca se escribieron.

Los dispositivos de doble pila tienen dos salidas independientes. Un bloqueo en una de ellas es medio bloqueo.

Dos conjuntos de reglas, dos valores predeterminados

En Linux, iptables e ip6tables son tablas separadas con políticas separadas. Poner las cadenas INPUT y OUTPUT de la tabla IPv4 en DROP no cambia nada en la tabla IPv6, donde el valor predeterminado suele ser ACCEPT. La misma división existe en nftables, donde puedes inspeccionar una familia y descubrir que solo una de ellas lleva tus reglas. Esa asimetría es normal, y es todo el problema.

Por eso un kill switch puede parecer exhaustivo y comportarse parcialmente. El script que escribió las reglas de IPv4 se ejecutó, los contadores aumentan, la línea del registro aparece y un paquete IPv6 sale por la interfaz física completamente intacto.

Lee lo que tu cliente instala realmente en lugar de lo que promete la página de marketing. Algunos clientes enrutan IPv6 al túnel, otros lo bloquean deliberadamente y otros lo dejan en paz mientras un bloqueo a nivel de plataforma aplica otra regla. La documentación del proveedor es la única fuente en la que vale la pena confiar aquí.

Qué te dice la configuración de la interfaz

La página del manual de wg-quick incluye reglas IPv6 en su configuración de ejemplo, y la razón es exactamente esta laguna. El ejemplo no es decoración. Existe porque solo las reglas de IPv4 dejarían abierta la segunda familia.

Copiar medio ejemplo produce media política. Ese es el origen más común de esta fuga. Una entrada de blog recortó el ejemplo por longitud. La versión recortada se convirtió entonces en la plantilla que todos reutilizaron.

# what is actually installed, per family?
sudo iptables -S OUTPUT | head -20
sudo ip6tables -S OUTPUT | head -20

# nftables: inspect each family separately
sudo nft list ruleset inet | head -40

# does this host even have a usable IPv6 path?
ip -6 route show default

Si el segundo comando imprime una política permisiva mientras el primero imprime DROP, has encontrado la respuesta sin tocar el cliente. Esa asimetría es el error.

Por qué una sola consulta no es toda la historia

Un solo nombre puede devolver tanto un registro A como un registro AAAA, y las aplicaciones no eligen todas igual. Un navegador puede preferir IPv6 cuando la red lo ofrece y retroceder ante un fallo, mientras que una sincronización en segundo plano o un actualizador usa su propio resolutor y su propia preferencia. Por tanto, una prueba exitosa sobre IPv4 demuestra una ruta, no la política.

Las transiciones de red también cambian la respuesta. Unirse a otra red Wi-Fi, reanudar tras la suspensión o cambiar a la red móvil puede dar al dispositivo un nuevo prefijo IPv6, y la política que parecía adecuada en la LAN de la oficina puede no cubrirlo.

Prueba el estado en el que el túnel está caído

Probar mientras estás conectado te dice que el túnel funciona. La prueba interesante es el estado no disponible, porque es cuando se supone que el kill switch debe aguantar. Detén el túnel a propósito y luego prueba los destinos que importan desde la aplicación que proteges.

# with the tunnel stopped, does anything still leave?
ip -6 route get 2606:4700:4700::1111
curl -6 -sS -o /dev/null -w '%{http_code}\n' --max-time 5 https://ipv6.example.net/
curl -4 -sS -o /dev/null -w '%{http_code}\n' --max-time 5 https://ipv4.example.net/

Ambas familias deberían fallar cerradas. Si la solicitud IPv4 expira y la solicitud IPv6 devuelve un código de estado, la política está incompleta, y ninguna cantidad de repetir la prueba del túnel lo cambiará.

Mantén también las excepciones documentadas en esa prueba. El descubrimiento de la red local, una renovación de DHCP o la ruta de arranque hasta el punto final de la VPN pueden necesitar seguir siendo accesibles, y esas excepciones deberían nombrarse en la política en lugar de descubrirse durante una interrupción. Una prueba de fuga que falla porque el túnel no puede volver a subir no es un hallazgo de seguridad, es un hallazgo de conectividad.

Artículos relacionados