Grazie a
http://www.pamusb.org/ e' possibile utilizzare chiavi DSA conservate su semplici pendrive USB per effettuare l'autenticazione con PAM sul proprio sistema.
1) Installazione
Tutto quello di cui abbiamo bisogno lo possiamo trovare in portage:
Code: Select all
* sys-auth/pam_usb
Available versions: ~0.3.1 ~0.3.2
Installed: none
Homepage: http://www.pamusb.org/
Description: A PAM module that enables authentication using an USB-Storage device (such as an USB Pen) through DSA private/public keys.
il pacchetto e' masked quindi bisogna aggiungerlo in
/etc/portage/package.keywords
Code: Select all
# login con chiavi DSA da usb
sys-auth/pam_usb
Ora possiamo emergere il pacchetto:
2) Creare le chiavi necessarie
Assicuratevi che il vostro pendrive sia montato ed accessibile dal vostro utente. Il mio e' montato in
/mnt/pendrive con un FS
vfat ed ha come device
/dev/sda1
Per creare le chiavi utilizzate:
Code: Select all
$ usbadm keygen [/path/della/dir/del/pendrive/] [user] [bits]
[!] Directory /home/[user]/.auth/ not found, creating one...
[!] Directory [/path/della/dir/del/pendrive/]/.auth/ not found, creating one...
[W] Cannot chown u(0) g(0) the directory [/path/della/dir/del/pendrive/]/.auth/
[!] Generating 1024 DSA key pair for [user]@[host]
[!] Extracting private key...
[+] Private key extracted.
[+] Private key successfully written.
[!] Writing public key...
[+] Public key successfully written.
Dove user e' il vostro utente e bits e' la grandezza della chiave che volete generare. Il warning di chown e' normale su di un filesystem vfat, se il vostro filesystem supporta i permessi non dovreste riceverlo.
ATTENZIONE: la directory .auth deve trovarsi nella root del pendrive e non in una sottocartella perche' e' li' che verra' cercata al login.
3) Modalita' di pam_usb
Vi ricordo che pam_usb puo' funzionare in 3 modalita':
- Unique: Puoi effettuare il login solamente utilizzando
il tuo pendrive USB, se non e' presente non e' possibile effettuare il login.
- Alternative: Inserire il pen drive e' sufficiente ad effettuare il login.
Se non e' presente viene presentato il solito prompt per effettuare il
login manuale.
- Additional: Per effettuare il login bisogna inserire il pen drive e
successivamente digitare la password al prompt.
In particolare io spiego come usarlo in come
Alternative ma modificando i file in
/etc/pam.d/ in maniera simile a come indicato
qui non dovrebbe essere troppo difficile configurarlo diversamente.
4) Sistemiamo il nostro /etc/pam.d/
Creiamo un file di log:
Editiamo
/etc/pam.d/system-auth in modo da inserire la seguente riga:
Code: Select all
auth sufficient pam_usb.so !check_device force_device=/dev/sda1 fs=vfat debug=1 log_file=/var/log/pam_usb.log
in questa posizione:
Code: Select all
auth required pam_env.so
auth sufficient pam_usb.so !check_device force_device=/dev/sda fs=vfat debug=1 log_file=/var/log/pam_usb.log
auth sufficient pam_unix.so likeauth nullok
[...]
!check_device serve a far funzionare pam_usb con i kernel 2.6 (anche se la nuova versione 0.3.3 non in portage non ha bisogno di questa opzione)
force_device=/dev/sda1 indica il device da usare
fs=vfat il tipo di filesystem del pendrive
Le altre due sono abbastanza esplicative, se non volete logging potete anche toglierle
5) Fine
Ora dovreste essere in grado di loggarvi semplicemente inserendo il pendrive ed immettendo il vostro nome utente al login.
Non sono al corrente di quanto questo metodo possa essere sicuro, personalmente lo utilizzo per comodita' e soprattutto perche' lo volevo provare

Resta una simpatica alternativa al lettore di impronte digitali.
edit: Dimenticavo, volendo si potrebbe configurare udev in modo da riconoscere il proprio pendrive ed assegnargli una particolare device (per evitare che con 2 pendrive connessi ci possano essere problemi)
bye