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

Image Placeholder

  • 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.

Image Placeholder

  • Escolha uma das duas opções de múltiplo fator de autenticação, que são: OTP 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;

Image Placeholder

> Aba Real Servers

Image Placeholder

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

Image Placeholder

> Aba Virtual Services - Backend Pools

Image Placeholder


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

Image Placeholder

> Aba Virtual Services - Public Servers

Image Placeholder

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 443XXX.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
Image Placeholder

  • 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).
Image Placeholder


> 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.

Image Placeholder

Caso apareça a mensagem como da imagem abaixo, isto indica que suas configurações foram validadas:

Image Placeholder


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). . 

Por exemplo: https://123.123.123.123

Image Placeholder



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.