Como posso proteger ainda mais meu sistema usando a autenticação de dois fatores?

16

O título praticamente diz isso. Tenho ouvido mais sobre autenticação de dois fatores, senhas únicas, tokens rígidos e outros recursos de segurança aprimorados. Com a diminuição da segurança de usar apenas uma senha, quero saber como posso melhorar minha segurança no Ubuntu. Estou usando o 14.04 LTS com Unity.


fonte

Respostas:

30

Você pode usar o PAM (Pluggable Authentication Module) de código aberto criado pelo Google, conhecido como Google Authenticator . Este módulo está disponível nos repositórios padrão, bem como no GitHub, para que você possa construir a partir do código-fonte. Juntamente com o Android, iOS ou Blackberry App com o mesmo nome, ele cria códigos com base no tempo e sensíveis ao tempo para autenticação, juntamente com sua senha. Por ser um módulo PAM, ele pode ser instalado em praticamente qualquer lugar . Vamos começar!

Instalando

Para começar, você pode instalar o PAM com o seguinte:

sudo apt-get install libpam-google-authenticator

Simples!

Configurando:

Após a instalação, você também desejará instalar o aplicativo móvel correspondente para Android, iOS ou Blackberry (dependendo da plataforma móvel). Cada um é inútil sem o outro. Depois de ter o aplicativo necessário para o seu dispositivo móvel, execute o seguinte em um terminal:

google-authenticator

Isso começará com algumas perguntas. A primeira é a única à qual você deve responder "Sim" e pergunta se você deseja que os códigos sejam baseados no tempo. Depois disso, leia cada pergunta e faça a escolha que fizer mais sentido para você.

Ao concluir a configuração inicial, você verá um código QR muito grande no seu terminal, além de outras informações. A linha que diz "Sua nova chave secreta é:" é uma linha muito necessária se você não quiser usar o código QR para emparelhar seu dispositivo, portanto, não feche esta janela até que você esteja configurado! Os "códigos de rascunho" que você fornece também são importantes, pois eles são o que você usará para fazer login se você perder o seu dispositivo móvel. Escreva-as e guarde-as em algum lugar seguro.

Agora, no seu dispositivo móvel, abra o aplicativo Google Authenticator e selecione "Configurar conta". Você pode digitalizar o código QR gerado ou selecionar "Usar chave fornecida". Se você escanear o código QR, tudo será salvo automaticamente em uma conta chamada "your_user @ your_host". No entanto, se você selecionar "Usar chave fornecida", precisará inserir um nome, chave e tipo de token manualmente. O nome pode ser o que você desejar. A chave seria a chave secreta gerada anteriormente. O tipo seria o padrão baseado em tempo. Depois de configurá-lo, você verá a conta no painel principal do aplicativo Google Authenticator, além de um cronômetro em forma de círculo ao lado. Esse temporizador se esgota a cada 30 segundos e um novo código é gerado.

Habilitando isso!

Aí vem a mágica. Por ser um módulo PAM, ele pode ser usado em vários locais. Vou seguir adicionando autenticação a sudosolicitações, logins SSH e logon lightdm. No entanto, depois de ler este tutorial, você poderá ativá-lo em outro lugar com base nas mesmas técnicas.

SSH

Estou fazendo isso primeiro porque há uma etapa extra. A primeira coisa que você precisa fazer é editar seu arquivo de configuração SSH:

gksudo gedit /etc/ssh/sshd_config

Procure a linha que diz:

ChallengeResponseAuthentication no

e mude o "não" para um "sim".

Agora, você precisa editar o módulo PAM para ssh:

gksudo gedit /etc/pam.d/sshd

No final deste arquivo, adicione a seguinte linha:

auth required pam_google_authenticator.so nullok

O argumento "nullok" informa ao sistema para não solicitar um código de verificação se um usuário não configurou a autenticação de dois fatores. Após essa edição, vá em frente e reinicie o serviço ssh:

sudo service ssh restart

sudo solicitações de

Edite o arquivo PAM para sudo:

gksudo gedit /etc/pam.d/sudo

Adicione a seguinte linha no final:

auth required pam_google_authenticator.so nullok

Agora, cada sudosolicitação solicitará um código de verificação e uma senha.

LightDM (login na GUI)

Edite o arquivo PAM para LightDM:

gksudo gedit /etc/pam.d/lightdm

Adicione a seguinte linha no final:

auth required pam_google_authenticator.so nullok

É isso aí! Sempre que você fizer login pela GUI, ele solicitará um código de verificação após sua senha.

Logon em todo o sistema e TTY

Mesmo se você ativar os métodos acima, ele ainda não solicitará um código de verificação se você alternar para um TTY com CTRL+ ALT+ F#. Para corrigir isso, edite o common-autharquivo PAM:

gksudo gedit /etc/pam.d/common-auth

e adicione a seguinte linha até o final:

auth required pam_google_authenticator.so nullok

Nota: Como esse arquivo de autenticação comum está incluído em todos os outros arquivos de tipo de autenticação, é necessário remover as linhas necessárias de autenticação dos outros arquivos. Caso contrário, ele solicitará o código de verificação duas vezes e não permitirá o login depois.

Embrulhar

Como você pode ver, era muito fácil adicionar essa autenticação. Se você usar um gerenciador de exibição que não seja o LightDM, poderá facilmente mudar a linha do lightdm acima de acordo. Como seu dispositivo móvel e seu sistema já compartilharam essa chave secreta, eles sempre devem estar sincronizados. Não há interação com os servidores do Google ou qualquer outro recurso da Internet para esta configuração. Mesmo se os dois dispositivos estiverem completamente offline, os códigos de verificação que aparecem no seu aplicativo estarão corretos. Sempre que você precisar fazer login através de um dos métodos ativados, abra o aplicativo móvel e pegue o código de verificação atual.

Diverta-se!!

Justin
fonte
Comentando para notas posteriores. Bem escrito! +1 =)
Terrance
+1 - isso é muito legal e bem escrito.
Nathan Osman
11
E então o telefone decide que não tem mais energia e deseja desligar. :) +1
Rinzwind
Isso é o que servem os códigos de rascunho, @Rinzwind: D
Adicionado em instruções para ativar dois fatores no TTY.
1

O FreeOTP é uma alternativa de código aberto ao aplicativo Google Authenticator para Android no Google Play (cujo código atual não é de código aberto). O FreeOTP está disponível no F-Droid (e no Google Play ).

Mihai Capotă
fonte