Gentoo Logo

Cómo vpnc en Gentoo

Contenido:

1.  Introducción

Si está leyendo éste documento, entonces probablemente tiene la necesidad de conectar a la red de su oficina desde su hogar o durante un viaje. Muchas compañías utilizan concentradores Cisco 3000 VPN para los requerimientos de su VPN, y puedo apostar que la mayoría de los novatos en Linux piensan que están forzados a usar Windows para conectarse a ellas. Bien, éste documento es para informarles que conectarse a una VPN Cisco es posible y con un poco de suerte será capaz de configurar un tunel funcional usando su Gentoo de sobremesa o portátil.

Qué es éste documento

  • Una guía de las capacidades básicas de vpnc
  • Una discusión de los problemas de DNS y ruteo relativos a las VPNs
  • Ejemplos del manejo de sesiones VPN
  • Consejos y trucos útiles (esperemos)

Qué no es éste documento

  • Una guía a profundidad de tecnologías de encriptación/VPN
  • Una explicación característica por característica de vpnc

Supuestos

Las suposiciones hechas hasta ahora son:

  • Tiene Gentoo instalado
  • Tiene acceso a Internet
  • Desea conectarse a un concentrador Cisco 3000 VPN
  • Sabe cómo configurar, compilar e instalar un núcleo nuevo

2.  Configuración del Núcleo

Para que que Linux sea capaz de abrir una conexión VPN el soporte del manejador del dispositivo universal TUN/TAP debe estar activo en el núcleo. ¿Qué es eso y por qué lo necesito? El párrafo siguiente tiene una explicación relativamente directa del diálogo de configuración del núcleo:

Listado de Código 2.1: CONFIG_TUN

TUN/TAP provee recepción y transmisión de paquetes para programas del
espacio de usuario. Ésto puede verse como un simple dispositivo
Punto-a-Punto o Ethernet, el cuál en vez de recibir paquetes de un
medio físico, los recibe de un programa de espacio de usuario y en ves
de enviar paquetes vía medios físicos los escribe al espacio del
programa del usuario.

Cuando un programa abre /dev/net/tun, el manejador crea y registra el
dispositivo de red correspondiente tunX o tapX. Después un programa
cierra los dispositivos superiores, el manejador automáticamente
eliminará el dispositivo tunXX o tapXX y todas las rutas
correspondientes a él.

Puede verificar por si mismo si el núcleo tiene soporte TUN/TAP con el siguiente comando:

Listado de Código 2.2: Verificando la configuración del núcleo

#  grep "TUN" /usr/src/linux/.config
CONFIG_INET_TUNNEL=m
# CONFIG_INET6_TUNNEL is not set
# CONFIG_IPV6_TUNNEL is not set
(TUN/TAP enabled as a module)
CONFIG_TUN=m
# CONFIG_8139TOO_TUNE_TWISTER is not set

Como puede ver arriba, CONFIG_TUN=m está compilado como módulo. Si está deshabilitado en su configuración, actívelo en el núcleo que ha elegido, recompile, instale, reinicie y vuelva a éste documento antes de seguir con los pasos a continuación.

Listado de Código 2.3: Localización en el diálogo de configuración del núcleo

Device Drivers  --->
  Network device support  --->
    [*] Universal TUN/TAP device driver support

Si compiló el soporte TUN/TAP directamente en el núcleo, debería ver una salida de dmesg como la siguiente:

Listado de Código 2.4: Verificar la salida de dmesg

# dmesg | grep TUN
Universal TUN/TAP device driver 1.5 (C)1999-2002 Maxim Krasnyansky

Si compiló el soporte TUN/TAP como módulo, primeramente debe cargar el módulo tun:

Listado de Código 2.5: Cargar módulo tun

# modprobe tun
# lsmod
Module                  Size  Used by
tun                     7296  0

Ahora el módulo tun está cargado, verifique la salida de dmesg. Debería ver algo como ésto:

Listado de Código 2.6: Verificar la salida de dmesg

# dmesg | grep TUN
Universal TUN/TAP device driver 1.5 (C)1999-2002 Maxim Krasnyansky

3.  Instalar el Software Necesario

Ahora que tiene configurado el núcleo, necesita instalar net-misc/vpnc:

Listado de Código 3.1: Instalar vpnc

# emerge -av net-misc/vpnc

