Este processo foi executado no Ubuntu 14.04 com o desktop Unity padrão e o gerenciador de login LightDM, mas os princípios são os mesmos na maioria das distribuições e desktops Linux.
Anteriormente, mostramos a você como exigir o Google Authenticator para acesso remoto via SSH, e esse processo é semelhante. Isso não exige o aplicativo Google Authenticator, mas funciona com qualquer aplicativo compatível que implemente o esquema de autenticação TOTP, incluindo o Authy.
Instalar o Google Authenticator PAM
Ao configurar isso para acesso SSH, primeiro precisamos instalar o software PAM ("módulo de autenticação conectável") apropriado. O PAM é um sistema que nos permite conectar diferentes tipos de métodos de autenticação em um sistema Linux e requerê-los.
No Ubuntu, o comando a seguir instalará o Google Authenticator PAM. Abra uma janela do Terminal, digite o seguinte comando, pressione Enter e forneça sua senha. O sistema baixará o PAM dos repositórios de software da sua distribuição Linux e o instalará:
sudo apt-get install libpam-google-authenticator
Como apontamos anteriormente, essa solução não depende de "telefonar para casa" para os servidores do Google. Ele implementa o algoritmo TOTP padrão e pode ser usado mesmo quando seu computador não tem acesso à Internet.
Crie suas chaves de autenticação
Agora você precisa criar uma chave de autenticação secreta e inseri-la no aplicativo Google Authenticator (ou similar) no seu telefone. Primeiro, faça o login como sua conta de usuário no seu sistema Linux. Abra uma janela de terminal e execute o autenticador do google comando. Tipo y e siga as instruções aqui. Isso criará um arquivo especial no diretório da conta do usuário atual com as informações do Google Authenticator.
Certifique-se de anotar seus códigos de emergência, que você pode usar para fazer o login se perder seu telefone.
Ativar Autenticação
Aqui é onde as coisas ficam um pouco mais difíceis. Quando explicamos como habilitar dois fatores para logins SSH, exigimos apenas para logins SSH. Isso garantiu que você ainda pudesse fazer login localmente se perdesse o aplicativo de autenticação ou se algo desse errado.
Como ativaremos a autenticação de dois fatores para logins locais, há possíveis problemas aqui. Se algo der errado, você pode não conseguir fazer login. Tendo isso em mente, orientaremos você para isso apenas para logins gráficos. Isso lhe dará uma saída de emergência se você precisar.
Ativar o Google Authenticator para logins gráficos no Ubuntu
Você sempre pode habilitar a autenticação em duas etapas apenas para logins gráficos, ignorando o requisito ao efetuar login a partir do prompt de texto. Isso significa que você pode alternar facilmente para um terminal virtual, fazer login e reverter suas alterações para que o Gogole Authenciator não seja necessário se você tiver um problema.
Claro, isso abre um buraco no seu sistema de autenticação, mas um invasor com acesso físico ao seu sistema já pode explorá-lo de qualquer maneira. É por isso que a autenticação de dois fatores é particularmente eficaz para logins remotos via SSH.
Veja como fazer isso para o Ubuntu, que usa o gerenciador de login do LightDM. Abra o arquivo LightDM para edição com um comando como o seguinte:
sudo gedit /etc/pam.d/lightdm
(Lembre-se, essas etapas específicas só funcionarão se sua distribuição Linux e desktop usarem o gerenciador de login do LightDM.)
auth required pam_google_authenticator.so nullok
O bit "nullok" no final diz ao sistema para permitir que um usuário faça o login mesmo que não tenha executado o comando google-authenticator para configurar a autenticação de dois fatores. Se eles configurarem, precisarão inserir um código de tempo de duração. Caso contrário, eles não precisarão. Remova o "nullok" e as contas de usuário que não tiverem configurado um código do Google Authenticator não conseguirão fazer login graficamente.
Se você usar criptografia de diretório base
Versões mais antigas do Ubuntu ofereciam uma opção fácil de “criptografia de pastas domésticas” que criptografava todo o seu diretório pessoal até você digitar sua senha. Especificamente, isso usa o ecryptfs. No entanto, como o software PAM depende de um arquivo do Google Authenticator armazenado em seu diretório pessoal por padrão, a criptografia interfere com o PAM ao ler o arquivo, a menos que você garanta que ele esteja disponível em formato não criptografado antes de efetuar login. informações sobre como evitar esse problema se você ainda estiver usando as opções de criptografia de diretório inicial descontinuadas.
As versões modernas do Ubuntu oferecem criptografia de disco completo, o que funcionará bem com as opções acima. Você não precisa fazer nada de especial
Ajuda, quebrou!
Como acabamos de ativá-lo para logins gráficos, deve ser fácil desativá-lo se causar algum problema. Pressione uma combinação de teclas como Ctrl + Alt + F2 para acessar um terminal virtual e faça o login com seu nome de usuário e senha. Você pode então usar um comando como sudo nano /etc/pam.d/lightdm para abrir o arquivo para edição em um editor de texto do terminal. Use nosso guia para Nano para remover a linha e salvar o arquivo, e você poderá fazer login novamente normalmente.
Mais documentação sobre como usar e configurar este módulo PAM pode ser encontrada no arquivo README do software no GitHub.