como configurar a autenticação de dois fatores no Ubuntu para usuários do Ubuntu usando o autenticador do Google?

11

Como configurar a autenticação de dois fatores no Ubuntu para usuários do Ubuntu usando o autenticador do Google (também pode ser configurado para contas que não são do Google)?

Hrish
fonte

Respostas:

16

Nota: Depois de ativar a autenticação de dois fatores para um usuário e não definir o mesmo para root, você nunca poderá fazer login como root diretamente. Nesse caso, uma maneira de contornar é usar qualquer outro usuário sudo para o qual nós o configuramos e depois usá sudo su --lo para mudar para o usuário root.


Use as etapas abaixo para configurá-lo.

  1. Instale o pacote fornecido abaixo para instalar o autenticador do Google, que usaremos como um complemento com autenticação PAM:

    sudo apt-get install libpam-google-authenticator
    
  2. Agora edite /etc/pam.d/sshdesse arquivo e adicione o Google Authenticator conforme indicado abaixo:

    *sudo vim /etc/pam.d/sshd
    

    digite abaixo, no topo deste arquivo,

    auth required pam_google_authenticator.so
    
  3. Aqui, precisamos fazer alterações /etc/ssh/sshd_configpara garantir que o ssh use o Google Authenticator, dessa forma, garantimos que o ssh esteja usando a autenticação de dois fatores.

    vim /etc/ssh/sshd_config
    

    Neste arquivo, temos que encontrar ChallengeResponseAuthenticatione descomentar e / ou modificá-lo para parecer como abaixo (em resumo, defina-o como yes: P):

    ChallengeResponseAuthentication yes
    

    Autenticação extra ou GUI de 2 fatores, ignore isso e vá para a etapa 4: para habilitá-lo para login na GUI, edite /etc/pam.d/common-auth:

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

    e agora adicione isso auth required pam_google_authenticator.soacima da linha auth [success=1 default=ignore] pam_unix.so nullok_securee salve o arquivo.

  4. Agora mude para uma conta na qual você deseja configurá-la.
    ( Observação: sugiro criar pelo menos duas contas de superusuário no sistema além da conta raiz e configurá-la pelo menos para uma delas primeiro, mas não a conta raiz.)

    sudo su - testuser1
    
  5. Agora usaremos o comando abaixo para configurar a autenticação de dois fatores para isso testuser1:

    google-authenticator
    
  6. A execução deste comando fará a pergunta abaixo. (a resposta recomendada é Sim)

    Deseja que os tokens de autenticação sejam baseados em tempo (s / n) y

  7. Depois disso, ele mostrará o código QR e os códigos de risco de emergência e alguns outros detalhes. Coloque para fora deve parecer com a imagem abaixo:

    insira a descrição da imagem aqui

  8. Agora você precisa usar seu telefone Android / Apple / Blackberry para baixar e instalar o aplicativo Google Authenticator nos respectivos mercados, por exemplo, loja de jogos do Google. que irá gerar código para você fazer login.

    Abaixo estão a captura de tela do ícone do aplicativo e o aplicativo retirado do aplicativo Android phone.

    insira a descrição da imagem aqui insira a descrição da imagem aqui

  9. Inicie o aplicativo no seu telefone e digitalize o QR Code ou use a chave secreta e o código de verificação fornecidos abaixo do QR code no sistema, que você também pode ver na primeira captura de tela acima.

  10. Uma vez feito tudo isso, é muito importante anotar e salvar seus códigos de rascunho de emergência em um local seguro, pois esses são os códigos que podem ajudá-lo caso você seja bloqueado de alguma forma.

  11. Neste momento, você deve dar uma olhada na parte inferior da tela, onde está fazendo uma pergunta abaixo. (a resposta recomendada é Sim):

    Deseja que eu atualize seu arquivo "/home/testuser1/.google_authenticator" (s / n) y

  12. Novamente, ele fará mais uma pergunta e a resposta recomendada para a pergunta abaixo também é Sim:

    Deseja proibir vários usos do mesmo token de autenticação? Isso restringe você a um login a cada 30 anos, mas aumenta suas chances de perceber ou até impedir ataques de intermediários (s / n) s

  13. A próxima pergunta seria a seguinte, e a resposta recomendada é Não:

    Por padrão, os tokens são válidos por 30 segundos e, para compensar possíveis desvios de tempo entre o cliente e o servidor, permitimos um token extra antes e depois do horário atual. Se você tiver problemas com a sincronização de tempo ruim, poderá aumentar a janela do tamanho padrão de 1: 30min para cerca de 4min. Deseja fazer isso (s / n) n

  14. E a última pergunta seria conforme abaixo e a resposta recomendada é Sim:

    Se o computador em que você está efetuando login não estiver protegido contra tentativas de login de força bruta, você poderá ativar a limitação de taxa para o módulo de autenticação. Por padrão, isso limita os invasores a não mais que 3 tentativas de login a cada 30s. Deseja ativar o limite de taxa (s / n)?

  15. Agora mude a saída desta conta para voltar à conta raiz:

    exit
    
  16. Agora reinicie o serviço ssh

    service ssh restart
    

Agora, basta fazer uma sessão ssh para o usuário para o qual você configurou e ele primeiro solicitará um código de verificação que você pode digitar no seu celular e, em seguida, solicitará uma senha de usuário.

insira a descrição da imagem aqui

Isso é tudo o que é necessário para configurar a autenticação de dois fatores. Sinta-se à vontade para melhorar a resposta quando necessário e com licença pelo idioma não tão bom.

Hrish
fonte
Quando eu desinstalá-lo, ele deixa um comando I run problema cada vez com sudo: erro de autenticação PAM:: sudo Module é desconhecida
bagustris
@bagustris Você deve editar o arquivo "/etc/pam.d/common-auth" e remover "auth auth pam_google_authenticator.so" nesta entrada. Depois de desinstalá-lo.
Hrish
para editar o /etc/pam.d/common-auth, ele precisa do sudo. Como o sudo não está mais funcionando, preciso do SO ativo (ou, no meu caso, porque eu inicializo duas vezes com o Mac OS, posso editá-lo no OS X com o conjunto de permissões graváveis).
25516 bagustris
1
@ bagustris Você pode fazer isso entrando no modo de recuperação.
Hrish 26/05
1
Seria mais seguro não perder o acesso à máquina se na etapa 2 usarmos em auth optionalvez de auth required. Caso contrário, o login não será mais possível se a sessão travar e o processo não for concluído.
Pascal