Asegúrese de revisar las combinaciones de parámetros USE soportadas y ver si aplican a su entorno. Si encuentra un problema más tarde con el siguiente error, deberá activar el parámetro USE hybrid-auth:

Listado de Código 3.2: Mensaje de error de vpnc acerca del modo hybrid/cert

vpnc was built without openssl: Can't do hybrid or cert mode.

4.  Configuración de Ejemplo

Para que las secciones siguientes sean más entendibles, necesitamos una configuración de ejemplo para trabajar. Para propósitos de éste ejercicio asumimos que tiene una red local de varias computadoras. Todas las computadores están en la red 192.168.0.0/255.255.255.255. La LAN en cuestión pasa por una máquina Gentoo usando iptables como cortafuegos, DHCP, DNS de cacheo, etc... y enmascara la LAN a través de una dirección IP pública que recibe de un ISP. También tiene una estación de trabajo en su LAN por la cuál quiere conectar por VPN con su oficina.

La configuración de ejemplo de nuestra estación de trabajo se ve así:

Listado de Código 4.1: La configuración de nuestra estación de trabajo

(Configuración del Servidor de Nombres)
# cat /etc/resolv.conf
nameserver      192.168.0.1

(Configuración de la Red)
# cat /etc/hosts
127.0.0.1       desktop localhost
192.168.0.1     router
192.168.2.2     mediacenter

(Configuración del Interfaz)
# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:11:2F:8D:08:08
          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::211:2fff:fe8d:808/64 Scope:Link
          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3657889 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2305893 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2193722103 (2092.0 Mb)  TX bytes:1415104432 (1349.5 Mb)
          Interrupt:185 Memory:fac00000-0

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:35510 errors:0 dropped:0 overruns:0 frame:0
          TX packets:35510 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:16023838 (15.2 Mb)  TX bytes:16023838 (15.2 Mb)

(Información de enrutamiento)
# netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.0.0     *               255.255.255.0   U         0 0          0 eth0
loopback        desktop         255.0.0.0       UG        0 0          0 lo
default         router          0.0.0.0         UG        0 0          0 eth0

5.  Configurar vpnc

Ahora tiene vpnc instalado y también un ejemplo con el cual trabajar, discutamos la configuración básica de vpnc. El archivo de configuración de la conexión de vpnc puede ser ubicado en un par de lugares, dependiendo de cuántos perfiles desee configurar. Por defecto, vpnc busca primeramente en /etc/vpnc/default.conf sus configuraciones de conexión. Si no encuentra ese archivo, busca a /etc/vpnc.conf. Ésta configuración seguirá un perfil simple de ejemplo y usará el archivo de configuración localizado en /etc/vpcn.conf. Asegúrese de no tener el archivo /etc/vpnc/default.conf.

Listado de Código 5.1: El archivo de ejemplo /etc/vpnc.conf

IPSec gateway vpngateway.domain.org
IPSec ID group_id
IPSec secret group_password
Xauth username network_signon
Xauth password network_password

El archivo de configuración de ejemplo anterior será modificado para reflejar los valores apropiados para su configuración. La opción de puerta de enlace vpngateway.domain.org puede ser un nombre de dominio completamente calificado o una dirección IP. El ID y opciones secretas debería dárselas un administrador de la red. Si no puede obtener ésta información y ya tiene una configuración funcional en una máquina Windows que utiliza un cliente oficial Cisco VPN, entonces lo único que tiene que hacer es exportar su perfil. Las opciones de usuario y clave son para loguear normalmente en su red, como en una cuenta con dominio Windows NT.

Si está forzado a exportar su perfil desde una máquina Windows, entonces preferirá tenerlo en un archivo con extensión .pcf. Éste archivo tendrá toda la información que necesite. Por debajo sigue un ejemplo:

Listado de Código 5.2: Archivo de ejemplo profile.pcf

[main]
Description=
Host=VPNGATEWAY.DOMAIN.ORG
AuthType=1
GroupName=group_id
GroupPwd=
enc_GroupPwd=F3256220AA200A1D532556024F4F314B0388D48B0FBF2DB12
EnableISPConnect=0
ISPConnectType=0
ISPConnect=FOOBAR
ISPCommand=
Username=
SaveUserPassword=0
UserPassword=
enc_UserPassword=
NTDomain=
EnableBackup=0
BackupServer=
EnableMSLogon=1
MSLogonType=0
EnableNat=1
TunnelingMode=0
TcpTunnelingPort=10000
CertStore=0
CertName=
CertPath=
CertSubjectName=
CertSerialHash=00000000000000000000000000000000
SendCertChain=0
VerifyCertDN=
DHGroup=2
ForceKeepAlives=0
PeerTimeout=90
EnableLocalLAN=0
EnableSplitDNS=1
ForceNetLogin=0

En el ejemplo anterior, podemos ver entradas para Host, GroupName y enc_GroupPwd. Su Username y UserPassword podrían o podrían no ser exportados dependiendo de la configuración. Para generar una configuración de vpnc funcional fuera de esa, puede usar pcf2vpnc, incluida con vpnc.

Nota: Puede desencriptar la clave con la ayuda del programa cisco-decrypt, que viene con la última versión de vpnc.

Probar su configuración

Ahora que tiene la configuración en su lugar, es tiempo de probarla. Para iniciar vpnc haga lo siguiente:

Listado de Código 5.3: Ejemplo de uso de vpnc

# vpnc
Enter password for username@vpngateway.domain.org:
VPNC started in background (pid: 14788)...

Como puede ver de la salida del ejemplo anterior, una vez que escribió vpnc (como root), se le ha pedido su clave. Después de ingresar dicha clave, la cuál no será mostrada, el proceso vpnc automáticamente se convertirá en un proceso de fondo.

Nota: Si ha especificado la opción Xauth password en el archivo de configuración de su vpnc, entonces no le pedirá una clave al inicio de vpnc. Adicionalmente, si vpnc necesita algunas opciones extra no especificadas en el archivo de configuración, o si ha olvidado algo, no se preocupe, le preguntará por ello.

Listado de Código 5.4: Ejemplo de cambios en la interfase de configuración hechos por vpnc

#  ifconfig -a
eth1      Link encap:Ethernet  HWaddr 00:11:2F:8D:08:08
          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::211:2fff:fe8d:808/64 Scope:Link
          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2101119 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1577559 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1757862627 (1676.4 Mb)  TX bytes:732200131 (698.2 Mb)
          Interrupt:177 Memory:faa00000-0

sit0      Link encap:IPv6-in-IPv4
          NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:192.168.160.42  P-t-P:192.168.160.42  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1412  Metric:1
          RX packets:1 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500
          RX bytes:60 (60.0 b)  TX bytes:616 (616.0 b)

Listado de Código 5.5: Ejemplo de modificaciones de ruteo hechos por vpnc

# netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
vpn01.domain.or router          255.255.255.255 UGH    1500 0          0 eth1
192.168.0.0     *               255.255.255.0   U         0 0          0 eth1
loopback        desktop         255.0.0.0       UG        0 0          0 lo
default         *               0.0.0.0         U         0 0          0 tun0

Como puede ver en la salida de los anteriores comandos, vpnc ha hecho lo siguiente:

  • Ha creado la interfase de red tun0, una interfase virtual para manejar el tráfico a través de su tunel VPN.
  • Ha obtenido la dirección IP para el dispositivo tun0 del proveedor de la VPN.
  • Ha establecido la ruta por defecto hacia la puerta de enlace de su VPN.

En este punto, su estación de trabajo es capaz de comunicarse con otros hosts vía la VPN. Esto es debido a que vpnc define su ruta por defecto a su pasarela VPN, por lo que todo el tráfico de red viaja por la VPN, incluso si está destinado a Internet o algún otro lugar no especificado por rutas adicionales. Para algunos, este tipo básico de conexión puede ser satisfactorio, pero para la mayoría, se necesitan dar algunos pasos adicionales.

Características adicionales que probablemente le gustaría tener:

  • Un DNS para la VPN
  • Una configuración de enrutado que solo enviará tráfico destinado por la VPN por debajo del tunel virtual. De esta manera, puede navegar por la internet mientras está conectado a la VPN, sin que el tráfico de su web/p2p personal, etc, vaya a través del tunel.
  • Un guión para manejar todo ello, porque el vpnc no hace lo suficiente por defecto.

Cuando esté listo para terminar la sesión de VPN, ejecute vpnc-disconnect. Un ejemplo se muestra abajo.

Nota: No se desconecte aún, tenemos cosas adicionales que probar. El ejemplo siguiente es sólo para propósitos de información.

Listado de Código 5.6: vpnc-disconnect

# vpnc-disconnect
Terminating vpnc daemon (pid: 26250)

6.  Montar el DNS

Desafortunadamente, vpnc no se ocupa del manejo y configuración del DNS para su tunel recientemente establecido. El usuario es libre de decidir cómo debería manejar el DNS. Podría sobreescribir el archivo /etc/resolv.conf cuando se conecte, pero eso podría utilizar el DNS de su VPN para todas las consultas DNS sin importar si el trafico esté o no destinado por el tunel de su VPN. Ésta es una solución bastante funcional y si necesita simplemente conectar al tunel, haga su trabajo, y desconecte, no lea más. Pero, si desea ser capaz de dejar a su tunel conectado por largos períodos de tiempo y no quiere que sus servidores DNS trabajen manejando requerimientos de su tráfico personal, continúe leyendo.

La configuración ideal le permitiría separar las consultas de su DNS en dos categorías: las relacionadas a su VPN y otras. En ésta configuración, todas las consultas de DNS relacionadas a la VPN serán resueltas por servidores DNS localizados al final de su tunel VPN y todas las otras consultas podrían continuar siendo respondidas por los servidores DNS locales o resueltas por su ISP. Esa es la configuración que demostraremos aquí.

Nota: Hemos de considerar consultas de DNS relacionadas a la VPN que serán cualquier consulta perteneciente al dominio example.org, como host1.example.org o server1.example.org.

¿Asi que cómo configurar de tal forma que sólo las peticiones hechas al host en el dominio example.org sean enviadas a los servidores de DNS suministrados por la VPN? Bien, necesitará instalar un servidor DNS local, pero no se preocupe, es más fácil de lo que piensa. Hay muchos paquetes de software que pueden manejar el tipo de configuración que deseamos, pero para el propósito de ésta demostración utilizaremos dnsmasq. Instalémoslo ahora:

Nota: Éste servidor DNS no estará disponible en la red, y sólo responderá pedidos desde el localhost, 127.0.0.1.

Listado de Código 6.1: Instalando dnsmasq

# emerge dnsmasq

Ahora necesita agregar una opción a las opciones de inicio de su dnsmasq. Edite la opción siguiente según su conveniencia. Sustituya example.org con el dominio apropiado y la dirección IP con un servidor DNS válido que pertenezca al tunel VPN.

Listado de Código 6.2: /etc/conf.d/dnsmasq

Archivo de configuración para /etc/init.d/dnsmasq

# Mire la página man dnsmasq(8) para más opciones posibles.
DNSMASQ_OPTS="-S /.example.org/192.168.125.10"

Seguidamente, asegúrese que la primera entrada en /etc/resolv.conf es su localhost 127.0.0.1, seguido de la localización de los servidores DNS de respaldo que deberían manejar el tráfico de DNS en caso de que dnsmasq falle al iniciar, o si necesita enviar una consulta de DNS que actualmente no tenga en su cache. Un ejemplo /etc/resolv.conf se muestra a continuación.

Listado de Código 6.3: /etc/resolv.conf

nameserver 127.0.0.1
nameserver 192.168.0.1

Ahora que ha configurado una regla para su tunel VPN necesita iniciar dnsmasq.

Listado de Código 6.4: Iniciar dnsmasq

# /etc/init.d/dnsmasq start
# rc-update add dnsmasq default

7.  Configurar la tabla de enrutado

El escenario ideal sería si sólo el tráfico destinado para el tunel VPN viajaría a través del enlace. Hasta aquí, tiene un tunel VPN configurado y todo el tráfico viajará a través del tunel, a menos que especifique rutas adicionales. Para arreglar ésta situación necesita saber qué redes están disponibles en su VPN. La manera más fácil de encontrar la información necesaria es preguntar al administrador de red, pero algunas veces son reacios a responder tales preguntas. Si su administrador local de red no le provee la información necesaria, deberá hacerlo experimentando a prueba y error.

Cuando el tunel VPN sea iniciado, vpnc establece la ruta por defecto al tunel. Deberá establecer la ruta por defecto de regreso al normal, así las cosas funcionarán como se espera.

Listado de Código 7.1: Reiniciando la ruta por defecto

# route add default gw 192.168.0.1

Anteriormente, cuando los servicios del DNS fueron configurados para su VPN, especificó un servidor DNS para manejar el dominio example.org. Necesitará agregar una ruta para la subred 192.168.125.0 así las consultas del DNS funcionarán.

Listado de Código 7.2: Agregando una ruta para el dns

# route add -net 192.168.125.0 netmask 255.255.255.0 dev tun0

Hasta el momento, podría agregar rutas adicionales para redes conocidas (como ser la subred 192.168.160.0, la cual incluye la dirección IP recibida por el dispositivo virtual TUN/TAP). Si su amigable administrador de red le ha dado la información requerida, genial. De otro modo, tendrá que hacer ping a las estaciones a las que se conectará frecuentemente, para que tenga una idea de cómo se debería ver su tabla de enrutado.

Nota: Debido a su configuración, cuando use los servicios de red de la VPN por nombre, debe especificar el nombre de dominio completo, por ejemplo: webserver1.example.org

Listado de Código 7.3: Ejemplo de Ping

# ping intranet1.example.org
PING intranet1.example.org (172.25.230.29) 56(84) bytes of data.


--- intranet1.example.org ping statistics ---
18 packets transmitted, 0 received, 100% packet loss, time 16997ms

Como ha podido ver en los ejemplos anteriores, el ping que examina a intranet1.example.org fue satisfactorio. Ahora necesitamos agregar una ruta para la subred.

Listado de Código 7.4: Otro ejemplo del comando route

# route add -net 172.25.230.0 netmask 255.255.255.0 dev tun0

Luego de unos cuantos pings y routes, estará bien encaminado hacia una tabla de enrutado solvente.

8.  Administrar la conexión

Llamar a vpnc cuando sea necesario

El siguiente ejemplo es un guión para administrar la conexión VPN. Puede ejecutarlo (como root) desde una xterm para iniciar una conexión hacia su VPN. Todo lo que debe hacer es presionar Enter para desconectar la VPN. Obviamente necesitará modificarlo para su configuración, recuerde agregar todas las rutas adicionales que vaya a necesitar.

Listado de Código 8.1: Ejemplo de guión administrador de sesión

#!/bin/bash

source /sbin/functions.sh

ebegin "Conectar a la VPN"
vpnc
eend

ebegin "Modificar la tabla de enrutado"
route add default gw 192.168.0.1
route add -net 172.25.230.0 netmask 255.255.255.0 dev tun0
route add -net 192.168.160.0 netmask 255.255.255.0 dev tun0
route add -net 192.168.125.0 netmask 255.255.255.0 dev tun0
eend

einfo "Presione cualquier tecla para desconectar ..."

read $disconnect

ebegin "Desconectar de la VPN"
vpnc-disconnect
eend
ebegin "Reconfigurar la tabla de enrutado por defecto"
route add default gw 192.168.0.1
eend

einfo "Ahora debería estar desconectado de la VPN"

Iniciar vpnc al arrancar

La versión 0.4.0-r1 de vpnc contiene un guión de inicio (/etc/init.d/vpnc) el cuál puede manejar múltiples configuraciones. El guión por defecto busca a (/etc/vpnc/vpnc.conf), pero son posibles tantas configuraciones como pueda imaginar. Antes y después de apagar y al inicio, guiones personalizados que están conectados por su nombre al correspondiente guión de inicio, pueden ser ejecutados (desde la versión 0.5.1-r1). Sus nombres terminan en -preup.sh, -postup.sh, -predown.sh y -postdown.sh; y están almacenados en el directorio /etc/init.d/scripts.d. El esquema general de nombres está esbozado en la siguiente tabla.

nombre del guión de inicio archivo de configuración necesario nombre del guión de preup
/etc/init.d/vpnc /etc/vpnc/vpnc.conf /etc/vpnc/scripts.d/vpnc-preup.sh
/etc/init.d/vpnc.work /etc/vpnc/work.conf /etc/vpnc/scripts.d/work-preup.sh

Agregue vpncp al nivel de ejecución por defecto con los siguientes comandos (en este caso para una configuración estándar). No olvide agregar el módulo tun (si lo ha incluido de esta manera) al mecanismo de inicio de autocarga del núcleo.

Listado de Código 8.2: Agregando vpnc a los guiónes de inicio

# rc-update add vpnc default

Si no desea guardar su clave en el archivo de configuración, puede indicarle al guión de inicio que muestre todas las salidas y respuestas en una vista estándar editando /etc/conf.d/vpnc. Establezca la variable VPNOUTPUT a sí o no, la cuál por defecto establece no mostrar la salida por pantalla.

Nota: Los guiones de inicio no manejan la separación de DNS, pero puede usar los guiones personalizables para hacerlo. Mire Consejos y trucos

9.  Consejos y Trucos

Acceso remoto gráfico

Si esta buscando una aplicación para linux que soporte RDP (Protocolo de Escritorio Remoto) dele a grdesktop una oportunidad. Es una aplicación GUI escrita en Gtk+ que encaja bien en un escritorio Gnome, pero no lo requiere. Si no desea los diálogos de configuración GUI que grdesktop provee, entonces solo instale rdesktop. Ultimamente, grdesktop es sólo una interfase para rdesktop.

Si es usuario de KDE, podría probar kvpnc. El cuál parece un GUI muy maduro para manejo de VPNs.

Si necesita conectar a una máquina Windows la cuál no tenga una entrada en el DNS, y sabe la dirección de un servidor WINS disponible, puede usar una herramienta llamada nmblookup para consultar al servidor WINS por el nombre (hostname) de la máquina a la cuál desea conectar. Desafortunadamente, necesita instalar samba, pero si va a trabajar con máquinas que corren bajo Windows le convendría i instalar samba porque incluye muchas otras herramientas útiles.

Listado de Código 9.1: Instalando samba

# emerge -av samba

Cuando haya instalado samba y sus herramientas, pruebe nmblookup preguntando al servidor WINS el cual tiene por dirección IP 192.168.125.11, acerca del host llamado wintelbox1.

Listado de Código 9.2: ejemplo de nmblookup

# nmblookup -U 192.168.125.11 -R 'wintelbox1'
querying wintelbox1 on 192.168.125.11
172.25.230.76 wintelbox1

Guiones personalizados en el inicio

Los guiones personalizados en el directorio init.d pueden ser usados para configurar el enrutamiento de un usuario definido para la conexión del vpnc. Los ejemplos siguientes muestran cómo configurar la tabla de enrutado de manera que sólo las conexiones hacia 123.234.x.x estén enrutadas por la VPN y todas las otras conexiones usan la puerta de enlace por defecto. El ejemplo usa work-preup.sh para guardar la puerta de enlace por defecto actual antes de iniciar vpnc (el cuál reinicia la puerta de enlace por defecto usando la conexión VPN). Una vez que vpnc ha arrancado, work-postup.sh borra esta nueva puerta de enlace, restaura la antigua puerta de enlace por defecto y establece la ruta para todas las conexiones hacia 123.234.x.x para usar la conexión de vpnc.

Listado de Código 9.3: /etc/vpnc/scripts.d/work-preup.sh

#!/bin/sh
route -n | grep -E '^0.0.0.0 ' | cut -c 17-32 >/var/tmp/defaultgw

Listado de Código 9.4: /etc/vpnc/scripts.d/work-postup.sh

#!/bin/sh
route del -net 0.0.0.0 netmask 0.0.0.0 dev tun1
route add default gw $(cat /var/tmp/defaultgw)
route add -net 123.234.0.0 netmask 255.255.0.0 dev tun1

Los guiones de ejemplo asumen que la conexión vpnc usa tun1 como dispositivo tun. Puede configurar el nombre del dispositivo en el archivo de configuración de la conexión.

Listado de Código 9.5: /etc/vpnc/work.conf

Interface name tun1
IPSec gateway vpn.mywork.com
Pidfile /var/run/vpnc.work.pid

10.  Enlaces útiles

11.  Notas Finales

Esperemos que ahora sea capaz de conectarse a la VPN que haya elegido y este en buen camino hacia el trabajo en su oficina remota. Envíenos un bug a bugs.gentoo.org si encuentra algún error o desea agregar o recomendar algo referente a este documento.



Imprimir

Página actualizada 22 de abril, 2012

Sumario: Este documento detalla la manera de conectar su estación de trabajo a un concentrador Cisco VPN utilizando vpnc para administrar la conexión.

David H. Askew
Autor

Sven Vermeulen
Colaborador

Christian Faulhammer
Colaborador

Thomas Fischer
Colaborador

Joshua Saddler
Editor

Sergio D. Rodríguez Inclan
Traductor

José María Alonso
Traductor

Donate to support our development efforts.

Copyright 2001-2013 Gentoo Foundation, Inc. Questions, Comments? Contact us.