Come abilitare l’autenticazione a due fattori su Ubuntu e Raspberry-Pi

Come abilitare SSH con il Two Factor Authentication su Ubuntu con Google Authenticator

Della serie non si è mai sicuri

Questo tutorial ti mostrerà come configurare l’autenticazione SSH a due fattori su Ubuntu (testato) e su Raspberry (testato 🙂 )  utilizzando come software per il “token”  Google Authenticator.

Come funziona

L’autenticazione a due fattori, “Two Factor Authentication” , richiede l’immissione di due informazioni per l’accesso oltre all’user-name. Google Authenticator genera una password monouso utilizzando una chiave segreta condivisa e l’ora corrente.
Quindi non solo devi fornire il nome utente e la password corretti, ma devi anche inserire una password unica generata da Google Authenticator per accedere al tuo server SSH.

Passiamo ai fatti – Autenticazione a due fattori Raspberry

Prima di tutto un bel e canonico

sudo apt-get update

sudo apt-get upgrade

e poi
sudo apt-get libpam-google-authenticator

libpam-google-authenticator
libpam-google-authenticator



 

Autenticazione a due fattori Raspberry
Autenticazione a due fattori Raspberry / Ubuntu

 

Utilizziamo google authenticator

Passiamo al google authenticator per creare  una nuova “secret key” nella  home directory.

sudo  google-authenticator

google_autheticator
google_authenticator

 



lancio google_auth
lancio google_authenticator

A questo punto facciamo una foto dell’output e la conserviamo gelosamente (poi spiego)
Prendiamo il nostro smartphone dove abbiamo installato Google Authenticator …

Google Authenticator
Google Authenticator

 

 

e aggiungiamo il nostro server leggendo il codice a barre o inserendo a manina il secret key.

poi… rispondiamo sempre y alle domande…

Google Authenticatore e il Two Factor Authentication su Raspberry
Google Authenticator e il Two Factor Authentication su Raspberry

 

Attraverso  l’app Google Authenticator  è possibile vedere una password “One Time Password” di sei cifre sul telefono. Ogni password ha la durata temporale di 30 secondi (di default).

Configuriamo ssh per interagire con  Google Authenticator

sudo nano /etc/ssh/sshd_config

Dobbiamo assicurarci che i seguenti parametri siano attivati ( yes )

UsePAM yes

ChallengeResponseAuthentication yes
Salviamo  usciamo e facciamo ripartire il demone

sudo systemctl restart ssh
andiamo a “editare il demone”

sudo nano /etc/pam.d/sshd

e aggiungiamo

auth required pam_google_authenticator.so
alla fine del file. quindi salviamo e usciamo.

 


Testiamo l’autenticazione SSH  con Two Factor Authentication

Ora apri una finestra di terminale separata e prova ad accedere al tuo server SSH. Non chiudere la sessione SSH corrente.

Se qualcosa va storto, puoi sistemarlo nella tua attuale sessione SSH. Se tutto è impostato correttamente, ti verrà chiesto di inserire sia la tua password utente che la password One Time che leggerai dallo smatphone. Si ricorda che ogni utente sul proprio server Ubuntu deve eseguire il comando google-authenticator ed eseguire la scansione del codice QR per utilizzare l’autenticazione a due fattori.

Emergency Scratch Code Emergency

Scratch Code è il tuo codice di backup. Se si perde il telefono, è possibile inserire uno dei cinque codici di emergenza anziché una password una tantum per completare la verifica in due passaggi.

Possono servire questi codici statici ( ricordo che si possono utilizzare solo una volta a testa) perchè si potrebbero verificare diverse situazioni sia lato serve che lato client (smartphone) che possono impedire l’esatta funzionalità. Potrebbe verificarsi un errato aggiornamento della data e dell’ora, potreste avere lo smartphon fuori uso o altro.

Se si possiede più di uno smartphone , puoi installare l’app Google Authenticator sul secondo telefono e inserire manualmente la chiave segreta. È lo stesso del codice QR che scansioni. Se si desidera modificare la chiave segreta, è sufficiente accedere al server ed eseguire di nuovo il comando google-authenticator per aggiornare il file ~ / .google_authenticator.

Quindi , buona Autenticazione a tutti e possiamo ora dire che abbiamo un server con un Two Factor Authentication !

Ps.
Se avete la raggiungibilità fisica del server , non avete problemi a testare , smanettare o tornare indietro con la configurazione.
Se avete a disposizione una VPS , quando fate queste operazioni, ricordatevi di avere sempre attiva una conessione ssh che non sia quella in cui fate la configurazione in modo da poter tornare indietro.

Giovanni Popolizio