Como configurar o F2A em Ubuntu

Out 16, 2023 | Ubuntu Linux 20.04, Webinoly | 0 comments

Neste tutorial, irei guiar passo a passo como configurar uma autenticação dois factores no Ubuntu. Para esta autenticação dois factores iremos utilizar o Google Authenticator.

Regra geral, todos os servidores que faço gestão têm dupla autenticação, pela chave SSH e por dois factores. Uso chaves no mac pessoal para não estar sempre a colocar passwords, e sempre que preciso aceder, quer pelo telemóvel, quer pc externo, utilizo dois factores. Desta forma, aumento em grande escala a segurança dos servidores que faço gestão.

É necessário ter muito cuidado ao seguir este tutorial. Utilizei a versão 22.04 LTS do Ubuntu. Basta um comando “ao lado”, ou simplesmente um typo a escrever e podemos perder o acesso ao servidor. Das duas uma, ou se garante um snapshot de forma a voltar atrás no tempo ou garantimos a existência de um reboot em modo rescue.

Atualização sistema operativo

Para este tutorial foi utilizada a versão Ubuntu 22.04.3 LTS

Primeiro passo para tudo correr bem é ter a certeza que o nosso sistema operativo está actualizado.

Caso o utilizador root não seja um sudoer, podemos invocar -i para fazer login com o root.

sudo -i

Depois basta atualizar o nosso apt e de seguida realizar upgrade a todos os pacotes que estejam por atualizar.

apt update
apt upgrade

Instalação Google Authenticator

Agora vamos instalar o Google Authenticator

apt install libpam-google-authenticator

Alteração ficheiro /etc/pam.d/sshd

Dentro do ficheiro de configuração do PAM precisamos de adicionar o Google Authenticator e desactivar o common-auth:

nano /etc/pam.d/sshd

Adicionar a linha no final do ficheiro:

auth required pam_google_authenticator.so nullok

E comentar o include do common-auth

# Standard Un*x authentication.
# @include common-auth

Agora basta salvar e fechar o ficheiro e reiniciar o serviço de ssh:

service sshd restart

Alteração ficheiro /etc/ssh/sshd_config

No ficheiro sshd_config vamos ter de activar o Challenge Response. Irá ser preciso colocar a yes o KbdInteractiveAuthentication e o ChallengeResponseAuthentication.

nano /etc/ssh/sshd_config

Basta trocar o no para yes no KbdInteractiveAuthentication

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
KbdInteractiveAuthentication yes

E adicionar a nova linha (pode ser em qualquer sítio do ficheiro)

ChallengeResponseAuthentication yes

Fechamos o ficheiro e fazemos restart no sshd.

service sshd restart

Setup do Google Authenticator

Basta correr o software com o seguinte comando:

google-authenticator

Ao entrar neste setup modo wizard, vamos ser guiados com várias questões. Aqui fica a recomendação:

  • Make tokens “time-base””: yes
  • Update the .google_authenticator file: yes
  • Disallow multiple uses: yes
  • Increase the original generation time limit: no
  • Enable rate-limiting: yes

Depois de adicionar o QR Code à nossa aplicação do telemóvel, colocamos o código gerado no momento. (cada código é válido por 30 segundos).

Convém guardar estas chaves de emergência. Aconselho não tirarem uma fotografia com o telemóvel nem a guardar no ambiente de trabalho do pc, mas sim num caderno, fora do mundo “virtual”. Caso vos roubem informação ou até mesmo o pc, nunca irão conseguir aceder a estas chaves de backup.

Teste final:

Depois de tudo configurado, podemos abrir um terminal e testar a nossa ligação. Invocamos o comando ssh, passamos o utilizador que queremos ligar e o seu ip. Se tudo estiver bem configurado, assim que a ligação for estabelecida irá ser pedido não a password mas sim um verification code.

ssh root@ssh-your-server-ip
Share this
$( function() {var copyAttachmentURLClipboard = new ClipboardJS( '.wp-block-code' );});