¿NordVPN es compatible con OpenWrt?
Los routers con firmware OpenWRT son compatibles con VPN como NordVPN. Sin embargo, ten en cuenta que el personal de NordVPN no ha probado la siguiente configuración: ha sido compartida y probada por nuestros maravillosos clientes. En particular, NordVPN quiere dar las gracias a ulmwind, miembro activo de la comunidad OpenWRT, por ayudarnos siempre a la hora de proporcionarnos instrucciones actualizadas de OpenWRT.
Este artículo incluye dos guías de configuración de OpenWrt:
- Instrucciones de la interfaz gráfica de usuario (GUI) (versión simplificada)
- Instrucciones de la interfaz de la línea de comandos (CLI) (más avanzada)
Si tienes algún problema, ¡no dudes en ponerte en contacto con nuestro equipo de asistencia! Aunque este es un tutorial avanzado, también proporciona algunas instrucciones más sencillas.
Instrucciones GUI
En esta guía, te explicaremos cómo configurar una conexión NordVPN en routers con firmware OpenWrt a través de la interfaz web LuCI.
-
Accede a la interfaz LuCI de tu router OpenWrt introduciendo 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.
Por defecto, no hay ninguna contraseña configurada. Puedes dejar este espacio en blanco, sin embargo, cuando inicies sesión, recibirás un mensaje para establecer una contraseña.
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)» y 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 debes descargar los archivos de configuración del cliente OpenVPN. Puedes conectarte a un servidor recomendado a través de tu NordAccount.
Sigue los pasos a continuación para encontrar los archivos de configuración de conexión manual:
-
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
Archivos de configuración de OpenVPN (OpenVPN configuration
files).
-
Encuentra el servidor al que deseas conectarte usando la barra de
Búsqueda o desplazándote hacia abajo y descárgalo
haciendo clic en Descargar UDP (download UDP) o
Descargar TCP (download TCP).
-
Cuando te conectes a OpenVPN e
IKEv2 manualmente, vas a tener que usar el
Nombre de usuario (Username) y
Contraseña (Password) de la pestaña
Credenciales del servicio (service credentials).
Para fines de esta guía, usaremos el servidor us5104.nordvpn.com.
-
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 «Instancia de nombre (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.
-
En el campo inferior, introduce tu nombre de usuario y contraseña
de las credenciales del servicio de NordVPN en líneas separadas.
username
password
Encontrarás tus credenciales del servicio de NordVPN (el nombre de usuario y la contraseña) en el panel de control de Nord Account:
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, 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ías verlo así: auth-user-pass /etc/openvpn/nordvpn\_us.auth
- Haz clic en el botón Guardar (save) en la parte inferior.
- Haz clic en la pestaña «Red (network)» en la parte superior de la página y elige «Interfaces (interfaces)».
- Haz clic en «Añadir nueva interfaz (add new interface)…» y nómbrala «nordvpntun».
- En el menú desplegable, haz clic en «Protocolo (protocol)» y elige «No gestionado (unmanaged)».
-
En el menú desplegable «Interfaz (interface)»,
introduce el nombre «tun0» en el campo
inferior -- personalizado -- y pulsa la tecla «Enter».
- Haz clic en los botones «Crear interfaz (create interface)» y «Guardar (save)».
- Vuelve a elegir 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»;
- Deja «Salida (output)» como «Aceptar (accept)» y «Reenviar» como «Rechazar»;
- 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 «lan»;
-
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 «nordvpntun».
- 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)».
- Por último, 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)».
- Haz clic en el botón «Iniciar (start)» situado junto a la instancia de NordVPN creada para conectarte al servidor VPN.
Después de haber seguido estas instrucciones, deberías tener conexión utilizando 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, puedes hacer clic en el botón «Parar (stop)» situado junto a la opción NordVPN en el menú «VPN» > «OpenVPN» > «OpenVPN» > «Instancias OpenVPN (OpenVPN instances)».
Instrucciones 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/.
- Para empezar, necesitarás acceder a tu router a través de SSH usando tu dirección IP LAN. Por defecto, la dirección IP está configurada a 192.168.1.1 y el nombre de usuario es root (raíz), sin embargo, la dirección IP puede ser distinta si has cambiado alguno de los valores por defecto.
-
Por defecto, el paquete OpenVPN no está incluido en la imagen del
firmware. 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 - 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 los pasos a continuación para encontrar los archivos de configuración de conexión manual:
-
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
Archivos de configuración de OpenVPN (OpenVPN configuration
files).
-
Encuentra el servidor al que deseas conectarte usando la barra de
Búsqueda o desplazándote hacia abajo y descárgalo
haciendo clic en Descargar UDP (download UDP) o
Descargar TCP (download TCP).
-
Cuando te conectes a OpenVPN e
IKEv2 manualmente, vas a tener que usar el
Nombre de usuario (Username) y la
Contraseña (Password) de la pestaña
Credenciales del servicio (service credentials).
-
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, elige 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 config (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, verifica que estás usando 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:
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: opkg install nano También puedes utilizar el editor de texto integrado vi. Para más información sobre editores de texto, consulta este artículo: https://openwrt.org/docs/guide-user/base-system/user.beginner.cli. 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 Ahora debemos crear un nuevo archivo llamado «secret», donde se almacenarán las credenciales del servicio de NordVPN. Para ello, ejecuta el siguiente comando: nano /etc/openvpn/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 tus credenciales del servicio de NordVPN (el nombre de usuario y la contraseña) en el panel de control de Nord Account.
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.
-
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»:
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 Después de eso, el archivo «/etc/config/openvpn» debe contener las siguientes cadenas de comandos: 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.\
-
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 Si todo se ha hecho correctamente, el archivo «/etc/config/network» debería contener las siguientes cadenas de comandos: config interface 'nordvpntun'
option proto 'none'
option ifname 'tun0' Para comprobarlo, utiliza el comando 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:
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 de comandos: 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' Puedes comprobarlo ejecutando el comando tail -13 /etc/config/firewall. Verás las últimas 13 líneas, que deberían contener las cadenas mencionadas. - Ahora tienes que configurar los servidores DNS. El enfoque más sencillo es usar NordVPN DNS para la interfaz WAN del router. Ejecuta el siguiente comando para añadir NordVPN DNS:
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
_Si recibes el mensaje de error «__uci: Entry not found (uci: Entrada no encontrada)__» 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 cat /etc/config/network y encontrando la interfaz «wan» en la salida.
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): para evitar la fuga de tráfico en caso de que el túnel VPN se desconecte, puedes abrir el archivo «/etc/firewall.user» con un editor de texto y añadirle 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); después
iptables -I forwarding_rule -j REJECT
fi
Además, debes crear un archivo llamado «99-prevent-leak» en la carpeta «/etc/hotplug.d/iface» ejecutando nano /etc/hotplug.d/iface/99-prevent-leak y añadiendo el siguiente contenido al archivo:
#!/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); después
iptables -I forwarding_rule -j REJECT
fi
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 en sí permanece, sin embargo, se pierde la conexión. Para volver a conectarte automáticamente, abre primero el archivo «/etc/rc.local» con un editor de texto y añade la siguiente línea:
/etc/openvpn/reconnect.sh &
Además, necesitas crear el archivo «reconnect.sh» en el directorio «/etc/openvpn». Puedes hacerlo ejecutando el comando nano /etc/openvpn/reconnect.sh.
En el archivo, introduce el siguiente contenido de script:
#!/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
Después de haber seguido estas instrucciones, deberías tener conexión utilizando 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, ejecuta el siguiente comando:
service openvpn stop