pam_usb è un modulo PAM che fornisce l'autenticazione hardware per Linux con comuni unità flash USB, schede SD, MMC, ecc.
Ciò ti consente 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 B. Login manager (GDM, Lightdm ecc.) e su / sudo.
Per l'autenticazione, pam_usb utilizza il numero di serie dell'unità flash USB/scheda di memoria, il modello e il produttore e gli one-time pad (OTP) opzionali. Quando i One Time Pad sono abilitati (questo è abilitato per impostazione predefinita, ma puoi disabilitarlo), il file dei pad utente pubblici sulla USB/scheda di memoria sarà in una cartella nascosta chiamata. .pamusb
salvato mentre la chiave privata è memorizzata in una cartella nascosta con lo stesso nome che è memorizzata nella home directory dell'utente.
Lo sviluppatore originale di questo strumento sembra aver rinunciato, nessun nuovo commit da aprile 2016 e nessun nuovo rilascio dal 2011. Da allora, sono stati apportati alcuni miglioramenti in vari repository. Per migliorare ulteriormente pam_usb, lo strumento ha eseguito il fork, tenendo conto anche del lavoro svolto in precedenza in altri repository (che includono miglioramenti come la porta UDisk2).
funzioni pam_usb:
- Autenticazione senza password (scheda di memoria/USB). Collega semplicemente la chiavetta USB/scheda di memoria che hai configurato con pam_usb per accedere
- Supporta chiavette USB, schede SD, MMC, ecc.
- Sondaggio automatico del dispositivo. pam_usb non richiede il montaggio dell'unità flash USB; può localizzare il dispositivo USB e accedere ai suoi dati direttamente utilizzando UDisk
- Non è necessario riformattare l'unità flash USB
- Numero di serie USB, verifica del modello e del produttore
- Supporta l'autenticazione One Time Pad (OTP)
- Può essere utilizzato come autenticazione a due fattori e richiede sia la chiavetta USB che la password per accedere al tuo sistema Linux
- Puoi 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 avviare azioni quando il dispositivo viene autenticato o rimosso (ad esempio, puoi utilizzare un comando per bloccare lo schermo quando il dispositivo viene rimosso), pamusb-conf
che semplifica la configurazione di pam_usb e pamusb-check
che viene utilizzato per integrare il motore di autenticazione pam_usb in script o applicazioni.
pam_usb attualmente non supporta l'aggiunta di più di un dispositivo per utente. Per ora, pamusb-conf
non aggiunge dispositivi per utenti già configurati. Puoi seguire questo problema qui.
Vale la pena ricordare pam_usb viene utilizzato solo per accedere e non per sbloccare il portachiavi di GNOME o decrittografare le cartelle private . Il portachiavi GNOME non sembra supportare lo sblocco con nient'altro che usando la password. Anche se hai effettuato l'accesso automaticamente mentre usi pam_usb e l'unità flash USB accoppiata è collegata, verrà visualizzata la finestra di dialogo Sblocco portachiavi GNOME, che ti chiederà di inserire la password di sblocco. la stessa cosa accade, ad esempio, se si utilizza l'autenticazione tramite impronta digitale.
L'ho provato con GDM e LightDM. In entrambi i casi, ho dovuto fare clic sul mio nome utente nella schermata di accesso e premere invio per accedere senza dover inserire la password dell'account.
[[Modifica]]In un commento qui sotto, lo sviluppatore ha notato che stava cercando di trovare aiuto con una revisione della sicurezza del codice. Se puoi aiutarli, contattali tramite github.
Relativo all'USB:crea un'unità USB avviabile semplicemente copiando l'ISO sulla chiavetta USB utilizzando Ventoy (Linux e Windows)
Installa e configura pam_usb (fork)
questo pam_usb-fork non è stato inserito nei repository ufficiali di nessuna distribuzione Linux. La vecchia versione 0.5.0 (che usa Python2 e Udisks1) è disponibile per un paio di distribuzioni Linux, ma nella maggior parte è carente.
Lo sviluppatore del fork pam_usb ha confezionato questa versione pam_usb per le attuali versioni di Debian e Ubuntu (oltre a Linux Mint, Pop! _OS e altre distribuzioni Linux basate su Debian o Ubuntu) e puoi scaricarla qui (da lì è solo necessario il pacchetto libpam-usb).
Il repository fork pam_usb ha anche un Arch Linux / Manjaro PKGBUILD disponibile .
Per altre distribuzioni Linux, dovrai compilarlo dal sorgente .
Se stai installando pam_usb (fork) dal pacchetto Debian fornito dallo sviluppatore, durante l'installazione ti verrà chiesto di selezionare il dispositivo e l'utente:
Se questo non è il tuo caso, o se vuoi farlo manualmente in un secondo momento, ecco come puoi configurare pam_usb. Inserisci 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 ciò che vuoi
Successivamente, devi 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 in /etc/security/pam_usb.conf
File.
Ora puoi controllare la configurazione per vedere se tutto è corretto usando:
pamusb-check USERNAME
È importante notare che se si utilizzano i pacchetti DEB forniti dallo sviluppatore, non è necessario configurare nient'altro. Ma se hai installato pam_usb dal sorgente, devi aggiungere pam_usb al processo di autenticazione del sistema come spiegato qui.
Per ulteriori opzioni di configurazione di pam_usb, vedere la sua pagina wiki di configurazione.
Configura pam_usb per bloccare lo schermo quando viene rimossa la chiavetta USB/scheda di memoria (e sbloccarla una volta reinserita)
pam_usb può eseguire comandi con l'aiuto di pamusb-agent quando la chiavetta USB/scheda di memoria viene inserita o rimossa.
Il wiki pam_usb ha un esempio di configurazione per bloccare lo schermo quando si rimuove la chiavetta USB/scheda di memoria e sbloccarla quando la si reinserisce. Questo esempio non funziona più su Gnome (ma dovrebbe funzionare su altri ambienti desktop sostituendolo) gnome-screensaver-command
con cinnamon-screensaver-command
per desktop Cinnamon, mate-screensaver-command
per desktop MATE ecc.). [[Modifica]]Puoi sostituirlo con xdg-screensaver
(Parte del 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 quando si rimuove la chiavetta USB/scheda di memoria e, una volta ricollegato il dispositivo, si sblocchi su distribuzioni Linux con sistema (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>
...................................
Due script vengono utilizzati per farlo funzionare. /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
Sostituisci in entrambi USERNAME
con il tuo nome utente.
Potrebbe interessarti anche:KDE Connect / GSConnect:come bloccare/sbloccare il tuo desktop Linux utilizzando un dispositivo Android
sopra wiki.ubuntuusers.de