domingo 6 de julio de 2008

PPTP, GRE y VPN múltiples con firewalls Stonegate (1 de 2)

En general Stonesoft es una firma que me gusta. Alfonso sostiene que los finlandeses son tipos que apenas ven el sol, y al pasar tanto tiempo encerrados entre cuatro paredes tienen la oportunidad de dotar de mucha calidad a sus productos.

Su servicio de soporte en Finlandia es bastante fiable y rápido. No conozco a ninguno de ellos en persona, pero igual entenderían el significado de los bits si los pudieran ver pasar por un cable. Esto también lo dice Alfonso.

Sin embargo ese mismo perfil tan técnico y especializado, inalcanzable para los que por suerte o desgracia tocamos un poco de todo, creo que les hace caer en la trampa de pensar que a los demás se nos puede torear facilmente. Y claro, no es así. Excluyo de esta crítica a Alfonso y Javier, los dos Stonesoft-man que conozco aquí en España.

Lo que voy a explicar aquí tiene que ver con una carencia que presentan sus firewalls. Jorge me comenta que otras firmas de nivel, como p. ej. Cisco, sufren de lo mismo en muchos de sus dispositivos. Se resume así:

Imagina que quieres conectar tu delegación al resto del mundo a través de tú IP pública. Sales a internet a través de tu Stonegate, que configuras de acuerdo a tus necesidades de seguridad. Ahora un colaborador externo te pide que te conectes a su instalación mediante una conexión Windows VPN que abres contra su servidor PPTP. Dicho y hecho. Acto seguido alguien de tu equipo se dispone a configurar y probar la misma conexión que a ti te ha funcionado. Pero a él le falla (!?).

El escenario sería éste (diagrama a través de gliffy.com):



Miras el log del firewall, y te encuentras denegaciones que informan que el "Requested NAT cannot be done." (para el protocolo GRE, denegaciones referidas sólo a la segunda conexión).

Consultas a Stonesoft y te remiten a la documentación o bien a este link en su página, donde resumiendo nos dicen que técnicamente no es posible manejar el escenario descrito: Para solucionarlo debes salir con diferentes IPs públicas. Sí, claro, tengo un cesto lleno de ellas.

Entonces les preguntas si clientes basados en implementaciones VPN más serias (básicamente L2TP/IPSec) padecen de lo mismo. Y la respuesta es sí y no: Si el cliente VPN no es capaz de encapsular de alguna forma (p. ej mediante NAT-Traversal) otros protocolos IP "planos" como GRE o ESP (en los que el concepto de puerto de origen y destino no existe), la primera conexión funcionará, pero no la segunda conexión simultánea a ese mismo destino. Efectivamente pude comprobar que dos conexiones IPSec simultáneas al mismo destino con el VPN client de Cisco (capaz de encapsular) no daban ningún problema (desde máquinas distintas, claro).

Hasta aquí pueden hacernos creer que Windows presenta una limitación en su PPTP. Stonesoft viene a decirnos, más o menos: "Si Microsoft tiene carencias en su cliente VPN, no seré yo quien se las solucione". Correcto.

Pero me da por probar lo mismo desde mi casa, desde donde salgo a internet con una sola IP pública a través de un router cutre de Timofónica.

Abro el primer PPTP, ok. Desde otra máquina intento abrir el segundo PPTP, ok también (!). ¡La hostia! El router de mi casa supera las prestaciones de un dispositivo de red de seguridad perimetral de uso empresarial.

Y claro, empiezo a sospechar que Stonesoft no me lo ha contado todo...