it-swarm-pt.tech

Como posso usar um gerador de senha para autenticação de logins remotos?

Gostaria de reforçar a autenticação dos meus logins SSH adicionando outro fator: um dispositivo gerador de senha, ou um aplicativo de geração de senha no meu celular. As únicas opções óbvias na configuração padrão são uma senha fixa e um par de chaves. Como posso fazer isso?

(Se eu usar uma senha e um gerador de senhas, isso fornecerá autenticação de dois fatores (2FA): a senha é “o que eu sei” e a senha é “o que eu tenho”.)

55
Jorge Castro

Uma maneira de fazer isso é com uma ferramenta fornecida pelo Google chamada Google Authenticator .

  1. Instalar libpam-google-authenticatorInstall libpam-google-authenticator

    • ou apenas Sudo apt-get install libpam-google-authenticator
  2. Edite /etc/pam.d/sshd para incluir o módulo:

    • sudoedit /etc/pam.d/sshd
    • e então inclua esta linha na parte superior do arquivo e salve:

      auth required pam_google_authenticator.so
      
  3. Edite seu arquivo de configuração SSH para ativar o desafio:

    • sudoedit /etc/ssh/sshd_config e, em seguida, altere a autenticação de resposta de:

      ChallengeResponseAuthentication no 
      

      para

      ChallengeResponseAuthentication yes
      

      e salve o arquivo.

  4. Sudo restart ssh para reiniciar o SSH

  5. Executar google-authenticator

    • Isto lhe dará sua chave secreta, código de verificação e códigos de emergência. Ele também fará algumas perguntas sobre limitação de taxa.

Aplicações móveis:

Você precisará de um desses para receber o código de autenticação em outro dispositivo.

Relacionado e útil:

Observe que combinar uma senha com senhas de uso único é a autenticação de dois fatores: ela combina “o que você sabe” (uma senha) com “o que você tem” (o dispositivo gerador de senha). Por outro lado, se você combinar senhas de uso único com um par de chaves SSH, é tudo sobre "o que você tem". Quando dois fatores de autenticação são do mesmo tipo, você não possui autenticação de dois fatores; às vezes isso é chamado de “autenticação de um fator e meio”.

49
Jorge Castro

O Google Authenticator é adequado para os seus servidores pessoais, mas você pode descobrir que não combina bem com a infraestrutura de identidade existente. Se você quiser explorar outras opções, pense em usar o RADIUS como um protocolo de autenticação e o plugin pam-radius. Todos os sistemas de autenticação de dois fatores orientados para a empresa suportam raio. Nós escrevemos um documento sobre como adicionar WiKID autenticação de dois fatores via pam-radius para o Ubunt .

Usar radius permite que você conecte outros sistemas além do SSH ao mesmo servidor de autenticação. Você também pode rotear solicitações de autenticação por meio do freeradius para o LDAP e, em seguida, para o seu servidor 2FA para separar a autorização da autenticação. Você pode fazer o mesmo com o AD btw.

12
nowen

Peço a todos que coloquem a seguinte linha na parte superior e não na parte inferior de /etc/pam.d/sshd conforme descrito anteriormente (agora corrigido):

auth required pam_google_authenticator.so

Caso contrário, seu sistema permanecerá aberto a ataques de força bruta em sua senha, comprometendo a primeira parte da autenticação de dois fatores: sua senha.

Você será solicitado primeiro pelo seu código de verificação e, em seguida, pela sua senha (independentemente de o código estar correto). Se um deles estiver errado, você precisará digitar os dois novamente. Você pode configurá-lo ao contrário, mas é uma mudança um pouco mais difícil de descrever na configuração sshd do ubuntu (15.04) padrão atual.

Para detalhes por que é necessário, verifique este problema:

https://github.com/google/google-authenticator/issues/514

1
Maarten