Apr 13

bueno, más que jugando, sacándole jugo a la conexión VPN que conseguimos con el post anterior. En este caso, una necesidad y ganas de retorcer la cosas, hemos metido en nuestra “red” un servidor dedicado que tenemos en housing, pongamos que en… hostinet (publicidad gratuita ;p).

vale, el servidor corre servicios web, para continuar con el ejemplo, este mismo blog… lostintheshell.net, a parte, supongamos que en https://aplicacion.lostintheshell.net tenemos acceso web a una aplicación que debe acceder, o incluso realizar querys en tiempo real, a la información recogida en la BBDD de uno de nuestros servidores locales. (recordamos que en las net-lan de telefónica no se permite la apertura de ningún puerto).

Vale, la cosa es bien sencilla, instalamos en nuestro servidor el software que comentábamos el otro día VPNC, con nuestro fichero de configuración debidamente configurado (recordamos):

LOSTINTHESHELL.conf

IPSec ID LOSTINTHESHELL
IPSec gateway LOSTINTHESHELL1.ipsec.rima-tde.net
IPSec secret LOSTINTHESHELL
IKE Authmode psk

Xauth username berto@LOSTINTHESHELL

NAT Traversal Mode cisco-udp

Bien, pues ya está listo, ¿no?. Pues bien, en este caso no es oro todo lo que reluce, ya que tenemos una problemilla relativamente “gordo”. Tranquilos, no asustarse, que lo explico.

- Tenemos un único punto de acceso a ese servidor dedicado, es decir, accedemos a él por una única ip (da igual que sea través de web, de telnet, de ssh…), su ip pública (que sigue unas reglas de networking); no tenemos acceso físico a ese servidor, ni tan siquiera a un terminal, que no sea a través de ssh, en este punto es dónde debemos tener ¡cuidado!

Al levantar la VPN todo el enrutamiento, por defecto, se hace a través de las reglas establecidas para la VPN, quedando “absorvido” o “anulado” el tráfico habitual del funcionamiento normal del servidor. Es decir, en el mismo momento que levantemos la VPN perdemos el control del servidor, ya que no tenemos modo de acceder al terminal.

Para no encontrarnos con esta problemática, y cómo lo único que perdemos es la conectividad con el servidor, lanzamos un script que nos levante la vpn, pero que después continúe reestableciendo las rutas por defecto, es decir, (re)configurando su red normal para dejarla tal y como estaba antes de establecerse el tunel VPN y estableciendo la red y ruta del tráfico que debe pasar por la VPN. He aquí un ejemplo, suponiendo que nuestra red es de clase B, una 192.168.0.0 y la ip pública de nuestro servidor 91.171.157.227

open-vpn.sh

echo “Conexión realizada con éxito”

#!/bin/bash
# Sencillisimo script realizado por b3r2c0 para establecer la VPN con la NetLan de Telefónica y un servidor dedicado (externo)
echo “Realizando Backup de las DNS locales”
cp /etc/resolv.conf /etc/resolv.conf.local
echo “Conectando a la VPN de l.i.t.s.”
vpnc-connect LOSTINTHESHELL
echo “Manteniendo el GW por defecto para la conexión principal”
route add default gw 91.171.157.254 dev eth0
echo “Añadiendo la gestión de tráfico de la VPN”
route add -net 192.168.0.0 netmask 255.255.0.0 dev tun0
echo “Restaurando DNS”
cat /etc/resolv.conf.local >> /etc/resolv.conf

el default gw que le añado, no es aleatorio, antes de elaborar el mini-script, has de consultar tu configuración de red con ifconfig; por otro lado, el juego de idas y venidas con el resolv.conf es para solventar el problemilla que se nos planteaba en el post anterior, ya que el vpnc machaca tus dns por defecto, así pues nos quedamos con las que teníamos y se las añadimos a las generadas por la net-lan (pese a que no les demos utilidad, más vale prevenir); luego en un script vpn-off.sh, desconectaremos la vpn y le dejaremos sólo las dns previas. Por cierto, no te olvides de darles permisos de ejecución a los scrpits, ejjeej.

