Cómo instalar y configurar un cliente OpenVPN en un enrutador OpenWrt

Todos lo estaban esperando, aquí está: el tutorial para instalar un cliente OpenVPN en un enrutador equipado con firmware OpenWrt 🤩! El objetivo es cifrar todas las comunicaciones entre nuestra red local e Internet a través de un túnel VPN seguro : nuestras actividades en Internet estarán completamente enmascaradas, se respetará nuestro anonimato.

Anteriormente, para comunicarse con el servidor VPN de su proveedor (ExpressVPN, NordVPN, Trust.Zone …) tenía que instalar un cliente VPN en todos los dispositivos de su red local : en sus PC con Windows, en sus teléfonos Android … Al instalar un cliente VPN directamente en su enrutador, puede olvidarse de esta tarea: el cliente OpenVPN del enrutador se encargará de pasar todo el tráfico de Internet de todos tus dispositivos en el túnel VPN seguro ! 👍 No es necesario instalar el programa de su proveedor de VPN (que es un cliente OpenVPN personalizado) en cada uno de sus dispositivos 😎

Estas listo ? Vamos ! 🤘

Prerrequisitos

  1. a enrutador (★ TP-Link Archer C7) en el que tiene firmware OpenWrt instalado.
    Enrutador TP-Link Archer C7
  2. a suscripción (★ ExpressVPN) de un proveedor de VPN, cf. las VPN mejor pagadas.

Paso 1: preparar los archivos de configuración .ovpn

Para que el cliente OpenVPN de nuestro enrutador pueda establecer un túnel seguro con el servidor VPN de nuestro proveedor, necesitamos el Archivos de configuración .ovpn proveedor, que contiene los parámetros necesarios para conectarse al servidor VPN. Un archivo de configuración .ovpn es específico de un localización. Por lo tanto, encontrará un archivo .ovpn para cada ubicación: Sweden.ovpn, Netherlands.ovpn…

El objetivo es para recuperar – de su proveedor de VPN – archivos de configuración .ovpn ubicaciones que le interesan (Suecia, Países Bajos, etc.) e incluyen teclas y certificados del proveedor, normalmente se suministra por separado.

¿Qué lugares elegir?

El objetivo es elegir las ubicaciones donde servidores más rápidos. En términos generales, estos son los servidores geográficamente más cercanos a usted. Para encontrar los servidores más rápidos, puede utilizar los servicios proporcionados por su proveedor de VPN.

Por ejemplo, el acceso privado a Internet ofrece una Página web «Acelerar» que hace referencia a toda su infraestructura (ubicación, número de servidores, ancho de banda) y que permite realizar una prueba de velocidad en cada uno de sus servidores:

Mejor aún, el programa de escritorio (Windows / macOS / Linux) proporcionado por ExpressVPN le permite prueba de velocidad de conexión en todos los servidores disponibles con un solo clic.

Tu misión es simple: elige al menos tres ubicaciones entre los más rápidos! 😉

Después de elegir las ubicaciones más rápidas, descargar el archivo de configuración .ovpn de estas ubicaciones desde el sitio web de su proveedor. Como ejemplo, aquí se explica cómo hacerlo con los proveedores de ExpressVPN y acceso privado a Internet:

Paso 2: instale y configure el cliente OpenVPN en OpenWrt

Ahora vamos instalar el cliente VPN en nuestro enrutador bajo OpenWrt y el configurar con el Archivos de configuración .ovpn que preparamos en el paso 1.

Instalación de paquetes

  1. Abierto Mando.
  2. Iniciar sesión en SSH a su enrutador:
    ssh [email protected]
  3. Instalar los paquetes necesario para el funcionamiento de OpenVPN:
    opkg update
    opkg install openvpn-openssl luci-app-openvpn
    opkg install libustream-openssl ca-bundle ca-certificates

