Accesso al desktop e autenticazione degli utenti Linux¶
| Compatible Nitrokeys | |||||||
|---|---|---|---|---|---|---|---|
| ✓ active | ✓ active | ⨯ inactive | ⨯ inactive | ✓ active | ⨯ inactive | ⨯ inactive | ✓ active | 
Introduzione¶
This guide will walk you through the configuration of Linux to use FIDO Universal 2nd Factor, i.e. FIDO U2F with libpam-u2f and Nitrokey FIDO2.
If you want to login to you computer using Nitrokey Pro 2, Nitrokey Storage 2 and Nitrokey Start you can visit the instructions available here.
Requisiti¶
- Ubuntu 20.04 con Gnome Display Manager. 
- Nitrokey FIDO2 configurato seguendo queste istruzioni. 
Istruzioni¶
Metodo GUI¶
- Nell’angolo in basso a sinistra cliccate su - Show Applicationse digitate le impostazioni nella barra di ricerca come segue:  
- Scorri in basso nella barra di destra fino a - Users  
- Nell’angolo a sinistra cliccate su - Unlocke vi verrà richiesta la password  
- Selezionate - Administratore inserite il nome utente e la password che preferite  
- Una volta terminato il passo 4 si dovrebbe aver finito   
Metodo CLI¶
- Creare un utente di backup e dargli i privilegi di root. - Potete farlo usando questi comandi: - $ sudo adduser <backup_user> $ sudo usermod -aG sudo <backup_user> - Nel caso in cui si preferisca impostare U2F per un singolo utente, e si è bloccati dalla propria sessione utente, si sarebbe ancora in grado di accedere con il - <backup_user>, e procedere con la manutenzione.- Avvertimento - La seguente guida può potenzialmente bloccarvi fuori dal vostro computer. Dovresti essere consapevole di questi rischi, in quanto si raccomanda di utilizzare prima le istruzioni che seguono su un computer secondario, o dopo un backup completo. - Si potrebbe perdere l’accesso ai dati dopo aver configurato i moduli PAM. 
- Impostare il - rulesper riconoscere il Nitrokey FIDO2- Sotto - /etc/udev/rules.dscarica- 41-nitrokey.rules- $ cd /etc/udev/rules.d/ $ sudo wget https://raw.githubusercontent.com/Nitrokey/nitrokey-udev-rules/main/41-nitrokey.rules - E riavviare il servizio - udev- $ sudo systemctl restart udev 
- Installazione - libpam-u2f- Su Ubuntu 20.04 è possibile scaricare direttamente - libpam-u2fdai repo ufficiali- $ sudo apt install libpam-u2f - Nota - Clicca per altre opzioni - In alternativa potete costruire - libpam-u2fda Git.
- Per verificare che la libreria sia correttamente installata, digitate il seguente comando: 
 - $ file /lib/x86_64-linux-gnu/security/pam_u2f.so - L’output dovrebbe essere qualcosa come il seguente: - /lib/x86_64-linux-gnu/security/pam_u2f.so: \ ELF 64-bit LSB shared object, x86-64, version 1 (SYSV),\ dynamically linked, BuildID[sha1]=1d55e1b11a97be2038c6a139579f6c0d91caedb1, stripped 
- Preparare l’elenco - Creare - .config/Nitrokey/sotto la tua home directory- $ mkdir ~/.config/Nitrokey - E collega il tuo Nitrokey FIDO2. - Una volta terminata la preparazione, possiamo iniziare a configurare il computer per utilizzare Nitrokey FIDO2 per l’autenticazione a secondo fattore al login e - sudo.
- Generare il file di configurazione U2F - Per generare il file di configurazione useremo l’utility - pamu2fcfgche viene fornita con il- libpam-u2f. Per comodità, scriveremo direttamente l’output dell’utility nel file- u2f_keyssotto- .config/Nitrokey. Per prima cosa collegate il vostro Nitrokey FIDO2 (se non l’avete già fatto), e inserite il seguente comando:- $ pamu2fcfg > ~/.config/Nitrokey/u2f_keys - Once you run the command above, you will need to touch the device while it flashes. Once done, - pamu2fcfgwill append its output the- u2f_keysin the following format:- <username>:Zx...mw,04...0a - Nota, l’output sarà molto più lungo, ma le parti sensibili sono state rimosse qui. Per maggiore sicurezza, e una volta generato il file di configurazione, sposteremo la directory - .config/Nitrokeysotto la directory- etc/con questo comando:- $ sudo mv ~/.config/Nitrokey /etc - Suggerimento - Il file sotto - .config/Nitrokeydeve essere chiamato- u2f_keys
- Si raccomanda di testare prima le istruzioni con un solo utente. A questo scopo il comando precedente prende l’opzione - -u, per specificare un utente, come nell’esempio seguente:- $ pamu2fcfg -u <username> > ~/.config/Nitrokey/u2f_keys 
- Per la configurazione dei singoli utenti si dovrebbe puntare alla directory home nel prossimo passo, o non includere l’opzione - authfilenella configurazione PAM.
 
