Estamos hablando de VPN que es por protocolo PPP
Para conectar ubuntu a una VPN de manera gráfica es muy sencillo ya que trae una GUI de manejo sencillo, al parecer más fácil que en el propio windows.
Sin embargo establecer la conexión requiere interacción manual de nuestra parte, y cuando requerimos la conexión de manera cotidiana resulta engorroso tener que estar conectándola a cada rato que se desconecta, por lo que una forma de hacerlo mediante un script es más adecuada. Otra ventaja es que podemos fijar las rutas manualmente y no sacar todo nuestro tráfico por la VPN.
Requerimos el comando pppd, el cual viene como parte del paquete ppp.
Si no lo tenemos instalado es tan sencillo como usar el comando.
sudo apt-get install ppp pptp-linux
Ahora si entremos en materia de como se hace:
nota: los parámetros se ponen mayúsculas
Primero el comando para levantar el cliente de VPN
pppd call VPN_NAME debug logfd 2 nodetach
El programa buscara los parámetros en el archivo
/etc/ppp/peers/VPN_NAME
cosa que nos damos cuenta cuando lo corremos y aún no tenemos el archivo ya que marca:
pppd: Can't open options file /etc/ppp/peers/VPN_NAME: No such file or directory
En dicho archivo tenemos que poner lo siguiente:
pty "pptp VPN_HOST --nolaunchpppd"
name USERNAME
# esto para que use la ultima versión ms-chap2 al no usar los otros métodos de autentificación
refuse-pap
refuse-eap
refuse-chap
# deshabilitar compresion bsd
nobsdcomp
# deshabilitar compresión deflate
nodeflate
Adicionalmente tenemos que especificar el password a usar en el archivo
/etc/ppp/chap-secrets
USERNAME SOMETHING PASSWORD *
curiosamente el parámetro SERVER podriamos pensar que corresponde al VPN_HOST pero no es así, hemos puesto inicialmente el valor SOMETHING porque no sabemos que tenemos que poner
guardamos y corremos nuevamente el comando de conexión
pppd call VPN_NAME debug logfd 2 nodetach
a lo que obtendremos un mensaje de error entre lo que encontraremos lo siguiente:
No CHAP secret found for authenticating us to X
Ese X es lo que tenemos que poner en lugar de SOMETHING en el archivo chap-secrets.
Al hacerlo y volver a conectar a la vpn:
pppd call VPN_NAME debug logfd 2 nodetach
si el password es correcto podemos ver que se queda abierta la conexión y se queda corriendo el programa porque le hemos dicho nodetach, lo que nos facilita poner el comando dentro de un ciclo para que se mantenga abierta la vpn.
La parte truculenta de esto fue el SOMETHING ya que esto no aparece explicado por ninguna parte que he visto en internet ni en la documentación.
Si queremos ver un poco más de info de depuración podemos ver los mensajes de salida de pppd
tail -f /var/log/messages | grep pppd
Una vez que estamos conectados tenemos de dos sopas para que los IPs remotos sean accesibles, una es añadir como ruta default la interface ppp0, con el inconveniente de que si en la VPN no tenemos acceso a internet en nuestro equipo nos quedamos sin internet:
route add default dev ppp0
La segunda, es si ya conocemos los segmentos a los que tenemos acceso dentro de la VPN, añadimos estos segmentos
route add -net x.x.x.x/x dev ppp0
Si la info te ha sido de utilidad no olvides regalar un comentario.
No hay comentarios.:
Publicar un comentario