Como configurar a autenticação SSH dois fatores no Ubuntu Linux com o Google Authenticator

como-configurar-a-autenticacao-ssh-dois-fatores-no-ubuntu-linux-com-o-google-authenticator

Você já pode ter a autenticação em duas etapas do Google no Ubuntu Linux, o pacote foi disponibilizado nos repositórios oficiais e você vai ver neste artigo, como configurar a autenticação SSH de dois fatores no Ubuntu Linux com o Google Authenticator.

Para quem nunca ouviu falar no Google Authenticator, ele aumenta  segurança do Ubuntu, e faz com que precise inserir duas informações seguras para logar no sistema, é bem parecido com aqueles tokens que encontramos nos bancos.

O Google Authenticator vai gerar uma senha única usando uma chave secreta compartilhada e a hora atual, o nome de usuário e senha que você cadastrou em seu Ubuntu vai ser solicitado normalmente, e após isso você deve inserir a senha única gerada pelo Google Authenticator.

Confira como configurar a autenticação SSH dois fatores no Ubuntu com o Google Authenticator

Vale lembrar que o Google Authenticator vai funcionar no Ubuntu e em suas derivações. Essa junção de dois fatores é opcional, não é obrigatório e você apenas vai reforçar a segurança do seu Ubuntu e geralmente essa opção é muito procurada por quem usa o Ubuntu ou derivados como servidor, mas, nada impede que caso você seja um usuário interessado pela área de segurança faça seus testes.

Agora, vamos às etapas da instalação e configuração do Google Authenticator no Ubuntu

Instalar e configurar o Autenticador do Google no servidor Ubuntu

Terminal
sudo apt install libpam-google-authenticator

Agora, execute o comando abaixo para que seja criado uma chave secreta que vai ficar armazenada na sua /home:

Terminal
google-authenticator

A aplicação vai perguntar se você quer criar tokens de autenticação baseado no tempo, responda sim com y, em seguida será gerado um código QR que você deve escanear usando o aplicativo do Google Authenticator, ele deve ser instalado em seu smartphone através da loja de aplicativos do seu sistema.

Após escanear o código, você verá um código de 6 dígitos em seu telefone, esse código dura apenas 30 segundos.

Você pode ver a chave secreta, o código de verificação e os códigos de risco de emergência na janela do terminal. Recomenda-se salvar essas informações em um local seguro para uso posterior.

Então você pode usar o y (sim) para responder todas as perguntas restantes. Isso irá atualizar o arquivo de configuração do Google Authenticator, desativar várias utilizações do mesmo token de autenticação, aumentar a janela de tempo e ativar a limitação de taxa para proteger contra tentativas de login usando força bruta.

Configure SSH para usar o Google Authenticator

Vamos editar o arquivo de configuração primeiro:

Terminal
sudo nano /etc/ssh/sshd_config

PAM significa módulo de autenticação plugável. Ele fornece uma maneira fácil de conectar o método de autenticação diferente ao seu sistema Linux. Para habilitar o Google Authenticator com SSH, a autenticação PAM e Challenge-Response deve ser habilitada. Então, encontre as duas linhas a seguir no arquivo e verifique se ambos estão configurados para sim.

UsePAM yes

ChallengeResponseAuthentication yes

Agora salve e feche o arquivo com as alterações que fizemos, e em seguida vamos reiniciar o serviço:

Terminal
sudo systemctl restart ssh

Agora, vamos editar o PAM:

Terminal
sudo nano /etc/pam.d/sshd

No arquivo do PAN adicione a seguinte informação:

Terminal
auth required pam_google_authenticator.so

Salve e feche o arquivo, agora já temos tudo configurado para que o Google Authenticator funcione de forma adequada.

Vamos testar se tudo esta funcionando

Agora, abra uma janela de terminal separada e tente efetuar login em seu servidor SSH. Não feche sua sessão SSH atual. Se algo der errado, você pode corrigi-lo em sua sessão SSH atual. Se tudo estiver configurado corretamente, será solicitado a inserir sua senha de usuário e a senha única.

Observe também que cada usuário em seu Ubuntu precisa executar o comando google-authenticator e verificar o código QR para usar a autenticação de dois fatores.

Código de Scratch de Emergência

Emergency Scratch Code é seu código de backup. Se você perder o seu telefone, pode inserir um dos cinco códigos de segurança de emergência em vez de uma senha única para completar a verificação em duas etapas. Observe que esses códigos são apenas para uso único, por isso guarde essa informações, a gente nunca sabe quando vai precisar.

Usando um segundo telefone

Se você tiver um segundo telefone, pode instalar o aplicativo Google Authenticator no seu segundo telefone e digitar manualmente a chave secreta. Isso é o mesmo que escanear o código QR.

Se quiser alterar a chave secreta, basta fazer login no Ubuntu e executar o comando google-authenticator novamente para atualizar o arquivo ~/.google_authenticator que foi criado inicialmente em nossa /home.