¿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.
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.
-
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 establecer una contraseña, haz clic en Sistema (system) > Administración (administration). -
Después de iniciar sesión, selecciona la pestaña Sistema (system) y elige Software.
- Pulsa el botón Actualizar listas (update lists), espera a que termine el proceso y luego haz clic en Rechazar (dismiss).
-
Instala los siguientes paquetes escribiendo su nombre en el
campo Filtro (filter) y haciendo clic en
Instalar…
- openvpn-openssl
- ip-full
-
luci-app-openvpn
- 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.
-
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:
-
-
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
contraseña necesarios para conectarte
manualmente.
-
Ahora debes descargar los archivos de configuración del cliente
OpenVPN. Sigue los pasos a continuación para encontrar el mejor
servidor para tu conexión:
-
Inicia sesión en tu
Nord Account
y haz clic en NordVPN.
-
Desplázate hasta
Configuración avanzada (advanced settings)
y haz clic en
Configurar NordVPN manualmente (set up NordVPN
manually).
-
Selecciona la pestaña
Servidores recomendados (Server recommendation). Nuestro algoritmo te recomendará el mejor servidor en
función de tu ubicación.
-
Si pulsas en
Filtros avanzados (advanced filters) puedes
personalizar los servidores recomendados al seleccionar el
Tipo de servidor (server type) y el
Protocolo de seguridad (security protocol).
Si quieres seleccionar un servidor específico, sigue estos pasos:
-
En Configurar NordVPN manualmente,
selecciona
Archivos de configuración de OpenVPN (OpenVPN
configuration files).
-
Usa la barra de búsqueda o desplázate
hacia abajo para encontrar el servidor al que deseas
conectarte. Para descargarlo, haz clic en
Descargar UDP (download UDP) o
Descargar TCP (download TCP).
En esta guía usaremos como ejemplo el servidor us5104.nordvpn.com.
-
En Configurar NordVPN manualmente,
selecciona
Archivos de configuración de OpenVPN (OpenVPN
configuration files).
-
Inicia sesión en tu
Nord Account
y haz clic en NordVPN.
-
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
contraseña necesarios para conectarte
manualmente.
-
-
En la sección
Carga del archivo de configuración OVPN (OVPN configuration file
upload), da un nombre a la conexión VPN en el campo Nombre de la instancia (instance name)
(nosotros la hemos llamado «nordvpn_us»). A
continuación, haz clic en el botón
Seleccionar archivo (choose file), localiza el archivo
del servidor descargado y haz clic en Cargar (upload).
-
En la sección
Instancias OpenVPN (OpenVPN instances), haz clic
en el botón Editar (edit) situado junto a la instancia
que acabas de crear.
-
Introduce tus credenciales del servicio NordVPN, nombre de usuario y
contraseña en el campo inferior en líneas separadas.
nombre de usuario
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. -
Ahora, copia la ruta al archivo de credenciales que aparece justo encima
del campo que contiene las credenciales y pégalo 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
-
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.
- Haz clic en el botón Guardar y aplicar (save & apply) en la parte inferior.
- 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.
-
Ve a 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 Interfaz (interface), introduce el nombre «tun0» en el campo inferior -- custom -- y pulsa la tecla Intro.
- Haz clic en Crear interfaz (create interface) y en Guardar (save).
- Elige la pestaña Red (network) en la parte superior y dirígete a la sección Firewall.
-
Haz clic en Añadir (add) y lleva a cabo los
siguientes ajustes:
- Nómbralo como «vpnfirewall».
- Configura la opción «Entrada (input)» como «Rechazar (reject)».
- Deja «Salida (output)» como «Aceptar (accept)» y «Reenviar (forward)» como «Rechazar (reject)».
- Marca la opción «Enmascaramiento (masquerading)».
- Marca la opción «Fijación de MSS (MSS clamping)».
- En el menú desplegable «Redes cubiertas (covered networks)», selecciona «nordvpntun».
- En el menú desplegable «Permitir el reenvío desde zonas de origen (allow forward from source zones)», elige «plan».
-
Haz clic en el botón «Guardar (save)».
-
En la sección Zonas (zones), busca la zona denominada
lan y pulsa el botón Editar (edit).
-
En el menú desplegable
Permitir reenvío a zonas de destino (allow forward to destination
zones) marca la entrada NordVPN.
- Vuelve a hacer clic en Red (network) en la parte superior de la página y, a continuación, elige DHCP y DNS en la lista desplegable.
-
En la pestaña Ajustes generales (general settings),
busca la opción Reenvío de DNS (DNS forwardings) e
introduce allí las direcciones DNS de NordVPN. Estas son las
direcciones: 103.86.96.100 y 103.86.99.100
-
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 and apply).
- Vuelve a la pestaña VPN > OpenVPN.
-
En la sección Instancias OpenVPN (OpenVPN instances),
marca la opción Habilitar (enable) junto a la
opción NordVPN de la lista y haz clic en el botón Guardar y aplicar (save and apply).
- Vuelve a hacer clic en el botón Iniciar (start) para conectarte al servidor VPN.
Instrucciones para 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/.
- En primer lugar, debes poder acceder a tu router mediante SSH usando su dirección IP LAN. Por defecto, la dirección IP está configurada a 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.
-
El router no tiene el paquete OpenVPN en la imagen de firmware por
defecto. Para instalarlo, ejecuta los siguientes comandos:
Además, puedes instalar el componente LuCI de la configuración de OpenVPN, aunque es opcional. Para ello, ejecuta este comando:opkg update opkg install openvpn-openssl opkg install ip-fullopkg install luci-app-openvpn -
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 -
A continuación, descarga los archivos de configuración del servidor.
Sigue estos pasos:
-
Inicia sesión en tu
Nord Account
y haz clic en NordVPN.
-
Desplázate hasta
Configuración avanzada (advanced settings) y haz
clic en
Configurar NordVPN manualmente (set up NordVPN manually).
-
Selecciona la pestaña
Servidores recomendados (server recommendation).
Nuestro algoritmo te recomendará el mejor servidor en función de tu
ubicación.
-
Si pulsas en
Filtros avanzados (advanced filters) puedes
personalizar los servidores recomendados al seleccionar el
Tipo de servidor (server type) y el
Protocolo de seguridad (security protocol).
Si quieres seleccionar un servidor específico, sigue estos pasos:
-
En Configurar NordVPN manualmente, selecciona
Archivos de configuración de OpenVPN (OpenVPN configuration
files).
-
Usa la barra de búsqueda o desplázate hacia
abajo para encontrar el servidor al que deseas conectarte. Para
descargarlo, haz clic en
Descargar UDP (download UDP) o
Descargar TCP (download TCP).
-
En Configurar NordVPN manualmente, selecciona
Archivos de configuración de OpenVPN (OpenVPN configuration
files).
-
Inicia sesión en tu
Nord Account
y haz clic en NordVPN.
-
Para esta guía, hemos utilizado el
servidor uk2054.nordvpn.com, sin embargo, deberías
utilizar el servidor que el sitio web te sugiera. 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:
No obstante, usa el enlace que has copiado para el archivo específico de tu servidor. Este comando descargará el archivo de configuración al 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:wget -P /etc/openvpn https://downloads.nordcdn.com/configs/files/ovpn\_udp/servers/uk2054.nordvpn.com.udp.ovpn
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. -
La configuración de OpenVPN para NordVPN requiere que introduzcas tus
credenciales del servicio de NordVPN (tu nombre de usuario y contraseña)
cada vez que se inicia OpenVPN. Sin embargo, realizaremos 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:
También puedes utilizar el editor de texto integrado vi. Para más información sobre 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:opkg install nano
A continuación, añade la palabra «secret» (sin comillas) a la cadena «auth-user-pass». La línea resultante debería ser:nano /etc/openvpn/uk2054.nordvpn.com.udp.ovpn
Tienes que crear un nuevo archivo secreto para almacenar las credenciales del servicio NordVPN. Para ello, ejecuta el siguiente comando:auth-user-pass secret
Creará el nuevo archivo y lo abrirá utilizando el editor de texto nano. En la primera línea del archivo, introduce tu nombre de usuario del servicio de NordVPN y, en la segunda, tu 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.nano /etc/openvpn/secret -
Configura OpenVPN con el archivo de configuración descargado de una de
las dos maneras siguientes:
-
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 -
Especifica el nombre del archivo en «/etc/config/openvpn» utilizando
los siguientes comandos «uci»:
Después de eso, el archivo «/etc/config/openvpn» debe contener las siguientes cadenas de comandos: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
Compruébalo ejecutando este comando:config openvpn 'nordvpn' option enabled '1' option config '/etc/openvpn/uk2054.nordvpn.com.udp.ovpn'
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.tail /etc/config/openvpn
-
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:
-
Crea una nueva interfaz de red ejecutando los siguientes comandos:
El archivo «/etc/config/network» contendrá ahora las siguientes cadenas añadidas:uci set network.nordvpntun=interface uci set network.nordvpntun.proto='none' uci set network.nordvpntun.ifname='tun0' uci commit network
Compruébalo ejecutando este comando:config interface 'nordvpntun' option proto 'none' option ifname 'tun0'tail /etc/config/network -
Ejecuta los siguientes comandos para crear una nueva zona de cortafuegos
y añadir una regla de reenvío de LAN a la VPN:
Si se ha hecho correctamente, el archivo «/etc/config/firewall» debe contener las siguientes cadenas de comandos: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
Compruébalo ejecutando este comando: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'
Verás las últimas 13 líneas, que deberían contener las cadenas mencionadas.tail -13 /etc/config/firewall -
Ahora tienes que configurar los servidores DNS. El enfoque más sencillo
es usar el DNS NordVPN para la interfaz WAN del router. Ejecuta el
siguiente comando para añadir el DNS NordVPN:```` 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 _recibes 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 últimas tres cadenas de comandos: ``` config interface 'wan' <...> option peerdns '0' list dns '103.86.96.100' list dns '103.86.99.100' ``` Puedes comprobarlo ejecutando el comando y encontrando la interfaz «wan» en la salida: ``` cat /etc/config/network ``` También puedes añadir diferentes direcciones DNS, como la de Google, ejecutando los siguientes comandos: ``` 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 de comandos 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:
-
Abre el archivo del cortafuegos con un editor de texto:
sudo nano /etc/firewall.user -
Añade el siguiente contenido:
\# Este archivo se interpreta como un Shell Script. \# Pon aquí tus reglas iptables personalizadas, y se ejecutarán con cada (re)inicio del cortafuegos \# Las cadenas internas del cortafuegos uci se vacían y se vuelven a crear al recargar, por lo que \# pon reglas personalizadas en las cadenas raíz, por ejemplo, «INPUT» o «FORWARD», o en las \# cadenas de usuarios especiales, por ejemplo input\_wan\_rule o postrouting\_lan\_rule. if (! ip a s tun0 up) && (! iptables -C forwarding\_rule -j REJECT); then iptables -I forwarding\_rule -j REJECT fi -
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 -
Añade el siguiente contenido a la secuencia de comandos:
#!/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 siguientes (nftables)
Sigue estos pasos para evitar fugas de tráfico si el túnel VPN no funciona.
-
Edita el archivo de reglas personalizadas del cortafuegos:
sudo nano /etc/firewall.user -
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 -
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 -
Escribe el siguiente contenido en la secuencia de comandos:
#!/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 sí permanece, sin embargo, se pierde la conexión. Para crear una secuencia de comandos que vuelva a conectarse a él de forma automática, sigue estos pasos:
-
Abre el archivo «/etc/rc.local» con un editor de texto:
sudo nano /etc/rc.local -
Añade la siguiente línea:
/etc/openvpn/reconnect.sh & -
Crea el archivo «reconnect.sh» en el directorio «/etc/openvpn»
ejecutando este comando:
sudo nano /etc/openvpn/reconnect.sh -
Introduce la siguiente secuencia 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 se ha realizado con éxito, visita la página principal de NordVPN: el estado en la parte superior de la página debe mostrarse como «Protegido (protected)».
Si deseas 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 OpenVPN (OpenVPN instances) si has seguido los pasos de la interfaz gráfica de usuario (GUI). Sin embargo, si deseas desconectar la conexión VPN, ejecuta el siguiente comando:
service openvpn stop