Todos los routers y sistemas Wi-Fi Mesh de ASUS incorporan un servidor OpenVPN en el firmware Asuswrt. Este firmware es el más completo y nos va a permitir una gran configurabilidad del servidor OpenVPN, es simplemente la mejor implementación de todos los routers y NAS que hemos probado, ya que dispone de una sección de «Opciones avanzadas». Los firmwares de otros routers de la competencia o de los servidores NAS no disponen de todas las opciones de configuración que nos brinda OpenVPN, hoy en RedesZone os vamos a enseñar cómo configurarlo de manera básicas, y también de manera avanzada con todas las opciones de seguridad disponibles.
El servidor OpenVPN de los routers y sistemas Wi-Fi Mesh de ASUS nos permite configurarlo de dos formas diferentes, con una «Configuración general» donde únicamente modificaremos el puerto de escucha de OpenVPN y el usuario/contraseña para acceder al servidor, y luego tenemos una «Configuración avanzada» que nos permitirá realizar más configuraciones de seguridad adicionales.
Nuestra recomendación a la hora de configurar el servidor OpenVPN en los routers ASUS, es que vayas directamente a por la configuración avanzada, porque nos va a proporcionar todas las opciones de configuración disponibles en el software, como si lo instalásemos en un servidor con Linux y editásemos el fichero de configuración de OpenVPN. Uno de los aspectos que más nos gustan de los routers de ASUS es la implementación del servidor OpenVPN, porque no solamente dispondremos de muchas opciones de configuración vía web, sino que también disponemos de un campo de texto donde podremos añadir configuraciones personalizadas avanzadas, ideal para adaptarlo perfectamente a nuestras necesidades.
Paso 1: Configurar el DNS dinámico para conectarnos vía dominio en lugar de IP pública
Si nuestro operador de Internet nos proporciona dirección IP pública dinámica, esta IP cambiará cada vez que encendamos el router, o cuando pase un cierto tiempo. Para poder conectarnos a nuestro servidor OpenVPN es fundamental saber en todo momento la dirección IP pública, o bien, podemos configurar un DNS dinámico para utilizarlo en lugar de la dirección IP.
ASUS nos permite configurar varios proveedores de DNS dinámicos, para configurarlo debemos irnos a la sección de «WAN / DDNS» y podremos ver el listado de compatibilidad:
- El DNS dinámico de ASUS
- DynDNS
- SelfHost
- Zoneedit
- DNSomatic
- Tunnelbroker
- NoIP
- Oray
Nuestra recomendación es usar el servidor DDNS del propio ASUS, DynDNS o No-IP, ya que son los típicos que se suelen utilizar en estos casos. Si tienes un servidor NAS, es probable que también te proporcione un DNS dinámico gratuito, también podrías utilizarlo para conectarte al servidor OpenVPN del router ASUS.
Después de haber configurado el servicio de DNS dinámico, podremos empezar a configurar el servidor OpenVPN.
Configuración del servidor OpenVPN en «Modo general»
En la sección de «VPN / Servidor VPN / OpenVPN» es donde tendremos todas las opciones de configuración del servidor OpenVPN. Tendremos que habilitarlo pinchando en «Habilitar servidor OpenVPN», y una vez que se habilite, tendremos el menú general del servidor OpenVPN con las opciones básicas de configuración. En esta sección podremos configurar diferentes aspectos del servidor:
- Puerto del servidor: por defecto es 1194 UDP, pero podremos cambiar el puerto por cualquier otro, y es recomendable hacerlo.
- RSA Encryption: ASUS genera automáticamente una CA con certificado de servidor y clientes basado en RSA, podremos elegir una seguridad de 1024 bits o 2048 bits, hoy en día es recomendable como mínimo 2048 bits, por lo que seleccionamos esta opción. No obstante, si nosotros creamos la CA (Autoridad de Certificación) y los certificados del servidor y clientes con seguridad de 4096 bits e incluso con EC, podremos posteriormente «pegar» estos certificados en la sección de «Configuración avanzada». Sin lugar a dudas, esta última forma es la mejor de cara a la seguridad de las comunicaciones.
- Client will use VPN to access: aquí podremos definir el comportamiento de la VPN, si queremos únicamente acceder a la red local vía VPN, o también acceder a Internet (redirección del tráfico). Esta última opción es la que nos permitirá tener seguridad en redes Wi-Fi públicas, por lo que es recomendable siempre seleccionar esta opción.
Justo debajo, tendremos la posibilidad de añadir un total de 16 usuarios con sus respectivas contraseñas, estos usuarios/claves tendremos que introducirlo para conectarnos al servidor OpenVPN. Añadimos uno y pinchamos en «+», posteriormente pinchamos en «Aplicar» para arrancar el servidor OpenVPN con la configuración elegida.
Una vez que haya arrancado, podremos pinchar en una nueva opción que indica «Exportar archivo de configuración OpenVPN», el cual incorpora todo lo necesario para conectarnos a nuestro servidor OpenVPN, tal y como podéis ver aquí:
Lo único que debemos cambiar de este fichero de configuración es la dirección IP que nos aparece por el dominio que hayamos configurado, por tanto, deberemos poner: «remote dominio.no-ip.org 43333» por ejemplo.
Aunque la seguridad de este servidor OpenVPN es notable, ya que utiliza una CA con RSA 2048bits y con un certificado cliente generado automáticamente, es recomendable siempre montar nuestra autoridad de certificación y usar nuestros propios certificados individualmente, para aumentar la seguridad del servidor. Para poder acceder a la configuración avanzada, deberemos seleccionar en «Detalles de VPN: Configuración avanzada» y se nos desplegará un nuevo menú.
Configuración del servidor OpenVPN en «Modo avanzado»
En el modo avanzado del servidor OpenVPN de los ASUS podremos configurar en detalle el servidor OpenVPN para tener la máxima seguridad. En este menú podremos configurar los siguientes aspectos:
- Tipo de interfaz: TUN o TAP. Recomendable TUN para tunelizar todo el tráfico en una nueva subred.
- Protocolo: UDP o TCP. Recomendable usar UDP, será más rápido y permitirá más clientes VPN simultáneos con un buen rendimiento.
- Puerto del servidor: el elegido anteriormente, es recomendable no usar el 1194 que es el de por defecto.
- Responder a DNS: marcar sí para usar los DNS del servidor VPN
- Cifrado: AES-256-CBC (aunque posteriormente configuraremos un cifrado simétrico mejor, AES-256-GCM).
- HMAC Authentication: SHA512, también puedes elegir SHA256, ambas opciones son seguras actualmente.
- Compresión: Deshabilitar.
- Solo autenticación mediante nombre de usuario y contraseña: No (usaremos certificados digitales más el usuario/clave).
- Modo de autorización: TLS. Vamos a añadir unos certificados digitales creados manualmente para mejorar la seguridad.
- RSA Encryption: 2048 bits, aunque no lo usaremos ya que pondremos unos certificados digitales creados manualmente.
- Autorización HMAC Adicional: Incoming (0)
- Máscara de red / subred VPN: 10.8.0.0 y 255.255.255.0 está correcto.
- Empujar LAN a clientes: sí
- Clientes directos para redireccionar el tráfico de Internet: sí
- Tiempo de renegociación TLS: -1
- Administrar opciones específicas del cliente: opcional, por defecto no.
La configuración inicial quedaría así:
La parte más importante es la de poder incorporar tu propia CA y certificado digital del servidor para posteriormente utilizar los certificados digitales de los clientes VPN. Esto se configura pinchando en «Modificación de contenido de teclas y certificación«. Para crear una autoridad de certificación con sus correspondientes certificados digitales, os recomendamos acceder a nuestro completo tutorial de cómo crear un servidor OpenVPN paso a paso. Ahí podrás elegir que en lugar de utilizar RSA utilicemos Curvas Elípticas para una mejor seguridad y más eficiente, asimismo podrás incorporar una clave secreta adicional en los clientes VPN para que te pida una confirmación adicional (no lo hagas en el certificado del servidor porque no lo podrá leer el router).
Para que podáis probarlo, aquí os dejamos los certificados que hemos creado para vosotros, pero solamente usadlo para las pruebas, luego tenéis que crearlos vosotros manualmente.
Autoridad de certificación:
-----BEGIN CERTIFICATE-----
MIICSTCCAaugAwIBAgIUcID/3iNXVKYqzkD6uNjv8tUX10EwCgYIKoZIzj0EAwQw
FzEVMBMGA1UEAwwMUmVkZXNab25lLUNBMB4XDTIwMDIyOTEyMTM1OVoXDTMwMDIy
NjEyMTM1OVowFzEVMBMGA1UEAwwMUmVkZXNab25lLUNBMIGbMBAGByqGSM49AgEG
BSuBBAAjA4GGAAQBoSe6mlNRi1sfEct8rwHXwt6Q2hZ68sShWF3HaxxTquPUk+y3
cwuVU2teBKajG3y8/mP0TYnI83sshydDZqyy14YAU4ykWxCSwnlC4Dky17nxObPO
zCQW62ACBrKdO5n98CBeW8P7q6yMbQNsAnPuH3hJkEE9Wj8N9Aj4CFynDH6G+4Oj
gZEwgY4wHQYDVR0OBBYEFF7OQiJzxA4M8gIFkJdpdLwLyr9uMFIGA1UdIwRLMEmA
FF7OQiJzxA4M8gIFkJdpdLwLyr9uoRukGTAXMRUwEwYDVQQDDAxSZWRlc1pvbmUt
Q0GCFHCA/94jV1SmKs5A+rjY7/LVF9dBMAwGA1UdEwQFMAMBAf8wCwYDVR0PBAQD
AgEGMAoGCCqGSM49BAMEA4GLADCBhwJCAI87Pe23RB5yteWCLbtfTAtfE4qoS253
sVS9gpvyvrgpk8ZKOF9OipdE5ksD2IO2BAmvm01yfJsgaBFjJEzTbZxEAkFqbYCz
ofEaDoPRdWo11323FsAN4eQql28az39OKuL0WPkblr6UJFFoy/w7uX49fTq2QzLf
YaXTZvJrmDyIglM/FA==
-----END CERTIFICATE-----
Certificado del servidor donde hemos utilizado secp521r1.
-----BEGIN CERTIFICATE-----
MIICjjCCAe+gAwIBAgIRANB8H+EUWoBNEBNcWszPKBAwCgYIKoZIzj0EAwQwFzEV
MBMGA1UEAwwMUmVkZXNab25lLUNBMB4XDTIwMDIyOTEyMTQzNloXDTIzMDIxMzEy
MTQzNlowJTEjMCEGA1UEAwwac2Vydmlkb3Itb3BlbnZwbi1yZWRlc3pvbmUwgZsw
EAYHKoZIzj0CAQYFK4EEACMDgYYABAH7fw6OmeM9WFPEzJ/bCY2ViqmlLUyLi+zH
thZ4F/Qz52rZbX31hjvYVQJRtaq4HtZ8VEmLf19ysgDzOWwIzsZyfQCW3mBZAURL
Cyr37fCjtPjZlx21cVM5O0ARBY5pjNaKjNRbgxHSGljpwRcskJUiOQ65W4pmjNxS
aMUgCseEmLRmVqOByjCBxzAJBgNVHRMEAjAAMB0GA1UdDgQWBBQU/4infW3Jly48
jk+1cCVRxtrggjBSBgNVHSMESzBJgBRezkIic8QODPICBZCXaXS8C8q/bqEbpBkw
FzEVMBMGA1UEAwwMUmVkZXNab25lLUNBghRwgP/eI1dUpirOQPq42O/y1RfXQTAT
BgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwJQYDVR0RBB4wHIIac2Vy
dmlkb3Itb3BlbnZwbi1yZWRlc3pvbmUwCgYIKoZIzj0EAwQDgYwAMIGIAkIBUEtf
sCd+q4d8bnW2LX8IhLB9QVoL8WslhhlLwr6CSdGmplsIf+LeppYZsIINZU7NUGxi
TFWazdKDh0Us+Wvy0D0CQgHv9gbjtb6C5sx8zTfwz/hCAKYxc5Fj5DhgfjRea5O8
pL0EOZjrUWQoP/CvMByyNuo30VQYvnJakcKDkUA6KNDGMg==
-----END CERTIFICATE-----
Clave privada del certificado del servidor:
-----BEGIN PRIVATE KEY-----
MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIBQ1MaF9WLHyshazQ4
JRZpFd+TDqALM7fKc+rfPlHR7x8zL8Wa8pMhdp+Qtun1jTqgZi5GMGmUh5xuALrE
pPIFEz+hgYkDgYYABAH7fw6OmeM9WFPEzJ/bCY2ViqmlLUyLi+zHthZ4F/Qz52rZ
bX31hjvYVQJRtaq4HtZ8VEmLf19ysgDzOWwIzsZyfQCW3mBZAURLCyr37fCjtPjZ
lx21cVM5O0ARBY5pjNaKjNRbgxHSGljpwRcskJUiOQ65W4pmjNxSaMUgCseEmLRm
Vg==
-----END PRIVATE KEY-----
Los parámetros Diffie-Hellmann que nos genera el router ASUS los dejamos así, no los vamos a utilizar así que no hay problema por dejarlo así, si los borramos nos dará error.
Como medida de seguridad adicional, vamos a utilizar la característica tls-auth, sin esta clave privada compartida con todos los clientes VPN no podremos conectar. Esta característica nos protegerá frente a posibles ataques DoS al servidor OpenVPN. Para introducirla en el router, debemos pinchar en «Modo de autorización: Static Key» y darle a «Modificación de contenido de teclas y certificación«.
La generación de esta «ta.key» lo habéis podido ver en el tutorial de generación de claves, pero aquí os dejamos la nuestra, simplemente tenéis que copiar y pegar.
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
cb714aee442a9a20af50f6dcad8c7ef6
c23053d848ffb5ca0301ec9715e547ad
05e1dfdecf9b501fb3fd53aca1a3c884
c72690059af2d359b7a2d6f7626ecaa3
ac76fae4f426a20fa37d5b5757356a49
58d90ee6887561cc9b5074c30b8c2f60
cb61b85a3c33d6e01fb238586a8de6c4
e9a839f1e9de611e792ade85ec7a509b
190933798b5b22f6d0f02d898677a1f1
51c3cf531ad335abdc683e7828f89b56
165cd4d93b1e860946a1f07afc91c42c
029789eb576f4bdf6bb5ee992cc98340
79280f5026862d9e2372e9ebe4ea5f2c
f95902580112c446f7da3bced1499b57
c8f2afd7f73a9629866a1b79c5799ff7
0eeb5b2326256c191aed7516cbc563d6
-----END OpenVPN Static key V1-----
Una vez que hayamos realizado toda esta configuración, procedemos a seleccionar nuevamente «Modo de autorización: TLS», y pinchamos en «Aplicar» para guardar todos los cambios realizados. Más directivas avanzadas que podremos incorporar al servidor VPN son las siguientes:
remote-cert-tls client
cipher AES-256-GCM
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384
ecdh-curve secp521r1
tls-version-min 1.2
reneg-sec 0
Estas directivas nos permitirán tener una mayor seguridad tanto en el canal de control (TLS 1.2 como mínimo), y también en el canal de datos (AES-256-GCM), por lo que tendremos una configuración en modo «paranoico».
Ahora pinchamos en «Aplicar» nuevamente, y ya tendremos configurado el servidor OpenVPN en el router del fabricante ASUS.
Configuración de los clientes OpenVPN
Una vez que hemos configurado el servidor OpenVPN, ahora tendremos que configurar los clientes OpenVPN con la configuración tan personalizada que hemos realizado. Todos y cada uno de los clientes VPN deben tener los siguientes archivos:
- ca.crt (autoridad de certificación).
- cliente1-openvpn-redeszone.crt (certificado del cliente)
- cliente1-openvpn-redeszone.key (llave privada del certificado)
- ta.key (todos los clientes deben tener esta llave para autenticación con tls-auth).
Tal y como hemos hecho antes con el servidor, os proporcionamos nuestros certificados para que probéis que funciona bien, pero os recomendamos que vosotros os creéis los certificados de forma manual con el tutorial que os hemos indicado anteriormente.
Autoridad de certificación ca.crt:
-----BEGIN CERTIFICATE-----
MIICSTCCAaugAwIBAgIUcID/3iNXVKYqzkD6uNjv8tUX10EwCgYIKoZIzj0EAwQw
FzEVMBMGA1UEAwwMUmVkZXNab25lLUNBMB4XDTIwMDIyOTEyMTM1OVoXDTMwMDIy
NjEyMTM1OVowFzEVMBMGA1UEAwwMUmVkZXNab25lLUNBMIGbMBAGByqGSM49AgEG
BSuBBAAjA4GGAAQBoSe6mlNRi1sfEct8rwHXwt6Q2hZ68sShWF3HaxxTquPUk+y3
cwuVU2teBKajG3y8/mP0TYnI83sshydDZqyy14YAU4ykWxCSwnlC4Dky17nxObPO
zCQW62ACBrKdO5n98CBeW8P7q6yMbQNsAnPuH3hJkEE9Wj8N9Aj4CFynDH6G+4Oj
gZEwgY4wHQYDVR0OBBYEFF7OQiJzxA4M8gIFkJdpdLwLyr9uMFIGA1UdIwRLMEmA
FF7OQiJzxA4M8gIFkJdpdLwLyr9uoRukGTAXMRUwEwYDVQQDDAxSZWRlc1pvbmUt
Q0GCFHCA/94jV1SmKs5A+rjY7/LVF9dBMAwGA1UdEwQFMAMBAf8wCwYDVR0PBAQD
AgEGMAoGCCqGSM49BAMEA4GLADCBhwJCAI87Pe23RB5yteWCLbtfTAtfE4qoS253
sVS9gpvyvrgpk8ZKOF9OipdE5ksD2IO2BAmvm01yfJsgaBFjJEzTbZxEAkFqbYCz
ofEaDoPRdWo11323FsAN4eQql28az39OKuL0WPkblr6UJFFoy/w7uX49fTq2QzLf
YaXTZvJrmDyIglM/FA==
-----END CERTIFICATE-----
Certificado del cliente cliente1-openvpn-redeszone.crt
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
f6:4f:5d:df:21:c5:3d:7c:0a:d7:6f:d3:20:13:16:94
Signature Algorithm: ecdsa-with-SHA512
Issuer: CN=RedesZone-CA
Validity
Not Before: Feb 29 12:14:54 2020 GMT
Not After : Feb 13 12:14:54 2023 GMT
Subject: CN=cliente1-openvpn-redeszone
Subject Public Key Info:
Public Key Algorithm: id-ecPublicKey
Public-Key: (521 bit)
pub:
04:00:00:87:24:e2:3f:13:d3:8a:64:f6:6f:66:3d:
47:c9:ca:8c:ab:9c:05:96:3c:d0:b1:23:ae:7c:06:
4e:ec:a4:2b:35:cd:07:d6:90:0e:18:f6:fe:73:c3:
a1:a9:4a:22:b5:35:d1:2c:4b:f0:45:1b:c4:53:4c:
bb:93:25:f7:3d:87:ff:01:de:f0:1e:a9:6d:46:ed:
43:06:3c:46:d4:9f:84:0d:ce:aa:3b:5d:53:65:81:
b1:da:84:de:6f:f2:df:b9:12:90:8b:f0:a0:26:4a:
8b:6e:b5:71:48:a6:5a:d1:a3:b8:95:51:21:9b:39:
4d:a3:97:70:2a:10:df:4c:18:b0:ad:28:e9
ASN1 OID: secp521r1
NIST CURVE: P-521
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
X509v3 Subject Key Identifier:
CB:1E:EE:F1:F0:FA:33:D5:98:26:DB:D1:4E:37:CA:B8:F5:DA:71:AB
X509v3 Authority Key Identifier:
keyid:5E:CE:42:22:73:C4:0E:0C:F2:02:05:90:97:69:74:BC:0B:CA:BF:6E
DirName:/CN=RedesZone-CA
serial:70:80:FF:DE:23:57:54:A6:2A:CE:40:FA:B8:D8:EF:F2:D5:17:D7:41
X509v3 Extended Key Usage:
TLS Web Client Authentication
X509v3 Key Usage:
Digital Signature
Signature Algorithm: ecdsa-with-SHA512
30:81:88:02:42:00:d0:3c:06:fa:7e:aa:1d:17:42:d2:64:94:
f0:52:0d:17:1b:a1:f5:9a:e8:1c:b8:e0:ee:19:f3:cf:07:a3:
6a:25:dc:db:49:4d:ae:e7:e2:4b:c7:87:6f:47:bf:ab:a6:99:
2a:de:32:37:0b:94:8d:b2:6d:6a:ce:f5:f1:19:71:ff:e4:02:
42:01:a5:7d:e8:df:6a:9a:3a:5c:98:0d:bf:94:42:ae:be:92:
14:a1:c2:22:6d:2e:78:be:17:75:73:61:46:62:ae:6b:58:de:
f8:3a:f2:29:f9:05:04:d6:3b:c8:f8:19:36:c3:d2:94:1f:25:
9d:bb:ff:98:a2:d0:77:c3:2a:73:22:0f:32
-----BEGIN CERTIFICATE-----
MIICZzCCAcigAwIBAgIRAPZPXd8hxT18Ctdv0yATFpQwCgYIKoZIzj0EAwQwFzEV
MBMGA1UEAwwMUmVkZXNab25lLUNBMB4XDTIwMDIyOTEyMTQ1NFoXDTIzMDIxMzEy
MTQ1NFowJTEjMCEGA1UEAwwaY2xpZW50ZTEtb3BlbnZwbi1yZWRlc3pvbmUwgZsw
EAYHKoZIzj0CAQYFK4EEACMDgYYABAAAhyTiPxPTimT2b2Y9R8nKjKucBZY80LEj
rnwGTuykKzXNB9aQDhj2/nPDoalKIrU10SxL8EUbxFNMu5Ml9z2H/wHe8B6pbUbt
QwY8RtSfhA3OqjtdU2WBsdqE3m/y37kSkIvwoCZKi261cUimWtGjuJVRIZs5TaOX
cCoQ30wYsK0o6aOBozCBoDAJBgNVHRMEAjAAMB0GA1UdDgQWBBTLHu7x8Poz1Zgm
29FON8q49dpxqzBSBgNVHSMESzBJgBRezkIic8QODPICBZCXaXS8C8q/bqEbpBkw
FzEVMBMGA1UEAwwMUmVkZXNab25lLUNBghRwgP/eI1dUpirOQPq42O/y1RfXQTAT
BgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMCB4AwCgYIKoZIzj0EAwQDgYwA
MIGIAkIA0DwG+n6qHRdC0mSU8FINFxuh9ZroHLjg7hnzzwejaiXc20lNrufiS8eH
b0e/q6aZKt4yNwuUjbJtas718Rlx/+QCQgGlfejfapo6XJgNv5RCrr6SFKHCIm0u
eL4XdXNhRmKua1je+DryKfkFBNY7yPgZNsPSlB8lnbv/mKLQd8MqcyIPMg==
-----END CERTIFICATE-----
Clave privada del certificado, cliente1-openvpn-redeszone.key.
-----BEGIN PRIVATE KEY-----
MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIBqk2Uq3uJjfErRqrK
Gl7hMtrrC/U4+Ktrpj3SJp//JJ+iqL4IQDD6h1DA4bF8f019ifBHam8S6yyc78cr
rQXMBZ+hgYkDgYYABAAAhyTiPxPTimT2b2Y9R8nKjKucBZY80LEjrnwGTuykKzXN
B9aQDhj2/nPDoalKIrU10SxL8EUbxFNMu5Ml9z2H/wHe8B6pbUbtQwY8RtSfhA3O
qjtdU2WBsdqE3m/y37kSkIvwoCZKi261cUimWtGjuJVRIZs5TaOXcCoQ30wYsK0o
6Q==
-----END PRIVATE KEY-----
Ta.key que es necesaria para todos los clientes:
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
cb714aee442a9a20af50f6dcad8c7ef6
c23053d848ffb5ca0301ec9715e547ad
05e1dfdecf9b501fb3fd53aca1a3c884
c72690059af2d359b7a2d6f7626ecaa3
ac76fae4f426a20fa37d5b5757356a49
58d90ee6887561cc9b5074c30b8c2f60
cb61b85a3c33d6e01fb238586a8de6c4
e9a839f1e9de611e792ade85ec7a509b
190933798b5b22f6d0f02d898677a1f1
51c3cf531ad335abdc683e7828f89b56
165cd4d93b1e860946a1f07afc91c42c
029789eb576f4bdf6bb5ee992cc98340
79280f5026862d9e2372e9ebe4ea5f2c
f95902580112c446f7da3bced1499b57
c8f2afd7f73a9629866a1b79c5799ff7
0eeb5b2326256c191aed7516cbc563d6
-----END OpenVPN Static key V1-----
Finalmente, tenemos que crear un archivo de configuración del cliente con extensión .ovpn para Windows (por defecto), o .conf para sistemas Linux. El fichero de configuración sería el siguiente:
client
dev tun
proto udp
remote dominio.no-ip.org 43333
auth-user-pass
dh none
ecdh-curve secp521r1
tls-auth ta.key 1
ca ca.crt
cert cliente1-openvpn-redeszone.crt
key cliente1-openvpn-redeszone.key
auth SHA512
remote-cert-tls server
resolv-retry infinite
cipher AES-256-GCM
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384
verb 3
user nobody
group nogroup
persist-key
persist-tun
Al conectarnos al servidor OpenVPN, además de utilizar los certificados digitales generados y configurados, también tendremos que introducir el usuario/contraseña que hayamos dado de alta en el router. En la siguiente captura podéis ver que efectivamente el cliente OpenVPN está conectado perfectamente:
A continuación, os dejamos el registro del servidor OpenVPN del router:
Feb 29 15:21:37 vpnserver1[9564]: OpenVPN 2.4.7 arm-buildroot-linux-gnueabi [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [MH/PKTINFO] [AEAD] built on Jan 6 2020
Feb 29 15:21:37 vpnserver1[9564]: library versions: OpenSSL 1.0.2s 28 May 2019, LZO 2.03
Feb 29 15:21:37 vpnserver1[9568]: NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
Feb 29 15:21:37 vpnserver1[9568]: PLUGIN_INIT: POST /usr/lib/openvpn-plugin-auth-pam.so '[/usr/lib/openvpn-plugin-auth-pam.so] [openvpn]' intercepted=PLUGIN_AUTH_USER_PASS_VERIFY
Feb 29 15:21:37 vpnserver1[9568]: Diffie-Hellman initialized with 2048 bit key
Feb 29 15:21:37 vpnserver1[9568]: ECDH curve secp521r1 added
Feb 29 15:21:37 vpnserver1[9568]: Outgoing Control Channel Authentication: Using 512 bit message hash 'SHA512' for HMAC authentication
Feb 29 15:21:37 vpnserver1[9568]: Incoming Control Channel Authentication: Using 512 bit message hash 'SHA512' for HMAC authentication
Feb 29 15:21:37 vpnserver1[9568]: TUN/TAP device tun21 opened
Feb 29 15:21:37 vpnserver1[9568]: TUN/TAP TX queue length set to 100
Feb 29 15:21:37 vpnserver1[9568]: /sbin/ifconfig tun21 10.8.0.1 pointopoint 10.8.0.2 mtu 1500
Feb 29 15:21:37 vpnserver1[9568]: /etc/openvpn/ovpn-up tun21 1500 1621 10.8.0.1 10.8.0.2 init
Feb 29 15:21:37 vpnserver1[9568]: /sbin/route add -net 10.8.0.0 netmask 255.255.255.0 gw 10.8.0.2
Feb 29 15:21:37 vpnserver1[9568]: Socket Buffers: R=[524288->524288] S=[524288->524288]
Feb 29 15:21:37 vpnserver1[9568]: UDPv4 link local (bound): [AF_INET][undef]:43333
Feb 29 15:21:37 vpnserver1[9568]: UDPv4 link remote: [AF_UNSPEC]
Feb 29 15:21:37 vpnserver1[9568]: MULTI: multi_init called, r=256 v=256
Feb 29 15:21:37 vpnserver1[9568]: IFCONFIG POOL: base=10.8.0.4 size=62, ipv6=0
Feb 29 15:21:37 vpnserver1[9568]: Initialization Sequence Completed
Feb 29 15:21:37 kernel: Archer TCP Pure ACK Enabled
Feb 29 15:21:37 dhcp client: bound 192.168.178.60/255.255.255.0 via 192.168.178.1 for 864000 seconds.
Feb 29 15:22:05 vpnserver1[9568]: TLS Error: cannot locate HMAC in incoming packet from [AF_INET]192.168.50.70:1194 (via [AF_INET]192.168.50.1%br0)
Feb 29 15:22:07 vpnserver1[9568]: TLS Error: cannot locate HMAC in incoming packet from [AF_INET]192.168.50.70:1194 (via [AF_INET]192.168.50.1%br0)
Feb 29 15:22:11 vpnserver1[9568]: TLS Error: cannot locate HMAC in incoming packet from [AF_INET]192.168.50.70:1194 (via [AF_INET]192.168.50.1%br0)
Feb 29 15:22:19 vpnserver1[9568]: TLS Error: cannot locate HMAC in incoming packet from [AF_INET]192.168.50.70:1194 (via [AF_INET]192.168.50.1%br0)
Feb 29 15:22:44 vpnserver1[9568]: 192.168.50.70:1194 TLS: Initial packet from [AF_INET]192.168.50.70:1194 (via [AF_INET]192.168.50.1%br0), sid=b955db2f 501d13e9
Feb 29 15:22:45 vpnserver1[9568]: 192.168.50.70:1194 VERIFY OK: depth=1, CN=RedesZone-CA
Feb 29 15:22:45 vpnserver1[9568]: 192.168.50.70:1194 VERIFY KU OK
Feb 29 15:22:45 vpnserver1[9568]: 192.168.50.70:1194 Validating certificate extended key usage
Feb 29 15:22:45 vpnserver1[9568]: 192.168.50.70:1194 ++ Certificate has EKU (str) TLS Web Client Authentication, expects TLS Web Client Authentication
Feb 29 15:22:45 vpnserver1[9568]: 192.168.50.70:1194 VERIFY EKU OK
Feb 29 15:22:45 vpnserver1[9568]: 192.168.50.70:1194 VERIFY OK: depth=0, CN=cliente1-openvpn-redeszone
Feb 29 15:22:45 vpnserver1[9568]: 192.168.50.70:1194 peer info: IV_VER=2.4.8
Feb 29 15:22:45 vpnserver1[9568]: 192.168.50.70:1194 peer info: IV_PLAT=win
Feb 29 15:22:45 vpnserver1[9568]: 192.168.50.70:1194 peer info: IV_PROTO=2
Feb 29 15:22:45 vpnserver1[9568]: 192.168.50.70:1194 peer info: IV_NCP=2
Feb 29 15:22:45 vpnserver1[9568]: 192.168.50.70:1194 peer info: IV_LZ4=1
Feb 29 15:22:45 vpnserver1[9568]: 192.168.50.70:1194 peer info: IV_LZ4v2=1
Feb 29 15:22:45 vpnserver1[9568]: 192.168.50.70:1194 peer info: IV_LZO=1
Feb 29 15:22:45 vpnserver1[9568]: 192.168.50.70:1194 peer info: IV_COMP_STUB=1
Feb 29 15:22:45 vpnserver1[9568]: 192.168.50.70:1194 peer info: IV_COMP_STUBv2=1
Feb 29 15:22:45 vpnserver1[9568]: 192.168.50.70:1194 peer info: IV_TCPNL=1
Feb 29 15:22:45 vpnserver1[9568]: 192.168.50.70:1194 peer info: IV_GUI_VER=OpenVPN_GUI_11
Feb 29 15:22:45 vpnserver1[9568]: 192.168.50.70:1194 TLS Error: Auth Username/Password was not provided by peer
Feb 29 15:22:45 vpnserver1[9568]: 192.168.50.70:1194 TLS Error: TLS handshake failed
Feb 29 15:22:45 vpnserver1[9568]: 192.168.50.70:1194 SIGUSR1[soft,tls-error] received, client-instance restarting
Feb 29 15:23:50 vpnserver1[9568]: 192.168.50.70:1194 TLS: Initial packet from [AF_INET]192.168.50.70:1194 (via [AF_INET]192.168.50.1%br0), sid=a3a0ea85 30ab87ea
Feb 29 15:23:50 vpnserver1[9568]: 192.168.50.70:1194 VERIFY OK: depth=1, CN=RedesZone-CA
Feb 29 15:23:50 vpnserver1[9568]: 192.168.50.70:1194 VERIFY KU OK
Feb 29 15:23:50 vpnserver1[9568]: 192.168.50.70:1194 Validating certificate extended key usage
Feb 29 15:23:50 vpnserver1[9568]: 192.168.50.70:1194 ++ Certificate has EKU (str) TLS Web Client Authentication, expects TLS Web Client Authentication
Feb 29 15:23:50 vpnserver1[9568]: 192.168.50.70:1194 VERIFY EKU OK
Feb 29 15:23:50 vpnserver1[9568]: 192.168.50.70:1194 VERIFY OK: depth=0, CN=cliente1-openvpn-redeszone
Feb 29 15:23:50 vpnserver1[9568]: 192.168.50.70:1194 peer info: IV_VER=2.4.8
Feb 29 15:23:50 vpnserver1[9568]: 192.168.50.70:1194 peer info: IV_PLAT=win
Feb 29 15:23:50 vpnserver1[9568]: 192.168.50.70:1194 peer info: IV_PROTO=2
Feb 29 15:23:50 vpnserver1[9568]: 192.168.50.70:1194 peer info: IV_NCP=2
Feb 29 15:23:50 vpnserver1[9568]: 192.168.50.70:1194 peer info: IV_LZ4=1
Feb 29 15:23:50 vpnserver1[9568]: 192.168.50.70:1194 peer info: IV_LZ4v2=1
Feb 29 15:23:50 vpnserver1[9568]: 192.168.50.70:1194 peer info: IV_LZO=1
Feb 29 15:23:50 vpnserver1[9568]: 192.168.50.70:1194 peer info: IV_COMP_STUB=1
Feb 29 15:23:50 vpnserver1[9568]: 192.168.50.70:1194 peer info: IV_COMP_STUBv2=1
Feb 29 15:23:50 vpnserver1[9568]: 192.168.50.70:1194 peer info: IV_TCPNL=1
Feb 29 15:23:50 vpnserver1[9568]: 192.168.50.70:1194 peer info: IV_GUI_VER=OpenVPN_GUI_11
Feb 29 15:23:50 vpnserver1[9568]: 192.168.50.70:1194 TLS Error: Auth Username/Password was not provided by peer
Feb 29 15:23:50 vpnserver1[9568]: 192.168.50.70:1194 TLS Error: TLS handshake failed
Feb 29 15:23:50 vpnserver1[9568]: 192.168.50.70:1194 SIGUSR1[soft,tls-error] received, client-instance restarting
Feb 29 15:23:57 rc_service: httpd 1314:notify_rc restart_openvpnd;restart_chpass;restart_samba
Feb 29 15:23:57 vpnserver1[9568]: event_wait : Interrupted system call (code=4)
Feb 29 15:23:57 vpnserver1[9568]: /sbin/route del -net 10.8.0.0 netmask 255.255.255.0
Feb 29 15:23:57 vpnserver1[9568]: Closing TUN/TAP interface
Feb 29 15:23:57 vpnserver1[9568]: /sbin/ifconfig tun21 0.0.0.0
Feb 29 15:23:57 vpnserver1[9568]: /etc/openvpn/ovpn-down tun21 1500 1621 10.8.0.1 10.8.0.2 init
Feb 29 15:23:57 vpnserver1[9568]: PLUGIN_CLOSE: /usr/lib/openvpn-plugin-auth-pam.so
Feb 29 15:23:57 vpnserver1[9568]: SIGTERM[hard,] received, process exiting
Feb 29 15:23:59 vpnserver1[9957]: Options error: --auth-user-pass cannot be used with --mode server (it should be used on the client side only)
Feb 29 15:23:59 vpnserver1[9957]: Use --help for more information.
Feb 29 15:23:59 Samba Server: smb daemon is stoped
Feb 29 15:24:37 rc_service: httpd 1314:notify_rc restart_openvpnd;restart_chpass;restart_samba
Feb 29 15:24:39 vpnserver1[10113]: OpenVPN 2.4.7 arm-buildroot-linux-gnueabi [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [MH/PKTINFO] [AEAD] built on Jan 6 2020
Feb 29 15:24:39 vpnserver1[10113]: library versions: OpenSSL 1.0.2s 28 May 2019, LZO 2.03
Feb 29 15:24:39 vpnserver1[10114]: NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
Feb 29 15:24:39 vpnserver1[10114]: PLUGIN_INIT: POST /usr/lib/openvpn-plugin-auth-pam.so '[/usr/lib/openvpn-plugin-auth-pam.so] [openvpn]' intercepted=PLUGIN_AUTH_USER_PASS_VERIFY
Feb 29 15:24:39 vpnserver1[10114]: Diffie-Hellman initialized with 2048 bit key
Feb 29 15:24:39 vpnserver1[10114]: ECDH curve secp521r1 added
Feb 29 15:24:39 vpnserver1[10114]: Outgoing Control Channel Authentication: Using 512 bit message hash 'SHA512' for HMAC authentication
Feb 29 15:24:39 vpnserver1[10114]: Incoming Control Channel Authentication: Using 512 bit message hash 'SHA512' for HMAC authentication
Feb 29 15:24:39 vpnserver1[10114]: TUN/TAP device tun21 opened
Feb 29 15:24:39 vpnserver1[10114]: TUN/TAP TX queue length set to 100
Feb 29 15:24:39 vpnserver1[10114]: /sbin/ifconfig tun21 10.8.0.1 pointopoint 10.8.0.2 mtu 1500
Feb 29 15:24:39 vpnserver1[10114]: /etc/openvpn/ovpn-up tun21 1500 1621 10.8.0.1 10.8.0.2 init
Feb 29 15:24:39 vpnserver1[10114]: /sbin/route add -net 10.8.0.0 netmask 255.255.255.0 gw 10.8.0.2
Feb 29 15:24:39 vpnserver1[10114]: Socket Buffers: R=[524288->524288] S=[524288->524288]
Feb 29 15:24:39 vpnserver1[10114]: UDPv4 link local (bound): [AF_INET][undef]:43333
Feb 29 15:24:39 vpnserver1[10114]: UDPv4 link remote: [AF_UNSPEC]
Feb 29 15:24:39 vpnserver1[10114]: MULTI: multi_init called, r=256 v=256
Feb 29 15:24:39 vpnserver1[10114]: IFCONFIG POOL: base=10.8.0.4 size=62, ipv6=0
Feb 29 15:24:39 vpnserver1[10114]: Initialization Sequence Completed
Feb 29 15:24:39 Samba Server: smb daemon is stoped
Feb 29 15:25:24 vpnserver1[10114]: 192.168.50.70:1194 TLS: Initial packet from [AF_INET]192.168.50.70:1194 (via [AF_INET]192.168.50.1%br0), sid=9fc3d8cf d26b7a26
Feb 29 15:25:24 vpnserver1[10114]: 192.168.50.70:1194 VERIFY OK: depth=1, CN=RedesZone-CA
Feb 29 15:25:24 vpnserver1[10114]: 192.168.50.70:1194 VERIFY KU OK
Feb 29 15:25:24 vpnserver1[10114]: 192.168.50.70:1194 Validating certificate extended key usage
Feb 29 15:25:24 vpnserver1[10114]: 192.168.50.70:1194 ++ Certificate has EKU (str) TLS Web Client Authentication, expects TLS Web Client Authentication
Feb 29 15:25:24 vpnserver1[10114]: 192.168.50.70:1194 VERIFY EKU OK
Feb 29 15:25:24 vpnserver1[10114]: 192.168.50.70:1194 VERIFY OK: depth=0, CN=cliente1-openvpn-redeszone
Feb 29 15:25:24 vpnserver1[10114]: 192.168.50.70:1194 peer info: IV_VER=2.4.8
Feb 29 15:25:24 vpnserver1[10114]: 192.168.50.70:1194 peer info: IV_PLAT=win
Feb 29 15:25:24 vpnserver1[10114]: 192.168.50.70:1194 peer info: IV_PROTO=2
Feb 29 15:25:24 vpnserver1[10114]: 192.168.50.70:1194 peer info: IV_NCP=2
Feb 29 15:25:24 vpnserver1[10114]: 192.168.50.70:1194 peer info: IV_LZ4=1
Feb 29 15:25:24 vpnserver1[10114]: 192.168.50.70:1194 peer info: IV_LZ4v2=1
Feb 29 15:25:24 vpnserver1[10114]: 192.168.50.70:1194 peer info: IV_LZO=1
Feb 29 15:25:24 vpnserver1[10114]: 192.168.50.70:1194 peer info: IV_COMP_STUB=1
Feb 29 15:25:24 vpnserver1[10114]: 192.168.50.70:1194 peer info: IV_COMP_STUBv2=1
Feb 29 15:25:24 vpnserver1[10114]: 192.168.50.70:1194 peer info: IV_TCPNL=1
Feb 29 15:25:24 vpnserver1[10114]: 192.168.50.70:1194 peer info: IV_GUI_VER=OpenVPN_GUI_11
Feb 29 15:25:24 vpnserver1[10114]: 192.168.50.70:1194 PLUGIN_CALL: POST /usr/lib/openvpn-plugin-auth-pam.so/PLUGIN_AUTH_USER_PASS_VERIFY status=0
Feb 29 15:25:24 vpnserver1[10114]: 192.168.50.70:1194 TLS: Username/Password authentication succeeded for username 'admin'
Feb 29 15:25:24 vpnserver1[10114]: 192.168.50.70:1194 Control Channel: TLSv1.2, cipher TLSv1/SSLv3 ECDHE-ECDSA-AES256-GCM-SHA384, 521 bit EC, curve: secp521r1
Feb 29 15:25:24 vpnserver1[10114]: 192.168.50.70:1194 [cliente1-openvpn-redeszone] Peer Connection Initiated with [AF_INET]192.168.50.70:1194 (via [AF_INET]192.168.50.1%br0)
Feb 29 15:25:24 vpnserver1[10114]: cliente1-openvpn-redeszone/192.168.50.70:1194 MULTI_sva: pool returned IPv4=10.8.0.6, IPv6=(Not enabled)
Feb 29 15:25:24 vpnserver1[10114]: cliente1-openvpn-redeszone/192.168.50.70:1194 MULTI: Learn: 10.8.0.6 -> cliente1-openvpn-redeszone/192.168.50.70:1194
Feb 29 15:25:24 vpnserver1[10114]: cliente1-openvpn-redeszone/192.168.50.70:1194 MULTI: primary virtual IP for cliente1-openvpn-redeszone/192.168.50.70:1194: 10.8.0.6
Feb 29 15:25:25 vpnserver1[10114]: cliente1-openvpn-redeszone/192.168.50.70:1194 PUSH: Received control message: 'PUSH_REQUEST'
Feb 29 15:25:25 vpnserver1[10114]: cliente1-openvpn-redeszone/192.168.50.70:1194 SENT CONTROL [cliente1-openvpn-redeszone]: 'PUSH_REPLY,route 192.168.50.0 255.255.255.0 vpn_gateway 500,redirect-gateway def1,route 10.8.0.1,topology net30,ping 15,ping-restart 60,ifconfig 10.8.0.6 10.8.0.5,peer-id 0,cipher AES-256-GCM' (status=1)
Feb 29 15:25:25 vpnserver1[10114]: cliente1-openvpn-redeszone/192.168.50.70:1194 Outgoing Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
Feb 29 15:25:25 vpnserver1[10114]: cliente1-openvpn-redeszone/192.168.50.70:1194 Incoming Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
Y este sería el registro del cliente OpenVPN al conectarse correctamente. Las pruebas han sido realizadas en local, pero en Internet funcionaría exactamente igual.
Sat Feb 29 15:25:20 2020 NOTE: --user option is not implemented on Windows
Sat Feb 29 15:25:20 2020 NOTE: --group option is not implemented on Windows
Sat Feb 29 15:25:20 2020 WARNING: Ignoring option 'dh' in tls-client mode, please only include this in your server configuration
Sat Feb 29 15:25:20 2020 OpenVPN 2.4.8 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [LZ4] [PKCS11] [AEAD] built on Oct 31 2019
Sat Feb 29 15:25:20 2020 Windows version 6.2 (Windows 8 or greater) 64bit
Sat Feb 29 15:25:20 2020 library versions: OpenSSL 1.1.0l 10 Sep 2019, LZO 2.10
Sat Feb 29 15:25:20 2020 MANAGEMENT: TCP Socket listening on [AF_INET]127.0.0.1:25341
Sat Feb 29 15:25:20 2020 Need hold release from management interface, waiting...
Sat Feb 29 15:25:20 2020 MANAGEMENT: Client connected from [AF_INET]127.0.0.1:25341
Sat Feb 29 15:25:20 2020 MANAGEMENT: CMD 'state on'
Sat Feb 29 15:25:20 2020 MANAGEMENT: CMD 'log all on'
Sat Feb 29 15:25:20 2020 MANAGEMENT: CMD 'echo all on'
Sat Feb 29 15:25:20 2020 MANAGEMENT: CMD 'bytecount 5'
Sat Feb 29 15:25:20 2020 MANAGEMENT: CMD 'hold off'
Sat Feb 29 15:25:20 2020 MANAGEMENT: CMD 'hold release'
Sat Feb 29 15:25:23 2020 MANAGEMENT: CMD 'username "Auth" "admin"'
Sat Feb 29 15:25:23 2020 MANAGEMENT: CMD 'password [...]'
Sat Feb 29 15:25:23 2020 Outgoing Control Channel Authentication: Using 512 bit message hash 'SHA512' for HMAC authentication
Sat Feb 29 15:25:23 2020 Incoming Control Channel Authentication: Using 512 bit message hash 'SHA512' for HMAC authentication
Sat Feb 29 15:25:23 2020 TCP/UDP: Preserving recently used remote address: [AF_INET]192.168.50.1:43333
Sat Feb 29 15:25:23 2020 Socket Buffers: R=[65536->65536] S=[65536->65536]
Sat Feb 29 15:25:23 2020 UDP link local (bound): [AF_INET][undef]:1194
Sat Feb 29 15:25:23 2020 UDP link remote: [AF_INET]192.168.50.1:43333
Sat Feb 29 15:25:23 2020 MANAGEMENT: >STATE:1582986323,WAIT,,,,,,
Sat Feb 29 15:25:23 2020 MANAGEMENT: >STATE:1582986323,AUTH,,,,,,
Sat Feb 29 15:25:23 2020 TLS: Initial packet from [AF_INET]192.168.50.1:43333, sid=8dba96ce e958b8e6
Sat Feb 29 15:25:23 2020 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Sat Feb 29 15:25:23 2020 VERIFY OK: depth=1, CN=RedesZone-CA
Sat Feb 29 15:25:23 2020 VERIFY KU OK
Sat Feb 29 15:25:23 2020 Validating certificate extended key usage
Sat Feb 29 15:25:23 2020 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
Sat Feb 29 15:25:23 2020 VERIFY EKU OK
Sat Feb 29 15:25:23 2020 VERIFY OK: depth=0, CN=servidor-openvpn-redeszone
Sat Feb 29 15:25:23 2020 Control Channel: TLSv1.2, cipher TLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384, 521 bit EC, curve: secp521r1
Sat Feb 29 15:25:23 2020 [servidor-openvpn-redeszone] Peer Connection Initiated with [AF_INET]192.168.50.1:43333
Sat Feb 29 15:25:24 2020 MANAGEMENT: >STATE:1582986324,GET_CONFIG,,,,,,
Sat Feb 29 15:25:24 2020 SENT CONTROL [servidor-openvpn-redeszone]: 'PUSH_REQUEST' (status=1)
Sat Feb 29 15:25:24 2020 PUSH: Received control message: 'PUSH_REPLY,route 192.168.50.0 255.255.255.0 vpn_gateway 500,redirect-gateway def1,route 10.8.0.1,topology net30,ping 15,ping-restart 60,ifconfig 10.8.0.6 10.8.0.5,peer-id 0,cipher AES-256-GCM'
Sat Feb 29 15:25:24 2020 OPTIONS IMPORT: timers and/or timeouts modified
Sat Feb 29 15:25:24 2020 OPTIONS IMPORT: --ifconfig/up options modified
Sat Feb 29 15:25:24 2020 OPTIONS IMPORT: route options modified
Sat Feb 29 15:25:24 2020 OPTIONS IMPORT: peer-id set
Sat Feb 29 15:25:24 2020 OPTIONS IMPORT: adjusting link_mtu to 1624
Sat Feb 29 15:25:24 2020 OPTIONS IMPORT: data channel crypto options modified
Sat Feb 29 15:25:24 2020 Outgoing Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
Sat Feb 29 15:25:24 2020 Incoming Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
Sat Feb 29 15:25:24 2020 interactive service msg_channel=600
Sat Feb 29 15:25:24 2020 ROUTE_GATEWAY 192.168.50.1/255.255.255.0 I=3 HWADDR=88:d7:f6:a3:d5:9e
Sat Feb 29 15:25:24 2020 open_tun
Sat Feb 29 15:25:24 2020 TAP-WIN32 device [Conexión de área local] opened: .Global{80FA76A2-8B4F-42DF-B5EA-9667E382E05D}.tap
Sat Feb 29 15:25:24 2020 TAP-Windows Driver Version 9.24
Sat Feb 29 15:25:24 2020 Notified TAP-Windows driver to set a DHCP IP/netmask of 10.8.0.6/255.255.255.252 on interface {80FA76A2-8B4F-42DF-B5EA-9667E382E05D} [DHCP-serv: 10.8.0.5, lease-time: 31536000]
Sat Feb 29 15:25:24 2020 Successful ARP Flush on interface [14] {80FA76A2-8B4F-42DF-B5EA-9667E382E05D}
Sat Feb 29 15:25:24 2020 MANAGEMENT: >STATE:1582986324,ASSIGN_IP,,10.8.0.6,,,,
Sat Feb 29 15:25:29 2020 TEST ROUTES: 3/3 succeeded len=2 ret=1 a=0 u/d=up
Sat Feb 29 15:25:29 2020 C:Windowssystem32route.exe ADD 192.168.50.1 MASK 255.255.255.255 192.168.50.1 IF 3
Sat Feb 29 15:25:29 2020 Route addition via service succeeded
Sat Feb 29 15:25:29 2020 C:Windowssystem32route.exe ADD 0.0.0.0 MASK 128.0.0.0 10.8.0.5
Sat Feb 29 15:25:29 2020 Route addition via service succeeded
Sat Feb 29 15:25:29 2020 C:Windowssystem32route.exe ADD 128.0.0.0 MASK 128.0.0.0 10.8.0.5
Sat Feb 29 15:25:29 2020 Route addition via service succeeded
Sat Feb 29 15:25:29 2020 MANAGEMENT: >STATE:1582986329,ADD_ROUTES,,,,,,
Sat Feb 29 15:25:29 2020 C:Windowssystem32route.exe ADD 192.168.50.0 MASK 255.255.255.0 10.8.0.5 METRIC 500
Sat Feb 29 15:25:29 2020 Route addition via service succeeded
Sat Feb 29 15:25:29 2020 C:Windowssystem32route.exe ADD 10.8.0.1 MASK 255.255.255.255 10.8.0.5
Sat Feb 29 15:25:29 2020 Route addition via service succeeded
Sat Feb 29 15:25:29 2020 Initialization Sequence Completed
Sat Feb 29 15:25:29 2020 MANAGEMENT: >STATE:1582986329,CONNECTED,SUCCESS,10.8.0.6,192.168.50.1,43333,,
Un aspecto muy importante, es que las últimas versiones del firmware de los routers y WiFI Mesh de ASUS, disponen de OpenVPN 2.5.0 o superior, ideal para tener las últimas tecnologías en VPN, mejoras en la seguridad, en el rendimiento y también nuevas funcionalidades muy interesantes para exprimir al máximo esta posibilidad que disponen los routers del fabricante ASUS.
Esperamos que este completo tutorial de cómo configurar el servidor OpenVPN en routers y sistemas Wi-Fi Mesh de ASUS os sirva de ayuda para conectaros con seguridad a cualquier red Wi-Fi pública, y también para acceder a los recursos compartidos que tengáis en vuestro hogar, como servidores NAS, e incluso al propio USB de los routers. Sin lugar a dudas, una de las razones por las que los routers de ASUS son nuestros favoritos son porque disponen de un servidor OpenVPN realmente completo con decenas de opciones de configuración.
¿Qué otros protocolos de servidor VPN tenemos en ASUS?
El fabricante ASUS en su sistema operativo Asuswrt dispone de varios servidores VPN con los que podremos conectarnos de forma remota a la red local doméstica. El primero de ellos es PPTP, un protocolo muy fácil de configurar pero que no es nada seguro de utilizar, porque utiliza un cifrado débil que actualmente se puede romper de forma rápida, por tanto, nunca vamos a recomendable hacer uso del protocolo de VPN PPTP en los routers de ASUS, porque disponemos de protocolos que sí son seguros, por tanto, no tiene ningún sentido utilizar PPTP si podemos utilizar uno que sí es seguro.
Otro protocolo incorporado en Asuswrt es IPsec, el protocolo por excelencia de las redes VPN, sin embargo, lamentablemente no vamos a disponer de muchas opciones de configuración avanzadas como sí tenemos en OpenVPN. El protocolo IPsec, aunque es un estándar y todos los dispositivos lo soportan, hay muchos problemas habitualmente con los cifrados negociados entre el servidor y los clientes, lo que ocasiona que no podamos conectarnos correctamente al servidor, o que tengamos que «bajar» la seguridad del túnel VPN. En el caso de ASUS, no tenemos ninguna opción de configuración relevante para modificar la seguridad, por tanto, si tu cliente VPN soporta la suite de cifrados que hay, entonces podrás conectarte correctamente, de lo contrario, la conexión dará error.
Por último, el fabricante ASUS ha incorporado recientemente una nueva VPN llamada «Instant Guard VPN», esta VPN está basada en IPsec y no dispone de ninguna opción de configuración, simplemente podremos habilitar o deshabilitarla. Internamente esta VPN es segura al utilizar el protocolo IPsec. El motivo de incorporar Instant Guard VPN en los routers de ASUS es facilitar enormemente a los usuarios la conexión con la VPN de la red local sin necesidad de hacer complicadas configuraciones, de esta forma, a través de la aplicación ASUS Router app disponible para sistemas operativos Android y iOS, tendremos la posibilidad de conectarnos al servidor VPN de forma fácil y rápida, sin necesidad de crear complicados perfiles VPN en nuestro smartphone. De esta forma, ASUS ha querido democratizar el uso de las VPN en un entorno doméstico, facilitando enormemente la configuración y conexión, ya que basta con activarlo en el router y pinchar en «Connect» directamente en nuestro smartphone.
A día de hoy, nuestro protocolo favorito para entornos domésticos es OpenVPN y también WireGuard que es mucho más rápido, sin embargo, WireGuard aún no lo tenemos disponible en el firmware Asuswrt, pero os podemos adelantar que sí está previsto que en una futura versión lo incorporen.