VPN SSL de Juniper Networks en Debian sin entorno gráfico

Posted: September 6th, 2010 | Author: | Filed under: debian, Internet | Tags: , , | No Comments »

Esta semana he tenido que cambiar el acceso a VPN desde nuestro servidor Debian, que hasta ahora era transparente (mediante Cisco) a una VPN SSL de Juniper Networks, ha llevado bastante tiempo y pruebas sobre todo debido a que no hay soporte de Debian por parte de Juniper, sólo para Red Hat y al final se trata de prueba/error.

Nuestro servidor es un Debian Lenny sin entorno gráfico, ese fue uno de los primeros problemas ya que las soluciones que existen por internet y el propio cliente de Juniper para Linux, están siempre pensados para clientes con entorno gráfico.

 

1. Pasos previos

Antes de comenzar con la configuración en el servidor, a través de un pc con Linux con entorno gráfico (y java instalado) obtendremos los ficheros necesarios.
Sólo tenemos que conectar a la web de la VPN (yo utilicé Ubuntu+Firefox), con esto nos descargará a /home/user/.juniper_networks/ todos los archivos necesarios para la conexión, no importa si establece la conexión a la VPN o no.

Desde /home/usuario/ realizamos:

tar -czvf juniper.tgz .juniper_networks/*

Y ya hemos terminado con el pc y podemos pasar al servidor.

 

2. Preparación de archivos para la conexión

Descomprimimos juniper.tgz en el servidor en /home/usuario/.juniper_networks/ y descomprimimos el archivo /home/usuario/.juniper_networks/ncLinuxApp.jar

jar -xf ncLinuxApp.jar

Con esto obtenemos varios archivos importantes:

  1. getx509certificate.sh Necesario para obtener el certificado del servidor
  2. ncsvc El servicio que crea la conexión VPN

 

3. Obtener el certificado

Desde el mismo directorio:

chmod +x getx509certificate.sh
./getx509certificate.sh vpn.empresa.com vpn.crt

Con esto ya tenemos uno de los archivos necesarios para establecer la VPN, el vpn.crt

 

4. Instalar el servicio

Ejecutar como root:

install -m 6711 -o root /home/usuario/.juniper_networks/ncsvc /home/usuario/.juniper_networks/network_connect/ncsvc

 

5. Establecer la conexión

Ya sólo queda establecer la conexión, para esto necesitaremos consultar al administrador el parámetro “realm”, por internet comentan que suele estar entre el HTML de la página de acceso, pero en mi caso no era así.

Conociendo este parámetro sólo nos falta realizar la conexión propiamente dicha:

./ncsvc -h vpn.empresa.com -u user01 -p password -r realm -f vpn.crt

Si en nuestro caso la VPN utiliza URIs personalizadas es necesario añadir también el parámetro -U

./ncsvc -h vpn.empresa.com -u user01 -p password -r realm -f vpn.crt -U https://vpn.empresa.com/aux/usuario01/

Entonces el terminal quedará con el mensaje:

Connecting to vpn.empresa.com : 443

Y la VPN conectada hasta que caduque la sesión o cancelemos. La conexión creará un nuevo interface de red tun0 (lo podréis ver con ifconfig) y añadirá también unas rutas (ver con route) y unas líneas a /etc/resolv.conf

Si de esta forma no funciona y los parámetros son correctos, antes de realizar más pruebas debemos contactar con el administrador, puesto que en algunos casos, como por ejemplo que esté configurado para múltiples sesiones, no funcionará.

 

Más documentación:



Leave a Reply