Pesquisa de site

Como usar a autenticação de dois fatores com Ubuntu


Com o tempo, a autenticação tradicional de nome de usuário e senha provou ser inadequada para fornecer segurança robusta a aplicativos e sistemas. Nomes de usuário e senhas podem ser facilmente quebrados usando uma infinidade de ferramentas de hacking, deixando seu sistema vulnerável a violações. Por esse motivo, qualquer empresa ou entidade que leve a segurança a sério precisa implementar a autenticação de 2 fatores.

Coloquialmente conhecida como 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.

Hoje em dia, várias empresas como Google, Facebook, Twitter e AWS, para mencionar algumas, oferecem aos usuários a escolha de configurar MFA para proteger ainda mais suas contas.

Neste guia, demonstramos como você pode usar a autenticação de dois fatores com o Ubuntu.

Etapa 1: instale o pacote PAM do Google

Primeiro, instale o pacote Google PAM. PAM, uma abreviatura de Pluggable Authentication Module, é um mecanismo que fornece uma camada extra de autenticação na plataforma Linux.

O pacote está hospedado no repositório Ubuntu, então prossiga e use o comando apt para instalá-lo da seguinte forma:

sudo apt install libpam-google-authenticator

Quando solicitado, pressione 'Y' e pressione ENTER para continuar com a instalação.

Etapa 2: instale o aplicativo Google Authenticator em seu smartphone

Além disso, você precisa instalar o aplicativo Google Authenticator em seu tablet ou smartphone. O aplicativo apresentará um código OTP de 6 dígitos que é renovado automaticamente a cada 30 segundos.

Etapa 3: configurar o Google PAM no Ubuntu

Com o aplicativo Google Authenticator instalado, prosseguiremos e configuraremos o pacote Google PAM no Ubuntu modificando o /etc/pam.d/common-auth< arquivo conforme mostrado.

sudo vim /etc/pam.d/common-auth

Anexe a linha abaixo ao arquivo conforme indicado.

auth required pam_google_authenticator.so

Salve o arquivo e saia.

Agora, execute o comando abaixo para inicializar o PAM.

google-authenticator

Isso irá evocar algumas perguntas na tela do seu terminal. Primeiro, você será perguntado se deseja que os tokens de autenticação sejam baseados no tempo.

Os tokens de autenticação baseada em tempo expiram após um determinado período. Por padrão, isso ocorre após 30 segundos, após os quais 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 serão exibidas algumas informações. As informações exibidas incluem:

  • Chave secreta
  • Código de verificação
  • Códigos de risco de emergência

Você precisa salvar essas informações em um cofre para referência futura. Os códigos de emergência são extremamente úteis caso você perca seu dispositivo autenticador. Caso algo aconteça com o seu dispositivo de autenticação, use os códigos.

Inicie o aplicativo Google Authenticator em seu dispositivo inteligente e selecione ‘Ler código QR’ para ler o código QR apresentado.

NOTA: Você precisa maximizar a janela do terminal para escanear todo o código QR. Depois que o código QR for digitalizado, um OTP de seis dígitos que muda a cada 30 segundos será exibido no aplicativo.

Depois disso, selecione 'y' para atualizar o arquivo do autenticador Google em sua pasta pessoal.

No próximo prompt, restrinja o login a apenas um login a cada 30 segundos para evitar ataques que possam surgir devido a ataques man-in-the-middle. Então selecione 'y'

No próximo prompt, 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.

E, finalmente, ative a limitação de taxa para apenas 3 tentativas de login.

Neste ponto, concluímos a implementação do recurso de autenticação de dois fatores. Na verdade, se você executar qualquer comando sudo, será solicitado um código de verificação que pode ser obtido no aplicativo Google Authenticator.

Você pode verificar isso reiniciando e, quando chegar à tela de login, será solicitado que você forneça seu código de verificação.

Depois de fornecer seu código do aplicativo Google Authenticator, basta fornecer sua senha para acessar seu sistema.

Etapa 4: integrar o SSH ao Google Authenticator

Se você pretende usar SSH com o módulo PAM do Google, você precisa integrar os dois. Existem duas maneiras de conseguir isso.

Para autenticação de senha SSH

Para ativar a autenticação por senha SSH para um usuário normal, primeiro abra o arquivo de configuração SSH padrão.

sudo vim /etc/ssh/sshd_config

E defina os seguintes atributos como ‘sim’ conforme mostrado

Para o usuário root, defina o atributo ‘PermitRootLogin‘ como 'yes'.

PermitRootLogin yes

Salve o arquivo e saia.

Em seguida, modifique a regra PAM para SSH

sudo vim /etc/pam.d/sshd

Em seguida, anexe a seguinte linha

auth   required   pam_google_authenticator.so

Por último, reinicie o serviço SSH para que as alterações tenham efeito.

sudo systemctl restart ssh

No exemplo abaixo, estamos fazendo login no sistema Ubuntu a partir do cliente Putty.

Para autenticação de chave pública SSH

Se você estiver usando autenticação de chave pública, repita as etapas acima e adicione a linha mostrada na parte inferior do arquivo /etc/ssh/sshd_config.

AuthenticationMethods publickey,keyboard-interactive

Mais uma vez, edite a regra PAM para o daemon SSH.

sudo vim /etc/pam.d/sshd

Em seguida, adicione a seguinte linha.

auth   required   pam_google_authenticator.so

Salve o arquivo e reinicie o serviço SSH como vimos anteriormente.

sudo systemctl restart ssh

Desative a autenticação de dois fatores no Ubuntu

Caso você perca seu dispositivo de autenticação ou sua chave secreta, não enlouqueça. Você pode facilmente desativar a camada de autenticação 2FA e voltar ao seu método simples de login com nome de usuário/senha.

Primeiro, reinicie o sistema e pressione 'e' na primeira entrada do GRUB.

Role e localize a linha que começa com linux e termina com quiet splash $vt_handoff. Anexe a linha systemd.unit=rescue.target e pressione ctrl+x para entrar no modo de recuperação

Depois de obter o shell, forneça a senha de root e pressione ENTER.

Em seguida, prossiga e exclua o arquivo .google-authenticator em seu diretório inicial da seguinte maneira. Certifique-se de substituir o nome de usuário pelo seu próprio nome de usuário.


rm /home/username/.google_authenticator

Em seguida, edite o arquivo /etc/pam.d/common-auth.


$ vim /etc/pam.d/common-auth

Comente ou exclua a seguinte linha:


auth required pam_google_authenticator.so

Salve o arquivo e reinicie o sistema. Na tela de login, você só precisará fornecer seu nome de usuário e senha para autenticação.

E isso nos leva ao final deste artigo. Teremos o maior prazer em saber como foi.