Mateus Müller

O carinha do Linux

28 dez. 2017

Autenticação de dois fatores com Google Authenticator no Linux

Segurança é sempre importante para as empresas, bem como para nós que utilizamos Linux em casa. Existem diversas formas de se proteger contra ataques e elevar um pouco as camadas de segurança do seu sistema.

O Google criou um carinha chamado Google Authenticator que, além de proteger a sua conta de e-mail, pode ser configurado para colocar uma camada a mais na hora de iniciar uma sessão como root.

Vamos aprender a configurar a autenticação de dois fatores com Google Authenticator no Linux!

Como instalar Google Authenticator no Linux?

Abra o terminal como root e digite o seguinte comando:

$ apt-get install libpam-google-authenticator

E prontinho, está instalado.

Como configurar o Google Authenticator no Linux?

Vamos editar o arquivo /etc/pam.d/common-auth:

Procure pela linha: auth  [success=1 default=ignore]          pam_unix.so nullok_secure

Acima desta linha, coloque esta:

auth required pam_google_authenticator.so

Autenticação de dois fatores com Google Authenticator no Linux
Autenticação de dois fatores com Google Authenticator no Linux

Pressione ESC e depois :wq!, para salvar o arquivo.

Agora, no seu Android ou iPhone, realize o download do aplicativo Google Authenticator.

Depois de instalado o aplicativo, volte para o terminal e vamos gerar o token para o usuário que você deseja. No meu caso, o usuário mateus é o único usuário que pode logar como sudo, então é para ele que vou gerar o token.

$ google-authenticator

Algumas perguntas serão mostradas:

  • Do you want authentication tokens to be time-based (y/n)? Y

Isso significa que a senha irá expirar de tempos em tempos, o que aumenta a segurança.

Logo depois, um QR Code gigante será mostrado no terminal. No aplicativo você pode usar a opção Ler código de barras e apontar para este QR Code e ele já estará configurado:

Autenticação de dois fatores com Google Authenticator no Linux
Autenticação de dois fatores com Google Authenticator no Linux

Ou você pode pegar aquela chave gigante (Your new secret key is: …) e digitar manualmente no aplicativo que também vai funcionar:

Autenticação de dois fatores com Google Authenticator no Linux
Autenticação de dois fatores com Google Authenticator no Linux
Autenticação de dois fatores com Google Authenticator no Linux
Autenticação de dois fatores com Google Authenticator no Linux
Autenticação de dois fatores com Google Authenticator no Linux
Autenticação de dois fatores com Google Authenticator no Linux
  • Do you want me to update your “/home/mateus/.google_authenticator” file? (y/n)_ Y

Coloque SIM para que o arquivo no seu /home seja atualizado automaticamente.

  • Do you want to disallow multiple uses of the same authentication token? This restricts you to one login about every 30s, but it increases your chances to notice or even prevent man-in-the-middle attacks (y/n) Y

Essa opção vai habilitar a mudança de código a cada 30 segundos.

  • By default, a new token is generated every 30 seconds by the mobile app. In order to compensate for possible time-skew between the client and the server, we allow an extra token before and after the current time. This allows for a time skew of up to 30 seconds between authentication server and client. If you experience problems with poor time synchronization, you can increase the window from its default size of 3 permitted codes (one previous code, the current code, the next code) to 17 permitted codes (the 8 previous codes, the current code, and the 8 next codes). This will permit for a time skew of up to 4 minutes between client and server. Do you want to do so? (y/n) Y

Esta opção vai habilitar 8 códigos em uma janela de 4 minutos. Se colocar não, vai ser permitido somente 3 códigos em uma janela de 1:30min.

  • If the computer that you are logging into isn’t hardened against brute-force login attempts, you can enable rate-limiting for the authentication module. By default, this limits attackers to no more than 3 login attempts every 30s. Do you want to enable rate-limiting? (y/n) Y

Evita os ataques de brute-force bloqueando se houverem muitas tentativas em pouco tempo.

E prontinho, está tudo configurado!

$ sudo su
Autenticação de dois fatores com Google Authenticator no Linux
Autenticação de dois fatores com Google Authenticator no Linux

Agora só será permitido logar como root se estiver com o celular em mãos e gerar o código do Google Authenticator!

Obs.: Se você quiser remover essa configuração, basta apagar a linha que adicionamos no /etc/pam.d/common-auth!

Se tiver alguma dúvida ou sugestão de conteúdo, por favor, comente!

Comentários Disqus