Cómo montar una red privada virtual VPN de forma gratuita utilizando OpenVPN y OpenVPN Access Server. Explicamos paso a paso cómo instalar el servidor de OpenVPN, cómo configurarlo y cómo conectar un cliente desde fuera de nuestra red interna a través de Internet.
- Qué es OpenVPN.
- Escenario inicial para montar una red VPN con OpenVPN.
- Prerequisitos para montar una red privada virtual VPN con OpenVPN.
- Instalación y configuración de OpenVPN Access Server en un servidor con Linux CentOS.
- Configurar el acceso VPN desde un equipo cliente desde fuera de la red, desde Internet.
Qué es OpenVPN
OpenVPN es una aplicación de código abierto que implementa una red privada virtual VPN. Puede ser utilizado para crear una conexión segura entre redes de área local distribuidas físicamente.
OpenVPN Access Server es una solución software completa de túnel de red seguro mediante VPN, con una interfaz de configuración sencilla mediante web. Posee clientes para Windows, Mac, Linux, Android e iOS.
OpenVPN Access Server es compatible con una amplia gama de configuraciones, incluyendo acceso remoto seguro y acceso a redes internas con control de acceso de grano fino.
OpenVPN cuenta con una versión completamente gratuita con la limitación de usuarios concurrentes, utilizando el modo gráfico para la configuración. Si usamos la configuración manual directamente editando los ficheros no tendremos tal límite de usuarios concurrentes. Una solución es instalar la versión de pago de prueba, realizar la configuración oportuna, guardar los ficheros, desinstalar e instalar la versión gratuita y reemplazar los ficheros de configuración. En este tutorial instalaremos la versión gratuita de OpenVPN Access Server.
Escenario inicial para montar una red VPN con OpenVPN
Dispondremos de una red local LAN con el direccionamiento 192.168.159.0/24, en la que habrá una serie de servidores y equipos informáticos. Se pretende conseguir que un equipo cliente externo, que está fuera de la red interna LAN y tiene conexión a Internet, se pueda comunicar con cualquier equipo de la red interna utilizando las IP’s privadas, como si el equipo cliente externo estuviera físicamente conectado a la red interna.
Una posible solución gratuita a esta necesidad es usar OpenVPN. Explicaremos en este tutorial cómo montar un servidor OpenVPN dentro de la red interna LAN. El equipo cliente externo utilizará una aplicación que se conectará con el servidor OpenVPN para crear un túnel VPN. A partir de ese momento el cliente externo podrá comunicarse con cualquier equipo de la red interna.
Prerequisitos para montar una red privada virtual VPN con OpenVPN
Servidor físico o virtual con sistema operativo Linux CentOS
El servidor que tendrá el rol de servidor OpenVPN Access Server debe tener los siguientes requisitos:
- Sistema operativo Linux CentOS 6 Minimal.
- SELinux desactivado.
- Servicios iptables e ip6tables deshabilitados.
- El servidor con Linux necesitará conexión a Internet.
El servidor con Linux CentOS 6 Minimal podremos montarlo en un entorno virtualizado, a continuación mostramos algunos tutoriales para montar un entorno de virtualización gratuito:
- Virtualización profesional gratuita con Citrix XenServer Free Edition.
- Instalar VMware ESXi 5 en VMware Workstation, instalar vSphere Client.
- Virtualización con Sun xVM VirtualBox del sistema operativo OpenSolaris 11.
Para montar un servidor con sistema operativo Linux mostramos a continuación algunos tutoriales:
- Montar servidor web Apache y servidor MySQL con Linux CentOS 7 Minimal.
- Cómo instalar Linux Red Hat Enterprise Server 5.
- Cómo instalar Linux Red Hat Enterprise 4 Update 2.
- Instalar Oracle Enterprise Linux virtualizado con VMware Server en Windows 7.
OpenVPN Access Server puede instalarse en otras distribuciones Linux como: RedHat, Fedora, Ubuntu, Debian, OpenSUSE, incluso en sistemas operativos Microsoft Windows. En nuestro caso hemos elegido Linux CentOS.
IP Pública estática
Es recomendable, para establecer una VPN con la red privada de nuestra organización o casa, disponer de una IP pública estática. Esta IP nos la proporcionará nuestro proveedor de servicios de Internet. Si no disponemos de IP estática y por el contrario es dinámica, deberemos disponer de algún software que nos envíe la IP pública, como por ejemplo AjpdSoft Aviso Cambio IP Pública.
Redireccionamiento de puertos en router o firewall
Para poder establecer una conexión VPN desde fuera de nuestra red al equipo servidor de OpenVPN, necesitaremos configurar las peticiones que se hagan a nuestra IP pública (IP que nos ofrece nuestro proveedor de Internet) sobre los puertos: TCP 443, TCP 943 y UDP 1194. De esta forma serán redireccionadas dichas peticiones a la IP interna del servidor OpenVPN. En nuestro caso a la IP interna será la 192.168.159.129 (IP del servidor Linux CentOS).
A continuación mostramos algunos tutoriales para mapear o redireccionar puertos en diferentes routers:
- Abrir puertos en router DSL-G804V y firewall de Windows para optimizar eMule.
- Cómo instalar y configurar un Servidor Web en Windows con Apache y PHP-Nuke.
- Montar un servidor de FTP en un equipo con Linux Debian.
- Parámetros generales de un router, wan, lan, nat, wireless, firewall.
A continuación indicamos paso a paso cómo instalar OpenVPN Access Server y toda la configuración necesaria para montar una red privada virtual VPN gratuita.
Instalación y configuración de OpenVPN Access Server en un servidor con Linux CentOS
Accederemos al servidor con Linux CentOS 6 Minimal, desde la consola del shell de comandos, accediendo con superusuario root, ejecutaremos el siguiente comando:
rpm -Uvh http://swupdate.openvpn.org/as/openvpn-as-2.0.10-CentOS6.x86_64.rpm
Una vez instalado OpenVPN Access Server con el comando anterior estableceremos la contraseña del usuario administrador. Por defecto, OpenVPN Access Server utiliza autenticación PAM. Esto quiere decir que los usuarios que se configuren en OpenVPN Access Server deben existir en el sistema operativo Linux, ya que será este quien valide la contraseña. Inicialmente existe un único usuario llamado openvpn que crea el programa de instalación. Es necesario establecerle la contraseña para poder iniciar sesión en la página web de administración de OpenVPN Access Server.
Para establecer la contraseña al usuario openvpn, en la consola del servidor de Linux, escribiremos el comando:
passwd openvpn
Introduciremos la contraseña deseada para el usuario openvpn.
Tras la instalación de OpenVPN Access Server y el establecimiento de la contraseña para el usuario openvpn estaremos en disposición de iniciar la configuración de OpenVPN Access Server, para ello abriremos un navegador web (podemos abrirlo desde cualquier equipo de la red LAN del servidor de OpenVPN) e introduciremos la URL:
(192.168.159.129 será la IP del servidor Linux CentOS con OpenVPN)
También se podría utilizar la URL de acceso externo si ya hemos redireccionado los puertos (como indicamos aquí):
https://{IP pública}:943/admin
La IP pública podemos obtenerla con AjpdSoft Aviso Cambio IP Pública.
El navegador informará de que el certificado no está validado, aun así podemos continuar. Esto se debe a que el certificado ha sido generado por el propio servidor en el momento de la instalación, pulsando en «Opciones Avanzadas» podremos ver el detalle del mensaje de aviso:
Pulsaremos en «Acceder a 192.168.159.129 (sitio no seguro)»:
Con el texto: Este servidor no ha podido probar que su dominio es 192.168.159.129, el sistema operativo de tu ordenador no confía en su certificado de seguridad. Este problema puede deberse a una configuración incorrecta o a que un atacante haya interceptado la conexión. NET::ERR_CERT_AUTHORITY_INVALID.
Iniciamos sesión utilizando el usuario openvpn y la contraseña que se le estableció:
La primera vez que se accede a la consola de administración web de OpenVPN Access Server mostrará un formulario de aceptación de la licencia. Lo leeremos y si estamos de acuerdo pulsaremos «Agree» para continuar:
Nos mostrará la página principal de la consola de administración web de OpenVPN Access Server:
La configuración básica es bastante simple, accederemos a sección Server Network Settings. En esta ventana estableceremos los siguientes valores:
- Hostname or IP Address: en este campo introduciremos la IP pública del router (que podemos obtener como indicamos aquí). Si disponemos de un dominio registrado que apunta a la IP pública podremos utilizarlo también.
- Interface and IP Address: marcaremos eth0: 192.168.159.129.
- Protocol: marcaremos Both (Multi-daemon mode).
- El resto de valores los dejaremos por defecto:
- Number of TCP daemon: 2.
- TCP Port number: 443.
- Number of UDP daemons: 2.
- UDP Port number: 1194.
- Service Forwarding:
- Admin Web Server: maraceremos esta opción.
- Client Web Server: marcaremos esta opción.
Seguidamente, sobre el final de la página, marcaremos ‘No’ al campo Should client Internet traffic be routed through the VPN. Si no lo marcamos, por defecto quedará ‘Yes’ y todo el tráfico que genere el cliente pasará a través del túnel hasta llegar al servidor OpenVPN. Lo que nos interesa es que solo pase por el servidor OpenVPN el tráfico dirigido a las IP’s de la red interna. A continuación se guardarán los cambios, pulsando en Save Settings (al final de la página):
Aplicaremos la configuración pulsando sobre el botón Update Running Server:
De esta forma ya tendremos el servidor OpenVPN configurado.
Configurar el acceso VPN desde un equipo cliente desde fuera de la red, desde Internet
Una vez montado el servidor OpenVPN y configurado ya estaremos en disposición de poder conectarnos desde un equipo externo a través de Internet. Para ello, en el equipo cliente, situado fuera de la red interna LAN, que tenga acceso a Internet, abriremos un navegador y accederemos a la la URL:
https://{IP pública del router de la red interna}
Nos mostrará la ventana de inicio de sesión de OpenVPN, introduciremos usuario y contraseña establecidos en la configuración de OpenVPN:
Pulsaremos en «Click here to continue», de esta forma se iniciará la descarga de la aplicación cliente de OpenVPN. Una vez descargado el fichero openvpn-connect-xxx.msi lo ejecutaremos:
El programa cliente de OpenVPN se instalará directamente creando un acceso directo en el escritorio y en el menú de inicio:
Al terminar la instalación el cliente se autoejecutará. Para conectar al servidor OpenVPN pulsaremos con el botón secundario del ratón sobre el icono del cliente OpenVPN, que se habrá situdado en el área de notificación (de color naranja con un aspa en color gris) y seleccionaremos Connect to {IP pública}:
Introduciremos las credenciales de acceso al servidor OpenVPN:
Y por último aceptaremos el aviso sobre que el certificado no está verificado pulsando en «Yes»:
Con el texto: The server xxx has an UNTRUSTED SSL certificate. Allow the connection to proceed?
A partir de este momento tendremos asignada una IP de la red 127.27.224.0/20 y ya tendremos acceso a cualquier equipo de la red interna 192.168.159.0/24.
Como vemos en este tutorial, el proceso es bastante sencillo y totalmente gratuito.