Instalar cliente VPN en 3 pasos

¿Usuario de la red de la EHU? ¿Usuario de Ubuntu? ¿Quieres conectar por VPN? ¡Estás de enhorabuena! El proceso se ha simplificado en 3 pasos:

$ sudo apt-get install vpnc
$ sudo vi /etc/vpnc.conf
IPSec gateway 158.227.0.11
IPSec ID EHU
IPSec secret VPNs
Xauth username nombre_de_usuario
Xauth password contraseña
Interface name vpn0
$ sudo vpnc --natt-mode none

¡Listo!

16 comentarios en «Instalar cliente VPN en 3 pasos»

  1. Gracias por la info. Hasta ahora no había conseguido que vpnc funcionara en mi sistema (utilizo el vpn de Cisco).
    Tan solo tres apuntes:

    – Cómo cerrar la conexión:sudo «vpnc-disconnect» (al principio yo mataba directamente el proceso «vpnc»).

    – Se puede añadir la opción sobre NAT al fichero de configuración, de tal modo que solo tenemos que escribir «sudo vpnc». Mi configuración:
    Interface name vpnehu
    IPSec gateway 158.227.0.11
    IPSec ID EHU
    IPSec secret VPNs
    Xauth username usuario
    # Xauth password contraseña
    NAT Traversal Mode none

    – Cuidado con los ficheros de configuración. Hay varios, y «vpnc» sigue un orden para consultarlos al buscar la configuración por defecto (man vpnc). Yo utilizo «/etc/vpnc/default.conf»

  2. En el anterior post olvidé comentar que si teneis un cortafuegos cuyas reglas se basan en el interfaz a través del cuál tenéis la conexión (eth0, eth1, …), tendréis que ampliar las reglas al nuevo interfaz que se crea al establecer la conexión vpn («vpnehu» en el ejemplo que puse).

  3. Gracias por la información.
    De todas maneras, aprovecho este post para hacer una consulta.

    He instalado un nuevo router (de orange) que me permite conectar dos ordenadores. El asunto es que la conexión VPN no funciona, según parece, por que tengo que abreir los puertos del router (de hecho, no funciona ni en linux ni en windows).

    Podéis decirme cómo abrir los puertos del router para VPN?

    Mila esker

  4. @Txomin: para que podamos ayudarte mejor, por favor, indícanos la marca exacta del router (nombre, modelo, todo lo que sepas sobre él… o que puedas leer en las pegatinas o serigrafías que lleva).

  5. @Txomin: desde la consola, ejecuta el siguiente comando:

    $ sudo nc -l -p 500

    Esto lanzará un servidor a la escucha en el puerto TCP 500. Este servidor es netcat (nc), haciendo las funciones de un frontón 🙂 Todo lo que le llegue, rebota hacia el cliente. Es decir, si abres una conexión desde fuera hacia la máquina con nc a la escucha y le envías el string «hola», netcat le devolverá el string «hola». Muy útil para probar que los puertos están abiertos correctamente.

    Una vez lanzado el comando nc anterior, lo más fácil para probar es que te conectes con el navegador a la web:

    http://testmyports.com/

    y teclees el puerto 500. Aunque esa web diga que hace escaneo TCP y UDP , he probado que no es del todo cierto, sólo hace correctamente el escaneo TCP. Suficiente para nuestras pruebas. Tras sondear el puerto 500 te tiene que salir lo siguiente:

    http://argazkiak.s3.amazonaws.com/6f71204d0dd2f77253b13de6591df790_c.jpg

    Si quieres hacer pruebas de verdad contra el puerto UDP 500, tienes que lanzar netcat en tu máquina así:

    $ sudo nc -l -u -p 500

    Y para escanear ese puerto UDP, desde una máquina remota (conéctate por ssh):

    $ nc -u IP_PUBLICA 500

    Donde IP_PUBLICA es la dirección IP pública que usas para conectarte a Internet. Si no la sabes, puedes averiguarla a través de la web:

    http://www.cualesmiip.com

    Finalmente, ojo con el firewall. No sería la primera vez que pierdo varias horas probando un montón de configuraciones distintas en el router hasta darme cuenta de que el problema estaba en que iptables bloqueaba el tráfico que yo quería dejar pasar. Eso lo puedes saber así:

    $ sudo iptables -L

    $ sudo iptables -L -t nat

    ¿Qué reglas te salen ahí?

  6. Aúpa.
    Comienzo por el final. Con los iptables no sé arreglarme, todavía, y por eso uso firestarter.
    Cuando intento la conexión vpn, pruebo también cerrando el firewall.

    sudo iptables -L devuelve lo siguiente:

    Chain INPUT (policy DROP)
    target prot opt source destination
    ACCEPT tcp — myrouter.home anywhere tcp flags:!FIN,SYN,RST,ACK/SYN
    ACCEPT udp — myrouter.home anywhere
    ACCEPT 0 — anywhere anywhere
    ACCEPT icmp — anywhere anywhere limit: avg 10/sec burst 5
    DROP 0 — anywhere 255.255.255.255
    DROP 0 — anywhere 192.168.0.255
    DROP 0 — BASE-ADDRESS.MCAST.NET/8 anywhere
    DROP 0 — anywhere BASE-ADDRESS.MCAST.NET/8
    DROP 0 — 255.255.255.255 anywhere
    DROP 0 — anywhere 0.0.0.0
    DROP 0 — anywhere anywhere state INVALID
    LSI 0 -f anywhere anywhere limit: avg 10/min burst 5
    INBOUND 0 — anywhere anywhere
    LOG_FILTER 0 — anywhere anywhere
    LOG 0 — anywhere anywhere LOG level info prefix `Unknown Input’

    Chain FORWARD (policy DROP)
    target prot opt source destination
    ACCEPT icmp — anywhere anywhere limit: avg 10/sec burst 5
    LOG_FILTER 0 — anywhere anywhere
    LOG 0 — anywhere anywhere LOG level info prefix `Unknown Forward’

    Chain OUTPUT (policy DROP)
    target prot opt source destination
    ACCEPT tcp — 192.168.0.129 myrouter.home tcp dpt:domain
    ACCEPT udp — 192.168.0.129 myrouter.home udp dpt:domain
    ACCEPT 0 — anywhere anywhere
    DROP 0 — BASE-ADDRESS.MCAST.NET/8 anywhere
    DROP 0 — anywhere BASE-ADDRESS.MCAST.NET/8
    DROP 0 — 255.255.255.255 anywhere
    DROP 0 — anywhere 0.0.0.0
    DROP 0 — anywhere anywhere state INVALID
    OUTBOUND 0 — anywhere anywhere
    LOG_FILTER 0 — anywhere anywhere
    LOG 0 — anywhere anywhere LOG level info prefix `Unknown Output’

    Chain INBOUND (1 references)
    target prot opt source destination
    ACCEPT tcp — anywhere anywhere state RELATED,ESTABLISHED
    ACCEPT udp — anywhere anywhere state RELATED,ESTABLISHED
    ACCEPT tcp — anywhere anywhere tcp dpts:6881:6889
    ACCEPT udp — anywhere anywhere udp dpts:6881:6889
    LSI 0 — anywhere anywhere

    Chain LOG_FILTER (5 references)
    target prot opt source destination

    Chain LSI (2 references)
    target prot opt source destination
    LOG_FILTER 0 — anywhere anywhere
    LOG tcp — anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN limit: avg 1/sec burst 5 LOG level info prefix `Inbound ‘
    DROP tcp — anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN
    LOG tcp — anywhere anywhere tcp flags:FIN,SYN,RST,ACK/RST limit: avg 1/sec burst 5 LOG level info prefix `Inbound ‘
    DROP tcp — anywhere anywhere tcp flags:FIN,SYN,RST,ACK/RST
    LOG icmp — anywhere anywhere icmp echo-request limit: avg 1/sec burst 5 LOG level info prefix `Inbound ‘
    DROP icmp — anywhere anywhere icmp echo-request
    LOG 0 — anywhere anywhere limit: avg 5/sec burst 5 LOG level info prefix `Inbound ‘
    DROP 0 — anywhere anywhere

    Chain LSO (0 references)
    target prot opt source destination
    LOG_FILTER 0 — anywhere anywhere
    LOG 0 — anywhere anywhere limit: avg 5/sec burst 5 LOG level info prefix `Outbound ‘
    REJECT 0 — anywhere anywhere reject-with icmp-port-unreachable

    Chain OUTBOUND (1 references)
    target prot opt source destination
    ACCEPT icmp — anywhere anywhere
    ACCEPT tcp — anywhere anywhere state RELATED,ESTABLISHED
    ACCEPT udp — anywhere anywhere state RELATED,ESTABLISHED
    ACCEPT 0 — anywhere anywhere
    ———————————————————————————

    sudo iptables -L -t nate devuelve:

    Chain PREROUTING (policy ACCEPT)
    target prot opt source destination

    Chain POSTROUTING (policy ACCEPT)
    target prot opt source destination

    Chain OUTPUT (policy ACCEPT)
    target prot opt source destination

    y

    ——————————————————————————————–

    No sé si sirve de algo…

    Por otro lado he intentado los primeros pasos pero la pag. http://testmyports.com/ no me devuelve nada…:-(

    No sé…
    Por cierto, para la configuración de VPN utilizó los apuntes de la EHU (http://www.tic.ehu.es/p074-10632/es/contenidos/manual/vpn_guia_ehux/es_ehux/guia_ehux.html)

    Antes de tener este router, lograba conectarme…
    YA me comentarás y gracias.
    Txomin

  7. @txomin: ¿si paras momentáneamente el router, lanzas el comando netcat (nc) y pruebas en testmyports.com no te indica conexión?

    Es decir:

    $ sudo /etc/init.d/iptables stop
    $ nc -l -p 500

    y desde testmyports.com probar conexión contra el puerto 500

    Si eso no funciona, es que la configuración del router está mal… y ya no se me ocurre qué más probar.

    De todas formas, veo que tienes los puertos de eMule activados en el firewall (6881:6889). ¿También en el router? Si eso es así, y te funciona, podrías usar esos puertos como puerto por defecto en la conexión VPN 🙂 y así no tienes por qué abrir el 500.

    en el comando vpnc tendrás que especificar –local-port 6881 como opción, por ejemplo (porque tienes del 6881 al 6889 para elegir) … y mientras uses la VPN no podrás usar eMule.

  8. Para comprobar si estás correctamente conectado visita cualquier web en la que te digan cual es tu IP pública y esta tendrá que tener la forma 158.x.y.z

    Igual es de perogruyo para todo el mundo, pero a mí no se me había ocurrido, gracias Juanan.

  9. A mí no me ha funcionado así. Ni «–natt-mode none» en la línea de comandos, ni «NAT Traversal Mode cisco-udp» o «NAT Traversal Mode none» en el archivo de configuración.

    Me funciona pasando este parámetro en la línea de comandos «–auth-mode psk».

Responder a Aritz Cancelar la 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.