Redes domésticas o profesionalesTutoriales

Guía: Configuración de OpenVPN en routers Asus

El servidor OpenVPN en estos routers es una funcionalidad que empezó en el excelente mod de firmware de RMerlin (basado a su vez en la implementación de OpenVPN realizada en el relativamente popular firmware de routers Tomato), por suerte desde la versión 374.2050 del firmware oficial esta opción se incluye por defecto, y es sumamente sencilla de configurar.

Eso no quiere decir que no podamos configurar todos los detalles como antaño, pero se automatizan varias tediosas tareas, como la generación de las claves pública y privada que antes había que realizar manualmente, permitiendo una autenticación por certificados sin necesidad de demasiado tiempo ni conocimientos para el usuario.

¿Por qué utilizar OpenVPN en lugar del servidor PPTP usual?

La respuesta es simple, es un método bastante más seguro (ver [3]) que el servidor PPTP que se utiliza habitualmente en entornos domésticos y routers por su sencillez, es relativamente estándar, no es significativamente más costoso en recursos, es mucho más flexible, y aunque algo tedioso de configurar es muy cómodo una vez familiarizados con el entorno.

De hecho, es sencillo configurar un servidor PPTP en un equipo Windows, sin instalar ningún software adicional, siguiendo guías como la existente en [5]. Pero mucho mejor configurarlo en el router, que además de ahorrarnos el requisito de redirigir puertos y crear reglas de firewall, está siempre encendido para aceptar conexiones. Y si puede ser más seguro que PPTP, es decir, el método que nosotros explicaremos con OpenVPN, mucho mejor.

Nota: También se puede configurar un servidor OpenVPN en un PC usual, en caso de no disponer de un router con este firmware o compatible con DD-WRT/OpenWRT. Para los usuarios interesados en este punto recomendamos seguir el artículo correspondiente en la wiki de Debian, que detalla perfectamente los pasos a seguir en [6]

Manual de configuración paso a paso

Esta no pretende ser una guía exhaustiva de configuración, sino una primera toma de contacto para tener corriendo un servidor básico que posteriormente podrá ser configurado a medida de cada usuario.

