Introdução
Este tutorial mostra como configurar One-time Password com duplo fator de segurança (2FA) usando OPNsense e o autenticador do Google (Google Authenticator), localmente (Local Database) ou com usuários de um Microsoft AD. Todos os serviços do OPNsense podem ser usados com esta solução 2FA.
Passo 1 - Adicionar um novo Servidor de Autenticação
Descriptive name - TOTP Server ---- Escolha um nome para o server
Type - Local+Timebased One Time Password ---- Selecione o tipo do TOTP
Token length - 6 ---- Deixe em "6" para uso em Google Authenticator
Time window - "vazio" ---- Deixe vazio para uso em Google Authenticator
Grace period - "vazio" ---- Deixe vazio para uso em Google Authenticator
Usando 2FA com Autenticação via Microsoft AD:
Caso queira que o 2FA funcione juntamente com autenticação via Microsoft AD, siga os passos abaixo:
- Escolher o tipo “LDAP + Timebased One Time Password”;
- Hostname os IP address: Insira o IP do servidor AD; Exemplo: 172.16.1.11
- Bind Credencials: Insira um usuário válido no AD, o qual tenha permissões de leitura nos grupos que desejar. -
- Base DN: Caminho do AD - dc=seudominio (nome curto),dc=local (ou extensão de seu domínio)
- Authentication containers: Selecione os locais permitidos onde este novo server irá consultar as autenticações.
- Extended Query: pode ser usada para selecionar
usuários que são membros de um grupo específico do Active Dirtectory. Pode-se usar algo como: (memberOf = CN =
meuGrupo, CN = Usuários, DC = opnsense, DC = local) para selecionar
apenas membros do grupo “meuGrupo”. É muito
usado para limitar acessos, por exemplo, usuários de OpenVPN.
Passo 2 - Instale o Google Authenticator
Vá para a loja de aplicativos de seu smartphone e pesquise por "Google
Authenticator". Instale usando o procedimento normal para o seu
dispositivo.
Passo 3 - Adicionar ou Modificar o Usuário
Para este exemplo, vamos criar um novo usuário, vá para System ‣ Access ‣ Users e clique no sinal de mais (+) no canto superior direito.
Passo 4 - Ativar o Autenticador para este OTP Seed
Para ativar o seu novo OTP Seed no Google Authenticator, primeiro
reabra seu usuário que acabou de criar clicando no ícone de lápis.
Tenha muito cuidado com a SEED ou código QR, pois isso é a única coisa que você precisa para calcular o token. MANTENHA SUA SEED e seu CÓDIGO QR SEGURO!
Agora abra seu aplicativo compatível com o Google Authenticator e
selecione a opção para iniciar a configuração e, em seguida, digitalize o
código QR ou, alternativamente, insira a semente diretamente.
Quando o código QR é lido, uma nova visualização é aberta, onde você
pode ver os detalhes do resultado. Esta visualização pode ser usada para
verificar se a chave gerada e as configurações OTP dos resultados da
verificação correspondem às suas configurações. Confirme se está tudo
bem clicando em “Adicionar”.
Após essa etapa, você estará de volta à tela inicial do aplicativo e receberá um Token, que a cada 30 segundos será alterado.
Passo 5 - Testando o Token
Para testar a autenticação do usuário, o OPNSense oferece um testador simples. Vá em System ‣ Access ‣ Tester
Selecione o servidor de autenticação que você configurou e digite o nome do usuário. Em seguida, digite "* token + senha", lembre-se que o correto é digitar o token e a senha no mesmo campo.
Nota
Obs.: O servidor de autenticação OTP também pode ser configurado para tê-lo na ordem reversa, como PASSWORD123456. Basta marcar a opção “Reverse Token Order” em Server (Passo 1).
Passo 6 - Habilitando o Authentication Server
Por padrão, o sistema valida as credenciais do usuário no Local Database (Banco de dados local). Em System ‣ Settings ‣ Administration, seção Authentication,
você deve alterar para o servidor de autenticação recém-adicionado para
garantir que nenhum usuário local possa obter acesso sem 2FA.
Observações:
Passo 7 - Usando o token
Para usar o token em qualquer aplicativo ou serviço que você tenha configurado, basta abrir o Google Authenticator e adicionar o token ou a chave, criada anteriormente, e sua senha.
Nota: Nunca forneça eseu token a ninguém,
Lembre-se de que você precisa inserir o token antes ou depois da
senha (dependendo da configuração). O campo de senha deve ser usado para
inserir o token e sua senha, por exemplo:
Senha: 123456PASSWORD
O código mudará a cada 30 segundos.
Imagem de exemplo: