Ir para o conteúdo

Capítulo 41 – Autenticação Multifator (MFA – TOTP)

Introdução

A autenticação multifator (MFA) deixou de ser um diferencial de segurança e passou a ser um requisito essencial em qualquer ambiente com acessos expostos à Internet. No contexto do OPNsense, ela representa uma camada adicional de proteção para administradores e usuários de VPN, reduzindo drasticamente o risco de invasões mesmo em situações em que uma senha é comprometida.

A MFA baseada em TOTP (Time-Based One-Time Password) utiliza um código rotativo gerado a cada 30 segundos por um aplicativo autenticador, como o Google Authenticator, Microsoft Authenticator, FreeOTP ou Authy. Assim, o processo de autenticação passa a depender de algo que o usuário sabe (a senha) e algo que ele possui (o dispositivo com o token). Mesmo que um atacante descubra a senha, não conseguirá acessar o sistema sem o token válido — que muda constantemente.

Neste capítulo, veremos passo a passo como configurar o MFA no OPNsense, tanto para usuários locais quanto para usuários integrados ao Active Directory (LDAP), aplicando-o em acessos administrativos e conexões VPN.


Entendendo o Funcionamento

O processo de MFA no OPNsense baseia-se em códigos TOTP. Esses códigos são calculados com base em um segredo criptográfico (seed) gerado no firewall e compartilhado com o aplicativo autenticador do usuário. A cada 30 segundos, o app cria um novo código de seis dígitos, sincronizado com o relógio do firewall.

Por isso, é fundamental que o OPNsense esteja com o horário sincronizado via NTP (Network Time Protocol). Uma diferença de tempo entre o firewall e o dispositivo do usuário resultará em falhas de autenticação, mesmo que o token esteja correto.


Pré-Requisitos

Antes de iniciar a configuração da MFA, verifique os seguintes pontos:

  • O firewall deve ter NTP configurado e funcionando corretamente.
  • Caso use autenticação com Active Directory, o servidor LDAP já deve estar configurado (ver Capítulo 34 – Integração com LDAP).
  • Os usuários devem possuir um aplicativo autenticador TOTP instalado (Google Authenticator, Authy, Microsoft Authenticator, FreeOTP, etc.).
  • Em ambientes críticos, mantenha uma conta administrativa de contingência sem MFA, com controle rigoroso de uso.

Configurando MFA para Usuários Locais

1. Criar a Fonte de Autenticação Local + TOTP

  1. Acesse o menu System → Access → Servers.

  2. Clique em + Add para adicionar um novo servidor de autenticação.

  3. Preencha os campos conforme o exemplo abaixo:

    • Descriptive name: LOCAL+MFA
    • Type: Local + Timebased One Time Password
    • Marque a opção Reverse token order se desejar que o usuário digite o token antes da senha (opcional).
  4. Clique em Save.

Importante

Por padrão, o OPNsense espera que o usuário digite senha + token concatenados no mesmo campo de senha. Exemplo: minhaSenhaAqui123456, onde 123456 é o token exibido no app autenticador.


2. Criar o Usuário e Gerar o QR Code do Token

No exemplo abaixo, iremos cadastrar um usuário com permissão de Admin, pois será um administrador do firewall.

  1. Vá em System → Access → Users.

  2. Clique em + Add.

  3. Preencha os campos:

    • Username: luciano.rodrigues
    • Password: senha complexa
    • Group membership: admins
  4. Role até a seção OTP seed e clique em Show.

  5. Clique no ícone de engrenagem (⚙) para gerar o QR Code.

  6. No celular, abra o aplicativo autenticador e escaneie o QR Code exibido.

  7. Clique em Save.

A partir desse momento, o usuário terá um token rotativo válido e sincronizado com o firewall.

Importante

Recomenda-se testar o acesso com pelo menos um usuário antes de ativar o MFA globalmente. Mantenha uma sessão administrativa aberta durante a configuração — caso algo dê errado, você poderá reverter facilmente.


3. Exigir MFA para Acesso à WebGUI

  1. Vá em System → Settings → Administration.
  2. No campo Authentication → Server, selecione LOCAL+MFA.
  3. Clique em Save.
  4. Abra uma nova aba ou janela anônima e tente autenticar:

    • Somente com login e senha → deve falhar.
    • Com senha + token concatenados → deve autenticar com sucesso.

Caso não consiga autenticar

Volte à aba onde você ainda está logado, desfaça a alteração em Authentication Server, e revise cada etapa — especialmente a geração do QR Code e a sincronização de horário via NTP.


Usando MFA na VPN (OpenVPN)

A autenticação multifator também pode (e deve) ser aplicada aos acessos de VPN.

  1. Siga o processo de criação da VPN no Capítulo 26 – VPN Acesso Remoto OpenVPN.
  2. Na etapa de Autenticação, escolha LOCAL+MFA como método de autenticação.
  3. Salve e aplique as alterações.

Agora, cada usuário que possuir um token registrado deverá digitar sua senha seguida do token no campo de senha do cliente OpenVPN.

Exemplo:

Senha: minhaSenhaAqui123456

LDAP + MFA (Integração com Active Directory)

O processo de criar um servidor de autenticação LDAP com suporte MFA/TOTP foi descrito no capítulo anterior (Capítulo 40 - Integração com LDAP).
Indicamos fielmente que use o método do capítulo 40 aliado com a permissão do próprio usuário gerar seu Token (Self-Service-QRCode).


Testando a MFA

Teste de Acesso à WebGUI

  • Acesse o painel de login e tente entrar apenas com a senha → o acesso deve ser negado.
  • Em seguida, tente novamente com senha + token concatenados → o acesso deve ser autorizado.
  • Verifique se o token muda a cada 30 segundos e se a autenticação continua consistente.

Teste de Acesso via VPN

  • Conecte o cliente OpenVPN usando o login e senha corretos + token válido.
  • A conexão deve ser estabelecida com sucesso.
  • Confirme em VPN → OpenVPN → Connection Status que a sessão está ativa e autenticada via MFA.

Considerações Importantes

  • Concatenação: o OPNsense sempre processa senha e token no mesmo campo.
  • Sincronização de tempo: o TOTP depende de relógio sincronizado; habilite o NTP em System → Settings → General.
  • LDAP + MFA: mesmo com LDAP, o usuário precisa existir localmente para gerar o QR Code.
  • Segurança do LDAP: use LDAPS (porta 636) em produção para evitar transmissão em texto claro.
  • Suporte e recuperação: documente o procedimento de reemissão de tokens em caso de perda ou troca de aparelho celular.
  • Monitoramento: habilite logs de autenticação e configure alertas de falhas consecutivas.

Boas Práticas

  • Comece pelos administradores: implemente MFA primeiro na WebGUI e SSH.
  • Implemente em fases: teste em um grupo piloto antes de expandir.
  • Mantenha NTP redundante: use pelo menos dois servidores de hora confiáveis.
  • Audite acessos: monitore logs de autenticação e identifique tentativas suspeitas.
  • Senhas ainda importam: combine senhas fortes com MFA — um fator não substitui o outro.
  • Tenha plano de contingência: mantenha uma conta de emergência sem MFA, controlada e auditada.
  • Eduque os usuários: forneça instruções claras sobre como digitar senha + token e o que fazer em caso de perda do app autenticador.

Casos de Uso

1. Proteção da WebGUI e SSH de Administradores

Problema: Contas administrativas são alvo frequente de ataques de força bruta.
Solução: Criar o servidor LOCAL+MFA e exigir OTP para logins administrativos.
Benefício: Mesmo com uma senha comprometida, o acesso é bloqueado sem o token.


2. VPN Corporativa com MFA

Problema: VPNs são portas de entrada comuns para invasores.
Solução: Configurar LDAP + TOTP como servidor de autenticação para OpenVPN.
Benefício: O usuário mantém suas credenciais do AD, mas precisa do token adicional — sem precisar de logins duplicados.


3. MFA para Usuários de AD com Criação Automática

Problema: Adoção lenta por depender de criação manual de contas locais.
Solução: Habilitar Automatic user creation no LDAP+MFA, permitindo que o usuário gere seu token após o primeiro login.
Benefício: Integração fluida e sem necessidade de intervenção administrativa.


4. Proteção Contra Vazamento de Credenciais

Problema: Senhas podem ser reutilizadas ou vazadas em incidentes externos.
Solução: MFA com tokens TOTP rotativos.
Benefício: Mesmo com a senha comprometida, o acesso permanece protegido.


Conclusão

A implementação da autenticação multifator (MFA) no OPNsense é uma das medidas mais eficazes para proteger acessos administrativos e conexões VPN. Ela combina simplicidade de configuração com alta eficácia contra ataques de força bruta, phishing e reutilização de senhas.

Ao aplicar TOTP com NTP sincronizado, adotar LDAP + MFA em ambientes corporativos e manter procedimentos de contingência bem documentados, você estabelece uma base sólida para uma postura de segurança moderna, confiável e resiliente.