Autenticação por 2 Fatores

Postado originalmente no Dicas-L
Autor: Paulo Kretcheu

Não sei se todos conhecem e/ou usam algum sistema que utilize autenticação por 2 fatores, eu tenho usado há algum tempo para a minha conta no gmail.

Funciona assim:

Os 2 fatores são

Uma coisa que você sabe: sua senha.
Uma coisa que você tem: seu celular.
Muito bem, eu configurei minha conta no Google para usar isso, lá você pode definir se quer receber um sms com um código ou usar um aplicativo para gerá-lo. Eu uso a segunda opção, pois instalei no meu Android o aplicativo para isso: Google Authenticator Há versões para outros sistemas móveis.

Esse código vale por um período pequeno de tempo, algo em torno de 1 minuto por padrão.

Então para logar na sua conta, por exemplo numa máquina que não é a sua, você irá digitar sua senha e depois o código que recebeu. Portanto mesmo que alguém tenha sua senha, vai precisar também do seu celular para saber o código, fica BEM mais difícil né!

Hoje usando meu velho e bom aptitude, vi que no Debian tem um pacote, nos repositórios oficiais, para usar o PAM com o Google Authenticator. Fiquei super interessado e comecei a fazer os testes.

Resumindo, para logar no meu servidor via ssh também estou usando autenticação por 2 fatores, a senha e o código.

Como fazer isso no Debian? É bem fácil!!

# aptitude install libpam-google-authenticator

No arquivo /etc/pam.d/sshd colocar logo no começo a linha:

auth required pam_google_authenticator.so

No arquivo /etc/ssh/sshd_config deve ter a linha:

ChallengeResponseAuthentication yes

Com seu usuário rode:

google-authenticator

Isso irá gerar uma chave, códigos de reserva e um arquivo no seu “home”, além de uma url para poder cadastrar no aplicativo do Android.

Basta reiniciar o serviço ssh

# /etc/init.d/ssh restart

Pronto, agora quando tento logar no ssh recebo a mensagem:

Verification code: XXXXXX
Password: XXXXXX

Cadastrei no meu Android e pronto!

Feito, sshd rodando com autenticação por 2 fatores.

Algumas dúvidas e algumas respostas:

  • Dá para fazer isso com outros serviços de autenticação também, sem ser o do Google?
    Sim, mas ainda não testei.
  • Dá para usar no gdm?
    Sim e em qualquer coisa que use PAM.
  • Dá para configurar para usar localmente sem os 2 fatores?
    Sim, mas também não fiz ainda.
  • O Google vai ficar sabendo quando você loga!
    Não! Não precisa de conexão a internet.
  • E se perder o celular?
    Tem os códigos de reserva. E a máquina também né! Acesso físico=sem segurança.
  • Se usar o home criptografado, também funciona?
    Eu li que sim, mas ainda não testei.

    Alguns links que podem ajudar:
    Google Authenticator
    Two Factor SSH with Google Authenticator

    Deixe uma resposta

    O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *