Login no Ambiente de Trabalho e Autenticação de Utilizadores Linux¶
Compatible Nitrokeys |
|||||||
|---|---|---|---|---|---|---|---|
✓ active |
✓ active |
⨯ inactive |
⨯ inactive |
✓ active |
⨯ inactive |
⨯ inactive |
✓ active |
Introdução¶
This guide will walk you through the configuration of Linux to use FIDO Universal 2nd Factor, i.e. FIDO U2F with libpam-u2f and Nitrokey FIDO2.
If you want to login to you computer using Nitrokey Pro 2, Nitrokey Storage 2 and Nitrokey Start you can visit the instructions available here.
Requisitos¶
Ubuntu 20.04 com o Gnome Display Manager.
Nitrokey FIDO2 configured following these instructions.
Instruções¶
Método GUI¶
No canto inferior esquerdo clique em*
Show Applicationse digite as seguintes configurações na barra de pesquisa:
Campa na barra direita para*
Users`
No canto esquerdo clique em*
Unlocke isso iria pedir a sua palavra-passe*
Select*
Administratore introduza o nome de utilizador e palavra-passe da sua escolha*
A partir do momento em que termine o passo 4 deve ser feito*
Método CLI¶
Criar um utilizador de reserva e dar-lhe privilégios de raiz*
Você pode fazer isso usando esses comandos:
$ sudo adduser <backup_user> $ sudo usermod -aG sudo <backup_user>
Caso prefira configurar o U2F para um único utilizador, e esteja bloqueado fora da sua sessão de utilizador, ainda poderá fazer o login com o
<backup_user>, e prosseguir com a manutenção.Aviso
O seguinte guia pode potencialmente bloqueá-lo para fora do seu computador. Você deve estar ciente desses riscos, pois é recomendável usar primeiro as instruções abaixo em um computador secundário, ou após um backup completo.
Poderá perder o acesso aos seus dados após configurar ` módulosPAM <https://www.man7.org/linux/man-pages/man8/pam.8.html>`__.
Configurar o*
rulespara reconhecer o Nitrokey FIDO2*Em
/etc/udev/rules.ddownload`x id="39"></x>`$ cd /etc/udev/rules.d/ $ sudo wget https://raw.githubusercontent.com/Nitrokey/nitrokey-udev-rules/main/41-nitrokey.rules
E reiniciar
udevserviço$ sudo systemctl restart udev
Install*
libpam-u2f`No Ubuntu 20.04 é possível baixar diretamente
libpam-u2fa partir dos repos oficiais$ sudo apt install libpam-u2f
Nota
Clique para mais opções
Alternativamente pode construir
libpam-u2fde Git.Para verificar se a biblioteca está devidamente instalada, digite o seguinte comando:
$ file /lib/x86_64-linux-gnu/security/pam_u2f.so
A Saída deve ser algo como o seguinte:
/lib/x86_64-linux-gnu/security/pam_u2f.so: \ ELF 64-bit LSB shared object, x86-64, version 1 (SYSV),\ dynamically linked, BuildID[sha1]=1d55e1b11a97be2038c6a139579f6c0d91caedb1, stripped
Preparar o Directório*
Crie
.config/Nitrokey/sob o seu diretório home$ mkdir ~/.config/Nitrokey
E ligue o seu Nitrokey FIDO2.
Uma vez terminada a preparação, podemos começar a configurar o computador para utilizar o Nitrokey FIDO2 para autenticação de segundo fator no login e
sudo.Gerar o ficheiro de configuração U2F*
Para gerar o arquivo de configuração vamos usar o
pamu2fcfgutilidade que vem com o`x id="95"></x>`. Por conveniência, escreveremos diretamente a saída do utilitário no arquivou2f_keyssob.config/Nitrokey`. Primeiro ligue o seu Nitrokey FIDO2 (se ainda não o fez), e introduza o seguinte comando:$ pamu2fcfg > ~/.config/Nitrokey/u2f_keys
Once you run the command above, you will need to touch the device while it flashes. Once done,
pamu2fcfgwill append its output theu2f_keysin the following format:<username>:Zx...mw,04...0a
Nota, a saída será muito mais longa, mas as partes sensíveis foram removidas aqui. Para maior segurança, e uma vez gerado o arquivo de configuração, vamos mover o diretório
.config/Nitrokeysob o diretório`x id="199"></x>com este comando:$ sudo mv ~/.config/Nitrokey /etc
Dica
O ficheiro em
.config/Nitrokey`deve ser nomeado`x id="52"></x>`É recomendável testar primeiro as instruções com um único utilizador. Para este fim o comando anterior toma a opção
-u, para especificar um usuário, como no exemplo abaixo:$ pamu2fcfg -u <username> > ~/.config/Nitrokey/u2f_keys
Para configuração individual do usuário você deve apontar para o diretório home no próximo passo, ou não incluir a opção
authfilena configuração do PAM.
Backup*
Este passo é opcional, no entanto é aconselhável ter uma Nitrokey de reserva em caso de perda, roubo ou destruição do seu FIDO Nitrokey.
Para configurar uma chave de backup, repita o procedimento acima, e use
pamu2fcfg -n`. Isto irá omitir o campo<username>`, e a saída pode ser anexada à linha com o seu<username>desta forma:<username>:Zx...mw,04...0a:xB...fw,04...3f
Modificar o Módulo de Autenticação Pluggable
PAM`O passo final é configurar os arquivos do módulo PAM em
/etc/pam.d/`. Neste guia vamos modificar o arquivocommon-authuma vez que ele trata das configurações de autenticação que são comuns a todos os serviços, mas outras opções são possíveis. Você pode modificar o arquivo com o seguinte comando:$ cd /etc/pam.d $ sudo $editor common-auth
And add the following lines at the top of the file:
#Nitrokey FIDO2 config auth sufficient pam_u2f.so authfile=/etc/Nitrokey/u2f_keys cue [cue_prompt=Please touch the device.] prompt nouserok
Dica
Como estamos usando o Mapeamento Central de Autenticação, precisamos dizer
pam_u2fa localização do arquivo a ser usado com a opçãoauthfile.Se você muitas vezes esquece de inserir a chave,
promptopção make`x id="64"></x>impressão >`x id=»82»></x>`` e dá-lhe a oportunidade de inserir a Nitrokey.If you would like to be prompted to touch the Nitrokey,
cueoption will makepam_u2fprintPlease touch the device.message. You can change the message in[cue_prompt=Please touch the device.].O nouserok irá garantir que você ainda pode fazer o login usando o nome de usuário e senha, você pode querer remover isso em algum momento quando a configuração estiver funcionando e você não’não quer logins regulares baseados em nome de usuário & logins baseados em senha.
Uma vez modificado o
common-auth`, podemos salvar e sair do arquivo.Você pode testar a configuração digitando
sudo lsno terminal. Você deve ser avisado da mensagemPlease touch the device.e ter uma saída semelhante no terminal:nitrouser@nitrouser:~$ sudo ls [sudo] password for nitrouser: Please touch the device.
Você também pode testar sua configuração ao sair da sessão do usuário e fazer o login de volta. Uma tela semelhante deve ser exibida assim que você desconectar/replugar o Nitrokey FIDO2 e digitar sua senha:
Utilização¶
Após a modificação do módulo PAM, você poderá testar sua configuração imediatamente, mas é recomendável reiniciar seu computador e desconectar o FIDO2 da Nitrokey.
Depois de ter testado devidamente as instruções deste guia (e configurado uma cópia de segurança), é recomendado usar ou o required` ou o `x id="142"></x> bandeira de controlo em vez de `x id="180"></x>`.
As bandeiras required e `x id="29"></x>> proporcionam um controlo de acesso mais apertado, e tornarão o FIDO2 da Nitrokey necessário para efectuar o login, e/ou utilizar o serviço configurado.
Se você precisar de mais informações sobre Bandeiras de Controle na linha de configuração PAM, você pode ver a última seção deste guia para entender a diferença, e as implicações do uso de cada uma delas.
Módulos PAM¶
Existem vários arquivos de módulos PAM que podem ser modificados de acordo com suas necessidades:
Ao modificar
/etc/pam.d/common-autharquivo, você poderá usar o Nitrokey FIDO para autenticação do 2º fator para login gráfico esudo`. Nota:common-auth`deve ser modificado adicionando a linha de configuração adicional no final do ficheiro.If you wish to use FIDO U2F authentication solely for Gnome’s graphic login, you might prefer to modify the
/etc/pam.d/gdm-passwordAlternativamente, podes apenas modificar o ficheiro
/etc/pam.d/sudose quiseres utilizar o FIDO U2F quando utilizares o comandosudo.
Bandeiras de controlo¶
No passo 7 usamos a bandeira de controle sufficient para determinar o comportamento do módulo PAM quando a Nitrokey está conectada ou não. No entanto, é possível alterar este comportamento usando os seguintes flags de controle:
required`: Esta é a bandeira mais crítica. O resultado do módulo deve ser bem sucedido para que a autenticação continue. Esta bandeira pode bloqueá-lo fora do seu computador se você não tiver acesso à Nitrokey.requisite`: Similar arequired`contudo, no caso de um módulo específico retornar uma falha, o controle é diretamente retornado para a aplicação, ou para a pilha superior do PAM. Esta bandeira também pode bloqueá-lo para fora do seu computador se não tiver acesso à Nitrokey.sufficient`: O resultado do módulo é ignorado se falhar. A bandeirasufficient`considerada segura para fins de teste.optional`: O sucesso ou fracasso deste módulo só é importante se for o único módulo na pilha associado a este tipo de serviço+. A bandeiraoptional`é considerada segura para uso em testes.
Aviso
Se
requiredourequisiteestiver definido, a falha da autenticação U2F causará uma falha da autenticação geral. A falha irá ocorrer quando o Nitrokey FIDO configurado não estiver ligado, perdido ou destruído.Você perderá o acesso ao seu computador se você configurou mal o módulo PAM e usou o
requiredourequisitebandeiras.Você também perderá a capacidade de usar
sudose você configurar o Mapeamento Central de Autenticação e usou arequiredou`x id="125"></x>bandeiras.