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

Compatible Nitrokeys

3A/C/Mini

Passkey

HSM 2

Pro 2

FIDO2

Storage 2

Start

U2F

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.

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
  2. Campa na barra direita para* Users`

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

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

    img4
  5. 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>`__.

  2. 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
    
  3. 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
    
  4. 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.

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

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

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

    • If you would like to be prompted to touch the Nitrokey, cue option will make pam_u2f print Please 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 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.

  • If you wish to use FIDO U2F authentication solely for Gnome’s graphic login, you might prefer to modify the/etc/pam.d/gdm-password

  • Alternativamente, podes apenas modificar o ficheiro /etc/pam.d/sudo se quiseres utilizar o FIDO U2F quando utilizares 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.