Connect with us

Linux

Come accedere con un’unità flash USB invece di una password su Linux utilizzando pam_usb (Fork)


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:

configurazione di libpam-usb

configurazione di libpam-usb

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


Ti e piaciuto questo articolo?
Supporta il mio lavoro, facendo una donazione!

Click to comment

Leave a Reply

Esegui l'accesso per Commentare

Di tendenza

Close Popup
Questo sito utilizza i cookie per migliorare servizi ed esperienza dei lettori. Se decidi di continuare la navigazione senza blocchi premi su Accetto, oppure continua tranquillamente la navigazione, nessun dato sulla tua navigazione verrà raccolto.
Close Popup
Privacy Settings saved!
Impostazioni

Quando visiti un sito Web, esso può archiviare o recuperare informazioni sul tuo browser, principalmente sotto forma di cookies. Controlla qui i tuoi servizi di cookie personali.

Questi cookie sono necessari per il funzionamento del sito Web e non possono essere disattivati nei nostri sistemi.

Cookie tecnici
Per utilizzare questo sito web usiamo i seguenti cookie tecnici necessari:
  • wordpress_test_cookie
  • wordpress_logged_in_
  • wordpress_sec
  • swpm_session

Google Adsense
Usiamo la pubblicità di Google solo per mantenere attivi i nostro sito. Con ip anonimizzati.

Rifiuta tutti i Servizi
Save
Accetta tutti i Servizi