Login no Ambiente de Trabalho e Autenticação de Utilizadores Linux#

(Nitrokey FIDO U2F - 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#

  1. No canto inferior esquerdo clique em* Show Applications e digite as seguintes configurações na barra de pesquisa:

img1
  1. Campa na barra direita para* Users`

img2
  1. No canto esquerdo clique em* Unlock e isso iria pedir a sua palavra-passe*

img3
  1. Select* Administrator e introduza o nome de utilizador e palavra-passe da sua escolha*

img4
  1. A partir do momento em que termine o passo 4 deve ser feito*

img5

Método CLI#

  1. 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>`__.

  1. 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
  1. 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
  1. 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`.

  1. 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.

  1. 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
  1. 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ção authfile.

  • 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> imprimir Please 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:

img6

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 e sudo`. 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 comando sudo.

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 a required` 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 bandeira sufficient` 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 bandeira optional` é considerada segura para uso em testes.

Aviso

  • Se required ou requisite 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 ou requisite bandeiras.

  • Você também perderá a capacidade de usar sudo se você configurar o Mapeamento Central de Autenticação e usou a required ou `x id="125"></x> bandeiras.