Cómo vpnc en Gentoo
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
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 |
# cat /etc/resolv.conf
nameserver 192.168.0.1
# cat /etc/hosts
127.0.0.1 desktop localhost
192.168.0.1 router
192.168.2.2 mediacenter
# 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)
# 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.
El contenido de este documento, a no ser que se especifique
expresamente, está registrado bajo los términos de la licencia
CC-BY-SA-2.5. Se aplican las
Pautas de
Utilización del logotipo y nombre de Gentoo.
|