- Backup - Questo passo è facoltativo, tuttavia si consiglia di avere una Nitrokey di riserva in caso di perdita, furto o distruzione della tua Nitrokey FIDO. - Per impostare una chiave di riserva, ripetete la procedura sopra, e usate - pamu2fcfg -n. Questo ometterà il campo- <username>, e l’output può essere aggiunto alla linea con il tuo- <username>come questo:- <username>:Zx...mw,04...0a:xB...fw,04...3f 
- Modificare il modulo di autenticazione collegabile - PAM- Il passo finale è configurare i file del modulo PAM sotto - /etc/pam.d/. In questa guida modificheremo il file- common-authpoiché gestisce le impostazioni di autenticazione che sono comuni a tutti i servizi, ma sono possibili altre opzioni. È possibile modificare il file con il seguente comando:- $ cd /etc/pam.d $ sudo $editor common-auth - E aggiungete le seguenti righe all’inizio del file: - #Nitrokey FIDO2 config auth sufficient pam_u2f.so authfile=/etc/Nitrokey/u2f_keys cue [cue_prompt=Please touch the device.] prompt nouserok - Suggerimento - Dato che stiamo usando il Central Authentication Mapping, dobbiamo dire a - pam_u2fla posizione del file da usare con l’opzione- authfile.
- Se dimenticate spesso di inserire la chiave, - promptopzione fare- pam_u2fstampare- Insert your U2F device, then press ENTER.e darvi la possibilità di inserire la Nitrokey.
- If you would like to be prompted to touch the Nitrokey, - cueoption will make- pam_u2fprint- Please touch the device.message. You can change the message in- [cue_prompt=Please touch the device.].
- nouserok farà in modo che tu possa ancora fare il login usando il nome utente e la password, potresti volerlo rimuovere ad un certo punto una volta che la configurazione funziona e non vuoi più avere un regolare login basato su nome utente e password. 
 - Una volta modificato il - common-auth, possiamo salvare e uscire dal file.- Potete testare la configurazione digitando - sudo lsnel terminale. Dovrebbe comparire il messaggio- Please touch the device.ed avere un output simile sul terminale:- nitrouser@nitrouser:~$ sudo ls [sudo] password for nitrouser: Please touch the device. - Puoi anche testare la tua configurazione uscendo dalla sessione utente e rientrandovi. Una schermata simile dovrebbe essere visualizzata una volta che hai scollegato/ricollegato il tuo Nitrokey FIDO2 e digitato la tua password:   
Uso¶
Dopo la modifica del modulo PAM, sarete in grado di testare subito la vostra configurazione, ma si raccomanda di riavviare il computer e di scollegare/ricollegare Nitrokey FIDO2.
Una volta che avete provato correttamente le istruzioni di questa guida (e impostato un backup), si raccomanda di usare il required o il requisite flag di controllo invece di sufficient.
Le bandiere required e requisite forniscono un controllo di accesso più stretto, e renderanno necessaria la Nitrokey FIDO2 per effettuare il login, e/o utilizzare il servizio configurato.
Se hai bisogno di maggiori informazioni sui Control Flags nella linea di configurazione PAM, puoi vedere l’ultima sezione di questa guida per capire la differenza, e le implicazioni dell’uso di ciascuno di essi.
Moduli PAM¶
Ci sono diversi file di moduli PAM che possono essere modificati secondo le vostre esigenze:
- Modificando il file - /etc/pam.d/common-auth, sarete in grado di utilizzare Nitrokey FIDO per l’autenticazione a secondo fattore per il login grafico e- sudo. Nota:- common-authdeve essere modificato aggiungendo la linea di configurazione supplementare alla fine del file.
- If you wish to use FIDO U2F authentication solely for Gnome’s graphic login, you might prefer to modify the - /etc/pam.d/gdm-password
- In alternativa puoi semplicemente modificare il file - /etc/pam.d/sudose vuoi usare FIDO U2F quando usi il comando- sudo.
Bandiere di controllo¶
Nel passo 7 abbiamo usato il sufficient flag di controllo per determinare il comportamento del modulo PAM quando la Nitrokey è inserita o meno. Tuttavia è possibile cambiare questo comportamento utilizzando i seguenti flag di controllo:
- required: Questo è il flag più critico. Il risultato del modulo deve avere successo perché l’autenticazione continui. Questo flag può bloccarvi fuori dal vostro computer se non avete accesso alla Nitrokey.
- requisite: Simile a- requiredtuttavia, nel caso in cui un modulo specifico restituisca un fallimento, il controllo viene restituito direttamente all’applicazione, o allo stack PAM superiore. Questo flag può anche bloccarvi fuori dal vostro computer se non avete accesso alla Nitrokey.
- sufficient: Il risultato del modulo viene ignorato se fallisce. Il flag- sufficientè considerato sicuro ai fini dei test.
- optional: Il successo o il fallimento di questo modulo è importante solo se è l’unico modulo nello stack associato a questo servizio+tipo. Il flag- optionalè considerato sicuro da usare per scopi di test.
Avvertimento
- Se - requiredo- requisiteè impostato, il fallimento dell’autenticazione U2F causerà un fallimento dell’autenticazione generale. Il fallimento avverrà quando la Nitrokey FIDO configurata non è collegata, persa o distrutta.
- Perderai l’accesso al tuo computer se hai configurato male il modulo PAM e hai usato i flag - requiredo- requisite.
- Perderai anche la capacità di usare - sudose hai impostato la Mappatura dell’autenticazione centrale e hai usato i flag- requiredo- requisite.