Copiar archivos de configuración .ovpn

  1. Abierto Mando.
  2. Rebautizar sus archivos de configuración .ovpn respetando el formato [fournisseur]_[localisation].ovpn, por ejemplo expressvpn_belgium.ovpn Dónde pia_netherlands.ovpn.
    cd /c/Users/LeCrabe/Downloads/expressvpn/
    mv my_expressvpn_belgium_udp.ovpn expressvpn_belgium.ovpn
    mv my_expressvpn_ireland_udp.ovpn expressvpn_ireland.ovpn
  3. Copiarlos Archivos de configuración .ovpn a su enrutador:
    scp LOCAL_PATH/*.ovpn [email protected]:/etc/openvpn/

    Reemplace LOCAL_PATH con el ruta de acceso de sus archivos .ovpn, por ejemplo /c/Users/LeCrabe/Downloads/expressvpn/.

Conexión automática a servidores VPN

  1. Abierto Mando.
  2. Iniciar sesión en SSH a su enrutador:
    ssh [email protected]
  3. Crea una variable VPN_PROVIDER y guárdalo allí nombre de su proveedor de VPN, por ejemplo expressvpn :
    VPN_PROVIDER=expressvpn
  4. De manera que la conexión al servidor VPN estar hecho automáticamente, sin tener que ingresar nuestro nombre de usuario y contraseña cada vez, almacenaremos el nombre de usuario y la contraseña de inicio de sesión en un archivo .txt que será leído por los archivos de configuración .ovpn.
    Para hacer esto, en todos Archivos de configuración .ovpn que transferimos anteriormente, agregaremos el parámetro auth-user-pass /etc/openvpn/${VPN_PROVIDER}_auth.conf con el siguiente comando:
    sed -i "/auth-user-pass/cauth-user-pass /etc/openvpn/${VPN_PROVIDER}_auth.txt" /etc/openvpn/${VPN_PROVIDER}_*.ovpn
    # Résultat :
    [email protected]:~# tail -n +1 /etc/openvpn/*.ovpn | grep -E ".ovpn|auth-user-pass"
    ==> /etc/openvpn/expressvpn_belgium.ovpn <==
    auth-user-pass /etc/openvpn/expressvpn_auth.txt
    ==> /etc/openvpn/expressvpn_bosnia_and_herzegovina.ovpn <==
    auth-user-pass /etc/openvpn/expressvpn_auth.txt
  5. Crea el archivo /etc/openvpn/${VPN_PROVIDER}_auth.txt y registra tu nombre de usuario y tu contraseña conexión, proporcionada por su proveedor de VPN:
    touch /etc/openvpn/${VPN_PROVIDER}_auth.txt
    echo "YOUR_VPN_USER_NAME" > /etc/openvpn/${VPN_PROVIDER}_auth.txt
    echo "YOUR_VPN_PASSWORD" >> /etc/openvpn/${VPN_PROVIDER}_auth.txt
    chmod 400 /etc/openvpn/${VPN_PROVIDER}_auth.txt
    # Résultat :
    [email protected]:~# cat /etc/openvpn/expressvpn_auth.txt
    YOUR_VPN_USER_NAME
    YOUR_VPN_PASSWORD

Creación de instancias OpenVPN

  1. Muestra tu Archivos de configuración .ovpn :
    ls -l /etc/openvpn/ | grep .ovpn
    -rw-r--r--    1 root     root          6120 Feb  3 15:40 expressvpn_belgium.ovpn
    -rw-r--r--    1 root     root          6133 Feb  3 15:40 expressvpn_bosnia_and_herzegovina.ovpn
    -rw-r--r--    1 root     root          6120 Feb  3 15:40 expressvpn_ireland.ovpn
    -rw-r--r--    1 root     root          6125 Feb  3 15:40 expressvpn_uk_berkshire.ovpn
  2. Crearemos un Instancia de OpenVPN para cada ubicación: habrá una instancia para conectarse al servidor VPN ubicado en Bélgica, otra para Irlanda… Para hacer esto, por cada localización :
    1. Crea tres variables OPENVPN_LOCATION, VPN_PROVIDER y OPENVPN_INAME especificando la ubicación y el proveedor, por ejemplo Bélgica y expressvpn (cuidarse de respetar elortografía):
      OPENVPN_LOCATION=belgium
      VPN_PROVIDER=expressvpn
      OVPN_INAME="$VPN_PROVIDER"_"$OPENVPN_LOCATION"
    2. Crear un Instancia de OpenVPN especificando el archivo .ovpn de la ubicación:
      uci set openvpn."$OVPN_INAME"=openvpn
      uci set openvpn."$OVPN_INAME".enabled='0'
      uci set openvpn."$OVPN_INAME".config=/etc/openvpn/"$OVPN_INAME".ovpn
      # Résultat :
      [email protected]:~# uci show openvpn.expressvpn_belgium
      openvpn.expressvpn_belgium=openvpn
      openvpn.expressvpn_belgium.enabled='0'
      openvpn.expressvpn_belgium.config='/etc/openvpn/expressvpn_belgium.ovpn'

Actualización de DNS

  1. Para usar DNS de nuestro proveedor de VPN, necesitamos actualizar el archivo /tmp/resolv.conf.auto y registrar el DNS del proveedor. Este archivo es utilizado por el sistema para saber que DNS usar para resolver nombres de dominio.
    Para hacer esto necesitaremos dos guiones : /etc/openvpn/updns y /etc/openvpn/downdns. Estos scripts se ejecutarán después de iniciar y cerrar sesión en el servidor VPN, respectivamente. Crea estos scripts ingresando los siguientes comandos:

    Truco : copie todas las líneas a continuación y péguelas en Mando presionando las teclas Mayús (⇧) + Insertar o haciendo clic derecho!

    cat <<EOF > /etc/openvpn/updns
    #!/bin/sh
    mv /tmp/resolv.conf.auto /tmp/resolv.conf.auto.hold
    echo $foreign_option_1 | sed -e 's/dhcp-option DOMAIN/domain/g' -e 's/dhcp-option DNS/nameserver/g' > /tmp/resolv.conf.auto
    echo $foreign_option_2 | sed -e 's/dhcp-option DOMAIN/domain/g' -e 's/dhcp-option DNS/nameserver/g' >> /tmp/resolv.conf.auto
    echo $foreign_option_3 | sed -e 's/dhcp-option DOMAIN/domain/g' -e 's/dhcp-option DNS/nameserver/g' >> /tmp/resolv.conf.auto
    EOF
    cat <<EOF > /etc/openvpn/downdns
    #!/bin/sh
    mv /tmp/resolv.conf.auto.hold /tmp/resolv.conf.auto
    EOF
    chmod +x /etc/openvpn/updns
    chmod +x /etc/openvpn/downdns
    # Résultat :
    # [email protected]:/tmp# ls -l /etc/openvpn/ | grep -E 'updns|downdns'
    # -rw-r--r--    1 root     root            62 Feb  4 13:27 downdns
    # -rw-r--r--    1 root     root           435 Feb  4 13:24 updns
  2. Para que estos guiones se ejecutan, debemos agregar los siguientes parámetros a nuestros archivos de configuración .ovpn :
    script-security 2
    up /etc/openvpn/updns
    down /etc/openvpn/downdns

    Para hacer esto, ejecute el siguiente comando:

    sed -i '/auth-user-pass*/a script-security 2nup /etc/openvpn/updnsndown /etc/openvpn/downdns' /etc/openvpn/*.ovpn

