Como configurar a autenticação de dois fatores para SSH no Fedora


Todos os dias parece haver muitas violações de segurança relatadas onde nossos dados estão em perigo. Apesar do SSH ser uma maneira segura de estabelecer uma conexão remotamente a um sistema Linux, mas ainda assim, um usuário desconhecido pode obter acesso à sua máquina Linux se eles roubarem suas chaves SSH, mesmo que você desative senhas ou apenas permita conexões SSH chaves públicas e privadas.

Neste artigo, explicaremos como configurar a autenticação de dois fatores ( 2FA ) para SSH na distribuição do Fedora Linux usando o Google Authenticator para acessar um sistema Linux remoto de uma maneira mais segura, fornecendo um número TOTP ( A Senha Única Baseada no Tempo ) gerado aleatoriamente por um aplicativo autenticador em um dispositivo móvel.

Observe que você pode usar qualquer aplicativo de autenticação bidirecional para o seu dispositivo móvel que seja compatível com o algoritmo TOTP . Existem inúmeros aplicativos gratuitos disponíveis para Android ou IOS compatíveis com TOTP e Google Authenticator , mas este artigo usa o Google Authenticator como exemplo.

Instalando o Google Authenticator no Fedora

Primeiro, instale o aplicativo Google Authenticator no seu servidor Fedora usando o seguinte comando dnf.

$ sudo dnf install -y google-authenticator

Depois que o Google Authenticator estiver instalado, você poderá executar o aplicativo.

$ google-authenticator

O aplicativo solicita várias perguntas. Os snippets a seguir mostram como responder por uma configuração razoavelmente segura.

Do you want authentication tokens to be time-based (y/n) y Do you want me to update your "/home/user/.google_authenticator" file (y/n)? y

O aplicativo fornece uma chave secreta, código de verificação e códigos de recuperação. Mantenha essas chaves em um local seguro e protegido, pois essas chaves são a única maneira de acessar seu servidor se você perder seu dispositivo móvel.

Configurando a autenticação do celular

No seu celular, acesse a loja de aplicativos Google Play ou o iTunes e pesquise Google Authenticator e instale o aplicativo.

Agora, abra o aplicativo Google Authenticator no seu celular e verifique o código QR exibido na tela do terminal do Fedora. Uma vez concluída a varredura do código QR, você receberá um número gerado aleatoriamente pelo aplicativo autenticador e usará esse número toda vez que se conectar remotamente ao seu servidor Fedora.

Conclua a configuração do Google Authenticator

O aplicativo Google Authenticator solicita mais perguntas, e o exemplo a seguir mostra como respondê-las para configurar a configuração segura.

Agora você precisa configurar o SSH para usar a nova autenticação bidirecional, conforme explicado abaixo.

Configurar o SSH para usar o Google Authenticator

Para configurar o SSH para usar o aplicativo authenticator , primeiro você precisa ter uma conexão SSH em funcionamento usando chaves SSH públicas, pois estaremos desabilitando as conexões de senha.

Abra o arquivo /etc/pam.d/sshd no seu servidor.

$ sudo vi /etc/pam.d/sshd

Comente a linha auth substack password-auth no arquivo.

#auth       substack     password-auth

Em seguida, coloque a seguinte linha no final do arquivo.

auth sufficient pam_google_authenticator.so

Salve e feche o arquivo.

Em seguida, abra e edite o arquivo /etc/ssh/sshd_config .

$ sudo vi /etc/ssh/sshd_config

Procure a linha ChallengeResponseAuthentication e altere para yes .

ChallengeResponseAuthentication yes

Procure a linha PasswordAuthentication e altere-a para no .

PasswordAuthentication no

Em seguida, coloque a seguinte linha no final do arquivo.

AuthenticationMethods publickey,password publickey,keyboard-interactive

Salve e feche o arquivo e reinicie o SSH.

$ sudo systemctl restart sshd

Testando a Autenticação de Dois Fatores no Fedora

Agora tente conectar-se remotamente ao seu servidor, ele pedirá que você insira um código de verificação.

$ ssh [email protected]

Verification code:

O código de verificação é gerado aleatoriamente no seu celular pelo seu aplicativo autenticador. Como o código gerado muda a cada poucos segundos, você precisa inseri-lo rapidamente antes de criar um novo.

Se você digitar o código de verificação incorreto, não conseguirá se conectar ao sistema e receberá uma permissão de erro negado a seguir.

$ ssh [email protected]

Verification code:
Verification code:
Verification code:
Permission denied (keyboard-interactive).

Ao implementar essa autenticação bidirecional fácil, você adicionou uma camada extra de segurança ao sistema e, além disso, torna mais difícil para um usuário desconhecido obter acesso ao seu servidor.