GNU/Linux >> Linux Esercitazione >  >> Debian

Come accedere a Linux utilizzando un'unità flash USB anziché una password utilizzando pam_usb (fork)

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


Debian
  1. Come creare un'unità USB avviabile utilizzando il comando dd

  2. Come scrivere file di registro nella RAM usando Log2ram in Linux

  3. Come creare USB avviabile Linux utilizzando Ubuntu o LinuxMint

  4. Come montare un'unità flash USB in Linux

  5. Come creare un Memtest86+ avviabile su un'unità flash USB?

Come installare un Ubuntu completo su un'unità flash USB

Come creare un'unità USB Ubuntu Live utilizzando la riga di comando

Come proteggere con password un file usando Vim su Linux

Come formattare un'unità USB in Debian

Come creare un'unità USB avviabile Rocky Linux 8

Come creare un'unità flash USB avviabile da Linux [Tutorial]