Para segurança adicional, você pode exigir um token de autenticação baseado em tempo bem como uma senha para entrar no seu PC Linux. Esta solução usa o Google Authenticator e outros aplicativos TOTP.
Este processo foi realizado no Ubuntu 14.04 com o padrão Desktop Unity e 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 este 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 .
Instale o PAM do Google Authenticator
RELACIONADOS: Como proteger o SSH com a autenticação de dois fatores do Google Authenticator
Como ao configurar isso para acesso SSH, primeiro precisamos instalar o software PAM ("módulo de autenticação conectável") apropriado. PAM é um sistema que nos permite conectar diferentes tipos de métodos de autenticação em um sistema Linux e exigi-los.
No Ubuntu, o comando a seguir instalará o PAM do Google Authenticator. Abra uma janela do Terminal, digite o seguinte comando, pressione Enter e forneça sua senha. O sistema fará o download do PAM dos repositórios de software de sua distribuição Linux e o instalará:
sudo apt-get install libpam-google-authenticator
Outras distribuições Linux também devem ter este 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 do módulo PAM no GitHub e compile você mesmo.
Como apontamos antes, essa solução não depende de “ligar 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ê precisará criar uma chave de autenticação secreta e inseri-la no aplicativo Google Authenticator (ou um aplicativo semelhante) em seu telefone. Primeiro, faça login como sua conta de usuário no sistema Linux. Abra uma janela de terminal e execute o google-autenticador 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.
Você também aprenderá o processo de obtenção do código de verificação de dois fatores em um Google Authenticator ou aplicativo TOTP semelhante em seu smartphone. Seu sistema pode gerar um código QR que você pode escanear ou pode digitá-lo manualmente.
Certifique-se de anotar seus códigos de rascunho de emergência, que você pode usar para fazer login se perder seu telefone.
Passe por este processo para cada conta de usuário que usa seu computador. Por exemplo, se você é a única pessoa que usa seu computador, você pode fazer isso apenas uma vez em sua conta de usuário normal. Se você tem outra pessoa que usa seu computador, peça que ela faça login em sua própria conta e gere um código de dois fatores apropriado para sua própria conta, de modo que possa fazer login.
Ativar autenticação
É aqui que as coisas ficam um pouco complicadas. Quando explicamos como habilitar dois fatores para logins SSH, exigimos isso 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 vamos habilitar a autenticação de dois fatores para logins locais, existem problemas potenciais aqui. Se algo der errado, você não conseguirá fazer login. Tendo isso em mente, iremos orientá-lo como habilitar isso apenas para logins gráficos. Isso dá a você uma saída de emergência, se necessário.
Ative 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 no prompt de texto. Isso significa que você pode facilmente alternar para um terminal virtual, fazer login nele e reverter suas alterações para que o Gogole Authenciator não seja necessário se você tiver um problema.
Claro, isso abre uma brecha 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 no Ubuntu, que usa o gerenciador de login LightDM. Abra o arquivo LightDM para edição com um comando como o seguinte:
sudo gedit /etc/pam.d/lightdm
(Lembre-se de que essas etapas específicas só funcionarão se a distribuição do Linux e a área de trabalho usarem o gerenciador de login LightDM.)
Adicione a seguinte linha ao final do arquivo e salve-o:
auth required pam_google_authenticator.so nullok
O bit “nullok” no final informa ao sistema para permitir que um usuário faça login, mesmo que ele não tenha executado o comando google-authenticator para configurar a autenticação de dois fatores. Se eles configuraram, eles terão que inserir um código baseado no tempo - caso contrário, não o farão. Remova o “nullok” e as contas de usuário que não configuraram um código do Google Authenticator simplesmente não conseguirão fazer login graficamente.
Na próxima vez que um usuário fizer login graficamente, sua senha será solicitada e o código de verificação atual exibido em seu telefone será solicitado. Se eles não inserirem o código de verificação, não terão permissão para fazer login.
O processo deve ser bastante semelhante para outras distribuições e desktops Linux, já que a maioria dos gerenciadores de sessão de desktop Linux comuns usam PAM. Provavelmente, você só terá que editar um arquivo diferente com algo semelhante para ativar o módulo PAM apropriado.
Se você usar criptografia de diretório pessoal
Versões mais antigas do Ubuntu ofereciam um fácil Opção de “criptografia de pasta pessoal” que criptografou todo o seu diretório inicial até você inserir sua senha. Especificamente, ele usa ecryptfs. No entanto, como o software PAM depende de um arquivo Google Authenticator armazenado em seu diretório inicial por padrão, a criptografia interfere na leitura do arquivo pelo PAM, a menos que você certifique-se de que ele esteja disponível de forma não criptografada para o sistema antes de fazer login. Consulte o README para obter mais informações sobre como evitar esse problema, se ainda estiver usando as opções obsoletas de criptografia de diretório inicial.
Versões modernas do Ubuntu oferecem criptografia de disco completo em vez disso, o que funcionará bem com as opções acima. Você não precisa fazer nada de especial
Socorro, quebrou!
Como acabamos de habilitar isso para logins gráficos, deve ser fácil desabilitá-lo se causar um problema. Pressione uma combinação de teclas como Ctrl + Alt + F2 para acessar um terminal virtual e faça 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 de terminal. Usar nosso guia para Nano para remover a linha e salvar o arquivo, e você poderá fazer o login normalmente novamente.
Você também pode forçar o Google Authenticator a ser exigido 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 PAM. Tenha cuidado ao fazer 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 em o arquivo README do software no GitHub .