Login no Ambiente de Trabalho e Autenticação de Utilizadores Linux#
✓ |
✓ |
✓ |
✓ |
⨯ |
⨯ |
⨯ |
✓ |
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.
Se quiser entrar no seu computador usando Nitrokey Pro 2, Nitrokey Storage 2 e Nitrokey Início pode visitar as instruções disponíveis `aqui <../../pro/linux/login-with-pam.html>>x id=»388»></x>>.
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 Applications
e digite as seguintes configurações na barra de pesquisa:Campa na barra direita para*
Users`
No canto esquerdo clique em*
Unlock
e isso iria pedir a sua palavra-passe*Select*
Administrator
e 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*
rules
para reconhecer o Nitrokey FIDO2*Em
/etc/udev/rules.d
download`x id="39"></x>`
$ cd /etc/udev/rules.d/ $ sudo wget https://raw.githubusercontent.com/Nitrokey/libnitrokey/master/data/41-nitrokey.rules
E reiniciar
udev
serviço$ sudo systemctl restart udev
Install*
libpam-u2f`
No Ubuntu 20.04 é possível baixar diretamente
libpam-u2f
a partir dos repos oficiais$ sudo apt install libpam-u2f
Nota
Clique para mais opções
Alternativamente pode construir
libpam-u2f
de 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
pamu2fcfg
utilidade que vem com o`x id="95"></x>`
. Por conveniência, escreveremos diretamente a saída do utilitário no arquivou2f_keys
sob.config/Nitrokey`
. Primeiro ligue o seu Nitrokey FIDO2 (se ainda não o fez), e introduza o seguinte comando:$ pamu2fcfg > ~/.config/Nitrokey/u2f_keys
Uma vez executado o comando acima, você precisará tocar a tecla enquanto ela pisca. Uma vez feito,
pamu2fcfg
irá anexar a sua saída ou2f_keys
no seguinte formato:<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/Nitrokey
sob 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
authfile
na 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-auth
uma 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 prompt nouserok
Dica
Como estamos usando o Mapeamento Central de Autenticação, precisamos dizer
pam_u2f
a localização do arquivo a ser usado com a opçãoauthfile
.Se você muitas vezes esquece de inserir a chave,
prompt
opção make`x id="64"></x>
impressão >`x id=»82»></x>`` e dá-lhe a oportunidade de inserir a Nitrokey.Se você gostaria de ser solicitado a tocar a Nitrokey,
cue
opção fará`x id="83"></x>
imprimirPlease touch the device.
mensagem.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 ls
no 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-auth
arquivo, 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.Se você deseja usar a autenticação FIDO U2F apenas para o login gráfico do Gnome, você pode preferir modificar a
/etc/pam.d/gdm-password`
Alternativamente, podes apenas modificar o ficheiro
/etc/pam.d/sudo
se 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
required
ourequisite
estiver 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
required
ourequisite
bandeiras.Você também perderá a capacidade de usar
sudo
se você configurar o Mapeamento Central de Autenticação e usou arequired
ou`x id="125"></x>
bandeiras.