Servicio de redes privadas virtuales (VPN)¶
Introducción a las redes privadas virtuales (VPN)¶
Se integra OpenVPN [2] para la configuración y gestión de redes privadas virtuales. OpenVPN posee las siguientes ventajas:
- Autenticación mediante infraestructura de clave pública.
- Cifrado basado en tecnología SSL.
- Clientes disponibles para Windows, Mac OS y Linux.
- Más sencillo de instalar, configurar y mantener que IPSec, otra alternativa para VPNs en software libre.
- Posibilidad de usar programas de red de forma transparente.
[2] | http://openvpn.net/ |
Configuración de un servidor VPN con Zentyal¶
Se puede configurar Zentyal para dar soporte a clientes remotos (conocidos como Road Warriors). Esto es, un servidor Zentyal trabajando como puerta de enlace y como servidor VPN, que tiene una red de área local (LAN) detrás, permitiendo a clientes externos (los road warriors) conectarse a dicha red local vía servicio VPN.
La siguiente figura puede dar una visión más ajustada:
Nuestro objetivo es conectar al servidor de datos con los otros 2 clientes lejanos (comercial y gerente) y estos últimos entre si.
Para ello necesitamos crear una Autoridad de Certificación y certificados para los dos clientes remotos. Tenga en cuenta que también se necesita un certificado para el servidor VPN. Sin embargo, Zentyal creará este certificado automáticamente cuando cree un nuevo servidor VPN. En este escenario, Zentyal actúa como una Autoridad de Certificación.
Una vez tenemos los certificados, deberíamos poner a punto el servidor VPN en Zentyal mediante Crear un nuevo servidor. El único parámetro que necesitamos introducir para crear un servidor es el nombre. Zentyal hace que la tarea de configurar un servidor VPN sea sencilla, ya que establece valores de forma automática.
Los siguientes parámetros de configuración son añadidos automáticamente, y pueden ser modificados si es necesario: una pareja de puerto/protocolo, un certificado (Zentyal creará uno automáticamente usando el nombre del servidor VPN) y una dirección de red. Las direcciones de la red VPN se asignan tanto al servidor como a los clientes. Si se necesita cambiar la dirección de red nos deberemos asegurar que no entra en conflicto con una red local. Además, se informará automáticamente de las redes locales, es decir, las redes conectadas directamente a los interfaces de red de la máquina, a través de la red privada.
Como vemos, el servidor VPN estará escuchando en todas las interfaces externas. Por tanto, debemos poner al menos una de nuestras interfaces como externa vía Red ‣ Interfaces. En nuestro escenario sólo se necesitan dos interfaces, una interna para la LAN y otra externa para Internet.
Si queremos que los clientes puedan conectarse entre sí usando su dirección de VPN, debemos activar la opción Permitir conexiones entre clientes.
El resto de opciones de configuración las podemos dejar con sus valores por defecto.
Tras crear el servidor VPN, debemos habilitar el servicio y guardar los cambios. Posteriormente, se debe comprobar en Dashboard que un servidor VPN está funcionando.
Tras ello, debemos anunciar redes, es decir, establecer rutas entre las redes VPN y entre estas y otras redes conocidas por nuestro servidor. Dichas redes serán accesibles por los clientes VPN autorizados. Hay que tener en cuenta que Zentyal anunciará todas las redes internas automáticamente. Por supuesto, podemos añadir o eliminar las rutas que necesitemos. En nuestro escenario, se habrá añadido automáticamente la red local para hacer visible el cliente 3 a los otros dos clientes.
Una vez hecho esto, es momento de configurar los clientes. La forma más sencilla de configurar un cliente VPN es utilizando los bundles de Zentyal, paquetes de instalación que incluyen el archivo de configuración de VPN específico para cada usuario y, opcionalmente, un programa de instalación. Estos están disponibles en la tabla que aparece en VPN ‣ Servidores, pulsando el icono de la columna Descargar bundle del cliente. Se pueden crear bundles para clientes Windows, Mac OS y Linux. Al crear un bundle se seleccionan aquellos certificados que se van a dar al cliente y se establece la dirección IP externa a la cual los clientes VPN se deben conectar. Además, si el sistema seleccionado es Windows, se puede incluir también un instalador de OpenVPN. Los bundles de configuración los descargará el administrador de Zentyal para distribuirlos a los clientes de la manera que crea más oportuna.
Un bundle incluye el fichero de configuración y los ficheros necesarios para comenzar una conexión VPN.
Ahora tenemos acceso al servidor de datos desde los dos clientes remotos. Si se quiere usar el servicio local de DNS de Zentyal a través de la red privada será necesario configurar estos clientes para que usen Zentyal como servidor de nombres. De lo contrario no se podrá acceder a los servicios de las máquinas de la LAN por nombre, sino únicamente por dirección IP. Así mismo, para navegar por los ficheros compartidos desde la VPN [3] se debe permitir explícitamente el tráfico de difusión del servidor Samba.
[3] | Para más información sobre compartición de ficheros ir a la sección Servicio de compartición de ficheros y de autenticación |
Los usuarios conectados actualmente al servicio VPN se muestran en el Dashboard de Zentyal.
Si queremos tener un servidor VPN que no sea la puerta de enlace de la red local, es decir, la máquina no posee interfaces externos, entonces necesitaremos utilizar la Redirección de puertos con Zentyal. Como es una opción del cortafuegos, tendremos que asegurarnos que el módulo de cortafuegos está activo, de lo contrario no podremos activar esta opción. Con dicha opción, el servidor VPN se encargará de actuar como representante de los clientes VPN dentro de la red local. En realidad, lo será de todas las redes anunciadas, para asegurarse que recibe los paquetes de respuesta que posteriormente reenviará a través de la red privada a sus clientes. Esta situación se explica mejor con el siguiente gráfico:
Configuración de un servidor VPN para la interconexión de redes con Zentyal¶
En este escenario tenemos dos oficinas en diferentes redes que necesitan estar conectadas a través de una red privada. Para hacerlo, usaremos Zentyal en ambas como puertas de enlace. Una actuará como cliente VPN y otra como servidor. La siguiente imagen trata de aclarar la situación:
Nuestro objetivo es conectar al cliente 1 en la LAN 1 con el cliente 2 en la LAN 2 como si estuviesen en la misma red local. Por tanto, debemos configurar un servidor VPN tal y como se ha explicado anteriormente.
Sin embargo, se necesita hacer dos pequeños cambios, habilitar la opción Permitir túneles Zentyal a Zentyal para intercambiar rutas entre servidores Zentyal e introducir una Contraseña de túneles de Zentyal a Zentyal para establecer la conexión en un entorno más seguro entre las dos oficinas. Hay que tener en cuenta que deberemos anunciar la red LAN 1 en Redes anunciadas.
Para configurar Zentyal como un cliente VPN, podemos hacerlo a través de VPN ‣ Clientes. Debes dar un nombre al cliente y activar el servicio. Se puede establecer la configuración del cliente manualmente o automáticamente usando el bundle dado por el servidor VPN. Si no se usa el bundle, se tendrá que dar la dirección IP y el par protocolo-puerto donde estará aceptando peticiones el servidor. También será necesaria la contraseña del túnel y los certificados usados por el cliente. Estos certificados deberán haber sido creados por la misma autoridad de certificación que use el servidor.
Cuando se guardan los cambios, en el Dashboard, se puede ver un nuevo demonio OpenVPN en la LAN 2 ejecutándose como cliente con la conexión objetivo dirigida a la otra Zentyal dentro de la LAN 1.
Cuando la conexión esté completa, la máquina que tiene el papel de servidor tendrá acceso a todas las rutas de las máquinas clientes a través de la VPN. Sin embargo, aquéllas cuyo papel sea de cliente sólo tendrán acceso a aquellas rutas que el servidor haya anunciado explícitamente.