Redes virtuales en Linux con vpnd


En este artículo explicamos brevemente como configurar una red virtual en linux con el programa vpnd. Importante: Si quieres que vpnd te funcione con kernels 2.4.x bája el código de la homepage y no uses paquetes binarios a menos que sean muy recientes.

Nota: Recientemente ha aparecido un parche para vpnd que soluciona problemas con 2.4.x. Si vas a usar este kernel asegúrate de bajarte el código de la homepage y no utilices paquetes binarios recompilados hace tiempo. La versión del programa no ha cambiado, sigue siendo la 1.1.0 con lo que es fácil pensar que tenemos la versión correcta cuando no es así. Por ejemplo el paquete de Debian actual (fecha: 21 de Junio del 2001) no funciona correctamente.

Este fantástico programa con licencia GPL te permite montar enlaces seguras sobre TCP montando un dispositivo serie virtual que te proporciona la posibilidad de enrutar todo el tráfico entre dos subredes. Su configuración no es compleja pero requiere varios pasos a tener en cuenta:

  • Soporte de SLIP en el kernel:

    SLIP (serial line) support

       [*] CSLIP compressed headers

       [*] Keepalive and linefill

       [*] Six bit SLIP encapsulation

  • Creación de la clave de sesión:

    Para crear la clave de sesión hay que ejecutar el comando
    vpnd -m /etc/vpnd/vpnd.key donde /etc/vpnd/vpnd.key es el PATH donde se copiará la clave de sesión generada. La clave de sesión ha de ser común a los dos miembros de la comunicación, da igual quien la genere. La clave debería ser proporcionada al otro extremo a través de un canal seguro, por ejemplo dentro de un email cifrado con GnuPG, aunque eso depende de lo interesados que estemos en la confidencialidad de la información transmitida, recordemos que vpnd nos proporciona la funcionalidad de interconectar redes virtuales, que sean en sí seguras es una opción que incluso se puede desactivar.

    Una vez que los dos miembros tienen la clave de sesión podemos dedicarnos a la configuración del cliente y del servidor. Recordemos que vpnd comunica los miembros o extremos mediante TCP, por tanto uno de los dos hará de servidor y otro de cliente (o iniciador de la conexión)

  • Fichero de configuración en el cliente:

    mode client

    # Dirección IP y puerto de la máquina cliente

    client w.x.y.z 2001

    # Dirección IP y puerto de la máquina servidor

    server a.b.c.d 2001

    # Dirección IP privada del cliente

    local W.X.Y.Z

    # Dirección IP privada del servidor

    remote A.B.C.D

    #

    # Opciones generales

    #

    autoroute

    keepalive 10

    noanswer 3

    keyfile /etc/vpnd/vpnd.key

    pidfile /var/run/vpnd.pid

    randomdev /dev/urandom

    mtu 1600

  • Fichero de configuración en el servidor:

    mode server

    # Dirección IP y puerto de la máquina servidor

    server a.b.c.d 2001

    # Dirección IP y puerto de la máquina cliente

    client w.x.y.z 2001

    # Dirección IP privada del cliente

    local A.B.C.D

    # Dirección IP privada del servidor

    remote W.X.Y.Z

    #

    # Opciones generales

    #

    autoroute

    keepalive 10

    noanswer 3

    keyfile /etc/vpnd/vpnd.key

    pidfile /var/run/vpnd.pid

    keyttl 120

    randomdev /dev/urandom

    mtu 1600

    La instalación de vpnd es sencilla, en su página puedes encontrar el tgz tanto en fuentes como en binarios, sin embargo tanto en Debian como en cualquier distribución que use rpms puedes encontrar paquetes ya montados. Como no decir que en debian la cosa puede ser tan sencilla como ejecutar apt-get install vpnd , siempre que tengas configurado tu apt para que busque paquetes en las secciones non-US.

    Este artículo se basa en los ejemplos de configuración de vpnd que vienen con el paquete debian y desde luego no podría haberlo realizado sin la ayuda de Zebub 😉


    Saludetes.

Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=576 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.