¿Cómo configurar NordVPN manualmente en un router OpenWRT?

¿NordVPN es compatible con OpenWrt?

Los informes indican que los routers con firmware OpenWRT son compatibles con las VPN como NordVPN. Sin embargo, ten en cuenta que el personal de NordVPN no ha probado la siguiente configuración, sino que ha sido compartida y probada por nuestros maravillosos clientes. En particular, NordVPN quiere dar las gracias a Unwind, miembro activo de la comunidad OpenWRT, por ayudarnos siempre a la hora de proporcionarnos instrucciones actualizadas de OpenWRT. Consulta nuestra guía si quieres configurar NordVPN con nordvpnlite.

Instrucciones para GUI

Esta guía te explica cómo configurar una conexión NordVPN en routers con firmware OpenWrt a través de la interfaz web LuCI.

  1. Para acceder a la interfaz LuCI de tu router OpenWrt, introduce su dirección IP local en tu navegador de internet e inicia sesión. Por defecto, la dirección IP es 192.168.1.1 y el nombre de usuario es root.



    NOTA: El Sistema no establece una contraseña por defecto, por lo que puede dejar esta ranura vacía. Sin embargo, cuando te conectes, el sistema mostrará un mensaje pidiéndote que establezcas una.


    Para ello, haz clic en Sistema (System) > Administración (Administration) y configura la contraseña.
  2. Después de iniciar sesión, selecciona la pestaña Sistema (system) y elige Software.



  3. Pulsa el botón Actualizar listas (update lists), espera a que termine el proceso y luego haz clic en Rechazar (dismiss).
  4. Instala los siguientes paquetes; para ello, escribe su nombre en el campo Filtro (Filter) y haz clic en Instalar… (Install…).
    1. openvpn-openssl
    2. ip-full
    3. luci-app-openvpn



  5. Haz clic en Guardar y aplicar (save & apply) y actualiza la página del router. Ahora deberías ver una nueva pestaña con el nombre VPN. Haz clic en ella y en el menú desplegable elige OpenVPN.
  6. Ahora necesitas descargar los archivos de configuración del cliente OpenVPN. A continuación, puedes conectarte a un servidor recomendado a través de tu NordAccount. Sigue los pasos a continuación para encontrar las credenciales del servicio para la configuración manual de la conexión:
      1. Inicia sesión en tu Nord Account, haz clic en NordVPN y, en Configuración manual, haz clic en Credenciales del servicio (Service credentials). Aquí encontrarás el nombre de usuario y la contraseña que necesitas para conectarte manualmente.



      2. Ahora debes descargar los archivos de configuración del cliente OpenVPN. Sigue los pasos que se indican a continuación para encontrar el mejor servidor para tu conexión:
        1. Inicia sesión en tu Nord Account y haz clic en NordVPN.



        2. Desplázate hacia abajo hasta Configuración avanzada (Advanced settings) y haz clic en Configurar NordVPN manualmente (Set up NordVPN manually).



        3. Selecciona la pestaña Servidores recomendados (Server recommendation). Nuestro algoritmo te recomendará el mejor servidor en función de tu ubicación.



        4. Si pulsas Filtros avanzados (Advanced filters) puedes personalizar los servidores recomendados; para ello, selecciona el tipo de servidor y el protocolo de seguridad.






           Si quieres seleccionar un servidor específico, sigue estos pasos:
          1. En Configurar NordVPN manualmente, selecciona Archivos de configuración de OpenVPN (OpenVPN configuration files).



          2. Usa la barra de búsqueda o desplázate hacia abajo para encontrar el servidor al que te quieras conectar. Para descargarlo, haz clic en Descargar UDP (Download UDP) o Descargar TCP (Download TCP).



            En esta guía usaremos el servidor us5104.nordvpn.com.
  7. En la sección Carga del archivo de configuración de OVPN (OVPN configuration file upload), asigna un nombre a la conexión VPN en el campo Nombre de la instancia (Instance name) (en nuestro caso, le hemos puesto el nombre «nordvpn_us»). A continuación, haz clic en el botón Seleccionar archivo (Choose file), busca el archivo del servidor descargado y haz clic en Subir (Upload).



  8. En la sección Instancias de OpenVPN (OpenVPN instances), haz clic en el botón Editar (Edit) junto a la instancia que has creado.



  9. Introduce tus credenciales del servicio NordVPN, nombre de usuario y contraseña en el campo inferior en líneas separadas. nombredeusuario
    contraseña


    Encontrarás las credenciales del servicio NordVPN (el nombre de usuario y la contraseña) en el panel de control de tu Nord Account.
  10. Ahora, copia la ruta al archivo de credenciales que aparece justo encima del campo que contiene las credenciales y pégala junto a la línea «auth-user-pass» en la sección Archivo de configuración (config file) anterior.
    Debería quedar así: auth-user-pass /etc/openvpn/nordvpn\_us.auth  
    



  11. Para conectarte al servidor VPN, haz clic en la casilla Habilitado (enabled) y luego en el botón Iniciar (start) junto a la instancia de NordVPN creada.



  12. Haz clic en el botón Guardar y aplicar (Save & apply) que aparece abajo.
  13. En la parte superior del menú de navegación, sitúate sobre Sistema (System) y haz clic en Reiniciar (Reboot). Se abrirá otra página. Haz clic en el botón Reiniciar (Perform reboot) y, a continuación, deberás volver a iniciar sesión.
  14. Pasa el cursor sobre la pestaña Red (Network) en la parte superior de la página y elige Interfaces:
     
    1. Haz clic en Añadir nueva interfaz (Add New Interface).
    2. En la sección Nombre (Name), escribe nordvpntun.
    3. Haz clic en Protocolo (Protocol) y elige No gestionado (Unmanaged).
    4. En el menú desplegable de la interfaz, escribe el nombre tun0 en el campo inferior -- custom -- y pulsa la tecla Intro.



  15. Haz clic en Crear interfaz (Create interface) y en Guardar (Save).
  16. Elige la pestaña Red (Network) en la parte superior y ve a la sección Firewall.
  17. Haz clic en el botón Añadir (Add) y lleva a cabo los siguientes ajustes:  
    1. Ponle el nombre «vpnfirewall».
    2. Configura la opción «Entrada» (Input) como «Rechazar» (Reject).
    3. Deja «Salida» (Output) como «Aceptar» (Accept) y «Reenviar» (Forward) como «Rechazar» (Reject).
    4. Marca la opción «Enmascaramiento» (Masquerading).
    5. Marca la opción «Fijación de MSS» (MSS clamping).
    6. En el menú desplegable «Redes cubiertas» (Covered networks), selecciona «nordvpntun».
    7. En el menú desplegable «Permitir el reenvío desde zonas de origen» (Allow forward from source zones), elige «plan».
    8. Haz clic en el botón «Guardar» (Save).



  18. En la sección Zonas (Zones), busca la que se llama lan y haz clic en el botón Editar (Edit).



  19. En el menú desplegable Permitir el reenvío a zonas de destino (Allow Forward to Destination Zones), marca la entrada NordVPN.



  20. Vuelve a hacer clic en Red (Network) en la parte superior de la página y, a continuación, elige DHCP y DNS (DHCP and DNS) en la lista desplegable.
  21. Busca la opción de reenvíos de DNS en la pestaña de ajustes generales e introduce las direcciones DNS de NordVPN. Estas son las direcciones: 103.86.96.100 y 103.86.99.100


  22. Ve a la pestaña Archivos de resolución y hosts (Resolv and Hosts Files), marca la casilla Ignorar archivo de resolución (Ignore resolve file) y haz clic en el botón Guardar y aplicar (Save & Apply).



  23. Vuelve a la pestaña VPN > OpenVPN.
  24. En la sección Instancias de OpenVPN (OpenVPN instances), marca la opción Activada (Enabled) junto a la opción de NordVPN de la lista y haz clic en el botón Guardar y aplicar.



  25. Vuelve a hacer clic en el botón iniciar (start) para conectarte al servidor VPN.

Instrucciones para la CLI

Sigue esta guía si buscas un tutorial más avanzado. Para disfrutar de las ventajas que ofrece una VPN en OpenWrt, necesitas un router con firmware OpenWrt y un cliente OpenVPN habilitado. La página principal del firmware es https://openwrt.org/.

  1. En primer lugar, debes poder acceder a tu router mediante SSH usando su dirección IP LAN. Por defecto, la dirección IP es 192.168.1.1 y el nombre de usuario es root. Sin embargo, la dirección IP puede ser distinta si has cambiado alguno de los valores predeterminados.
  2. El router no tiene el paquete OpenVPN en la imagen del firmware por defecto. Para instalarlo, ejecuta los siguientes comandos:
    opkg update
    opkg install openvpn-openssl
    opkg install ip-full
    
    Además, puedes instalar el componente LuCI de la configuración de OpenVPN, aunque es opcional. Para ello, ejecuta este comando:
    opkg install luci-app-openvpn
    
  3. Después de instalar el paquete OpenVPN, ejecuta este comando si quieres que se inicie automáticamente cada vez que se inicie el router:
    /etc/init.d/openvpn enable
    
  4. A continuación, descarga los archivos de configuración del servidor. Sigue estos pasos:
    1. Inicia sesión en tu Nord Account y haz clic en NordVPN.



    2. Desplázate hacia abajo hasta Configuración avanzada (Advanced settings) y haz clic en Configurar NordVPN manualmente (Set up NordVPN manually).



    3. Selecciona la pestaña Servidores recomendados (Server recommendation). Nuestro algoritmo te recomendará el mejor servidor en función de tu ubicación.



    4. Si pulsas Filtros avanzados (Advanced filters) puedes personalizar los servidores recomendados; para ello, selecciona el tipo de servidor y el protocolo de seguridad.






       Si quieres seleccionar un servidor específico, sigue estos pasos:
      1. En Configurar NordVPN manualmente, selecciona Archivos de configuración de OpenVPN (OpenVPN configuration files).



      2. Usa la barra de búsqueda o desplázate hacia abajo para encontrar el servidor al que te quieras conectar. Para descargarlo, haz clic en Descargar UDP (Download UDP) o Descargar TCP (Download TCP).



  5. Para esta guía, hemos utilizado el servidor uk2054.nordvpn.com, pero deberías utilizar el servidor que te sugiera la página web. Para descargar un archivo de servidor, selecciona el país donde quieres conectarte, haz clic en «Mostrar protocolos disponibles» (Show available protocols), haz clic con el botón derecho del ratón en «Descargar configuración» (Download config) para «OpenVPN TCP» u «OpenVPN UDP» y selecciona «Copiar dirección de enlace» (Copy link address). Después, vuelve a tu sesión SSH y ejecuta el siguiente comando:
    wget -P /etc/openvpn https://downloads.nordcdn.com/configs/files/ovpn_udp/servers/uk2054.nordvpn.com.udp.ovpn
    
    No obstante, usa el enlace que has copiado para el archivo específico de tu servidor. Este comando descargará el archivo de configuración en el directorio /etc/openvpn para facilitar el acceso. También puedes descargar el archivo de configuración del servidor en un dispositivo diferente y transferirlo al router OpenWrt con métodos alternativos, como los protocolos SCP o SFTP. Para versiones anteriores de OpenWrt:
    Puedes descargar un archivo aquí: https://downloads.nordcdn.com/configs/archives/certificates/servers.zip. En el archivo descargado encontrarás los ficheros correspondientes con extensiones .crt y .key. Los archivos son específicos para cada servidor VPN.
  6. La configuración de OpenVPN para NordVPN requiere que escribas tus credenciales del servicio de NordVPN (nombre de usuario y contraseña) cada vez que se inicia OpenVPN. Sin embargo, haremos algunos ajustes para que las credenciales se proporcionen de forma automática. En primer lugar, para facilitar el proceso, instalaremos el editor de texto nano ejecutando este comando:
    opkg install nano
    
    También puedes utilizar el editor de texto integrado vi. Para obtener más información sobre los editores de texto, consulta este artículo. Ahora abre el archivo de configuración del servidor descargado con el editor de texto nano. En nuestro caso, el comando sería:
    nano /etc/openvpn/uk2054.nordvpn.com.udp.ovpn
    
    A continuación, añade la palabra «secret» (sin comillas) a la cadena «auth-user-pass». La línea resultante debería ser:
    auth-user-pass secret
    
    Tienes que crear un nuevo archivo secreto para almacenar las credenciales del servicio de NordVPN. Para ello, ejecuta el siguiente comando:
    nano /etc/openvpn/secret
    
    Se creará el archivo nuevo y se abrirá con el editor de texto nano. En la primera línea del archivo, escribe tu nombre de usuario del servicio de NordVPN y, en la segunda, la contraseña. Encontrarás las credenciales del servicio de NordVPN (el nombre de usuario y la contraseña) en el panel de control de tu Nord Account.
  7. Configura OpenVPN con el archivo de configuración descargado de una de las dos maneras siguientes:
    1. Cambia la extensión del archivo de .ovpn a .conf, lo que permitirá a OpenVPN encontrarlo automáticamente por su extensión. Para ello, puedes usar el comando mv:
      mv /etc/openvpn/uk2054.nordvpn.com.udp.ovpn /etc/openvpn/uk2054.nordvpn.com.udp.conf
      
    2. Especifica el nombre del archivo en «/etc/config/openvpn» utilizando los siguientes comandos «uci»:
      uci set openvpn.nordvpn=openvpn
      uci set openvpn.nordvpn.enabled='1'
      uci set openvpn.nordvpn.config='/etc/openvpn/uk2054.nordvpn.com.udp.ovpn'
      uci commit openvpn
      
      Una vez que lo hayas hecho, el archivo «/etc/config/openvpn» debe contener las siguientes cadenas añadidas:
      config openvpn 'nordvpn'
      option enabled '1'
      option config '/etc/openvpn/uk2054.nordvpn.com.udp.ovpn'
      
      Compruébalo ejecutando este comando:
      tail /etc/config/openvpn
      
      También puedes cambiar la extensión del archivo de .ovpn a .conf y especificarlo en el archivo «/etc/config/openvpn». Sin embargo, en ese caso OpenVPN se iniciará con este archivo de configuración solo una vez.
  8. Crea una nueva interfaz de red ejecutando los siguientes comandos:
    uci set network.nordvpntun=interface
    uci set network.nordvpntun.proto='none'
    uci set network.nordvpntun.ifname='tun0'
    uci commit network
    
    El archivo «/etc/config/network» contendrá ahora las siguientes cadenas añadidas:
    config interface 'nordvpntun'
    option proto 'none'
    option ifname 'tun0'
    
    Compruébalo ejecutando este comando:
     tail /etc/config/network 
    
  9. Ejecuta los siguientes comandos para crear una nueva zona de firewall y añadir una regla de reenvío de LAN a la VPN:
    uci add firewall zone
    uci set firewall.@zone[-1].name='vpnfirewall'
    uci set firewall.@zone[-1].input='REJECT'
    uci set firewall.@zone[-1].output='ACCEPT'
    uci set firewall.@zone[-1].forward='REJECT'
    uci set firewall.@zone[-1].masq='1'
    uci set firewall.@zone[-1].mtu_fix='1'
    uci add_list firewall.@zone[-1].network='nordvpntun'
    uci add firewall forwarding
    uci set firewall.@forwarding[-1].src='lan'
    uci set firewall.@forwarding[-1].dest='vpnfirewall'
    uci commit firewall
    
    Si se ha hecho correctamente, el archivo «/etc/config/firewall» debe contener las siguientes cadenas añadidas:
    config zone
    option name 'vpnfirewall'
    option input 'REJECT'
    option output 'ACCEPT'
    option forward 'REJECT'
    option masq '1'
    option mtu_fix '1'
    list network 'nordvpntun'
    config forwarding
    option src 'lan'
    option dest 'vpnfirewall'
    
    Compruébalo ejecutando este comando:
    tail -13 /etc/config/firewall
    
    Verás las últimas 13 líneas, que deberían contener las cadenas mencionadas.
  10. Ahora tienes que configurar los servidores DNS. La forma más sencilla es usar el DNS de NordVPN para la interfaz WAN del router. Ejecuta los siguientes comando para añadirlo:
    ```auto
    
    uci set network.wan.peerdns='0'
    uci del network.wan.dns
    uci add_list network.wan.dns='103.86.96.100'
    uci add_list network.wan.dns='103.86.99.100'
    uci commit
    '''
    
      
    NOTA: _Si aparece el mensaje de error «uci: Entry not found» después de ejecutar el comando uci del network.wan.dns, puedes ignorarlo._  
      
    El archivo «/etc/config/network» debe contener la sección «wan» con las tres últimas líneas añadidas:
    
    ```auto
    config interface 'wan'
    <...>
    option peerdns '0'
    list dns '103.86.96.100'
    list dns '103.86.99.100'
    ```
    
      
    Puedes comprobarlo ejecutando el comando y buscando la interfaz «wan» en el resultado:
    
    ```auto
    cat /etc/config/network 
    ```
    
    También puedes añadir otras direcciones DNS, como las de Google, ejecutando estos comandos:
    
    ```auto
    uci set network.wan.peerdns='0'
    uci del network.wan.dns
    uci add_list network.wan.dns='8.8.8.8'
    uci add_list network.wan.dns='8.8.4.4'
    uci commit
    ```
    
    Las cadenas añadidas deben ser similares a las anteriores.  
     
    

(Opcional) Kill Switch para OpenWRT 22.02 o versiones anteriores (iptables)

Para evitar la fuga de tráfico en caso de que el túnel VPN se desconecte, sigue estos pasos:

  1. Abre el archivo del firewall con un editor de texto:
    sudo nano /etc/firewall.user
    
  2. Añade el siguiente contenido:
    # This file is interpreted as a shell script.
    # Put your custom iptables rules here, and they will be executed with each firewall (re-)start
    # Internal uci firewall chains are flushed and recreated on reload, so
    # put custom rules into the root chains, e.g. INPUT or FORWARD, or into the
    # special user chains, e.g. input_wan_rule or postrouting_lan_rule.
    
    if (! ip a s tun0 up) && (! iptables -C forwarding_rule -j REJECT); then
    
    iptables -I forwarding_rule -j REJECT
    
    fi
    
  3. Crea un archivo llamado «99-prevent-leak» en la carpeta «/etc/hotplug.d/iface» ejecutando este comando:
    nano /etc/hotplug.d/iface/99-prevent-leak
    
  4. Añade el siguiente contenido al script:
    #!/bin/sh
    
    if [ "$ACTION" = ifup ] && (ip a s tun0 up) && (iptables -C forwarding_rule -j REJECT); then
    
    iptables -D forwarding_rule -j REJECT
    
    fi
    
    if [ "$ACTION" = ifdown ] && (! ip a s tun0 up) && (! iptables -C forwarding_rule -j REJECT); then
    
    iptables -I forwarding_rule -j REJECT
    
    fi
    

(Opcional) Kill Switch para OpenWRT 22.03 o versiones posteriores (nftables)

Sigue estos pasos para evitar fugas de tráfico si el túnel VPN no funciona.

  1. Edita el archivo de reglas personalizadas del firewall:
    sudo nano /etc/firewall.user
    
  2. Escribe esta función:
    # when tun0 interface is down and within nftables no chain "forwarding_rule" exists, then do the following.
    if (! ip a s tun0 up) && (! nft list chain inet fw4 forwarding_rule; then
    # add new chain named forwarding_rule
       nft add chain inet fw4 forwarding_rule
    # add rule within chain forward to jump to chain forwarding_rule
       nft add rule inet fw4 forward jump forwarding_rule
    
    # add rule within chain forward_rule to reject all traffic
       nft add rule inet fw4 forwarding_rule reject
    fi
    
  3.  A continuación, tienes que crear un script hotplug para activar el interruptor de corte automáticamente:
    sudo nano /etc/hotplug.d/iface/99-prevent-leak
    
  4. Escribe el siguiente contenido en el script:
    #!/bin/sh
    
    # if action ifup is triggered, interface tun0 is up and the nftables chain "forwarding_rule" contains text "reject", then flush that chain in order to allow traffic.
    if [ "$ACTION" = ifup ] && (ip a s tun0 up) && (nft list chain inet fw4 forwarding_rule | grep -q 'reject'); then
    nft flush chain inet fw4 forwarding_rule
    fi
    
    
    # if action ifdown is triggered, interface tun0 is not up and the nftables chain "forwarding_rule" does not contain text "reject", then add a rule to that chain in order to reject all traffic.
    if [ "$ACTION" = ifdown ] && (! ip a s tun0 up) && (! nft list chain inet fw4 forwarding_rule | grep -q 'reject'); then
    nft add rule inet fw4 forwarding_rule reject
    fi
    

Script de reconexión automática

En algunos casos, la conexión OpenVPN puede bloquearse con una salida de registro similar a «No se pudo resolver el host…» (couldn’t resolve host…). En este caso, el túnel VPN permanece, pero se pierde la conexión. Para crear un script que vuelva a conectarse a él de forma automática, sigue estos pasos:

  1. Abre el archivo «/etc/rc.local» con un editor de texto:
    sudo nano /etc/rc.local
    
  2. Añade la siguiente línea:
    /etc/openvpn/reconnect.sh &
    
  3. Crea el archivo «reconnect.sh» en el directorio «/etc/openvpn» ejecutando este comando:
    sudo nano /etc/openvpn/reconnect.sh
    
  4. Introduce el siguiente script en el archivo:
    #!/bin/sh
    
    n=10
    
    while sleep 50; do
    
    t=$(ping -c $n 8.8.8.8 | grep -o -E '[0-9]+ packets r' | grep -o -E '[0-9]+')
    
    if [ "$t" -eq 0 ]; then
    
    /etc/init.d/openvpn restart
    
    fi
    
    done
    

Estado de la conexión

Después de haber seguido estas instrucciones, el router debería conectarse con la conexión configurada. Para comprobar si todo ha ido como debería, ve a la página de inicio de NordVPN. El estado de la parte superior debe ser «Protegido».

Si quieres desconectar la conexión VPN, haz clic en el botón Parar (Stop) situado junto a la opción NordVPN en la sección VPN > OpenVPN > Instancias de OpenVPN (OpenVPN instances) si has seguido los pasos de la interfaz gráfica de usuario (GUI). Sin embargo, si quieres desconectar la conexión VPN, ejecuta el siguiente comando:

service openvpn stop
¿Te ha resultado útil este artículo?

¿Sigues teniendo problemas?

  • Chat en tiempo real

  • Formulario de correo electrónico

Al hacer clic en "Chatear con el equipo de asistencia", aceptas nuestros Términos de servicio y reconoces nuestra Política de privacidad. La funcionalidad del chat se basa en las cookies. Al iniciar el chat, aceptas su uso. Más información en nuestra Política de cookies.