SLAPD + SAMBA + TLS
Un saluto a tutta la lista. Ho un problema relativo a slapd + samba e tls.
Procediamo per passi: installo tutto il software necessario, verifico
che tutta la suite dei programmi funziona correttamente senza l'utilizzo
del tls e il tutto funziona alla perfezione senza riscontro di errori.
Procedo allora con la creazione dei certificati per l'utilizzo del TLS,
configuro slapd, libnss-ldap, libpam_ldap, ldaputil, smbldap-tools e
samba. Slapd si avvia con successo, le ldaputil funzionano a dovere,
libnss-ldap e pam_ldap funzionano correttamente, anche gli smbldap-tools
funzionano a dovere, quando pero vado ad utilizzare samba con l'utilizzo
di ldap ssl = start_tls ricevo il seguente errore:
2009/08/01 17:45:15, 10]
lib/ldap_debug_handler.c:samba_ldap_log_print_fn(26)
[LDAP] ldap_parse_extended_result
[2009/08/01 17:45:15, 10]
lib/ldap_debug_handler.c:samba_ldap_log_print_fn(26)
[LDAP] ldap_parse_result
[2009/08/01 17:45:15, 10]
lib/ldap_debug_handler.c:samba_ldap_log_print_fn(26)
[LDAP] ldap_msgfree
[2009/08/01 17:45:15, 10]
lib/ldap_debug_handler.c:samba_ldap_log_print_fn(26)
[LDAP] TLS: can't connect: Error in the push function..
[2009/08/01 17:45:15, 0] lib/smbldap.c:smb_ldap_start_tls(596)
[2009/08/01 17:45:15, 10]
lib/ldap_debug_handler.c:samba_ldap_log_print_fn(26)
[LDAP] ldap_err2string
Failed to issue the StartTLS instruction: Connect error
Premetto che questo errore lo ricevo solo quando samba viene avviato
all'avvio del sistema.
Effettuando diverse prove, inserendo l'avvio di ldapsearch -x -ZZ -d -1
dopo l'avvio di slapd (nello stesso script d'avvio), anche con
ldapsearch, ottengo come errore TLS: can't connect: Error in the push
function..
Ho provato a inserire anche una sleep dopo l'avvio di slapd ma non ci
sono risultati esaustivi.
Altra prova è stata quella di avviare solamente slapd all'avvio, quindi
dopo l'avvio del sistema, mi loggo, lancio samba manualmente con
/etc/init.d/samba start e samba riesce a connettersi senza nessun tipo
problema e il log di slapd riporta:
Aug 1 17:51:15 PDC slapd[1891]: conn=1 op=0 STARTTLS
Aug 1 17:51:15 PDC slapd[1891]: conn=1 op=0 RESULT oid= err=0 text=
Aug 1 17:51:16 PDC slapd[1891]: conn=1 fd=14 TLS established
tls_ssf=256 ssf=256
Qualcuno ha qualche idea da cosa possa dipendere?
Cmq successivamente ho fatto altre prove. Ho impostato in slapd.conf
TLSVerifyClient da demand a never e tutto funziona, compreso samba,
sempre in TLS.
Premetto che per verificare l'utilizzo del tls con samba e gli altri
tool, ho impostato "security ssf=256 update_ssf=256", infatti con
un'ulteriore prova, commentando in smb.conf l'opzione ldap ssl =
start_tls il log di samba riportava che il server richiedeva
confidenzialità.
Detto ciò, la mia domanda è: perchè all'avvio di debian, samba non
riesce a connettersi a slapd, riportando gli errori citati, mentre se lo
avvio manualmente non ricevo nessun tipo di errore?
Inoltre scorrendo il log di slapd, ho notato che ad ogni operazione su
slapd, esempio: una query con ldapsearch, un getent passwd, un
smbldap-useradd, lo stesso avvio di samba, mi riporta il seguente errore:
Aug 1 18:05:38 PDC slapd[2002]: connection_read(14): unable to get TLS
client DN, error=-4 id=1
Aug 1 18:06:35 PDC slapd[2023]: connection_read(14): unable to get TLS
client DN, error=49 id=1
Il primo lo ricevo quando il TLSVerifyClient e su demand, il secondo con
never (hanno codice d'errore diversi)
Nel man di slapd.conf c'è scritto:
TLSVerifyClient <level>
Specifies what checks to perform on client certificates in
an incoming TLS
session, if any. The <level> can be specified as one
of the following
keywords:
....
demand | hard | true
These keywords are all equivalent, for
compatibility reasons. The
client certificate is requested. If no certificate
is provided, or
a bad certificate is provided, the session
is immediately
terminated.
e' possibile che il primo problema, quello dell'avvio di samba che non
riesce a negoziare la sessione TLS, e che l' "unable to get TLS client
DN", siano dovuti ad una creazione errata dei certificati?
I certificati vengono creati con:
/usr/lib/ssl/misc/CA.pl -newca
openssl req -newkey rsa:1024 -nodes -keyout key.pem -out newreq.pem
/usr/lib/ssl/misc/CA.pl -sign
Grazie in anticipo. Saluti.
Reply to: