viernes, 8 de agosto de 2008

VPNC, Cisco VPN desde Linux

Mi trabajo me obliga a acceder remotamente vía VPN contra un Cisco ASA que utilizamos como concentrador de VPN. Suelo hacerlo desde el ADSL de mi casa o con la conexión 3G del router Huawei E220 que paga la empresa (en un próximo post os comentaré brevemente cómo lo tengo configurado y el rendimiento que me da).



Hasta ahora había utilizado el cliente de cisco desde una máquina virtual con XP corriendo sobre mi ubuntu. Cisco posse también una solución para linux y mac pero recientemente he descubierto vpnc, una forma mucho más simple y efectiva de hacer lo mismo.

Lo primero es instalar el software; no voy a entrar en detalles pero vpnc se encuentra en los repositorios de las principales distribuciones. En ubuntu sería:

#sudo aptitude install vpnc

A continuación procedemos a crear un archivo con nuestro perfil de vpn en /etc/vpnc/perfil El formato a utilizar es el siguiente:

IPSec gateway ip.de.destino
IPSec ID nombre.del.grupo
IPSec secret password.del.grupo
Xauth username usuario
Xauth password password.de.usuario

Una vez hecho esto podemos conectarnos a la vpn con el siguiente comando

#sudo vpnc perfil

Nota: puede pasar que nos de error si el gateway de vpn utiliza DES para la encriptación. En este caso accedemos con: #sudo vpnc --enable-ldes perfil


Para deconectarnos basta con ejecutar:

#sudo vpnc-disconnect

8 comentarios:

Anónimo dijo...

Pude levantar la VPNC pero cuando se levanta el internet se bloque como puedo hacer que funcionen las dos al mismo tiempo gracias de antemano

Antonio Balsera dijo...

Te he contestado en un post:

http://arot-linux.blogspot.com/2008/12/vpnc-acceso-internet-y-vpn-la-vez.html

Espero que te valga.

Fernando Reich Espinosa dijo...

Buenos días!,

Por favor ayudenme, ya que soy nuevo en Linux y poseo poco conocimiento sobre el tema.

Intente realizar una VPN para conectarme a mi ordenador laboral (yo antes lo hacia desde Windows mediante una aplicación Cisco).

Buscando en los foros de Ubuntu (yo tengo el 9.04) encontré la aplicación VPNC (VPNC 0.5.3-1 y "network-manager-vpnc" 0.7.1 RC4...).

Por lo que la instale, la configure y logre ingresar a la VPN (VPNC started in background (pid: 18887)...) pero no así a mi ordenador (10.73.65.21).

Realice un ping a la ip de mi ordenador y el ping queda colgado eternamente, mucho menos logre acceder con el "Cliente de Terminal Server" vía RDP, (inclusive intente agregar a la IP el puerto 3389 y tampoco se conecta).

Les paso a contar como configure el VPNC:

Utilice el comando "sudo vpnc myconf.conf" y edite un archivo con el comando "sudo nano /etc/vpnc/myconf.conf" ingresando lo siguiente:

IPSec gateway 200.40.229.162

IPSec ID *****

IPSec secret *****

Xauth username ********

Xauth password **********

Y me aparece "VPNC started in background (pid: 18887)..." pero como les comentaba no me puedo conectar a mi ordenador por lo que:

Instale el Firestarter 1.0.3 para desactivar el Firewall con la opción "Detener cortafuegos" pero ping continuo colgándose.

Me llamo mucho la atención que la navegación de Internet continuaba funcionando a pesar de que la VPN estaba conectada (en Windows no sucedía).

Por lo que utilice el comando route por si el ping estaba buscando la ip de mi ordenador en internet (eth0) en vez de buscarla en la VPN (tun0) pero tampoco se resolvió el inconveniente (sudo route add -host 10.73.65.21 dev tun0).

Modifique la configuración del Firestarter con el comando "sudo nano /etc/firestarter/user-pre"

iptables -A INPUT -j ACCEPT -s 200.40.229.162 -p esp

iptables -A INPUT -j ACCEPT -s 200.40.229.162 -p udp -m multiport --sports isak$

iptables -A INPUT -j ACCEPT -i tun0

iptables -A OUTPUT -j ACCEPT -d 200.40.229.162 -p esp

iptables -A OUTPUT -j ACCEPT -d 200.40.229.162 -p udp -m multiport --dports isa$

iptables -A OUTPUT -j ACCEPT -o tun0

En la solapa Estado del Firestarter me aparece "tun0 Túnel IP encaminado" pero Recibido y Enviado figuran con 0,0 MB traficado.

También agreguee por las dudas en la solapa Normativa para trafico entrante del Firestarter que permita conexiones de la IP 200.40.229.162 (VPN host) y que abra los puertos 3389 (RDP) desde cualquier IP.

Nada de esto funciono, la verdad se me acabaron las ideas y no encuentro ninguna otra solución en los foros.

Si alguno de ustedes me puede ayudar muy agradecido


Saludos
Fernando Reich

Fernando Reich Espinosa dijo...

Les dejo más abajo un log del ifconfig y el comando route por si alguien me quiere ayudar.





Saludos



Fernando Reich


fernando@servidor:~$ ifconfig
eth0 Link encap:Ethernet direcciónHW 00:50:fc:f9:5e:53
inet dirección:192.168.1.2 Difusión:192.168.1.255 Máscara:255.255.255.0
dirección inet6: fe80::250:fcff:fef9:5e53/64 Alcance:Vínculo
ARRIBA DIFUSIÓN CORRIENDO MULTICAST MTU:1500 Métrica:1
RX packets:86408 errors:0 dropped:0 overruns:0 frame:0
TX packets:61584 errors:0 dropped:0 overruns:0 carrier:0
colisiones:0 txqueuelen:1000
RX bytes:113792018 (113.7 MB) TX bytes:4982706 (4.9 MB)
Interrupción:21 Dirección base: 0xd800

lo Link encap:Bucle local
inet dirección:127.0.0.1 Máscara:255.0.0.0
dirección inet6: ::1/128 Alcance:Anfitrión
ARRIBA LOOPBACK CORRIENDO MTU:16436 Métrica:1
RX packets:1328 errors:0 dropped:0 overruns:0 frame:0
TX packets:1328 errors:0 dropped:0 overruns:0 carrier:0
colisiones:0 txqueuelen:0
RX bytes:125156 (125.1 KB) TX bytes:125156 (125.1 KB)

tun0 Link encap:UNSPEC direcciónHW 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet dirección:172.20.6.9 P-t-P:172.20.6.9 Máscara:255.255.255.255
ARRIBA PUNTO A PUNTO CORRIENDO NOARP MULTICAST MTU:1412 Métrica:1
RX packets:1 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
colisiones:0 txqueuelen:500
RX bytes:56 (56.0 B) TX bytes:204 (204.0 B)

fernando@servidor:~$ route
Tabla de rutas IP del núcleo
Destino Pasarela Genmask Indic Métric Ref Uso Interfaz
10.70.1.5 * 255.255.255.255 UH 0 0 0 tun0
r200-40-229-162 192.168.1.1 255.255.255.255 UGH 0 0 0 eth0
10.73.133.250 * 255.255.255.255 UH 0 0 0 tun0
10.73.65.21 * 255.255.255.255 UH 0 0 0 tun0
172.20.6.0 * 255.255.255.224 U 0 0 0 tun0
192.168.1.0 * 255.255.255.0 U 1 0 0 eth0
10.10.92.0 * 255.255.255.0 U 0 0 0 tun0
10.73.65.0 * 255.255.255.0 U 0 0 0 tun0
10.73.132.0 * 255.255.254.0 U 0 0 0 tun0
link-local * 255.255.0.0 U 1000 0 0 eth0
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

Antonio Balsera dijo...

Hola Darth Sidious, por lo que puedo ver sí que estableces la VPN con el entorno de tu trabajo pero que, una vez en la red de destino, el tráfico no se enruta bien.

Creo que el problema reside en que, aunque tengas la ruta definida, necesitas una IP de puerta de enlace por defecto en la red 172.20.6.0 * 255.255.255.224 (en la red donde toma IP la interface vpn, tun0).

Vendría bien que me enviaras la salida del comando "traceroute 10.73.65.21"

Fernando Reich Espinosa dijo...

Estimado Arot,

Muchas gracias por la idea!!, seguro que con eso se arregla el inconveniente.

Pero por casualidad, ¿sabes como hago para modificar la puerta de enlace y la mascara de subred de tun0?

Quizás activando DHCP en tun0 no sea necesario modificar dichos parámetros pero tampoco tengo idea de como lo activo.

Saludos y GRACIAS!!!
Fernando Reich

Fernando Reich Espinosa dijo...

Hola Arot,

Mira lo que aparece:

fernando@servidor:~$ traceroute 10.73.65.21
traceroute: icmp socket: Operation not permitted

Unknown dijo...

Buenos días.

He realizado la configuración tal como explican, pero no logro conexión. Me pide primero:
Enter password for .....@....:
Y luego:
Password for VPN ......@......:
Dos veces, al final me dice:
vpnc: authentication unsuccessful

Estoy utilizando la contraseña de coloco en windows, pero no funciona; al parecer una de las dos se refiere a algo más que no se que es.
Si me pueden ayudar, se los agradeceré.

Saludos,

Rubén Darío