Come Usare una USB al posto della password su Ubuntu e Linux

0
UsareunaUSBalpostodelle
Usare una USB al posto dell e1604342609226

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

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui