Con IPv6 cada dispositivo tendrá una IP pública, estaremos seguros gracias al firewall del router

El martes, a raíz de la noticia de que el operador MásMóvil ha implementado CGN en sus redes, surgió un debate por diferentes foros bastante interesante sobre las implicaciones de tener IPv6. ¿Con IPv6 tendremos una IP pública enrutable por Internet en cada dispositivo? ¿Podrán hackearnos el frigorífico o la TV por no estar detrás de la NAT como en IPv4?

¿Qué direccionamiento IPv6 tendremos en nuestro hogar?

Los operadores de Internet en España están actualmente en fase de pruebas con IPv6, solo unos pocos elegidos disponen en sus hogares de este direccionamiento IP. El protocolo IPv6 se diseñó para dotar de conectividad punto a punto a los diferentes dispositivos conectados, sin tener ningún intermediario como ha ocurrido en IPv4 con NAT. Por este motivo, cuando nuestro operador nos proporcione direccionamiento IPv6, nos dará un rango /64 de direcciones, mucho más que suficiente para conectar todos y cada uno de nuestros dispositivos a Internet con IP pública.

¿Qué significa esto? Que por ejemplo nuestro operador nos asignará el rango «2001:db8:abcd:abcd::/64», las IPv6 tienen 128 bits, por lo que podremos tener en nuestro hogar 2^64 direcciones IP (el espacio de direcciones de IPv4 es de 32 bits, por lo que todas las IPv4 del mundo son 2^32). En otras palabras, que el operador nos asignará unos cuantos miles de millones de IPv6, solo para nosotros. Estas direcciones que nos proporcionará el ISP son de tipo Global Unicast, es decir, enrutables en Internet. ¿Significa esto que mi TV tendrá una IPv6 pública para que la hackeen fácilmente? No, y os lo vamos a demostrar.

Mi frigorífico, lavadora, enchufe inteligente y cámara IP tendrán una IPv6 pública, ¿me van a hackear? Pues no

Aunque cada uno de los dispositivos que tengamos en nuestro hogar tendrá una IP pública accesible desde Internet, el router será quien deje pasar o no los datos, más concretamente el firewall IPv6 del router será quien pare cualquier tipo de comunicación desde el exterior, igual que hasta ahora hacíamos en IPv4.

Si nuestro móvil con IPv6 pública accede a un servicio de Internet, se podrá comunicar con él sin problemas como hasta ahora, ya que desde la red local hacia Internet sí se permiten las conexiones nuevas, y la información volverá a nosotros porque la conexión ya se habrá establecido con un determinado puerto. El funcionamiento es similar a lo que ocurría en NAT, pero sin traducir absolutamente nada ya que tenemos comunicación punto a punto.

Si pasado un determinado tiempo, alguien es capaz de descubrir nuestra dirección IPv6 de nuestro móvil, si ese alguien intenta comunicarse con nuestro móvil, el firewall del router lo parará por defecto, porque no hay ningún tipo de conexión saliente anteriormente realizada por el móvil hacia esa dirección IP, y el firewall lo sabe.

En la siguiente captura podéis ver el firewall IPv6 de un router ASUS. Tal y como podéis ver, por defecto permite todo el tráfico saliente procedente de los hosts IPv6 de la LAN y el tráfico entrante correspondiente a esas conexiones anteriormente establecidas (algo lógico y normal, ya que sino estaría bloqueando todas las conexiones). Sin embargo, cualquier tipo de tráfico entrante que no haya sido establecido anteriormente por nosotros, se debe permitir específicamente en el menú de configuración.

Esto significa que si por ejemplo montamos un servidor FTP en un determinado servidor, aunque tengamos la IPv6 pública que nos lleva directamente a él, el puerto 21 (por defecto) no estará abierto, por lo que no tendremos la posibilidad de conectarnos sino lo abrimos en el firewall específicamente.

Internamente el router ASUS utiliza iptables como firewall, a continuación podéis ver la configuración del router en la chain FORWARD, que es la que se usa para reenviar el tráfico a los dispositivos conectados. La configuración es la de por defecto a excepción de la penúltima regla que es una apertura de puertos TCP del 1 al 10000 que ha sido añadida a posteriori para pruebas.

Si alguien desde fuera de nuestra red intenta hacer a nuestro PC un simple ping, les funcionará de acuerdo a la regla ACCEPT del icmp que tenemos anteriormente.

En nuestra opinión, por defecto esta función debería estar deshabilitada, es decir, que nadie desde Internet pueda hacer ping a nuestro dispositivo por defecto. La política de FORWARD es de bloquear todo el tráfico que no está específicamente permitido, algo perfecto de cara a la seguridad.

Sin embargo, si alguien intenta hacer un escaneo de puertos sencillos, nos dirá que el host está caído, ya que hay reglas para evitar el escaneo de puertos y demasiados paquetes icmp en pocos segundos:

Si modificamos el firewall para bloquear cualquier tipo de ICMP (saliente y entrante), tal y como podéis ver en la primera regla de todas, «DROP icmp» desde cualquier origen a cualquier destino.

No podrán hacernos ping (ni nosotros tampoco hacerlo con esta regla):

Lo normal es que el firewall sí permita el ping hacia cualquier host de fuera, pero lo impida desde la WAN hacia la LAN, algo que podemos configurar perfectamente en iptables o en cualquier otro firewall. Los routers que darán los operadores permitirán todos estos cambios, de tal forma que aunque cada uno de los dispositivos conectados tengan una (e incluso varias) IPv6 públicas, no podrán comunicarse con ellos si anteriormente nosotros no hemos establecido una comunicación.

Conclusiones: No te van a hackear por usar IPv6, siempre que el firewall del router esté bien configurado

Tal y como habéis podido ver, la respuesta es clara: no. La NAT siempre ha dado una falsa sensación de seguridad, al estar «detrás» del router y cuyas direcciones IP de la LAN no salen a Internet. De hecho, con IPv6 tenemos algo que IPv4 nunca ha tenido, la seguridad por oscuridad, porque hacer un escaneo de hosts a un espacio de direcciones de 64 bits actualmente es impensable ya que llevaría muchísimo tiempo. Además, cada dispositivo se autoasignará una IPv6 pública de manera aleatoria cada cierto tiempo, por lo que la probabilidad de que «te encuentren» es más difícil.

Agradecemos a Marcos Vidal su ayuda para las pruebas de conectividad (ping y escaneo de puertos) desde su servidor OVH con IPv6.