26.10.11

VPN en Linux Ubuntu (protocolo L2TP sin encriptar)

Trabajar desde casa es cada vez más común. Para ello las Redes Privadas Virtuales (VPN) acercan la oficina al hogar permitiendo conectarte a la red de l trabajo como si realmente estuvieras ahí, con acceso a todos los recursos de esa LAN.
El servidos VPN en la oficina, muchas veces un router, usa alguno de los varios protocolos disponibles para estas redes, por ejemplo L2TP. Del otro lado, desde casa, es necesario contar con un cliente VPN compatible con ese mismo protocolo.
Muchos de estos protocolos están soportados por varios sistemas operativos sin necesidad de agregar nada. En el caso de Ubuntu, puede instalarse y configurarse un cliente L2TP muy facilmente siguiendo estos pasos.

Instalación

Solo se necesita el paquete OpenL2TP que si bien no está disponible aún en los repositorios de Ubuntu, puede bajarse desde:
http://sourceforge.net/projects/openl2tp/files/openl2tp/1.8/debian-lenny/


Configuración

Una vez instalado, es necesario crear el archivo de configuración /etc/openl2tp.conf
Con las siguientes líneas, se crea una conexión con el servidor VPN en la dirección IP pública 190.1.1.1, registrándose como el usuario johndoe y usando el pasword xxxx. Obviamente estos campos deben ser reemplazados por los datos reales de la VPN.

ppp profile modify profile_name=default \
      auth_eap=no auth_mschapv1=no auth_mschapv2=no
tunnel create tunnel_name=nombre dest_ipaddr=190.1.1.1 \
      persist=yes
session create tunnel_name=tunnelname \
      session_name=sessionname \
      user_name=johndoe \
      user_password="xxxx"
# system modify deny_remote_tunnel_creates=yes


Ahora ya se puede apagar la PC para que al arrancar se conecte directamente.


Probando

Una vez que se inicia Ubuntu, ya debería estar conectado a la VPN. Para comprobarlo se puede usar l2tpconfig que viene con el paquete.

$ sudo l2tpconfig
l2tp>user list
    TunId   SesId   User     Create Time
    14757   53428   johndoe  Wed Oct 26 12:22:00 2011
l2tp>session show tunnel_id=14757 session_id=53428


Una vez que se ingresa a l2tpconfig, aparece un prompt de consola donde se pueden escribir comandos. Con los dos que se ven arriba, será suficiente para probar que la conexión (tunel) existe.

Si el tunel fue creado con éxito, es posible hacer ping a alguna PC de la LAN de la oficina.

$ ping 192.168.1.2

Si el ping no tiene respuesta, puede ser necesario incluir una ruta en el sistema. De esta manera se le dice a la PC que los paquetes destinados a la oficina deben salir a través de la interfaz ppp0 (creada por el tunel) en vez del camino habitual.


$ sudo route add -net 192.168.1.0 netmask 255.255.255.0 dev ppp0



Este comando supone que la LAN de la oficina es de la forma 192.168.1.0/24 Si no es así debe cambiarse por los datos correctos.


A veces puede haber problemas si la red hogareña tiene un rango de IP privadas que se superpone con el de la LAN de la oficina. En ese caso, basta con cambiar nuestras IPs a 192.168.2.0. Probablemente tengas que hacer eso en la configuración de tu router.



Control
Una vez que todo funciona, la conexión y desconexión se hace así:
$ sudo /etc/init.d/openl2tp start
$ sudo /etc/init.d/openl2tp stop


Más información
Todo lo anterior corresponde a una red L2TP no segura. OpenL2TP también puede usarse encriptado. Para ello se monta el servicio IPsec sobre el túnel.


Fuentes:
http://www.openl2tp.org/
http://en.wikipedia.org/wiki/Layer_2_Tunneling_Protocol

No hay comentarios: