Personal tools
You are here: Home Documentación Recetas Conexión a la VPN de UGR desde GNU/Linux
Navigation
Log in


Forgot your password?
New user?
 
Document Actions

Conexión a la VPN de UGR desde GNU/Linux

by Lorenzo Gil Sanchez last modified 29-10-2004 08:19 PM

Copyright © 20 Noviembre 2004 Juan Martín López (nauj27)

Esta receta le guiará en el proceso de conexión a la red privada virtual (VPN) de la Universidad de Granada.

La conexión se realiza mediante PPTP (Point-to-Point Tunneling Protocol) con encriptación MPPE (Microsoft Point-to-Point Encryption).

Debido a que no hay soporte nativo para MPPE es necesario descargar el parche para el kernel en la dirección www.polbox.com/h/hs001/ Yo lo he hecho con el kernel 2.4.22 y el parche MPPE/MPPC para 2.4.22. Personalmente recomiendo compilar todo lo relacionado con PPP como módulos, incluido por supuesto el módulo para MPPE que aparece al parchear el kernel.

Aunque se dice en la misma web que es necesario usar el último PPP y parchearlo también, en Debian SID no es necesario ya que he conectado con el PPP que trae.

Una vez compilado el kernel con el parche para MPPE/MPPC tenemos un módulo llamado ppp_mppe_mppc.o que es el que nos permitirá habilitar encriptación MPPE necesaria para poder conectarnos a RedUGR. Es recomendable añadir las siguientes líneas en el archivo /etc/modules.conf:

    alias ppp-compress-18 ppp_mppe_mppc
    alias mppe            ppp_mppe_mppc

Lo primero que debemos hacer es levantar la interfaz de red inalámbrica y obtener la dirección IP local. Esto lo podemos hacer con:

    :~#  iwconfig wlan0 essid cviugr mode managed key off

    :~# dhclient wlan0

Una vez que tenemos conexión dentro de la red inalámbrica local tenemos que activar el túnel PPTP. Lo primero será cargar el módulo para MPPE/MPPC mediante:

    :~# /sbin/modprobe mppe

    CSLIP: code copyright 1989 Regents of the University of California
    PPP generic driver version 2.4.2
    MPPE/MPPC encryption/compression module registered

A continuación debemos pedir la clave para la conexión PPP accediendo a la dirección https://192.168.150.1/ Cuando hayamos obtenido la clave se ha de colocar en el archivo /etc/ppp/chap-secrets de la siguiente manera:

    "nombre@fedro.ugr.es"  PPTP  "<contraseña-obtenida>"  *

Y conectar haciendo:

    :~# pppd nobsdcomp nodeflate require-mppe novj nomppe-stateful name nombre@fedro.ugr.es remotename PPTP pty "pptp 192.168.150.1 --nolaunchpppd" noauth

Ahora podemos comprobar cómo tenemos las interfaces de red que nos interesan (aparte de que pueda haber alguna otra). Tenemos la interfaz de la tarjeta de red inalámbrica con una IP de la red local y la nueva interfaz del tipo PPP con la IP pública. Por ésta nueva interfaz encaminaremos como veremos a continuación todos los paquetes que salgan de nuestra máquina:

    :~# /sbin/ifconfig

    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:444 errors:0 dropped:0 overruns:0 frame:0
              TX packets:444 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:39930 (38.9 KiB)  TX bytes:39930 (38.9 KiB)

    ppp0      Link encap:Point-to-Point Protocol  
              inet addr:150.214.205.61  P-t-P:150.214.205.30  Mask:255.255.255.255
              UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1496  Metric:1
              RX packets:870 errors:0 dropped:0 overruns:0 frame:0
              TX packets:1004 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:3 
              RX bytes:183092 (178.8 KiB)  TX bytes:78033 (76.2 KiB)

    wlan0     Link encap:Ethernet  HWaddr 00:03:9D:40:5F:0B  
              inet addr:192.168.150.84  Bcast:192.168.150.255  Mask:255.255.255.0
              UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
              RX packets:5530 errors:0 dropped:0 overruns:0 frame:0
              TX packets:1602 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:100 
              RX bytes:796396 (777.7 KiB)  TX bytes:224505 (219.2 KiB)
              Interrupt:9 Base address:0x100 

Como apuntabamos antes, encaminamos los paquetes por la interfaz del túnel ppp0. En caso de tener por ejemplo un modem en ppp0 y la interfaz del túnel crearse como ppp1 se deberá adaptar la línea para encaminar los paquetes a través de la que nos interesa:

    :~# /sbin/route add default ppp0

Como siempre, podemos comprobarlo:

    :~# /sbin/route

    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    vpn5030.ugr.es  *               255.255.255.255 UH    0      0        0 ppp0
    150.214.20.0    *               255.255.255.0   U     0      0        0 ppp0
    192.168.150.0   *               255.255.255.0   U     0      0        0 wlan0
    80.36.17.0      *               255.255.255.0   U     0      0        0 ppp0
    default         *               0.0.0.0         U     0      0        0 ppp0

Con la posibilidad de añadir la opción -n si queremos ver las direcciones IP correspondientes:

    :~# /sbin/route -n

    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    150.214.205.30  0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
    150.214.20.0    0.0.0.0         255.255.255.0   U     0      0        0 ppp0
    192.168.150.0   0.0.0.0         255.255.255.0   U     0      0        0 wlan0
    80.36.17.0      0.0.0.0         255.255.255.0   U     0      0        0 ppp0
    0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 ppp0

Teóricamente al realizar la conexión PPP deberíamos haber obtenido los DNS pero no es así, al menos en mi caso. Por este motivo tengo siempre un archivo llamado /etc/resolv.conf.backup que copio en este punto sobre el de configuración. El archivo es un archivo de texto plano que contiene lo siguiente:

    search localdomain
    nameserver 80.58.0.33
    nameserver 80.58.32.97

As:

    :~# cp /etc/resolv.conf.backup /etc/resolv.conf

Y ya está, ya tenemos Internet :-) :

    :~# ping google.es

    PING google.es (216.239.33.100): 56 data bytes
    64 bytes from 216.239.33.100: icmp_seq=0 ttl=45 time=519.9 ms
    64 bytes from 216.239.33.100: icmp_seq=1 ttl=45 time=266.4 ms
    64 bytes from 216.239.33.100: icmp_seq=2 ttl=45 time=328.3 ms

    --- google.es ping statistics ---
    3 packets transmitted, 3 packets received, 0% packet loss
    round-trip min/avg/max = 266.4/371.5/519.9 ms

Para conectar a la red privada virtual desde casa es exactamente igual, solo que la clave se obtiene en https://vpn.ugr.es/ y en lugar de acceder por la red inalámbrica accedemos a través de nuestra conexión normal a Internet. Además, si no queremos que todo el tráfico de Internet vaya a través del túnel, podemos encaminar solo el que nos interese:

    :~# /sbin/route add -net 150.214.0.0 ppp0

Actualmente se está trabajando en un script para automatizar el proceso y no haya que hacerlo de manera manual. Espero que se puedan seguir los pasos sin demasiados problemas ^_^


Powered by Plone CMS, the Open Source Content Management System Powered by GCubo Powered by Cicode

This site conforms to the following standards: