Autenticazione a due fattori con Google su Ubuntu Linux

Come attivare l'autenticazione a due fattori sui sistemi Ubuntu grazie a Google PAM e all'app Authenticator.

Se avete un sistema Ubuntu che siete soliti amministrare spesso anche a distanza potrebbe essere utile attivare l’autenticazione a due fattori: in questo modo per accedervi non sarà necessario digitare solo la password collegata all’account utente creato sulla macchina ma si dovrà autorizzare l’accesso usando un’app come Google Authenticator sul proprio smartphone: Google Authenticator: cos’è, come funziona e come spostarlo da un dispositivo all’altro.

Suggeriamo quindi di scaricare e installare Google Authenticator sul proprio dispositivo mobile quindi seguire alcuni semplici passaggi sulla macchina Ubuntu per attivare l’autenticazione a due fattori.

Come attivare l’autenticazione a due fattori Google sui sistemi Ubuntu

Diversamente rispetto a quanto si potrebbe pensare, attivare l’autenticazione a due fattori Google sui sistemi Ubuntu è molto semplice.

Suggeriamo comunque di effettuare un test su una macchina, anche virtuale, che non si usa per scopi produttivi e iniziare con un account di prova in modo da non rischiare di restare chiusi fuori dal sistema Ubuntu.

1) Dalla finestra del terminale Linux oppure dalla finestra SSH una volta stabilito il collegamento remoto con la macchina Ubuntu, si può digitare quanto segue per installare Google PAM (Pluggable Authentication Module), il componente software che consente di abilitare l’autenticazione a due fattori:

apt install -y libpam-google-authenticator

A questo comando così come a quelli presentati nel seguito si dovrà anteporre sudo nel caso in cui non si fossero precedentemente acquisiti i diritti di root.

2) Digitando nano /etc/pam.d/common-auth si accederà al file di configurazione di PAM.

3) Immediatamente al di sotto del primo blocco di righe di commento (sono riconoscibili per la presenza del simbolo # iniziale) si dovrà aggiungere auth required pam_google_authenticator.so

4) Premere CTRL+O quindi il tasto Invio per salvare il file. Chiudere l’editor di testo usando la combinazione CTRL+X.

5) Scrivendo google-authenticator e premendo Invio si accederà alla procedura di configurazione di PAM.

6) Alla domanda Do you want authentication tokens to be time-based rispondere premendo y in modo tale che l’autenticazione a due fattori usi OTP (one-time-password) di durata limitata nel tempo (30 secondi). Dopo la scadenza di un OTP dovrà essere eventualmente usato un nuovo OTP.

7) PAM mostrerà quindi una serie di informazioni essenziali: un codice QR, un codice di verifica e cinque scratch code di emergenza. Si tratta di informazioni che devono essere copiate e memorizzate su un supporto sicuro (magari protetto con la crittografia, ad esempio con BitLocker o con VeraCrypt).
Questi dati si riveleranno fondamentali per poter accedere di nuovo alla macchina Ubuntu e agli altri sistemi protetti con l’autenticazione a due fattori nel caso in cui si dovesse perdere lo smartphone che genera i codici OTP (il dispositivo sul quale si è in precedenza installato Google Authenticator).

8) Sul dispositivo mobile bisognerà a questo punto avviare l’app Google Authenticator, toccare l’icona “+” in basso a destra quindi scegliere Scansiona un codice QR e inquadrare con la fotocamera dello smartphone il codice QR visualizzato da PAM.
PAM restituisce anche un URL che se incollato nella barra degli indirizzi del browser permette di mostrare il codice QR.

9) Alla comparsa del messaggio “Do you want me to update your (…) .google_authenticator file” rispondere “y” così come al successivo quesito (“this restricts you to one login about every 30s“.

10) Alla richieste successive digitare sempre “y”.

11) Affinché l’autenticazione a due fattori venga utilizzata anche durante le sessioni di collegamento via SSH si dovrà digitare nano /etc/ssh/sshd_config quindi cercare ChallengeResponseAuthentication e impostare il parametro a yes, come in figura.

Poco più sotto si dovrebbe trovare UsePAM yes: lasciare l’impostazione così com’è e accertarsi che nel file sia presente anche PermitRootLogin yes.
Aggiungere inoltre AuthenticationMethods publickey,keyboard-interactive come ultima riga del file.

Premere CTRL+O e CTRL+X per salvare il file e uscire dall’editor.

12) Scrivere nano /etc/pam.d/sshd e aggiungere quanto segue al di sotto di @include common-auth:

auth required pam_google_authenticator.so

Salvarlo, al solito, premendo CTRL+O quindi CTRL+X.

13) Digitando systemctl restart ssh per riavviare il servizio SSH e provando a collegarsi da remoto con un software come PuTTY.
Se si utilizzasse il meccanismo di autenticazione basato su chiave pubblica digitare nano /etc/ssh/sshd_config quindi inserire AuthenticationMethods publickey,keyboard-interactive in fondo al file al posto di AuthenticationMethods keyboard-interactive

14) Collegandosi via SSH sarà necessario digitare per due volte il Verification code restituito dall’app Google Authenticator e inserire la password corrispondente all’account presente sulla macchina Ubuntu.

Ti consigliamo anche

Link copiato negli appunti