Para el que no lo conozca, Tunnelblick es un GUI gratuito y open-source que permite controlar OpenVPN en Mac OS X, y que viene siendo lo que usamos los maqueros de Trabe en nuestras casas para conectarnos a la feliz VPN de Trabe. Es un software muy interesante pero tiene un bug que impide tener múltiples dominios de búsqueda configurados.
Como no quiero resultar pesado, este post tiene dos versiones: la corta, que va al grano y da una solución, y la extendida que explica un poquillo las cosas para el que quiera entender el problema y la solución (TL;DR).
La versión corta
Si vuestra VPN publica varios dominios de búsqueda Tunnelblick sólo se va a quedar con él último dominio (un fallo conocido y documentado: issue 144). Para solucionarlo sólo es necesario explorar los contenidos de la aplicación Tunnelblick.app (versión 3.2beta32) y modificar el contenido del fichero client.3.up.tunnelblick.sh (en Contents/Resources/) con el script que os dejo en este gist (el diff por un lado y el script completo por otro). Configurais la VPN para usar el método de establecimiento de DNS “Asignar servidores de nombre (alternativa 1)” (en inglés “Set nameserver (alternate 1)”) y listo.
La versión extendida (con explicaciones y todo eso)
En Trabe tenemos un DNS interno y varios dominios de búsqueda y los resolv.conf de nuestras máquinas se parecen a esto:
1 2 |
|
La VPN está configurada para que envíe esta información a los clientes, utilizando directivas push en la configuración del servidor OpenVPN:
1 2 3 4 |
|
Tunnelblick tiene un modo de funcionamiento que teóricamente detecta esta información y modifica el resolv.conf de la máquina cliente de manera adecuada (“Asignar servidores de nombre (alternativa 1)” en castellano y “Set nameserver (alternate 1)” en inglés). Por desgracia no funciona correctamente y sólo tiene en cuenta la última entrada, es decir, que nuestro resolv.conf una vez conectados queda así:
1 2 |
|
El problema está en el script que detecta estas opciones y le indica al cliente que modifique su configuración. La cosa comienza a torcerse en la línea 105 del script client.3.up.tunnelblick.sh:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
La opción DOMAIN se trata como un campo univaluado y hay que modificar el script para tratarlo como multivaluado, al igual que se hace con el campo DNS. En este gist podéis encontrar el script modificado. Para ponerlo a funcionar os remito a la versión corta del post ;).
Ya hemos notificado todo esto a la gente que hace Tunnelblick y esperamos que lo tengan en cuenta para próximas releases y evitar tener que andar parcheando la aplicación.
Happy VPNing!
Lo sentimos, pero los comentarios están cerrados