Acesso via SSH com autenticação por 2 fatores (com Google Authenticator) PDF Imprimir E-mail
Escrito por Paulo Kretcheu   
Ter, 17 de Julho de 2012 16:54

Este artigo, publicado na newsletter Dicas-L (parabéns, Rubens Queiroz, pelo trabalho fantástico), ensina a configurar o acesso a um servidor Linux via SSH utilizando uma verificação adicional de segurança, além da senha do usuário. Para isso, é preciso instalar o aplicativo Google Authenticator em seu smartphone Android, iPhone ou Blackberry. O resultado é uma solução de baixíssimo custo para reforçar a segurança no acesso remoto a seus servidores. Agradeço ao autor, Paulo Kretcheu, pelo artigo.

 


 

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


1. Uma coisa que você sabe: sua senha;

2. 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ão?


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 [ou Ubuntu ou LinuxMint]? É bem fácil!!

  # aptitude install libpam-google-authenticator

[Nota do editor: pode-se também utilizar "sudo apt-get install libpam-google-authenticator", com os mesmos resultados.]

 

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?
R: Sim, mas ainda não testei.


Dá para usar no gdm?
R: Sim e em qualquer coisa que use PAM.


Dá para configurar para usar localmente sem os 2 fatores?
R: Sim, mas também não fiz ainda.  


O Google vai ficar sabendo quando você loga!
R: Não! Não precisa de conexão a internet.


E se perder o celular?
R: Tem os códigos de reserva. E a máquina também, certo? Afinal, acesso físico=sem segurança.


Se usar o home criptografado, também funciona?
R: Eu li que sim, mas ainda não testei.

 

Alguns links que podem ajudar:


 

[]'s

 

kretcheu

 

 

 



 

Fonte: http://www.dicas-l.com.br/arquivo/autenticacao_por_2_fatores.php


Última atualização em Ter, 17 de Julho de 2012 17:28