Ricerca nel sito web

Come utilizzare l'autenticazione a due fattori con Ubuntu


Nel corso del tempo, la tradizionale autenticazione con nome utente e password si è rivelata inadeguata nel fornire una solida sicurezza ad applicazioni e sistemi. Nomi utente e password possono essere facilmente violati utilizzando numerosi strumenti di hacking, lasciando il tuo sistema vulnerabile alle violazioni. Per questo motivo, qualsiasi azienda o entità che prenda sul serio la sicurezza deve implementare l'autenticazione a 2 fattori.

Conosciuta colloquialmente come MFA (Multi-Factor Authentication), l'autenticazione a 2 fattori fornisce un ulteriore livello di sicurezza che richiede agli utenti di fornire determinati dettagli come i codici, o OTP (One Time Password) prima o dopo l'autenticazione con il consueto nome utente e password.

Oggigiorno numerose aziende come Google, Facebook, Twitter e AWS, per citarne alcune, offrono agli utenti la scelta di istituire una AMF per proteggere ulteriormente i propri conti.

In questa guida, mostriamo come utilizzare l'autenticazione a due fattori con Ubuntu.

Passaggio 1: installa il pacchetto PAM di Google

Innanzitutto, installa il pacchetto Google PAM. PAM, abbreviazione di Pluggable Authentication Module, è un meccanismo che fornisce un ulteriore livello di autenticazione sulla piattaforma Linux.

Il pacchetto è ospitato sul repository Ubuntu, quindi procedi e utilizza il comando apt per installarlo come segue:

sudo apt install libpam-google-authenticator

Quando richiesto, premi 'Y' e premi INVIO per continuare con l'installazione.

Passaggio 2: installa l'app Google Authenticator sul tuo smartphone

Inoltre, devi installare l'applicazione Google Authenticator sul tuo tablet o smartphone. L'app ti presenterà un codice OTP 6 cifre che si rinnova automaticamente ogni 30 secondi.

Passaggio 3: configura Google PAM in Ubuntu

Con l'app Google Authenticator installata, procederemo e configureremo il pacchetto Google PAM su Ubuntu modificando /etc/pam.d/common-auth< come mostrato.

sudo vim /etc/pam.d/common-auth

Aggiungi la riga seguente al file come indicato.

auth required pam_google_authenticator.so

Salvare il file ed uscire.

Ora esegui il comando seguente per inizializzare PAM.

google-authenticator

Questo evocherà un paio di domande sullo schermo del tuo terminale. Innanzitutto, ti verrà chiesto se desideri che i token di autenticazione siano basati sul tempo.

I token di autenticazione basata sul tempo scadono dopo un determinato periodo di tempo. Per impostazione predefinita, ciò avviene dopo 30 secondi, dopo i quali viene generato un nuovo set di token. Questi token sono considerati più sicuri rispetto ai token non basati sul tempo, quindi digita 'y' per sì e premi INVIO.

Successivamente, sul terminale verrà visualizzato un codice QR come mostrato di seguito e proprio sotto di esso verranno visualizzate alcune informazioni. Le informazioni visualizzate includono:

  • Chiave segreta
  • Codice di verifica
  • Codici scratch di emergenza

È necessario salvare queste informazioni in un archivio per riferimento futuro. I codici scratch di emergenza sono estremamente utili nel caso in cui perdi il tuo dispositivo di autenticazione. Se dovesse succedere qualcosa al tuo dispositivo di autenticazione, utilizza i codici.

Avvia l'app Google Authenticator sul tuo dispositivo smart e seleziona "Scansiona codice QR" per scansionare il codice QR presentato.

NOTA: è necessario massimizzare la finestra del terminale per scansionare l'intero codice QR. Una volta scansionato il codice QR, sull'App verrà visualizzata una OTP di sei cifre che cambia ogni 30 secondi.

Successivamente, seleziona 'y' per aggiornare il file dell'autenticatore di Google nella tua cartella Home.