ciao.

Tagged with:
Apr 07

bueno, después de un tiempecillo sin postear nada (pero con mucho post-borrador empezado) debido a la monumental petada de trabajo que tenemos actualmente, voy a apuntarme “on line” unas anotaciones sobre la VPN NET-Lan de Telefónica, que me he vuelto un poco “tarado” para realizar una maraña de conexiones y túneles, una auténtica autopista de la información, ejejej.

El problema empieza cuando la red corporativa es de Cisco y la gestiona Telefónica, con lo cual, si conseguir un soporte mínimamente decente es complicado, trabajar con el software propietario de Cisco versión GNU/Linux, acaba quitando las ganas, sobre todo en servidores en producción.

Después de dar unas cuantas vueltas, y de dar vueltas a tutoriales, todo es muchísimo más sencillo de lo que parece. Al grano, para tener funcional la conexión VPN a tu Net-Lan de Telefónica has de seguir los siguientes pasos (Debian y Debian-like, probado en Ubuntu 8.10 – easy peasy y Debian 5.0 Lenny):

Instalamos el software que nos sirve más que de sobra para esta y otras conexiones VPN, se trata de vpnc, con licencia GPL, que las cosas cuanto mejor se preparan mejor salen 8)

#apt-get install vpnc

no tendremos problemas, dado que se encuentra en los repositorios oficiales de las distribuciones empleadas.

una vez tenemos instalado el vpnc, debemos transformar los ficheros de configuración que nos da Telefónica (.pcf) a un fichero legible para el vpnc, que siguiendo el clasico de los *nix será un .conf guardado en el path /etc/vpnc/.

el vpnc incluye una utilidad que nos hará la conversión de un tipo de fichero a otro directamente, ejecutamos.

#/usr/share/vpnc/pcf2vpnc ruta-fichero.pcf /etc/vpnc/nombre-conexion.conf

ya tenemos el fichero creado, lo ideal sería:

#vim /etc/vpnc/nombre-conexion.conf

IPSec gateway <gateway>
IPSec ID <group-id>
IPSec secret <group-psk>
IKE Authmode hybrid
# Xauth username <username>
# Xauth password <password>

NAT Traversal Mode cisco-udp

Añadir la última línea al final para asegurarnos una mayor compatibilidad con la Netlan; en el caso de que meter el usuario y/o password cada vez que nos conectemos nos suponga un sufrimiento, podemos descomentar las líneas del Xauth y la ejecución será más rápida, un fichero nos quedaría tal que así, llamemoslé, por ejemplo, LITS.conf.

## generated by pcf2vpnc
IPSec ID LOSTINTHESHELL
IPSec gateway LOSTINTHESHELL1.ipsec.rima-tde.net
IPSec secret LOSTINTHESHELL
IKE Authmode psk

## To add your username and password,
## use the following lines:
Xauth username berto@LOSTINTHESHELL
# Xauth password <your password>

NAT Traversal Mode cisco-udp

Con esto tendría listo una conexion a mi NETLAN, denominada LOSTINTHESHELL, y, en este caso, recordaría mi usuario “berto”, pero no la contraseña de acceso, ahora, para conectarme a mi RPV tan sólo tendría que ejecutar…

#vpnc-connect LOSTINTHESHELL

… et voilá.

Actualización: No es mi caso, pero algún compañer@ ha tenido percances del tipo “me conecta 1 vez de cada 10 (o 20); presumiblemente lo he solucionado realizando un ping al gateway y colocando en lugar del nombre la resolución de su IP, algo que puede ir solucionado intrínsecamente con otro problema que dejaré para mañana (el borrado de las DNS en el /etc/resolv.conf cada vez que “cortas” la conexión VPN).

Tagged with:
preload preload preload