El Covid-19 ha obligado a muchos trabajadores a teletrabajar desde sus hogares. Las grandes empresas disponen de sofisticados firewalls y servidores de acceso que permiten el acceso remoto seguro y encriptado para sus trabajadores. En este artículo explicamos cómo configurar un RUTX10 a modo de servidor VPN para que tus trabajadores puedan acceder de forma segura a tu oficina.
Requisitos
Para poder disponer de un servidor VPN en nuestra oficina necesitamos que el router de banda ancha que nos da la conexión a Internet disponga de una IP pública y accesible. Puede ser fija o dinámica en cuyo caso necesitaremos configurar el cliente DDNS en el router RUTX10 o bien en el router de banda ancha para actualizar la IP pública con un nombre de dominio. Para saber cómo configurar el servicio DDNS en los routers Teltonika puedes ver este artículo.
Algunos operadores como Movistar (también O2) ofrecen este servicio de forma gratuita. Otros lo ofrecen pagando un importe mensual adicional.
Topología de la conexión VPN
En este artículo pretendemos configurar una VPN con protocolo OpenVPN en modo bridged o TAP, es decir, que tanto los clientes remotos como el servidor VPN como todos los ordenadores y dispositivos de red que estén conectados detrás de él pertenezcan a una misma LAN o rango de direccionamiento. En una palabra, queremos que el usuario remoto esté conectado directamente a la LAN de su oficina.
Cambios en el router de banda ancha
Para ello tendremos que hacer unos pequeños cambios en el router de banda ancha de nuestra oficina. Por ejemplo, si el router está en la dirección 192.168.1.1 y tiene habilitado un rango de direcciones DHCP, tenemos que traspasar este rango a la LAN del RUTX10. Para ello cambiaremos, por ejemplo, la dirección LAN del router de banda ancha a la 192.168.0.1 y luego abriremos el puerto UDP 1194 a la dirección que luego asignaremos a la WAN del RUTX10, por ejemplo, la 192.168.0.2.
El RUTX10 lo configuraremos con la LAN en la 192.168.1.1 (ya es el valor por defecto) y podemos mantener el rango de DHCP que teníamos en el router de banda ancha para no tener que hacer ningún cambio de direccionamiento en los dispositivos de red de la oficina. Si tenemos dispositivos WiFi también podemos deshabilitar el WiFi de nuestro router de banda ancha y configurar el mismo SSID, método de encriptación y password en el RUTX10 para evitar tener que volver a configurar estos dispositivos.
También tendremos que configurar el puerto WAN del RUTX10 con IP estática en la 192.168.0.2 y como servidor DNS podemos dejar el 192.168.0.1 si el router de banda ancha hace DNS relay o bien fijarlo manualmente, por ejemplo, al DNS de Google en 8.8.8.8.
Generación de certificados y claves
En OpenVNP si queremos poder conectar más de un cliente simultáneamente al servidor VPN no podemos usar una clave estática y tenemos que usar certificados como método de autenticación. En este link de la wiki de Teltonika se explica cómo generar estos certificados a partir de la instalación del paquete EasyRSA de OpenVPN en un ordenador bajo Windows. Una vez creados los certificados, tendremos que cargar el del servidor en el RUTX10 y el de los clientes en cada uno de los clientes que se vayan a conectar a la VPN.
IMPORTANTE: si repetimos desde el inicio el proceso de generación de certificados, por ejemplo para generar un nuevo cliente VPN, estos certificados se generarán con una clave diferente a la original y no serán compatibles con los anteriores. Hemos de realizar únicamente el último paso (./easyrsa build-client-full Client1 nopass). De cara a evitar posibles problemas recomendamos cuando generemos por primera ver las claves y certificados del servidor, crear certificados de cliente de sobras para poder utilizarlos en el futuro.
Configuración del servidor OpenVPN en el RUTX10
Una vez generados todos los certificados y claves podemos configurar el servidor VPN en el RUTX10 (recordemos haber abierto antes los puertos en el router de banda ancha)
Para ello iremos al menú Services – VPN y crearemos un perfil con el rol de Server. Le podemos dar el nombre que queramos. A continuación pinchamos en Edit y empezamos a configurarlo
![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/103034430827/original/YHzLQVTu-kKv5ZSHUkvYxGUNlnLKnZo6Dw.png?1688657331)
![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/103034430820/original/Q0p5cWHXX6KDZPUD_Mq0uP9lumluFwtmXA.png?1688657331)
- TUN/TAP: escogeremos TAP para hacer una red de nivel 2 y simplificar el acceso entre clientes remotos y dispositivos de red en la oficina
- Protocol: seleccionaremos UDP aunque también podemos escoger TCP.
- Port: por defecto selecciona el 1194 que es el puerto estándar. Si queremos para evitar posibles ataques a este puerto podemos escoger otro cualquier libre (recordemos que tenemos que abrir este puerto en UDP o TCP según el parámetro anterior en nuestro router de banda ancha)
- LZO: es un tipo de compresión. Podemos activarlo o no teniendo en cuenta que lo tenemos que configurar igual en los clientes
- Authentication: seleccionaremos TLS para autenticar a los usuarios a través de los certificados clientes generados anteriormente
- Encryption: recomendamos AES-256-CBC 256 aunque podemos usar cualquier otro. Como en el caso anterior tendrá que coincidir con el configurado en los clientes
- TLS cipher: dejar el All para admitir todos los cifrados
- Client to client: si lo marcamos en ON permite la conectividad entre clientes de la VPN a través del servidor. Si no es necesario por motivos de seguridad se recomienda dejarlo en OFF
- Keep alive: timeout entre paquetes keep alive para mantener viva la conexión VPN. Dejar a los valores por defecto 10 120
- Push option: dejar en blanco para una conexión TAP
- Allow duplicate certificates: si se pone en ON permite usar los mismos certificados en múltiples clientes. En este caso los clientes de han de diferenciar a través de un parámetro adicional como un password. En nuestro ejemplo lo dejaremos en OFF y cada cliente se conectará a través de unos certificados diferentes.
- Authentication algorithm: dejamos en SAH1
- Additional HMAC authentication: permite crear una clave adicional para encriptación. En nuestro ejemplo no la usaremos para simplificar la configuración.
- Certificates files from device: lo dejamos en OFF porque no usaremos unos certificados previamente almacenados en el router sino que los cargaremos nosotros directamente de los generados en nuestro ordenador con Windows
- Certificate authority: cargaremos el fichero ca.crt (./easyrsa build-ca nopass)
- Server certificate: cargaremos el fichero server.cert (./easyrsa build-server-full server nopass)
- Server key: cargaremos el fichero server.key (./easyrsa build-server-full server nopass)
- Diffie Hellman parameters: cargaremos el fichero dh.pem (./easyrsa gen-dh)
A continuación pinchamos sobre SAVE & APPLY y en la página siguiente también pinchamos en el botón SAVE & APPLY para actualizar todos los cambios realizados.
El servicio nos debe aparecer como activado
![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/103034430826/original/rZvFQqTgZ2uHVbIqhgblRALzB05UY9lCWw.png?1688657331)
Configuración de los clientes VPN
En los ordenadores de los teletrabajadores que queramos conectar a la VPN tendremos que instalar OpenVPN. Lo podemos hacer aquí. OJO, no instalar el cliente VPN simplificado OpenVPN Connect ya que sólo soporta el modo TUN (no TAP)
Una vez instalado OpenVPN nos creará una interfaz de red virtual TAP que será la que active y use nuestro ordenador para la conexión a la VPN.
Si usamos la configuración por defecto, el programa se instalará en la carpeta C:/Program Files/OpenVPN. Iremos al subdirectorio config y aquí colocaremos los ficheros ca.crt, Client1.crt y Client1.key (asumiendo que son los ficheros que creamos anteriormente con las instrucciones ./easyrsa build-ca nopass y ./easyrsa build-client-full Client1 nopass respectivamente)
Finamente tendremos que crear un fichero de configuración (lo llamaremos Client1.ovpn) con el siguiente contenido
client
dev tap
proto udp
remote <IP o nombre del dominio del servidor> 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
cipher AES-256-CBC
;comp-lzo (está comentado con ; porque no lo activamos en el servidor en el RUTX10)
verb 3
A continuación arrancaremos la aplicación OpenVPN GUI y en el icono en la parte inferior derecha usamos botón derecho del ratón sobre el icono del ordenador con el candado y seleccionamos el perfil Client1 y a continuación Conectar.
![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/103034430824/original/A9cerShp2aeSmxu9kSBm0gnNZteVSJMHvA.png?1688657331)
Se nos abrirá una ventana donde podremos ver el log de la conexión. Si todo funciona correctamente al final veremos un log similar al siguiente donde la última línea debe indicar CONNECTED.SUCCESS
![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/103034430828/original/cc0x697-JnJZLi0hddM4KoMFvyKtqmVt9g.png?1688657331)
También podemos comprobar a través del comando ipconfig en una ventana CMD que tenemos activada una conexión de red para la VPN (Ethernet 2 en nuestro ejemplo) con una dirección correspondiente a la LAN del RUTX10 (en nuestro ejemplo está en el rango 192.168.0.0 porque hemos configurado la WAN del RUTX10 en el rango 192.168.1.0)
Adaptador de Ethernet Ethernet 2:
Sufijo DNS específico para la conexión. . : lan
Vínculo: dirección IPv6 local. . . : fe80::6c8e:2327:edc2:1f3c%13
Dirección IPv4. . . . . . . . . . . . . . : 192.168.0.207
Máscara de subred . . . . . . . . . . . . : 255.255.255.0
Puerta de enlace predeterminada . . . . . : 192.168.0.1
Si la conexión no se establece podemos ver los logs de conexión tanto del servidor como del cliente. El del servidor lo podemos ver en el menú System – Administration – Troubleshoot del router RUTX10 y luego pinchando sobre el botón System log SHOW.
En el PC cliente lo podemos ver en el menú Ver Log que veremos con el botón derecho sobre el nombre Client1 del icono del ordenador con el candado.
Cambiar la métrica de las interfaces de red en el cliente VPN
Al arrancar el cliente VPN en modo TAP, se crea automáticamente en nuestro ordenador una ruta estática por defecto que apunta al servidor VPN. Esto lo podemos comprobar abriendo una ventana CMD y escribiendo el comando route print.
![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/103034430823/original/3WcxPiLZUNMZefxGZIOg9MrchlrzaFER1w.png?1688657331)
En nuestro ejemplo, vemos dos rutas estáticas. La 192.168.1.1 es la que apunta a nuestro gateway por defecto que es el router de banda ancha donde está conectado el cliente y la 192.168.0.1 es la creada por el cliente VPN y apunta a la 192.168.0.1 que es la dirección IP del servidor VPN. Cada ruta tiene un valor de métrica y Windows asigna mayor prioridad a la ruta con un número inferior. En nuestro caso, queremos que sólo el tráfico a nuestra oficina, es decir, a la red 192.168.0.0 salga a través de la VPN mientras que el tráfico con destino a cualquier otra red (incluido Internet) deberá salir a través de nuestro router de banda ancha, es decir, a través de la 192.168.1.1. Para conseguirlo tenemos que asignar una métrica de valor elevado a la interfaz VPN. Para ello iremos a la ventana de conexiones de red de nuestro ordenador en Windows y seleccionaremos el interfaz TAP-Windows. A continuación haremos botón derecho, Propiedades y seleccionaremos la opción Protocolo de Internet versión 4 (TCP/IPv4) y pincharemos en Propiedades
![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/103034430825/original/a70hOBcmBHZVUJsDAmUfSxgp1_tTUsTZEA.png?1688657331)
En la pantalla que nos aparece a continuación pincharemos en Opciones Avanzadas y nos aparecerá otra pantalla donde desmarcaremos la opción Métrica automática y escribiremos un valor alto (por ejemplo, 1000) en la métrica de la interfaz. Finalmente iremos pinchando en Aceptar para guardar todos los cambios.
![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/103034430822/original/sltM-Ahvx2LDQwF5vDtvlbJu4LvsxDbCow.png?1688657331)
Con este cambio nos aseguraremos que el gateway por defecto de nuestro ordenador es nuestra conexión a Internet y sólo el tráfico hacia nuestra oficina se encaminará a través de la VPN.
Revocación de certificados cliente
En un momento determinado puede interesarnos no permitir el acceso a uno de nuestros clientes VPN por diversas razones: pérdida del ordenador, el trabajador deja de trabajar para la empresa, o ha habido un compromiso en las claves y certificados de este ordenador.
En estos casos la única opción disponible es revocar los certificados de dicho cliente. Este mecanismo debe realizarse en el mismo ordenador en que se crearon con la misma herramienta Easy-RSA. A continuación debe generarse un fichero con los certificados revocados y por último subir este fichero al servidor VPN, en nuestro caso al router RUTX10. De esta forma, cada vez que un cliente se conecta el servidor busca su certificado en la lista de los revocados y si está presente no le permite el acceso. Veamos a continuación cómo hacerlo.
En primer lugar abriremos una ventana CMD en modo Administrador en el ordenador donde creamos los certificados e iremos al directorio de instalación de la herramienta easy-rsa que suele ser c:/Program Files/openvpn/easy-rsa. A continuación ejecutaremos el archivos por lotes easyrsa-start y luego el comando ./easyrsa revoke Client1 (suponiendo que queremos revocar Client1). El comandos nos pedirá confirmación escribiendo la palabra ‘yes’.
En segundo lugar tendremos que crear el fichero con todos los certificados revocados. Para ello ejecutaremos el comando ./easyrsa gen-crl y generaremos el fichero crl.pem en la ubicación C:/Program Files/OpenVPN/easy-rsa/pki/crl.pem
Finalmente cargaremos dicho fichero en el servidor OpenVPN. Para ello iremos a la instancia creada y pincharemos en el lápiz para editar la conexión. Iremos a la última opción que nos permite la carga del fichero CRL. Cargaremos el fichero creado anteriormente y a continuación salvaremos los cambios.
A partir de este momento el client1 ya no podrá conectarse al servidor. Si estuviera ya conectado en el momento de cargar el fichero de revocaciones es posible que fuera necesario reiniciar el servidor VPN.
¿Le ha sido útil este artículo?
¡Qué bien!
Gracias por sus comentarios
¡Sentimos mucho no haber sido de ayuda!
Gracias por sus comentarios
Sus comentarios se han enviado
Agradecemos su esfuerzo e intentaremos corregir el artículo