next up previous contents
Next: L'infrastruttura di base dell'elenco Up: Configurazione Previous: La configurazione lato server   Contents


La configurazione lato client

Il file di configurazione delle libererie per l'accesso al database, che vengono usate da tutti i vari client, compresi quelli del pacchetto ldap-utils, è /etc/ldap/ldap.conf.6 In questo file va specificato quale è il server a cui si fa riferimento: è preferibile usare la direttiva uri, specificando al solito l'indirizzo come ldaps://ldap.gnulinux.it ed eliminando le direttive host e port. Inoltre il file deve anche indicare il certificato della Certification Authority e la direttiva che impone il riconoscimento del server. Un esempio del contenuto del file è il seguente:

BASE    dc=gnulinux, dc=it
URI     ldaps://ldap.gnulinux.it

tls_checkpeer yes
tls_cacertfile /etc/ssl/certs/cacert.pem
rootbinddn cn=admin,dc=chl,dc=it
e l'ultima direttiva (rootbinddn) è quella che dice su quale utente devono essere mappate le richieste effettuate da root (di norma sono fatte in maniera anonima. É anche possibile, con le direttive binddn e bindpw specificare un collegamento al database attraverso uno specifico utente, di cui occorre fornire, come nell'esempio, il Distinguished Name e la password (in chiaro). Nel caso dell'utente associato root questa viene mantenuta a parte nel file /etc/ldap.secret i cui permessi devono essere settati a 0400.

Se si è attivata la richiesta di verifica del client da parte di slapd occorre settare il client per l'utilizzo dei certificati. Per ciascun client si dovranno pertanto ripetere le operazioni viste in sez. 4.1, per creare un certificato firmato dalla stessa CA del server. Anche qui si abbia cura di usare come Common Name il FQDN del client. Questi andranno copiati nella stessa directory /etc/ssl/certs/ con gli stessi permessi visti in precedenza. Fatto questo si deve indicare al client di usare questi certificati.

Purtroppo questo non può essere fatto dal file di configurazione generale, ma deve essere specificato per ciascun utente nell'opportuno file di configurazione personale .ldaprc,7in cui devono essere inserite le righe:

TLS_CACERT      /etc/ssl/certs/cacert.pem
TLS_CERT        /etc/ssl/certs/newcert.pem
TLS_KEY         /etc/ssl/certs/newkey.pem
TLS_REQCERT     hard
(la prima è opzionale se il file della CA è già stato settato in ldap.conf.

Una volta fatto questo si potrà verificare l'accesso all'elenco, il comando base che permette di fare delle ricerche è ldapsearch, se invocato senza parametri, con un comando del tipo:

[root@havnor root]# ldapsearch -x
e questo accederà al server specificato in ldap.conf per effettuare una ricerca generica, con accesso anonimo. L'opzione -x serve a specificare che l'autenticazione deve essere effettuata in modalità semplice.8 Ulteriori opzioni utili sono:
\begin{basedescript}{\desclabelwidth{1.0cm}}
\item[\texttt{-H}] permette di spec...
... password}.
\item[\texttt{-W}] chiede la password al prompt.
\end{basedescript}

Purtroppo allo stato delle cose non è possibile una modalità di autenticazione generica per del client nei confroti del server. Questo perché la modalità specificata funziona soltanto finché si ha l'accesso alla chiave privata del certificato del client, data da TLS_KEY, e questa deve essere in chiaro, e non è pensabile che gli utenti possano accedere ad un certificato che identifica una macchina.

Se pertanto se deve autenticare il client rispetto al server occorrerà fornire ciascun utente di un suo proprio certificato, rendendo ovviamente la cosa molto più macchinosa.



Footnotes

.../etc/ldap/ldap.conf.6
per RedHat invece è /etc/openldap/ldap.conf, lo segnalo perché altri potrebbero farsi trarre in inganno dalla (assai discutibile) presenza del file /etc/ldap.conf che invece è il file di configurazione di libnss-ldap.
....ldaprc,7
in realtà il file di configurazione può essere uno qualunque fra $HOME/.ldaprc, $HOME/ldaprc e $HOME/$LDAPRC, oppure si può usare la veriabile di ambiente LDAPRC per specificare un file a piacere.
...semplice.8
LDAP supporta vari schemi di autenticazione, come Kerberos, SASL e una simple authentication che viene effettuata con password che vengono trasmesse in chiaro e confrontate con il relativo hash memorizzato nel campo, userPassword. Si è scelto quest'ultima per la sua semplicità, dato che comunque tutte le comunicazioni fra client e server sono crittate.

next up previous contents
Next: L'infrastruttura di base dell'elenco Up: Configurazione Previous: La configurazione lato server   Contents
Simone Piccardi 2002-09-28