Los pasos a seguir son los siguientes:

  1. Nos conectamos al router desde cualquier navegador, introduciendo la IP en la barra de direcciones (por defecto 192.168.1.1, aunque en esta guía será 10.20.30.1), identificándonos con nuestro usuario y contraseña (por defecto admin/admin en routers Asus, pero si estamos siguiendo esta guía ya deberían llevar tiempo cambiados)
  2. Nos vamos al menú VPN dentro de opciones avanzadas, y en la pestaña OpenVPN seleccionamos la primera instancia (Server 1), movemos el interruptor a la posición ON. No es necesario, pero sí recomendable añadir usuarios para nuestra VPN, en este caso hemos elegido pruebas/pruebas como usuario/password, recomendamos por supuesto utilizar una contraseña más robusta para utilizarlo en un entorno real. Pinchamos en el botón “+” para añadir el usuario y ya podemos aplicar los cambios con el botón Aplicar situado en la parte inferior de la página.
    2015-02-13_01-42-31
  3. OPCIONAL Al activar el servidor vemos que ha aparecido un desplegable en el que podemos seleccionar Configuración avanzada y cambiar los parámetros que necesitemos. En nuestro caso, utilizaremos la configuración por defecto. Si queremos obligar al uso de usuario y contraseña, este es el lugar para hacerlo
    ASUS_Wireless_Router_RT-AC68U_-_Servidor_VPN_-_Goo_2015-02-13_01-23-53
    Para los usuarios que quieran una configuración totalmente manual, es posible generar nuestros propios certificados/claves para los usuarios que queramos utilizando easy-rsa, tal como se describe en [7]. En este caso lo más sencillo es generar las claves desde el PC y configurar los tres valores necesarios pinchando en el siguiente enlace (teclas es una mala traducción de “keys”, claves, en el firmware):
    2015-02-13_01-35-05Este tipo de configuración es bastante avanzada, por lo que es recomendable que los usuarios que quieran aventurarse a ello configuren y prueben antes un servidor con las claves autogeneradas. No es una buena práctica para un neófito configurar el servidor de esta forma sin experiencia previa.
  1. Ya tenemos el servidor funcionando. Ahora nos falta transferir los certificados a los clientes para una conexión segura. En [7] se puede ver ejemplos detallados de los archivos server.conf y client.conf (respectivamente, client.ovpn y server.ovpn en Windows) con comentarios y documentación, pero en nuestro caso es mucho más sencillo utilizar el botón de Exportar
     
    El archivo que obtendremos tendrá una pinta similar a este (claves eliminadas por seguridad):
    CUsersIgnacioDesktopclient1.ovpn_-_Notepad++_2015-02-13_00-28-36
    El parámetro que he marcado es la dirección de nuestro servidor, que probablemente no se haya configurado correctamente en algunos casos en donde el DDNS no “sabe” la dirección a la que apunta (como es mi caso, que utilizo Dnsomatic para tener una dirección que apunte siempre a mi IP dinámica).
    Aunque la configuración correcta es así, con una dirección fija, no hay problema si no se tiene configurado un DDNS, para hacer pruebas se puede rellenar ese campo con la IP WAN de nuestro router (la IP externa, es decir, la que se puede ver en http://cualesmiip.com o http://echoip.com ), con la pega de que cada vez que nuestra IP cambie deberemos editar el documento para reflejarlo. Como la conexión es al router, evidentemente no tenemos que redirigir puertos.
  2. Solo nos queda configurar el cliente. Nos descargamos la última versión desde su página web https://openvpn.net/index.php/download/community-downloads.html , en nuestro caso será la de Windows y de 64bits. La instalación es sencilla y no la detallaremos. Para un uso general no es necesario cambiar ninguna de las opciones por defecto.
    OpenVPN_2.3.6-I601_Setup__2015-02-13_13-56-26
  3. Ahora, dependiendo de la versión instalada, debemos copiar el archivo que hemos exportado anteriormente (lo hemos llamado client1.ovpn) al directorio de configuración del cliente. En Windows, este directorio será Archivos de programa/OpenVPN/config/ (Archivos de programa (x86)/OpenVPN/config/ en el caso de la versión de 32 bits). Ya solo queda ejecutar el cliente como administrador, nos pedirá usuario y contraseña además de los certificados que ya van en el archivo de configuración si lo hemos configurado para que lo haga. En caso contrario entramos directamente. Si todo ha ido bien, veremos un registro similar a este en el log (captura tomada en un escenario sin validación por contraseña). El icono de la pantalla verde de la barra de tareas nos confirma que estamos conectados, y nos informará de la IP virtual asignada al equipo desde el que lanzamos el cliente en la VPN.
    r33yltH

Desde este momento el equipo se comportará como si estuviera conectado físicamente a la red local gestionada por el router en el cual hemos configurado el servidor OpenVPN.
Podemos monitorizar desde nuestro router todas las conexiones de este tipo. Por ejemplo, configurándolo como hemos descrito y conectándonos desde el portátil, veremos algo como esto en la sección VPN->VPN Status

2015-02-13_02-51-06vpn_win7_vpn_connected

Nota: En ocasiones es problemático conectarse a una VPN desde dentro de nuestra propia red (lógicamente, ya que es un uso bastante artificial intentar conectar una red local con ella misma a través de una VPN), si alguien tiene problemas para que le funcione la conexión tras haber seguido todos los pasos sería muy recomendable probar con la conexión de datos de un teléfono móvil (vía tethering, por ejemplo), con un pincho USB 3G/4G, o directamente desde otra localización.

Esperamos que esta guía os resulte útil para aumentar la seguridad de vuestras conexiones a la red de casa desde el exterior. Animaros a dejar cualquier duda u observación en los comentarios.

Igb

Matemático y futuro Ingeniero informático. Apasionado del hardware y de casi cualquier aparato que haga ruido, tenga pantalla o se mueva. Aficionado a los videojuegos, aeromodelista retirado, y fanboy del usuario.
Los datos de carácter personal que nos facilite mediante este formulario quedarán registrados en un fichero de Miguel Ángel Navas Carrera, con la finalidad de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento del interesado. Si no se acepta no podrás comentar en este blog. Puedes consultar Política de privacidad. Puede ejercitar los derechos de acceso, rectificación, cancelación y oposición en [email protected]
Botón volver arriba