PAMUSB è un modulo PAM (Pluggable Authentication Modules) che consente di fornire l’autenticazione mediante un dispositivo USB.
Ciò significa che è possibile utilizzare una memoria USB al posto della password, per qualsiasi attività, dall’accesso al sistema, all’avvio di programmi amministrativo, al posto delle richieste di sudo e così via.
Installazione di PAMUSB
E’ possibile installare PAMUSB tramite Ubuntu Software Center oppure un qualsiasi altro gestore di pacchetti.
Per installarlo invece da terminale:
sudo apt-get install pamusb-tools
Configurazione di un dispositivo USB
Terminata l’installazione basterà inserire una periferica USB e autorizzarla tramite terminale con:
sudo pamusb-conf --add-device=Acer
Acer è il nome che ho scelto per indicare questa penna USB, è possibile indicare un nome qualsiasi che verrà usato per identificare il dispositivo.
Qualora fossero inserite due o più periferiche USB verrà richiesta conferma su quale utilizzare:
Please select the device you wish to add. 0) SanDisk Cruzer Mini (SanDisk_Cruzer_Mini_200411009202ee5128a7-0:0) 1) M-Sys DiskOnKey (M-Sys_DiskOnKey_0704C21621003613-0:0) [0-1]: 1
Nell’elenco sopra sono presenti due dispositivi: un Sandisk Cruzer Mini e un M-Sys DiskOnKey. Utilizzare i numero 0 e 1 per scegliere il dispositivo da usare.
Se dovesse invece esser presente soltanto un dispositivo USB sarà mostrato un avviso unico ed evitata la richiesta:
Please select the device you wish to add. * Using "M-Sys DiskOnKey (M-Sys_DiskOnKey_0704C21621003613-0:0)" (only option)
Scelto il dispositivo fisico da usare verrà richiesta quale partizione usare, alla stessa maniera. Se fosse presente soltanto una partizione nel dispositivo sarà evitata la richiesta e mostrato solo questo avviso:
Which volume would you like to use for storing data ? * Using "/dev/sdc1 (UUID: 0DF9-F3B5)" (only option) Name : Acer Vendor : M-Sys Model : DiskOnKey Serial : M-Sys_DiskOnKey_0704C21621003613-0:0 UUID : 0DF9-F3B5 Save to /etc/pamusb.conf ? [Y/n]
Immettere la scelta con Y e un sintetico Done confermerà l’avvenuto salvataggio.
Adesso diventa necessario indicare a PAMUSB quali utenti dovranno essere autorizzati con questa periferica. E’ possibile farlo con:
sudo pamusb-conf --add-user=UTENTE
Indicando ovviamente al posto di UTENTE il nome utente da autorizzare. E’ possibile autorizzare se stessi con:
sudo pamusb-conf --add-user=$USER
La variabile $USER punta sempre al proprio nome utente.
Which device would you like to use for authentication ? * Using "Acer" (only option) User : ubuntu Device : Acer Save to /etc/pamusb.conf ? [Y/n]
Qualora fosse stato autorizzato più di un dispositivo verrà richiesto quale utilizzare, se ce ne fosse soltanto uno la richiesta sarà saltata e basterà confermare con Y i dati presentati.
Attivare infine la periferica memorizzando le informazioni sul dispositivo USB con:
pamusb-check $USER
* Authentication request for user "ubuntu" (pamusb-check) * Device "Acer" is connected (good). * Performing one time pad verification... * Regenerating new pads... * Access granted.
Questa operazione attiverà l’utente ubuntu per il dispositivo Acer e installerà la chiave nel dispositivo USB.
Attivazione di PAMUSB
Prima che PAMUSB entri in funzione è necessario attivare il modulo tra quelli che effettuano l’autenticazione. Ci sono tante maniere per attivare i moduli di PAMUSB, io preferisco quello controllato, senza toccare i files di autenticazione direttamente.
Creare un file di nome pamusb con
gksudo gedit /usr/share/pam-configs/pamusb
Al suo interno incollare quanto segue:
Name: PAMUSB authentication Default: yes Priority: 257 Auth-Type: Primary Auth: sufficient pam_usb.so
Salvare, chiudere l’editor di testo ed aggiornare le autorizzazioni con:
sudo pam-auth-update
Assicurarsi che sia presente il modulo PAMUSB nell’elenco e senza toccar nulla premere Invio per confermare.
Per disattivare PAMUSB basterà eseguire nuovamente l’ultimo comando e togliere la spunta alla voce PAMUSB authentication.
Test di funzionamento
Passiamo infine a provare il funzionamento di PAMUSB in maniera semplice:
sudo -K
Questo comando fa sì che sudo dimentichi le precedenti autorizzazioni e dal prossimo sudo chieda nuovamente l’autorizzazione.
sudo whoami
* pam_usb v0.4.2 * Authentication request for user "ubuntu" (sudo) * Device "Acer" is connected (good). * Performing one time pad verification... * Access granted. root
In situazioni normali sudo richiederebbe l’immissione della password, adesso invece ha eseguito il controllo dell’autenticazione con la chiave USB e se tutto è andato nella maniera corretta supererà la richiesta ed eseguirà il comando whoami col permesso di root, restituendo appunto root.
In questo modo tutte le richieste di sudo, gksudo, gksu, etc saranno automaticamente risolte da PAMUSB, in presenza della chiavetta USB.
Anche la richiesta di password per l’accesso sarà risolta da PAMUSB e appena cliccato sopra l’utente avverrà automaticamente l’accesso se il dispositivo USB è già inserito. Nel caso si avessero problemi nell’accesso automatico consultare il paragrafo Problemi di montaggio.
Attenzione!
Come indicato nella guida per la rimozione della richiesta di password, se si utilizza una home crittografata, non utilizzare l’accesso senza password, altrimenti la partizione home non verrà montata.
Nel caso si smarrisse o formattasse la chiave USB sarà sempre possibile accedere per mezzo della password:
* pam_usb v0.4.2 * Authentication request for user "ubuntu" (sudo) * Device "Acer" is not connected. * Access denied. [sudo] password for ubuntu:
Le due soluzioni sono quindi configurate come alternative tra loro. Volendo sarebbe possibile configurarle in modo che siano entrambe obbligatorie (chiave + password) ma non è lo scopo di questa guida.
Blocco e sblocco automatico del salvaschermo
Anche la richiesta di sblocco del salvaschermo sarà automaticamente risolta da PAMUSB, quindi dopo l’abbandono del computer, basterà reinserire la penna in una qualsiasi porta USB, attendere alcuni secondi e muovere il mouse.
Se la schermata di sblocco è già stata presentata non sarà sbloccata automaticamente, basterà premere Annulla (oppure il pulsante ESC) e muovere nuovamente il mouse per far autenticare automaticamente.
Volendo è anche possibile fare in modo che lo schermo venga bloccato alla rimozione del dispositivo USB e sbloccato automaticamente all’inserimento. Per far ciò è necessario modificare il file pamusb.conf in questo modo:
sudo gedit /etc/pamusb.conf
Trovare la sezione:
<user id="ubuntu"> <device> Acer </device> </user>
E modificarla in questo modo:
<user id="ubuntu"> <device> Acer </device> <agent event="lock">gnome-screensaver-command --lock</agent> <agent event="unlock">gnome-screensaver-command --deactivate</agent> </user>
Nel caso si usasse xscreensaver invece del salvaschermo di GNOME basterà sostituire gnome-screensaver-command con xscreensaver-command.
Salvare il file, chiudere l’editor di testo ed eseguire:
pamusb-agent
pamusb-agent[2617]: pamusb-agent up and running. pamusb-agent[2617]: Watching device "Acer" for user "ubuntu"
Rimuovendo il dispositivo USB sarà bloccato lo schermo e mostrati i messaggi sul terminale:
pamusb-agent[2617]: Device "Acer" has been removed, locking down user "ubuntu"... pamusb-agent[2617]: Running "gnome-screensaver-command --lock" pamusb-agent[2617]: Locked.
Reinserendo il dispositivo USB invece:
pamusb-agent[2617]: Device "Acer" has been inserted. Performing verification... pamusb-agent[2617]: Executing "/usr/bin/pamusb-check --quiet --config=/etc/pamusb.conf --service=pamusb-agent ubuntu" pamusb-agent[2617]: Authentication succeeded. Unlocking user "ubuntu"... pamusb-agent[2617]: Running "gnome-screensaver-command --deactivate" pamusb-agent[2617]: Unlocked.
E verrà automaticamente sbloccato lo schermo. Se tutto funziona correttamente come mostrato, premere CTRL+C per interrompere pamusb-agent e inserirlo tra le applicazioni di avvio dal menu Sistema – Preferenze – Applicazioni d’avvio.
In questo modo dal prossimo accesso si abiliterà automaticamente il blocco e lo sblocco mediante rimozione e inserimento del dispositivo USB.
E’ possibile anche eseguire comandi multipli in occasione dell’inserimento o rimozione semplicemente aggiungendo altre righe nel file pamusb.conf come quelle indicate in precedenza.
Problemi di montaggio
Nel caso venissero riportati errori di montaggio quali ad esempio l’errore Device is not removable è possibile intervenire nel file delle autorizzazioni con:
sudo gedit /etc/pmount.allow
Inserendo al suo interno:
# /etc/pmount.allow # pmount will allow users to additionally mount all devices that are # listed here. /dev/sdc1
Al posto di /dev/sdc1 inserire ovviamente la partizione del dispositivo da montare automaticamente all’inserimento.
Sicurezza
PAMUSB controlla la validità del dispositivo sulla base della sua tipologia (numero produttore e prodotto come indicati da lsusb), dal suo numero di serie e da una serie di dati casuali che vengono generati ad ogni suo utilizzo. Ulteriori informazioni su questo metodo di autenticazione sono disponibili nelle FAQ di PAMUSB e sul blog dell’autore.
All’interno del dispositivo USB viene conservata una directory .pamusb di pochi KB
ls -l /media/PAMUSB/.pamusb
-rwxr-xr-x 1 ubuntu ubuntu 1024 2010-05-23 21:39 ubuntu.ubuntu-desktop.pad
Al suo interno è conservata una chiave del computer (ubuntu-desktop) e dell’utente (ubuntu). Tale chiave fa coppia con una contenuta nella home dell’utente:
ls -l $HOME/.pamusb/
-rw------- 1 ubuntu ubuntu 1024 2010-05-23 21:39 Acer.pad
Col nome del dispositivo associato (Acer.pad). Queste due chiavi fanno coppia tra loro. Per cui nel caso che qualcuno riuscisse a copiare i dati del dispositivo USB, al primo accesso col dispositivo USB i dati di crittografia verranno riscritti con quelli aggiornati e l’attaccante non riuscirà più ad accedere.
Nel caso si dovessero perdere le informazioni di crittografia nella chiave oppure il dispositivo USB non venisse più riconosciuto è possibile azzerare i dati semplicemente eliminando i files .pad dal dispositivo USB e dalla home dell’utente. Quindi rigenerare le chiavi nuovamente con
pamusb-check $USER
Maggiori informazioni
PAMUSB richiede pochissimi KB nel dispositivo USB che può essere formattato con qualsiasi file system scrivibile su Linux e non è nemmeno necessario che venga dedicato esclusivamente a questo scopo, la chiavetta può essere tranquillamente usata per altri scopi e riempita con files di qualsiasi genere.
Ulteriori informazioni sulla configurazione di PAMUSB sono disponibili sul sito ufficiale http://pamusb.org/
Notizie più aggiornate sono presenti sul blog dell’autore: http://scox.info
Esempi di configurazioni avanzate di pamusb.conf sono disponibili sul sito ufficiale all’indirizzo http://pamusb.org/doc/configuration