Neste tutorial apresentamos como configurar a OpenVPN Community, com autenticação em dois fatores (2FA), utilizando o servidor OPNsense.
1. Configurar autenticação em dois fatores (2FA)
OPNsense suporta os seguintes servidores de backend para autenticação de usuários:
*LDAP
*LDAP + OTP
*Local
*Local + OTP
*Radius
Neste tutorial iremos abordar a configuração de usuários locais com 2FA. Navegue até System → Access → Servers → +Add

Descriptive name: insira um nome para o servidor
Type selecione: Local + Timebased One Time Password
Token Length: 6
Time window: deixar em branco
Grace period: deixar em branco
Reverse token order: Não marcar

Salvar
2. Configurar OpenVPN
Navegue até VPN → OpenVPN → Servers, utilize o botão wizard para iniciar a configuração:

Type of Server selecione Local User Access

No Próximo passo será solicitado para criar uma autoridade certificadora, essa autoridade será utilizada para criar os certificados dos usuários que irão se conectar a VPN e pelo servidor.
Preencha os campos conforme a sua entidade.

Ao finalizar, clique em Add new CA
Na sequência, clique em Add new Certificate para adicionar o certificado do servidor

Novamente preencha os campos conforme sua entidade e clique em Create new Certificate
O passo seguinte se refere às configurações do servidor OpenVPN, iremos alterar as seguintes:
Interface: selecione a interface WAN
Protocol: UDP
Local Port: a porta que o OpenVPN escutará as conexões, deixar em branco usará a padrão 1194, caso deseje usar outra porta, consulte a nossa lista de portas liberadas por padrão para os cloud servers: Quais as portas de rede liberadas por padrão para os cloud servers?
Description: insira um nome para sua instância OpenVPN
Encryption algorithm: AES-256-GCM
Auth Digest Algorithm: SHA256 (256-bit)
IPv4 Tunnel Network: Rede IPv4 usando notação CIDR para comunicação entre o servidor e os clientes OpenVPN. Não utilize uma rede que já exista em sua infraestrutura. Ex:

IPv4 Local Network: Informe a rede IPv4 usando notação CIDR que você deseja ter acesso através da VPN (servidor de banco de dados, aplicações intranet). Os endereços devem ser separados por vírgula. Ex:

As configurações restantes devem ficar padrão. Ao avançar, será solicitado se deseja criar regras de firewall para o serviço da OpenVPN. Deve-se marcar as 2 opções a avançar.

Agora o serviço do OpenVPN está configurado e ativo.
3. Associar o servidor de autenticação em dois fatores (2FA) ao OpenVPN
Nesse passo iremos associar o servidor de autenticação criado no passo 1 deste tutorial com o servidor OpenVPN.
Navegue até VPN → OpenVPN → Servers, clique no botão edit sobre o servidor recém criado.
Em Backend for authentication, deixe selecionado somente o servidor de autenticação criado no passo 1:

*Clique sobre Local Database para remover o servidor da lista de autenticação.
Devido ao fato de utilizar a autenticação em 2 fatores, devemos alterar o campo Renegotiate time, este campo refere quantos segundos o servidor irá renegociar a senha de autenticação, e com isso a conexão cairá automaticamente porque a senha não é mais válida. O valor padrão é 3600 (1 hora), recomenda-se um valor alto, ex: 36000 (10 horas) ou definir 0 para desabilitar (neste modo, a conexão sempre ficará ativa).

Salvar as configurações.
O próximo passo é adicionar usuários seguindo este tutorial: 3 – Como adicionar usuário de VPN no OPNsense?
AVISO LEGAL: Os procedimentos descritos neste documento devem ser executados de acordo com o contexto de cada sistema, de forma a evitar impactos negativos à segurança, disponibilidade, integridade e privacidade de dados. A CentralServer se reserva o direito de modificar a qualquer tempo e sem aviso prévio as informações aqui apresentadas a fim de refletir o lançamento de novos serviços, atualizações físicas e operacionais, e evolução do estado-da-arte da tecnologia.