Hello Maurizio,
Friday, March 18, 2005, 5:32:29 PM, you wrote:
>> Il coso funziona, ma richiede obbligatoriamente che l'utente esista anche
>> nel sistema, il che rende inutile averlo, perche` io volevo autenticare
>> degli utenti in maniera totalmente indipendente da passwd. Questo invece
>> in pratica consente di autenticare un utente che esiste in passwd usando
>> pero` una password diversa da quella di passwd.
MLT> Ok, di "per davvero" quello che vuoi fare, che questa descrizione, e`
MLT> quanto meno sospetta (e magari ci sono soluzioni piu` indicate).
Risolto.
Dunque, openvpn 2.0 permette di autenticare oltre che gli host con chiavi
asimmetriche anche gli utenti con username e password. L'autenticazione
degli utenti avviene solo a mezzo di PAM. In realta` avviene attraverso un
plugin, ma ho paura a scrivere un plugin per autenticare una VPN date le
mie scarse conoscenze di programmazione, potrei facilmente cascare in
qualche errore alla Microsoft e farmi aprire come una cozza.
Ora volendo fare un concentratore di VPN che usi openvpn 2.0 e che
anziche` autenticare i client con delle chiavi asimmetriche usi una
accoppiata user/password (in realta` faccio tutte e due le autenticazioni
una dietro l'altra) posso usare solo PAM. Una configurazione del tipo:
password required pam_unix.so nullok obscure min=4 max=8 md5
funziona benissimo e mi autentica gli utenti su passwd, ma non voglio che
gli utenti della vpn stiano in passwd.
Se faccio una configurazione del tipo:
auth required /lib/security/pam_pwdfile.so pwdfile
/etc/openvpn/rw-passwords
succede che pam_pwdfile mi autentica l'utente, ma poi (e qui si vede che
non ho capito PAM) veniva chiamato pam_unix.so il quale ovviamente mi
diceva che non esiste l'utente che uso (che in effetti in passwd non
esiste).
Solo dopo ho scoperto (a naso!) che non avendo io specificato da nessuna
parte una riga "account" nella mia configurazione di PAM, veniva comunque
chiamato pam_unix.so per la funzione "account" dopo che era stato chiamato
pam_pwdfile.so per la funzione "auth".
Insomma, ho risolto cosi`:
auth required /lib/security/pam_pwdfile.so pwdfile
/etc/openvpn/rw-passwords
account sufficient /lib/security/pam_permit.so
Questo fa autenticare sul file rw-passwords e poi evita che l'utente
venga cercato in passwd.
Insomma, di PAM ho capito veramente poco, ma cosi` funziona, pare.
--
Fabio "Kurgan" Muzzi
La diagnosi del tecnico:
Occorre riorientare i cristalli di Dilitio
|