Lo avevo gia’ fatto con sarge, ma da quando ho reinstallato con etch era una delle cose che avevo lasciato al futuro, ovvero ad adesso.
Sto parlando delle OPIE – One Time Password. Lo scopo di questo modulo e’ generare una password da richiedere (nel mio caso in ssh) ma che una volta usata viene ‘bruciata’, come avviene con alcuni sistemi usati dalle banche per autorizzare le transazioni. La comodita’ e’ quella di potersi collegare da macchine considerate non sicure, ad esempio il PC di un cliente o di un amico, che potrebbero avere uno sniffer a bordo, poiche’ il sistema non chiedera’ piu’ quella password, quindi averla non servira’ a nulla.
Si inizia ad installare i pacchetti richiesti:
apt-get install libpam-opie opie-server opie-client
L’utente (nell’esempio kevin) deve creare una password per OPIE che sara’ usata per generare le pass seguenti, attraverso l’apposito comando (notare cheuso il parametro -f per forzare quello che sarebbe un comando da dare esclusivamente da console):
opiepasswd -f -c kevin
Se vi dimenticate la password inserita potete rimuovere la riga relativa in /etc/opiekeys
Si deve poi configurare pam modificando il file /etc/pam.d/ssh inserendo la riga (la prima e la terza ci sono gia’, le ho messe per indicare dove metterla esattamente):
# Standard Un*x authentication.
auth sufficient pam_opie.so
@include common-auth
In questo modo prima di richiedere la password del passwd (comportamento standard), viene richiesta la OPIE.
E’ necessario pero’ modificare anche /etc/ssh/sshd_config nel valore di una variabile, ponendo:
ChallengeResponseAuthentication yes
Riavviamo poi sshd con
/etc/init.d/ssh restart
Se ora si prova a collegarsi in ssh, dopo il nome utente viene richiesta una pass mostrando due parametri: numero della chiave e seme. Il primo e’ decrescente (la prima volta viene chiesto la chiave 499, poi la 498 etc…) mentre il secondo e’ fisso ed e’ generato e visualizzato quando si da il comando opiepasswd. Questi due valori, insieme alla password inserita sempre con opiepasswd, serve ad ottenere una serie di parole che rappresentano il valore della chiave OPIE da inserire. Come calcolarla ? Ci sono vari sistemi, io uso un programma (free) in java installato sul mio SonyEricsson T630 che si chiama VeJOTP: basta inserire il numero di chiave richiesta, il seme e la password per ottenere la frase segreta, il numero di chiave viene poi decrementato automaticamente per cui la volta successiva basta premere il pulsante per ottenere la frase segreta.