Come accedere al desktop Linux con Google Authenticator
Per maggiore sicurezza, è possibile richiedere un token di autenticazione basato sul tempo e una password per accedere al proprio PC Linux. Questa soluzione utilizza Google Authenticator e altre app TOTP.
Questo processo è stato eseguito su Ubuntu 14.04 con il desktop Unity standard e il gestore di accesso LightDM, ma i principi sono gli stessi nella maggior parte delle distribuzioni e desktop Linux.
In precedenza ti abbiamo mostrato come richiedere Google Authenticator per l'accesso remoto tramite SSH e questo processo è simile. Questo non richiede l'app Google Authenticator, ma funziona con qualsiasi app compatibile che implementa lo schema di autenticazione TOTP, incluso Authy.
Installa il PAM di Google Authenticator
Come quando si imposta questo per l'accesso SSH, dovremo prima installare il software appropriato PAM ("pluggable-authentication module"). PAM è un sistema che ci consente di collegare diversi tipi di metodi di autenticazione in un sistema Linux e di richiederli.
Su Ubuntu, il seguente comando installerà il PAM di Google Authenticator. Aprire una finestra di Terminale, digitare il comando seguente, premere Invio e fornire la password. Il sistema scaricherà il PAM dai repository software della tua distribuzione Linux e lo installerà:
sudo apt-get installa libpam-google-authenticator
Altre distribuzioni Linux dovrebbero avere questo pacchetto disponibile per una facile installazione - apri i repository software della tua distribuzione Linux ed esegui una ricerca per questo. Nel peggiore dei casi, puoi trovare il codice sorgente per il modulo PAM su GitHub e compilarlo da solo.
Come abbiamo sottolineato in precedenza, questa soluzione non dipende da "phoning home" per i server di Google. Implementa l'algoritmo TOTP standard e può essere utilizzato anche quando il tuo computer non ha accesso a Internet.
Crea le tue chiavi di autenticazione
Dovrai ora creare una chiave di autenticazione segreta e inserirla nell'app Google Authenticator (o simile) sul tuo telefono. Innanzitutto, accedi come account utente sul tuo sistema Linux. Aprire una finestra di terminale ed eseguire il google-autenticatore comando. genere y e segui le istruzioni qui. Questo creerà un file speciale nella directory dell'account utente corrente con le informazioni di Google Authenticator.
Avrai anche la possibilità di ottenere il codice di verifica a due fattori in un Google Authenticator o un'applicazione TOTP simile sul tuo smartphone. Il tuo sistema può generare un codice QR che puoi scansionare o puoi inserirlo manualmente.
Assicurati di annotare i tuoi codici di emergenza, che puoi utilizzare per accedere se perdi il telefono.
Passare attraverso questo processo per ogni account utente che utilizza il tuo computer. Ad esempio, se sei l'unica persona che usa il tuo computer, puoi farlo una sola volta sul tuo normale account utente. Se hai qualcun altro che usa il tuo computer, vorrai farli firmare nel proprio account e generare un codice a due fattori appropriato per il proprio account in modo che possano accedere.
Attiva l'autenticazione
Ecco dove le cose diventano un po 'discografiche. Quando abbiamo spiegato come abilitare l'accesso SSH a due fattori, lo abbiamo richiesto solo per gli accessi SSH. In questo modo è stato possibile accedere localmente se si è persa l'app di autenticazione o se qualcosa è andato storto.
Poiché abiliteremo l'autenticazione a due fattori per gli accessi locali, ci sono potenziali problemi qui. Se qualcosa va storto, potresti non essere in grado di accedere. Tenendolo a mente, ti guideremo attraverso l'abilitazione di questo solo per gli accessi grafici. Questo ti dà una via di fuga se ne hai bisogno.
Abilita Google Authenticator per accessi grafici su Ubuntu
È sempre possibile abilitare l'autenticazione in due passaggi solo per gli accessi grafici, saltando il requisito quando si accede dal prompt del testo. Ciò significa che puoi facilmente passare a un terminale virtuale, accedere lì e ripristinare le modifiche in modo che Gogole Authenciator non sia necessario se si verifica un problema.
Certo, questo apre un buco nel tuo sistema di autenticazione, ma un utente malintenzionato con accesso fisico al tuo sistema può già sfruttarlo comunque. Ecco perché l'autenticazione a due fattori è particolarmente efficace per gli accessi remoti via SSH.
Ecco come farlo per Ubuntu, che usa il gestore di accesso LightDM. Apri il file LightDM per modificarlo con un comando simile al seguente:
sudo gedit /etc/pam.d/lightdm
(Ricorda, questi passaggi specifici funzioneranno solo se la tua distribuzione Linux e il tuo desktop utilizzano il gestore di accesso LightDM.)
Aggiungi la seguente riga alla fine del file, quindi salvala:
auth richiesto pam_google_authenticator.so nullok
Il bit "nullok" alla fine dice al sistema di consentire a un utente di accedere anche se non ha eseguito il comando google-authenticator per impostare l'autenticazione a due fattori. Se lo hanno configurato, dovranno inserire un codice time-baesd, altrimenti non lo faranno. Rimuovi il "nullok" e gli account utente che non hanno impostato un codice di Google Authenticator non saranno in grado di accedere graficamente.
La prossima volta che un utente si registra graficamente, gli verrà richiesta la password e quindi richiesto il codice di verifica corrente visualizzato sul proprio telefono. Se non inseriscono il codice di verifica, non potranno accedere.
Il processo dovrebbe essere abbastanza simile per altre distribuzioni e desktop di Linux, poiché i più comuni gestori di sessioni desktop Linux usano PAM. Probabilmente dovrai solo modificare un file diverso con qualcosa di simile per attivare il modulo PAM appropriato.
Se si utilizza la crittografia della home directory
Le versioni precedenti di Ubuntu offrivano una semplice opzione di "crittografia della cartella home" che codificava l'intera home directory fino a quando non immettevi la tua password. In particolare, questo utilizza ecryptfs. Tuttavia, poiché il software PAM dipende da un file di Google Authenticator memorizzato nella directory home per impostazione predefinita, la crittografia interferisce con il PAM leggendo il file a meno che non si accerti che sia disponibile in forma non crittografata al sistema prima di accedere. Consulta README per ulteriori informazioni informazioni su come evitare questo problema se stai ancora utilizzando le opzioni di crittografia della directory home deprecate.
Le versioni moderne di Ubuntu offrono invece la crittografia full-disk, che funzionerà bene con le opzioni di cui sopra. Non devi fare niente di speciale
Aiuto, è rotto!
Perché abbiamo appena abilitato questo per gli accessi grafici, dovrebbe essere facile da disabilitare se causa un problema. Premi una combinazione di tasti come Ctrl + Alt + F2 per accedere a un terminale virtuale e accedi con il tuo nome utente e password. È quindi possibile utilizzare un comando come sudo nano /etc/pam.d/lightdm per aprire il file per la modifica in un editor di testo terminale. Usa la nostra guida su Nano per rimuovere la linea e salvare il file, e sarai in grado di accedere di nuovo normalmente.
Potresti anche obbligare Google Authenticator a essere richiesto per altri tipi di login - potenzialmente anche tutti gli accessi al sistema - aggiungendo la riga "auth required pam_google_authenticator.so" ad altri file di configurazione PAM. Stai attento se lo fai. E ricorda, potresti voler aggiungere "nullok" in modo che gli utenti che non hanno completato il processo di installazione possano ancora accedere.
Ulteriore documentazione su come utilizzare e configurare questo modulo PAM è disponibile nel file README del software su GitHub.