Se você achar que a autenticação baseada em senha e de dois fatores não é confiável, considere configurar a autenticação baseada em hardware no Linux usando YubiKey.
Você não está sozinho se se preocupa com a crescente ameaça de hackers. Embora os prompts de autenticação e 2FA sejam suficientes para afastar a maioria dos possíveis hackers, milhares de violações ainda acontecem todos os dias.
Uma das soluções mais elogiadas para o problema de autenticação é o YubiKey. Mas o que é YubiKey e como funciona a autenticação de hardware? Você pode proteger seu PC Linux com YubiKey?
Por que usar o YubiKey para autenticação de hardware?
Existem muitos tipos diferentes de autenticação, incluindo senhas, autenticação por SMS e até mesmo aplicativos autenticadores que você pode usar com seu telefone. Um tipo menos comum é a autenticação de hardware, que envolve o uso de um pequeno dispositivo plug-in para enviar um token de autenticação quando solicitado.
YubiKeys e outros dispositivos de autenticação de hardware têm algumas vantagens sobre outros autenticadores. Eles são mais fáceis de usar, muito mais seguros e quase impossíveis de serem comprometidos sem acesso ao próprio YubiKey físico.
Introdução ao Yubikey
Você pode começar com o YubiKey em apenas algumas etapas simples. Como primeiro passo, você deve usar o questionário feito por Yubico para comprar o melhor YubiKey para as especificações do seu dispositivo. Depois de ter seu YubiKey em mãos, você pode usá-lo como um dispositivo de autenticação para sites e aplicativos.
Você pode até usá-lo para autenticar sudo e SSH em seu computador Linux. Explicaremos tudo o que você precisa saber sobre como escolher um YubiKey compatível com sudo/SSH e configurá-lo para autenticação.
Escolhendo o YubiKey certo para o seu sistema
Se você quiser usar seu YubiKey para autenticação em seu computador Linux, existem alguns YubiKeys que se destacam como opções superiores. O YubiKey 5 e o YubiKey 5 NFC são clássicos que funcionam bem com sistemas com USB-A e USB-C, respectivamente.
Se você deseja usar seu YubiKey com seu computador Linux e telefone Android, considere um YubiKey 5c NFC. Se você possui um computador Linux e um iPhone, considere um YubiKey 5ci porque ele suporta USB-C e Lightning.
É importante observar que a série YubiHSM não é compatível com autenticação sudo. As YubiKeys herdadas podem ou não ser compatíveis com a autenticação sudo/SSH, dependendo de seus recursos específicos.
Antes de iniciar a autenticação sudo ou SSH, você deve instalar o YubiKey PPA. Abra o terminal e insira os seguintes comandos para atualizar seus pacotes e instalar o YubiKey Authenticator e o YubiKey Manager:
sudo add-apt-repository ppa: yubico/stable
sudo apt-get update
sudo apt install yubikey-manager libpam-yubico libpam-u2f
Em seguida, você precisará verificar se seu sistema está pronto para funcionar com seu YubiKey. Execute o seguinte comando no terminal para verificar sua versão do udev:
sudo udevadm --version
O terminal retornará um número. Se o número for 244 ou superior, seu sistema é compatível com YubiKey. Você pode pular a próxima etapa neste caso.
Caso contrário, você precisará configurar seu sistema. Você deve usar os seguintes comandos para verificar se o udev está instalado em seu computador e para instalá-lo se não estiver:
dpkg -s libu2f-udev
sudo apt install libu2f-udev
Em seguida, verifique se a interface U2F do seu YubiKey está desbloqueada. Se você tiver um YubiKey NEO ou YubiKey NEO-n, insira seu YubiKey, abra o YubiKey Manager e navegue até Interfaces. Habilite o Interface U2F e pressione Salvar.
Configure o YubiKey para autenticação sudo no Linux
sudo é um dos comandos mais perigosos no ambiente Linux. Nas mãos certas, oferece um nível de acesso impressionante, suficiente para realizar a maioria dos trabalhos. Nas mãos erradas, o acesso de nível raiz que o sudo fornece pode permitir que usuários mal-intencionados explorem ou destruam um sistema.
YubiKeys são excelentes para autenticação sudo porque sua autenticação é quase impossível de replicar sem acesso ao próprio YubiKey. A maioria das YubiKeys são compatíveis com a autenticação sudo, incluindo as séries 5 FIPs, Key Series, 4 FIPs Series, Bio Series, 5 Series e 4 Series.
De acordo com Yubico, a primeira etapa necessária para configurar a autenticação sudo é criar um arquivo de regras. Se sua versão do udev for 188 ou superior, instale as novas regras U2F de GitHub e copie o 70-u2f.regras arquivo para /etc/udev/rules.d.
Se sua versão do udev estiver abaixo de 188, instale as regras U2F herdadas de GitHub e copie o 70-old-u2f.rules arquivo para /etc/udev/rules.d.
Se sua versão do udev for 244 ou superior ou se você tiver feito os arquivos de regras necessários, você está pronto para vincular seu YubiKey à sua conta.
Insira a YubiKey em seu computador, abra o terminal e digite os seguintes comandos para vincular sua YubiKey à sua conta:
mkdir -p ~/.config/Yubicopamu2fcfg > ~/.config/Yubico/u2f_keys
Aguarde alguns momentos até que a luz indicadora do seu YubiKey comece a piscar. Toque no botão em seu YubiKey para confirmar o link do dispositivo.
Se você tiver outro YubiKey em mãos, deverá adicioná-lo como um dispositivo de backup digitando o seguinte comando e concluindo o mesmo processo:
pamu2fcfg -n >> ~/.config/Yubico/u2f_keys
Por fim, você precisará configurar o comando sudo para exigir a autenticação YubiKey. Você deve começar digitando o seguinte comando para abrir o arquivo de configuração sudo:
sudo vi /etc/pam.d/sudo
Depois que o arquivo de configuração estiver aberto, cole a seguinte linha logo abaixo do @include common-auth linha para configurar o sudo para exigir a autenticação YubiKey:
autenticação necessária pam_u2f.so
Salve e saia do arquivo pressionando Escapar, digitando :wq, e pressionando Digitar, mas mantenha o terminal aberto. Você não poderá reverter as alterações feitas na autenticação sudo se o terminal fechar.
Abra um segundo terminal e execute o seguinte comando com seu YubiKey desconectado e digite sua senha:
teste de eco sudo
O processo de autenticação falhará. Insira sua YubiKey e digite novamente o comando e sua senha. Quando a luz indicadora do YubiKey começar a piscar, toque no botão do seu YubiKey. Ele deve autenticar o comando. Em caso afirmativo, seu YubiKey está totalmente configurado para autenticação sudo.
Como configurar o YubiKey para autenticação SSH
Você também pode usar seu YubiKey para autenticação SSH! Várias séries YubiKey são compatíveis com SSH, incluindo a série 5 FIPS, a série 5, a série 4 FIPS e a série 4. Usar o YubiKey para autenticar suas conexões permitirá que você torne cada login SSH muito mais seguro.
O melhor método para configurar o YubiKey foi descrito por um usuário experiente em GitHub. Você precisará de SSH 8.2 ou mais recente e um YubiKey com firmware 5.2.3 ou mais recente. Você pode verificar sua versão do OpenSSH - e atualizá-la, se necessário - com os seguintes comandos:
ssh -V
sudo apt update && sudo apt upgrade
Em seguida, você precisará configurar o SSH para aceitar seu YubiKey. Digite o seguinte comando para abra o editor vi e edite o arquivo de configuração:
sudo vi /etc/ssh/sshd_config
Adicione a seguinte linha ao arquivo de configuração para que seu YubiKey seja aceito:
PubkeyAcceptedKeyTypes [email protected], [email protected]
Salve e saia do arquivo pressionando Escapar, digitando :wq, e batendo Digitar. Por fim, reinicie o serviço SSH com o seguinte comando para que sua nova configuração fique ativa:
reinício ssh do serviço sudo
Por fim, você está pronto para criar o par de chaves que usará para autenticação SSH. Navegue até o diretório SSH e crie sua nova chave SSH com os seguintes comandos:
cd home/nome de usuário/.ssh
ssh-keygen -t ed25519-sk
Dois arquivos serão criados no ~/.ssh/ diretório. Note que você pode precisar usar ecdsa-sk em vez de ed25519-sk se o seu sistema for incompatível e o terminal avisar que o registro da chave falhou.
Em seguida, você precisará adicionar a chave pública ao seu servidor com o seguinte comando:
ssh-copy-id -i ~/.ssh/id_ed25519_sk.pub nome de usuário@servidor
Você também deve se adicionar ao arquivo sudoers para manter as permissões após desabilitar o login root. Acesse o arquivo e abra-o com visudo.
Não abra o arquivo sudoers com um editor de texto normal.
Abaixo da linha que se lê root ALL=(ALL: ALL) ALL, adicione a seguinte linha:
nome de usuário ALL=(ALL: ALL) ALL
Abra o /etc/ssh/ssd_config arquivo e adicione as seguintes linhas para desativar o login root e o login baseado em senha:
ChallengeResponseAuthentication noPermitRootLogin não
Por fim, insira o seguinte comando para carregar sua chave em seu agente SSH durante a sessão:
ssh-add ~/.ssh/id_ed25519_sk
Agora você pode usar seu YubiKey para autenticação SSH. Você precisará inserir seu YubiKey em seu computador quando solicitado e tocar no botão quando o indicador piscar. Com este novo método de autenticação, o acesso SSH ao seu servidor remoto será significativamente mais seguro.
Outros usos potenciais do YubiKey
Não há nenhum limite real de como você pode usar o YubiKey em seu sistema Linux. Se você deseja tornar seu PC ainda mais seguro, considere usar seu YubiKey para criptografia de disco ou sem senha. Você pode até usá-lo para assinar e-mails e arquivos, se quiser.
Proteja seu sistema Linux com YubiKey
Você não precisa parar de usar seu YubiKey para autenticação SSH e sudo. Você também pode usar seu YubiKey para autenticar o acesso a muitas de suas contas na web. A melhor parte é que começar com o YubiKey 2FA é um processo simples.