Activación de registros

  1. Es importante utilizar registros de eventos (logs) con el fin de mantener un seguimiento de la actividad de nuestro cliente OpenVPN. Para activar el registros, debemos agregar los siguientes parámetros a nuestros archivos de configuración .ovpn :
    log-append /var/log/openvpn.log
    status /var/log/openvpn-status.log
    

    Para hacer esto, ejecute el siguiente comando:

    sed -i '/auth-user-pass*/a log-append /var/log/openvpn.lognstatus /var/log/openvpn-status.log' /etc/openvpn/*.ovpn

Configuración de firewall e interfaz de red

  1. Crear un interfaz para instancias de OpenVPN:
    uci set network."$VPN_PROVIDER"_vpn=interface
    uci set network."$VPN_PROVIDER"_vpn.proto='none'
    uci set network."$VPN_PROVIDER"_vpn.ifname="tun0"
    uci set network."$VPN_PROVIDER"_vpn.metric="10"
    # Résultat :
    # [email protected]:~# uci show network.expressvpn_vpn
    # network.expressvpn_vpn=interface
    # network.expressvpn_vpn.proto='dhcp'
    # network.expressvpn_vpn.ifname="tun0"
    # network.expressvpn_vpn.metric="10"
  2. Crear un nueva zona «vpn» en el cortafuegos y coloque la interfaz que acabamos de crear allí:
    uci add firewall zone
    uci set [email protected][-1].name="vpn"
    uci set [email protected][-1].input="REJECT"
    uci set [email protected][-1].output="ACCEPT"
    uci set [email protected][-1].forward='REJECT'
    uci set [email protected][-1].masq='1'
    uci set [email protected][-1].mtu_fix='1'
    uci add_list [email protected][-1].network="$VPN_PROVIDER"_vpn
    # Résultat :
    # [email protected]:~# uci show [email protected][-1]
    # firewall.cfg1edc81=zone
    # firewall.cfg1edc81.name="vpn"
    # firewall.cfg1edc81.input="REJECT"
    # firewall.cfg1edc81.output="ACCEPT"
    # firewall.cfg1edc81.forward='REJECT'
    # firewall.cfg1edc81.masq='1'
    # firewall.cfg1edc81.mtu_fix='1'
    # firewall.cfg1edc81.network='expressvpn_vpn'
  3. Habilitar la redirección de la zona LAN a la zona VPN:
    uci add firewall forwarding
    uci set [email protected][-1].src="https://lecrabeinfo.net/lan"
    uci set [email protected][-1].dest="vpn"
    # Résultat :
    # [email protected]:~# uci show [email protected][-1]
    # firewall.cfg20ad58=forwarding
    # firewall.cfg20ad58.src="https://lecrabeinfo.net/lan"
    # firewall.cfg20ad58.dest="vpn"
  4. Validar los cambios y reiniciar servicios de firewall, red y openvpn:
    uci commit
    /etc/init.d/firewall reload
    /etc/init.d/network restart
    /etc/init.d/openvpn restart

Protección contra fugas de DNS

Para proteger nuestra conexión VPN de Fugas de DNS[1], definiremos el OpenDNS y Google DNS en las interfaces LAN y WAN.

  1. Añade el OpenDNS y Google DNS en la interfaz lan :
    uci add_list dhcp.lan.dhcp_option='6,208.67.222.222,208.67.220.220'
    uci add_list dhcp.lan.dhcp_option='6,8.8.8.8,8.8.4.4'
  2. Añade el OpenDNS y Google DNS en las interfaces a través de las cuales accede a Internet:
    uci set network.wan.peerdns="0" # Désactive les DNS fournis par DHCP
    uci del network.wan.dns # Supprime les DNS existants s'ils existent
    uci add_list network.wan.dns="208.67.222.222"
    uci add_list network.wan.dns="208.67.220.220"
    uci add_list network.wan.dns="8.8.8.8"
    uci add_list network.wan.dns="8.8.4.4"

    Reemplazar wan por el nombre de la interfaz por la que pasa acceso a Internet, por ejemplo wlan (Conexión ADSL / fibra a través de Wi-Fi) o wwan (Conexión LTE).

  3. Validar los cambios y reiniciar el servicio de red y openvpn:
    uci commit
    /etc/init.d/network restart
    /etc/init.d/network openvpn

[1] Protección contra fugas de DNS ^

Pequeño recordatorio sobre DNS. a DNS es un servidor que contiene los directorios de todos los sitios de Internet.

Cuando escribe «www.google.fr» en su navegador básico, su PC no sabe dónde se encuentra «www.google.fr». Su PC es una máquina, y para comunicarse con otras máquinas, necesita tener su propia dirección IP (como 86.201.69.8) y conocer las de otras máquinas. Cuando escribe «www.google.fr», su PC envía una solicitud a los servidores DNS (las de su ISP en general) para averiguar cuál es la dirección IP de «www.google.fr» para poder conectarse a él. Los servidores DNS responden cuando pueden encontrar «www.google.fr» en la dirección IP 216.58.211.67. Su navegador puede entonces establecer una conexión con el servidor donde está alojado «www.google.fr».

Como puede ver, hay dos fases: la conexión a servidores DNS luego al sitio web. Incluso si está conectado a un servidor VPN, su sistema operativo (por ejemplo: Windows, OpenWrt…) puede seguir utilizando los servidores DNS predeterminados (los de su ISP) en lugar de los servidores DNS anónimos de su VPN. Esta es una falla de seguridad muy grande, ya que todas las solicitudes a los servidores DNS de su ISP no están encriptadas y, por lo tanto, pueden analizarse. los Protección contra fugas de DNS (Protección contra fugas de DNS) garantiza que toda su conexión pase exclusivamente a través del túnel VPN seguro y no a través del no seguro de su conexión a Internet habitual.

Paso 3: conéctese al servidor VPN

  1. Abra su navegador web e ingrese la dirección web http://192.168.1.1/ para conectarse alInterfaz de administración OpenWrt.
  2. Ir a la pagina Servicios > OpenVPN. Todos Instancias de OpenVPN que creó en el paso 2 se puede encontrar aquí:
  3. Activar la instancia de OpenVPN que te interese marcando la casilla Activado luego haciendo clic en el botón Guardar y aplicar. Luego, haga clic en el botón Comienzo para iniciar la conexión al servidor VPN.
    En la pagina La red > Interfaces, encontrarás elinterfaz de su instancia de OpenVPN:
  4. Si quieres cambiar la instancia de OpenVPN, Continuar escrupulosamente como esto :
    1. Detenga el servicio openvpn : ir a la pagina Sistema > Puesta en marcha para acceder a la lista de servicios y haga clic en el botón Parada frente al servicio openvpn.
    2. Ir a la pagina Servicios > OpenVPN para acceder a la lista de instancias de OpenVPN.
    3. Desactivar la antigua instancia de OpenVPN en desmarcando la caja Activado.
    4. Activar la nueva instancia de OpenVPN en tictac la caja Activado.
    5. Haga clic en el botón Guardar y aplicar.
    6. Haga clic en el botón Comienzo frente a la nueva instancia de OpenVPN.
    7. Aquí está, estás conectado en la nueva instancia de OpenVPN 😉

Paso 4: Verifique la conexión al servidor VPN

  1. Abra su navegador web, vaya al sitio web https://www.dnsleaktest.com y vea si eldirección IP y el localización detectados corresponden a los de su Instancia de OpenVPN :En la captura de pantalla anterior, podemos ver que el El túnel VPN está activo, nuestra dirección IP pública y ubicación coinciden con las de un servidor en el Reino Unido.
  2. Empezar un Prueba de fugas de DNS (Prueba de fugas de DNS) haciendo clic en el botón Prueba estándar Dónde Prueba extendida : Aquí el DNS identificado para resolver los nombres de dominio son los de ExpressVPN y no los de nuestro ISP, ¡todo está bien! 🙂
  3. También puede utilizar los servicios de Verificación de la dirección IP y de Prueba de fugas de DNS de su proveedor de VPN. Por ejemplo, los de:

¡Y ahí tienes! Las comunicaciones entrantes y salientes entre su red local e Internet ahora están totalmente encriptado 👍

Disfrútala ! 😎

Tal vez también te interese  las mejores PC ultraportátiles en 2021

Deja un comentario

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