Nella richiesta successiva, limita l'accesso a un solo accesso ogni 30 secondi per prevenire attacchi che potrebbero verificarsi a causa di attacchi man-in-the-middle. Quindi seleziona 'y'

Nel prompt successivo, seleziona 'n' per impedire l'estensione della durata temporale che risolve lo sfasamento temporale tra server e client. Questa è l'opzione più sicura a meno che non si verifichino problemi con una scarsa sincronizzazione dell'ora.

Infine, abilita la limitazione della velocità a soli 3 tentativi di accesso.

A questo punto, abbiamo finito di implementare la funzione di autenticazione a 2 fattori. Infatti, se esegui un comando sudo, ti verrà richiesto un codice di verifica che puoi ottenere dall'app Google Authenticator.

Puoi verificarlo ulteriormente riavviando e una volta arrivato alla schermata di accesso, ti verrà richiesto di fornire il codice di verifica.

Dopo aver fornito il codice dall'app Google Authenticator, fornisci semplicemente la password per accedere al tuo sistema.

Passaggio 4: integra SSH con Google Authenticator

Se intendi utilizzare SSH con il modulo PAM di Google, devi integrare i due. Ci sono due modi per raggiungere questo obiettivo.

Per l'autenticazione tramite password SSH

Per abilitare l'autenticazione tramite password SSH per un utente normale, apri innanzitutto il file di configurazione SSH predefinito.

sudo vim /etc/ssh/sshd_config

E imposta i seguenti attributi su 'sì' come mostrato

Per l'utente root, imposta l'attributo "PermitRootLogin" su 'yes'.

PermitRootLogin yes

Salvare il file ed uscire.

Successivamente, modifica la regola PAM per SSH

sudo vim /etc/pam.d/sshd

Quindi aggiungi la riga seguente

auth   required   pam_google_authenticator.so

Infine, riavvia il servizio SSH affinché le modifiche diventino effettive.

sudo systemctl restart ssh

Nell'esempio seguente stiamo accedendo al sistema Ubuntu dal client Putty.

Per l'autenticazione con chiave pubblica SSH

Se utilizzi l'autenticazione con chiave pubblica, ripeti i passaggi precedenti e aggiungi la riga mostrata nella parte inferiore del file /etc/ssh/sshd_config.

AuthenticationMethods publickey,keyboard-interactive

Ancora una volta, modifica la regola PAM per il demone SSH.

sudo vim /etc/pam.d/sshd

Quindi aggiungi la riga seguente.

auth   required   pam_google_authenticator.so

Salva il file e riavvia il servizio SSH come abbiamo visto prima.

sudo systemctl restart ssh

Disabilita l'autenticazione a due fattori in Ubuntu

Nel caso in cui perdi il tuo dispositivo di autenticazione o la tua chiave segreta, non impazzire. Puoi facilmente disabilitare il livello di autenticazione 2FA e tornare al tuo semplice metodo di accesso con nome utente/password.

Per prima cosa riavvia il sistema e premi 'e' sulla prima voce di GRUB.

Scorri e individua la riga che inizia con linux e termina con il tranquillo splash $vt_handoff. Aggiungi la riga systemd.unit=rescue.target e premi ctrl+x per accedere alla modalità di salvataggio

Una volta ottenuta la shell, fornisci la password di root e premi INVIO.

Successivamente, procedi ed elimina il file .google-authenticator nella tua directory home come segue. Assicurati di sostituire il nome utente con il tuo nome utente.


rm /home/username/.google_authenticator

Quindi modifica il file /etc/pam.d/common-auth.


$ vim /etc/pam.d/common-auth

Commenta o cancella la seguente riga:


auth required pam_google_authenticator.so

Salva il file e riavvia il sistema. Nella schermata di accesso ti verrà richiesto solo di fornire nome utente e password per autenticarti.

E questo ci porta alla fine di questo articolo. Saremo lieti di sapere come è andata.