Introdução
Este plugin foi desenvolvido com base no Apache Guacamole, trazendo uma série de diferenciais, especialmente quando se trata de integração com o OPNsense.
Algumas das vantagens de nosso plugin:
- Acesso via Navegador: O plugin de Web VPN permite acesso remoto via navegador, eliminando a necessidade de instalar um cliente VPN em cada dispositivo. Isso simplifica as conexões.
- Suporte a Múltiplos Protocolos: Suportando diversos protocolos, como RDP, SSH e VNC, este plugin proporciona acesso a uma ampla gama de sistemas remotamente.
- Facilidade de Implementação e Manutenção: Em comparação com uma VPN convencional, o plugin é mais fácil de implantar e gerenciar, poupando tempo e esforço.
- Acesso de Qualquer Lugar: Com o plugin Web VPN, você pode acessar recursos remotos de qualquer lugar com conexão à Internet, ideal para equipes remotas ou conexões remotas.
- Integração de Segurança Avançada: O plugin oferece segurança avançada, incluindo autenticação multifator (MFA), para proteger suas conexões remotas.
- Integração com o Active Directory: Além disso, o plugin oferece integração perfeita com o AD, simplificando a gestão de identidades e acesso para organizações que o utilizam.
Obs.: o plugin se encontra em fase beta de desenvolvimento atualmente.
Pré-requisitos
Para utilizar o Web VPN Cloudfence, será necessário instalar três plugins no OPNSense:
- Ativar nosso repositório de plugins (community): Saiba como neste artigo - Como instalar os plugins Cloudfence?
- Web VPN Portal plugin Cloudfence (os-cloudfence-vpnwebportal): o plugin em si.
- HA Proxy (os-haproxy): Necessário para o proxy reverso para acesso via HTTPS.
- Hardware: Dual-core CPU / 8GB RAM / 64GB disco
Configuração:
Após instalado o plugin Web VPN Cloudfence, vá em Cloudfence > VPN Web Portal
- Para ativar o plugin com gravação das sessões, marque as opções Enable e Session Recording;
- Na opção LDAP authentication, selecione qual tipo de autenticação que será utilizada. Caso tenha um servidor AD configurado poderá selecioná-lo aqui, caso contrário deixe marcada a opção "none", deste modo os usuários serão criados diretamente no Guacamole,Obs.: opção Local Database não terá efeito caso fique marcada.
- Escolha uma das duas opções de múltiplo fator de autenticação, que são: OTP e DUO;--- Obs.: Para usar a OTP junto com usuários criados diretamente no Guacamole, esta chave deverá ser coletada em seu primeiro acesso na tela de login próprio Guacamole, após o término das configurações restantes;
- Nextcloud Backups - Guacamole Database - configure seu servidor Nextcloud para ter seu backup de configurações do Guacamole;
- Backup and Restore - Guacamole Database - Faça backup ou suba o arquivo de backup aqui;
- Save as alterações.
HA Proxy - Instalação e configuração
O acesso para o Web VPN portal deve ser sempre publicado via HTTPS e para isso precisamos de um proxy reverso que faça esta conexão entre a Internet e nosso portal de VPN. Neste artigo utilizaremos o HAProxy. A seguir os passos necessários para configurar o HAProxy para funcionar em conjunto com o portal de VPN:
Obs.: é altamente desaconselhável publicar o portal de VPN via Web sem criptografia (HTTP ao invés de HTTPS).
Após instalado o plugin HA Proxy, vá em Services > HAProxy > Settings;
> Aba Real Servers
Clique no sinal "+" para adicionar uma nova configuração e siga conforme informado abaixo:
- Name or Prefix - "WebVPN_Jail"
- Type - static
- FQDN or IP - "127.0.0.11"
- Port - 8080
> Aba Virtual Services - Backend Pools
Clique no sinal "+" para adicionar uma nova configuração e siga conforme informado abaixo:
- Name - "WebVPN_Pool"
- Servers - escolha o nome que configurou anteriormente em Real Servers, que neste tutorial usamos o WebVPN_Jail
> Aba Virtual Services - Public Servers
Clique no sinal "+" para adicionar uma nova configuração e siga conforme informado abaixo:
- Name - "WebVPN_FrontEnd"
- Listen Addresses - adicione aqui o IP que será usado no acesso do Web VPN Portal, seguido por " : " e a porta 443: XXX.XXX.XXX.XXX:443
Obs.: Caso o firewall não possua IP público diretamente em suas interfaces, será necessário configurar no HA Proxy o IP Privado que está na WAN, porém o dispositivo que está com o IP Público (que normalmente fica no modem ou roteador da operadora de internet) deverá estar repassando todo tráfego para as interfaces do firewall sem restrições para que funcione corretamente a Web VPN Cloudfence.
- Default Backend Pool - selecione o Backend Pool que configurou anteriormente, que neste tutorial usamos o "WebVPN_Pool"
- Enable SSL offloading - marque esta opção
- Certificates - selecione um certificado auto assinado, que pode ser o próprio Web GUI certificate, caso ele não esteja vencido. É aconselhável utilizar um certificado válido, ao (invés de um auto assinado) que pode ser instalado em seu OPNsense ou obtido gratuitamente através do plugin Acme (Let´s Encrypt).
> Aba Settings - Service
- Enable HAProxy - marque esta opção para habilitar o HA Proxy;
- Show introduction pages - desmarque esta opção para que não sejam mais exibidas as instruções iniciais em cada aba;
- Cliquem em "Save & Test syntax" para aplicar todas as alterações e já efetuar os testes de validação.
Caso apareça a mensagem como da imagem abaixo, isto indica que suas configurações foram validadas:
Firewall - Regras - WAN
Aqui será necessário fazer uma regra de liberação de entrada na WAN que irá ser usada para acessar o Web VPN Portal Cloudfence.
Abaixo segue exemplo da regra que deve ser feita:
- Protocolo: TCP
- Origem: any
- Destino: WAN Address (ou o IP que configurou no HA Proxy)
- Porta Destino: 443 (HTTPS)
- Descrição (sugestão): Web VPN Cloudfence
Firewall - NAT - Outbound
Para que as conexões entre o Web VPN Portal funcionem, ainda há a necessidade de adicionar um NAT Outbound onde as conexões de origem LOCALHOST devem sair com o IP da LAN (ou o IP da interface da mesma rede que está efetuando o acesso).
Primeiro verifique se o NAT Oubound está no modo HYBRID.
Caso não esteja, altere selecionando a opção "Hybrid outbound NAT rule generation"
Salve e em seguida clique no sinal de mais para adicionar um novo NAT.
Abaixo segue exemplo do NAT Outbound que deve ser feita:
- Interface: LAN (ou a interface de rede local utilizada)
- Origem: Loopback net
- Porta de Origem: any
- Destino: LAN net (ou a rede local utilizada)
- Porta de Destino: any
- NAT Address: Interface Address
- NAT Port: any
- Porta Estática: no
- Descrição (sugestão): Web VPN Local Servers
Testando - Acesso ao Web Portal
Utilizando https, acesse o Web Portal digitando em um navegador Web o endereço de IP Público que foi pré-configurado no HA Proxy ou pelo IP Público que consta em seu dispositivo distribuidor de internet (modem ou roteador que esta fornecendo IP para seu firewall). .
Importante:
- No primeiro acesso ao portal será feito através do usuário "guacadmin" e a senha padrão: "cloudfence"
- Em seguida, será requisitado que a senha seja alterada.
- Caso haja problema com requisição de inserção de código OTP em seu primeiro acesso, desmarque a opção "OTP authentication" nas configurações do VPN Web Portal (Cloudfence > VPN Web Portal) provisoriamente.
Obs.: Caso o firewall não possua IP público diretamente em sua interface WAN, será necessário configurar no HA PRoxy o IP local da WAN, mas no momento do acesso do WEB PORTAL, terá que digitar o IP Público atual que o firewall está utilizando para comunicar com a internet, ou seja, o IP Público que está sendo usado no modem ou roteador da rede (o qual está entregando internet para o firewall).
Conclusão
Neste artigo vimos como instalar e configurar o plugin Web VPN portal da Cloudfence. Como vimos há passos importantes citados como por ex. ativar o fator duplo de autenticação, configurar o acesso via HTTPS utilizando o plugin HA Proxy. Caso necessite de ajuda com o plugin, temos um suporte à comunidade em nosso servidor Discord.