Introdução
Vamos ver como deixar o SSH mais seguro com o uso de um OTP (One True Pairing), nesse caso vamos usar o Google Authenticator, dessa forma, só será possível acessar o servidor caso tenha a senha baseada em tempo.
Primeiro vamos começar instalando a biblioteca que fará com que tudo seja possível.
# Instale a biblioteca:
$ sudo apt install -y libpam-google-authenticator
Agora adicione o módulo do Google em /etc/pam.d/sshd
.
# Edite o arquivo:
vim /etc/pam.d/sshd
# Comente a linha abaixo (está normalmente no começo do arquivo):
@include common-auth
# Insira a linha abaixo no final do arquivo, ela informa
# para que queremos usar o módulo do Google authenticator durante a
# autenticação via ssh:
auth required pam_google_authenticator.so
Agora temos que fazer algumas configurações no SSHD:
# Abra o arquivo abaixo:
sudo vim /etc/ssh/sshd_config
# Não permita login no SSH usando senha:
PasswordAuthentication no
# Permita senhas de desafio-resposta durante a autenticação (Envio do TOTP):
ChallengeResponseAuthentication yes
# Habilite o uso do PAM (provavelmente já estará habilitado):
UsePAM yes
# Habilite os métodos de autenticação por chave:
AuthenticationMethods publickey,keyboard-interactive
Agora vamos gerar o nosso RQCode para conseguirmos ter o OTP, você deve fazer isso com o usuário que queira ativar o uso do Authenticator.
Para criar um novo token digite google-authenticator
(com o usuário que deseja ativar o Authenticator), algumas perguntas serão feitas, responda da seguinte forma:
- Faça tokens "baseados no tempo":
sim
- Atualize o arquivo .google_authenticator:
sim
- Não permitir usos múltiplos:
sim
- Aumente o limite de tempo de geração original:
não
- Habilitar limitação de taxa:
sim
Pronto, já pode fazer autenticação usando o Google, recomendo que abra um novo terminal e teste, caso de algum erro, poderá ficar preso para fora do servidor. Com isso É criado um arquivo chamado .google_authenticator
na home do usuário que estiver usando ele, caso queira parar de usar ou mudar o código OTP pode apagar esse arquivo e criar novamente.