Login no Ambiente de Trabalho e Autenticação de Utilizadores Linux#
(Nitrokey 3 - Linux)
Introdução#
Este guia irá guiá-lo através da configuração do Linux para utilizar o FIDO Universal 2nd Factor, ou seja, FIDO U2F com ``libpam-u2f>x id=»125»></x>` e 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 feita a preparação, podemos começar a configurar o computador para utilizar o Nitrokey FIDO2 para autenticação do 2º 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 arquivo u2f_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 o u2f_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 arquivo common-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
E acrescente as seguintes linhas:
#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 mensagem Please 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 você pode simplesmente modificar o arquivo
/etc/pam.d/sudo
se você desejar usar 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.