Accesso al desktop e autenticazione degli utenti Linux#
✓ |
✓ |
✓ |
✓ |
⨯ |
⨯ |
⨯ |
✓ |
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.
Se si desidera effettuare il login al computer utilizzando Nitrokey Pro 2, Nitrokey Storage 2 e Nitrokey Avvio è possibile consultare le istruzioni disponibili qui.
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 Applications
e 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
Unlock
e vi verrà richiesta la passwordSelezionate
Administrator
e inserite il nome utente e la password che preferiteUna 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
rules
per riconoscere il Nitrokey FIDO2Sotto
/etc/udev/rules.d
scarica41-nitrokey.rules
$ cd /etc/udev/rules.d/ $ sudo wget https://raw.githubusercontent.com/Nitrokey/libnitrokey/master/data/41-nitrokey.rules
E riavviare il servizio
udev
$ sudo systemctl restart udev
Installazione
libpam-u2f
Su Ubuntu 20.04 è possibile scaricare direttamente
libpam-u2f
dai repo ufficiali$ sudo apt install libpam-u2f
Nota
Clicca per altre opzioni
In alternativa potete costruire
libpam-u2f
da 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
pamu2fcfg
che viene fornita con illibpam-u2f
. Per comodità, scriveremo direttamente l’output dell’utility nel fileu2f_keys
sotto.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
Una volta eseguito il comando di cui sopra, dovrete toccare il tasto mentre lampeggia. Una volta fatto,
pamu2fcfg
aggiungerà al suo output ilu2f_keys
nel seguente formato:<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/Nitrokey
sotto la directoryetc/
con questo comando:$ sudo mv ~/.config/Nitrokey /etc
Suggerimento
Il file sotto
.config/Nitrokey
deve essere chiamatou2f_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
authfile
nella 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 filecommon-auth
poiché 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 prompt nouserok
Suggerimento
Dato che stiamo usando il Central Authentication Mapping, dobbiamo dire a
pam_u2f
la posizione del file da usare con l’opzioneauthfile
.Se dimenticate spesso di inserire la chiave,
prompt
opzione farepam_u2f
stampareInsert your U2F device, then press ENTER.
e darvi la possibilità di inserire la Nitrokey.Se volete essere invitati a toccare la Nitrokey,
cue
opzione faràpam_u2f
stamparePlease touch the device.
messaggio.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 ls
nel terminale. Dovrebbe comparire il messaggioPlease 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 esudo
. Nota:common-auth
deve essere modificato aggiungendo la linea di configurazione supplementare alla fine del file.Se vuoi usare l’autenticazione FIDO U2F solo per il login grafico di Gnome, potresti preferire modificare il
/etc/pam.d/gdm-password
In alternativa puoi semplicemente modificare il file
/etc/pam.d/sudo
se vuoi usare FIDO U2F quando usi il comandosudo
.
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 arequired
tuttavia, 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 flagsufficient
è 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 flagoptional
è considerato sicuro da usare per scopi di test.
Avvertimento
Se
required
orequisite
è 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
required
orequisite
.Perderai anche la capacità di usare
sudo
se hai impostato la Mappatura dell’autenticazione centrale e hai usato i flagrequired
orequisite
.