Como entrar no seu desktop Linux com o Google Authenticator
Para segurança adicional, você pode exigir um token de autenticação baseado em tempo, bem como uma senha para efetuar login no seu PC com Linux. Esta solução usa o Google Authenticator e outros aplicativos TOTP.
Este processo foi executado no Ubuntu 14.04 com o desktop padrão Unity 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 requer o aplicativo Google Authenticator, mas funciona com qualquer aplicativo compatível que implemente o esquema de autenticação TOTP, incluindo Authy.
Instalar o Google Authenticator PAM
Assim, ao configurar isso para o acesso SSH, primeiro precisaremos 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 instala o libpam-google-authenticator
Outras distribuições Linux devem ter esse pacote disponível para fácil instalação - abra os repositórios de software da sua distribuição Linux e faça uma busca por ele. Na pior das hipóteses, você pode encontrar o código-fonte para o módulo PAM no GitHub e compilá-lo você mesmo.
Como ressaltamos antes, 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, efetue login como sua conta de usuário em 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 de usuário atual com as informações do Google Authenticator.
Você também será conduzido pelo processo de obter o código de verificação de dois fatores em um Google Authenticator ou em um aplicativo TOTP semelhante em seu smartphone. Seu sistema pode gerar um código QR que você pode digitalizar, ou você pode digitá-lo manualmente.
Certifique-se de anotar seus códigos de emergência, que você pode usar para fazer login se perder o telefone.
Passar por este processo para cada conta de usuário que usa seu computador. Por exemplo, se você for a única pessoa que usa seu computador, basta fazer isso uma vez em sua conta de usuário normal. Se você tiver outra pessoa que usa seu computador, convém que ela faça login em sua própria conta e gere um código de dois fatores apropriado para a própria conta, para que ele possa fazer login.
Ativar Autenticação
Aqui é onde as coisas ficam um pouco secas. Quando explicamos como habilitar dois fatores para logins SSH, exigimos apenas para logins SSH. Isso garantiu que você ainda poderia fazer login localmente se perdesse seu aplicativo de autenticação ou se algo desse errado.
Como estaremos habilitando 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 dá uma escotilha de escape 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 facilmente alternar 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.
Aqui está 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.)
Adicione a seguinte linha ao final do arquivo e salve-a:
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, eles terão que inserir um código de tempo-baesd - caso contrário eles não irão. Remova o "nullok" e as contas de usuário que não configuraram um código do Google Authenticator não conseguirão fazer login graficamente.
Na próxima vez em que um usuário fizer login graficamente, será solicitada a senha e, em seguida, o código de verificação atual será exibido no smartphone. Se eles não inserirem o código de verificação, eles não poderão fazer login.
O processo deve ser bastante semelhante para outras distribuições e desktops do Linux, já que os gerenciadores de sessão de desktop mais comuns do Linux usam o PAM. Você provavelmente terá que editar um arquivo diferente com algo semelhante para ativar o módulo PAM apropriado.
Se você usar criptografia de diretório base
Versões mais antigas do Ubuntu ofereciam uma opção fácil de "criptografia de pasta doméstica" que criptografava todo o seu diretório inicial 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 um formato não criptografado antes de efetuar login. Consulte o README para saber mais 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 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.
Você também pode forçar o Google Authenticator a ser necessário para outros tipos de logins - potencialmente até mesmo todos os logins do sistema - adicionando a linha "auth required pam_google_authenticator.so" a outros arquivos de configuração do PAM. Tenha cuidado se você fizer isso. E lembre-se, você pode querer adicionar "nullok" para que os usuários que não passaram pelo processo de configuração ainda possam fazer login.
Mais documentação sobre como usar e configurar este módulo PAM pode ser encontrada no arquivo README do software no GitHub.