Normalmente conhecida MFA (autenticação multifator), a autenticação de 2 fatores fornece uma camada extra de segurança que exige que os usuários forneçam certos detalhes, como códigos ou OTP (senha de uso único) antes ou depois da autenticação com o nome de usuário e senha usuais.
Neste post vamos mostrar como você pode usar a autenticação de dois fatores no login do Ubuntu utilizando uma MFA do Google.
Primerio passo: Instalar o pacote PAM do Google
Precisamos instalar o pacote Google PAM (Pluggable Authentication Module) que é um software que acrescenta uma camada de autenticação na plataforma Linux. Este pacote está disponível no repositório Ubuntu, portanto podemos utilizar o comando apt para instalá-lo da seguinte forma:
$ sudo apt install libpam-google-authenticator
Se solicitado, pressione 'Y' + ENTER para continuar com a instalação.
Para continuar você irá precisar do Google Authenticator App instalado no seu smartphone.
Passo 2: Configurar o Google PAM no login do Ubuntu
A configuração do pacote Google PAM no Ubuntu é relativamente simples. Primeiro precisamos alterar o arquivo /etc/pam.d/common-auth adicionando na linha indicada na figura. Use o seu editor de texto favorito para acrescentar a linha indicada na figura abaixo:
Salve o arquivo e saia do editor.
No prompt, execute o comando abaixo para inicializar o PAM.
$ google-authenticator
Este comando irá apresentar algumas perguntas na tela do seu terminal.
Primeiro, indique se deseja que os tokens de autenticação sejam baseados no tempo.
Os tokens de autenticação baseados em tempo expiram após um determinado período, que por padrão, é após 30 segundos. Depois deste período, um novo conjunto de tokens é gerado. Esses tokens são considerados mais seguros do que tokens não baseados em tempo e, portanto, digite 'y' para sim e pressione ENTER.
A seguir, um código QR será exibido no terminal conforme mostrado abaixo e logo abaixo dele, algumas informações que incluem:
- Chave secreta
- Código de verificação
- Códigos de risco de emergência
Você precisa salvar essas informações para referência futura. Os códigos de emergência são extremamente úteis caso você perca seu dispositivo autenticador.
Inicie o aplicativo Google Authenticator no smartphone e selecione ‘Scan QR code’ para digitalizar o código QR apresentado. Após scanear o QR code, o app vai mostrar um código que você deve preencher no terminal. No meu caso foi "636280".
Depois de entrar com o codigo, mais duas perguntas são feitas, como indicado na figura acima.
Selecione 'y' para atualizar o arquivo do autenticador Google em sua pasta pessoal e restrinja o login a apenas um log a cada 30 segundos para evitar ataques que possam surgir devido a ataques man-in-the-middle. Portanto selecione 'y' também para esta opção.
No próximo prompt (mostrado na figura acima), selecione 'n' para proibir a extensão da duração que aborda a diferença de tempo entre o servidor e o cliente. Esta é a opção mais segura, a menos que você esteja enfrentando desafios de má sincronização de horário.Caso contrário, você pode setar como "y" para permitir alguma defasagem de tempo.
Finalmente, responda a última pergunta sobre a habilite a limitação de taxa para apenas 3 tentativas de login.
Neste ponto, a instalação e configuração do recurso de 2FA está concluída. Se você tanter executar qualquer comando sudo, será solicitado um código de verificação que pode ser obtido no aplicativo Google Authenticator. O login na tela também é afetado. Além do nome de usuário e senha, agora aparece um requisição adicional (mostrada abaixo) que deve ser preenchida com o código do app.