Este plugin fue desarrollado con base en Apache Guacamole, trayendo una serie de diferenciales, especialmente cuando se trata de integración con el OPNsense.
Algunas de las ventajas de nuestro plugin:
- Acceso via Navegador: El plugin de Web VPN permite acceso remoto via navegador, quitando la necesidad de instalar un cliente VPN en cada dispositivo. Eso simplifica las conexiones.
- Soporte a Múltiplos Protocolos: Soportando diversos protocolos, como RDP, SSH e VNC, este plugin proporciona acceso a una amplia gama de sistemas remotos.
- Facilidad de implementación y Mantención: En compración con una VPN convencional. el plugin es más facil de implementar y administrar, ahorrando tiempo y esfuerzo.
- Acceso desde Cualquier Lugar: Con el plugin Web VPN, usted puede acceder a recursos remotos desde cualquier lugar con conexión a internet, ideal para equipos remotos o conexiones remotas.
- Integración de Seguridad Avanzada: El plugin ofrece seguridad avanzada, incluyendo autenticación multifactor (MFA) para proteger sus conexiones remotas.
- Integración con el Active Directory: Además de eso, el plugin ofrece integración perfecta con el AD, simplificando la gestión de identidades y accesos para organizaciones que lo utilizan.
OBS: el plugin se encuentra en la etapa beta de desarrollo actualmente.
Pre-requisitos
Para utilizar el WEB VPN Cloudfence, será necesario instalar tres plugins en el OPNsense:
- Activar nuestro repositório de plugins (community): Sepa como en este artículo. https://support.cloudfence.eu/help/pt-br/1-opnsense/2-cloudfence-plugins-repository
- Web VPN Portal Plugin Cloudfence (os-cloudfence-vpnwebportal) : el plugin en si mismo.
- HA-Proxy (os-haproxy) : Necesario para el proxy inverso para el acceso via HTTPS.
- Hardware: Dual-core CPU / 8 GB RAM / 64 GB disco
Configuración:
Después de instalado el plugin Web VPN Cloudfence, vaya a Cloudfence > VPN Web Portal
- Para activar el plugin con grabación de las sesiones, marque las opciones Enable y Session Recording:
- En la opción LDAP authentication seleccione cual tipo de autenticación que será utilizado. De lo contrario deje marcada la opción "none" , de ese modo los usuarios serán creados directamente en el Guacamole.
OBS: Opción Local Database no tendrá efecto en caso de que esté marcada.
- Elija una de las opciones de múltiplo factor de autenticación, que son: OTP y DUO;
OBS: Para usar el OTP junto con usuarios creados directamente en el Guacamole, esa clave deberá ser obtenida en su primero acceso a la pantalla de login del propio Guacamole, después de la finalización de las configuraciones restantes.
- Nextcloud Backups - Guacamole Database
Configure su servidor Nextcloud para tener su backup de configuraciones de Guacamole.
- Backup and Restore - Guacamole Database
Haga backup o suba el archivo de backup aqui.
- Guarde las alteraciones.
HA Proxy - Instalación y configuración:
El acceso para la Web VPN portal deve ser siempre publicado via HTTPS y para eso necesitamos de un proxy inverso que haga esta conexión entre la internet y nuestro portal de VPN. En este articulo utilizaremos el HAProxy. A continuación los pasos necesarios para configurar el HAProxy para funcionar en conjunto con el portal de VPN:
OBS: No es aconsejable publicar el portal de VPN via Web sin criptografia (HTTP en vez de HTTPS)
Después de instalado el plugin HA Proxy, vaya a Services > HAProxy > Settings
> Pestaña Real Servers
Haga click en el "+" para agregar una nueva configuración y siga de acuerdo a lo informado abajo:
- Name or Prefix - "WebVPN_Jail"
- Type-static
- FQDN or IP - "127.0.0.11"
- Port - 8080
> Pestaña Virtual Services - Backend Pools
Haga click en "+" para agregar una nueva configuración y siga de acuerdo a lo informado abajo:
- Name - "WebVPN_Pool"
- Servers
Elija el nombre que configuró anteriormente en Real Servers, que en este tutorial usamos el WebVPN_Jail
> Pestaña Virtual Services - Public Servers
Haga click en "+" para agregar una nueva configuración y siga de acuerdo a lo informado abajo:
- Name - "WebVPN_FrontEnd"
- Listen Addresses - agregue aqui el IP que será usado en el acceso del Web VPN Portal, seguido por":" y la puerta 443: XXX.XXX.XXX.XXX:443
OBS: En caso el firewall no tenga IP público directamente en sus interfaces, será necesario configurar en el HA Proxy el IP privado que está en la WAN a pesar de que el dispositivo que está con el IP público ( que normalmente queda en el modem o ruteador de su proveedora de internet ) deberá estar desviando todo el tráfico para las interfaces del firewall sin restricciones para que funcione correctamente la Web VPN Cloudfence.
- Default Backend Pool
Seleccione el Backend Pool que configuro anteriormente, que en este tutorial usamos el "WebVPN_Pool"
-Enable SSL offloading
Marque esta opción.
- Certificados
Seleccione un certificado autofirmado, que puede ser el propio Web GUI certificate, en caso el no esté vencido, es recomendable utilizar un certificado válido, ( en vez de un autofirmado ) que puede ser instalado en su OPNsense o obtenido gratuitamente a través del plugin Acme ( Let´s Encrypt ).
Pestaña Settings - Service
- Enable HAProxy
Marque esta opción para habilitar el HA Proxy.
- Show introduction pages
Desmarque esta opción para que no aparezcan más las instrucciones iniciales en cada pestaña.
- Haga click en "Save & Test syntax" para aplicar todas las alteraciones y ya realizar las pruebas de validación.
En caso de que aparezca el mensaje como de la imagen abajo, eso indica que sus configuraciones fueron validadas:
Firewall - Regras - WAN
Aqui será necesario crear una regla de liberación de entrada en la WAN que irá ser usada para acceder el Web Portal Cloudfence.
Abajo sigue el ejemplo de la regla que debe ser creada:
- Protocolo: TCP
- Origen: any
- Destino: WAN Address (ou el IP que configuro en el HA Proxy)
- Puerta destino: 443 (HTTPS)
- Descripción (sugestión): Web VPN Cloudfence
Firewall - NAT - Outbound
Para que las conexiones entre el Web VPN Portal funcionen, todavia está la necesidad de adicionar un NAT Outbound donde las conexiones de origen LOCALHOST deben salir con la IP de LAN (o interfaz de la misma red que está efectuando el acceso)
Primero verifique si el NAT Outbound está en el modo HYBRID.
En caso no lo esté, edite selecionando la opción "Hybrid outbound NAT rule generation"
Guarde y en seguida haga click en el botón de "+" para agregar un nuevo NAT.
Abajo sigue un ejemplo del NAT Outbound que debe ser creado:
- Interfaz: LAN (o la interfaz de red local utilizada)
- Origen: Loopback net
- Puerta de origen: any
- Destino: LAN net (o la red local utilizada)
- Puerta de destino: any
- NAT Address: Interface Address
- NAT Port: any
- Porta Estática: no
- Descripción (sugestión): Web VPN Local Servers
Testando - Acesso al Web Portal
Utilizando https, accese el Web Portal escribiendo en un navegador Web la dirección de IP Público que fue pre-configurado en el HA Proxy o por el IP Público que consta en su dispositivo distribuidor de internet (modem o roteador que está entregando IP para su firewall).
Por ejemplo: https://123.123.123.123
Importante:
- En el primer acceso al portal será realizado a través del usuario "guacadmin" y la clave padrón: "cloudfence"
- Luego será solicitado que la clave sea alterada.
- En caso haya problema con requisición de inserción de código OTP en su primer acceso, desmarque la opción "OTP authentication" en las configuraciones de VPN Web Portal (Cloudfence > VPN Web Portal) temporariamente.
OBS: En caso el firewall no tenga IP público directamente en su interfaz WAN, será necesario configurar en el HA Proxy el IP local de la WAN pero en el momento del acceso WEB PORTAL, tendrá que escribir el IP Público actual que el firewall está utilizando para comunicar con la internet, o sea, el IP Público que está siendo usado en el modem o roteador de la red (el cual está entregando internet para el firewall )
Conclusión
En este artículo vimos como instalar y configurar el plugin Web VPN portal de Cloudfence. Como mostrado hay pasos importantes citados como por ej. activar el factor doble de autenticación, configurar el acceso via HTTPS utilizando el plugin HA Proxy. En caso necesite de ayuda con el plugin, tenemos un soporte a la comunidad en nuestro servidor Discord: https://discord.com/channels/1166434392974053389/1166464595150520330