pam_usb è un modulo PAM che fornisce l’autenticazione hardware per Linux utilizzando normali unità flash USB, schede SD, MMC, ecc.
Usando questo, sarai in grado di accedere senza password, semplicemente collegando una chiavetta USB o una scheda di memoria al tuo computer. Questa autenticazione USB funziona anche quando si eseguono comandi da terminale che richiedono un superutente: ad esempio, non verrà richiesta una password quando si utilizza sudo.
pam_usb funziona con qualsiasi applicazione che supporti PAM, come i gestori di accesso (GDM, Lightdm, ecc.) e su / sudo.
Per l’autenticazione, pam_usb utilizza il numero di serie, il modello e il fornitore dell’unità flash USB / della scheda di memoria, nonché i One Time Pad (OTP) opzionali. Quando i One Time Pad sono abilitati (questo è abilitato per impostazione predefinita, ma è possibile disabilitarlo), il file del pad utente pubblico viene memorizzato sulla scheda di memoria / USB in una cartella nascosta chiamata .pamusb
, mentre la chiave privata è archiviata in una cartella nascosta con lo stesso nome, archiviata nella home directory dell’utente.
Lo sviluppatore originale di questo strumento sembra averlo abbandonato, non ricevendo nuovi commit da aprile 2016 e nessuna nuova release dal 2011. Da allora sono stati apportati alcuni miglioramenti, in vari repository. Per continuare a migliorare pam_usb, lo strumento è stato biforcato, includendo anche il lavoro precedentemente svolto in altri repository (che includono miglioramenti come la porta UDisk2).
Caratteristiche di pam_usb:
- Autenticazione senza password (scheda di memoria / USB). Basta collegare la chiavetta USB / scheda di memoria che hai configurato con pam_usb per accedere
- Supporta unità flash USB, schede SD, MMC, ecc.
- Rilevamento automatico del dispositivo. pam_usb non richiede il montaggio della chiavetta USB; può individuare il dispositivo USB e accedere ai suoi dati direttamente, utilizzando UDisks
- Non è necessario riformattare l’unità flash USB
- Numero di serie USB, modello e verifica del fornitore
- Supporta l’autenticazione One Time Pads (OTP)
- Può essere utilizzato come autenticazione a due fattori, richiedendo sia la chiavetta USB che la password per accedere al sistema Linux
- È possibile utilizzare la stessa scheda di memoria / chiavetta USB su più macchine
Ci sono 3 strumenti forniti con pam_usb: pamusb-agent
che può essere utilizzato per attivare azioni all’autenticazione o rimozione del dispositivo (quindi ad esempio è possibile utilizzare un comando per bloccare lo schermo se il dispositivo viene rimosso), pamusb-conf
che rende più facile la configurazione di pam_usb e pamusb-check
che viene utilizzato per integrare il motore di autenticazione di pam_usb all’interno di script o applicazioni.
pam_usb attualmente non supporta l’aggiunta di più di un dispositivo per utente. Per adesso, pamusb-conf
non aggiunge dispositivi per utenti già configurati. Puoi monitorare questo problema qui.
Vale la pena notare che pam_usb viene utilizzato solo per il login e non per sbloccare il portachiavi GNOME o decrittografare le cartelle private. Il portachiavi GNOME non sembra supportare lo sblocco con nient’altro che usando la password. Quindi, anche se si accede automaticamente durante l’utilizzo di pam_usb e l’unità flash USB accoppiata è collegata, verrà comunque visualizzata la finestra di dialogo di sblocco del portachiavi GNOME, che richiede di immettere la password per sbloccarlo. Lo stesso accade quando si utilizza l’autenticazione dell’impronta digitale, ad esempio.
L’ho provato con GDM e LightDM. In entrambi i casi alla schermata di login ho dovuto cliccare sul mio nome utente e premere il tasto Invio per accedere, senza dover inserire la password dell’account.
Relativo USB: creare un’unità USB avviabile semplicemente copiando l’ISO sull’USB con Ventoy (Linux e Windows)
Installa e configura pam_usb (fork)
Questo fork pam_usb non è stato impacchettato nei repository ufficiali di nessuna distribuzione Linux. La vecchia versione 0.5.0 (che utilizza Python2 e Udisks1) è disponibile per alcune distribuzioni Linux, ma manca nella maggior parte.
Lo sviluppatore fork di pam_usb ha impacchettato questa versione di pam_usb per le recenti versioni di Debian e Ubuntu (così come Linux Mint, Pop! _OS e altre distribuzioni Linux basate su Debian o Ubuntu), e puoi scaricarla da qui (ti servirà solo il pacchetto libpam-usb da lì).
Il repository fork di pam_usb ha anche un file Arch Linux / Manjaro PKGBUILD disponibile.
Per altre distribuzioni Linux dovrai crearlo dal sorgente.
Se stai installando pam_usb (fork) dal pacchetto Debian fornito dal suo sviluppatore, durante l’installazione ti verrà chiesto di selezionare il dispositivo e l’utente:
Se non è il tuo caso o se desideri farlo manualmente in un secondo momento, puoi configurare pam_usb in questo modo. Collega un’unità flash USB o una scheda di memoria ed esegui il comando seguente per aggiungere il tuo nuovo dispositivo come metodo di autenticazione:
sudo pamusb-conf --add-device DEVICE_NAME
Dove DEVICE_NAME
può essere tutto quello che vuoi.
Successivamente, dovrai aggiungere il tuo utente alla configurazione pam_usb, utilizzando:
sudo pamusb-conf --add-user USERNAME
Dove USERNAME
è l’utente per il quale si desidera abilitare l’autenticazione basata su USB / scheda di memoria.
Il nome utente e le informazioni sul dispositivo vengono salvati nel file /etc/security/pam_usb.conf
file.
Ora puoi controllare la configurazione per vedere se tutto è corretto utilizzando:
pamusb-check USERNAME
È importante notare che utilizzando i pacchetti DEB forniti dal suo sviluppatore, non è necessario configurare nient’altro. Ma se hai installato pam_usb dal sorgente, dovrai aggiungere pam_usb nel processo di autenticazione del sistema, come spiegato qui.
Per altre opzioni di configurazione di pam_usb, vedere la sua pagina wiki Configurazione.
Configurare pam_usb per bloccare lo schermo se la chiavetta USB / scheda di memoria viene rimossa (e sbloccarla una volta ricollegata)
pam_usb può eseguire comandi quando la chiavetta USB / scheda di memoria è collegata o rimossa, con l’aiuto di pamusb-agent.
Il wiki pam_usb ha un esempio di una configurazione per bloccare lo schermo quando la chiavetta USB / scheda di memoria viene rimossa e sbloccarla quando viene ricollegata. Quell’esempio non funziona più su Gnome (ma dovrebbe funzionare su altri ambienti desktop, sostituzione gnome-screensaver-command
con cinnamon-screensaver-command
per il desktop Cinnamon, mate-screensaver-command
per desktop MATE, ecc.). [[Edit]]Puoi anche sostituirlo con xdg-screensaver
(parte di xdg-utils
pacchetto; per esempio xdg-screensaver lock
per bloccare lo schermo e xdg-screensaver reset
per sbloccarlo).
Per fare in modo che pam_usb blocchi lo schermo se la chiavetta USB / scheda di memoria viene rimossa e si sblocca una volta ricollegato il dispositivo, su distribuzioni Linux utilizzando systemd (ho testato questa configurazione solo su Gnome con GDM3), sto usando la seguente configurazione (/etc/security/pam_usb.conf
):
...................................
<user id="USERNAME">
<device>DEVICE_NAME</device>
<!-- When the user "USERNAME" removes the usb device, lock the screen -->
<agent event="lock">
<cmd>/usr/local/bin/screensaver-lock</cmd>
</agent>
<!-- Resume operations when the usb device is plugged back and authenticated -->
<agent event="unlock">
<cmd>/usr/local/bin/screensaver-unlock</cmd>
</agent>
</user>
...................................
Per fare in modo che funzioni vengono utilizzati due script. /usr/local/bin/screensaver-lock
viene utilizzato per bloccare lo schermo e /usr/local/bin/screensaver-unlock
per sbloccare lo schermo. Ecco i loro contenuti.
/usr/local/bin/screensaver-lock
:
#!/bin/sh
SESSION=`loginctl list-sessions | grep USERNAME | awk '{print $1}'`
if [ -n $SESSION ]; then
loginctl lock-session $SESSION
fi
/usr/local/bin/screensaver-unlock
:
#!/bin/sh
SESSION=`loginctl list-sessions | grep USERNAME | awk '{print $1}'`
if [ -n $SESSION ]; then
loginctl unlock-session $SESSION
fi
In entrambi, sostituire USERNAME
con il tuo nome utente.
Potrebbe piacerti anche: KDE Connect / GSConnect: come bloccare / sbloccare il desktop Linux utilizzando un dispositivo Android
tramite wiki.ubuntuusers.de