Package: libnss-ldap
Version: 258-1b+1

  I have a group of hosts which use libnss-ldap for passwd and
shadow information, and have recently added a lenny client to 
the group, which otherwise consists of etch machines.

  All clients use ldaps/TLS to communicate with the slapd on the 
server.  The lenny client was initially configured identically
to the etch clients.  

  In particular, the nontrivial lines of /etc/libnss-ldap.conf are:

> base dc=<sanitized>,dc=<sanitized>
> uri ldaps://<fq hostname>/
> ldap_version 3
> bind_policy hard
> ssl on
> tls_checkpeer yes
> tls_cacertfile /etc/ldap/cacerts/cacert.pem
> use_sasl no
> rootuse_sasl no
> nss_initgroups_ignoreusers 
> root,daemon,bin,sys,sync,man,lp,mail,nobody,statd,sshd,ntp

  ... and /etc/ldap/ldap.conf has:

> BASE dc=<sanitized>, dc=<sanitized>  
> URI  ldaps://<fq hostname>/
> TLS_CACERT   /etc/ldap/cacerts/cacert.pem
> TLS_REQCERT  hard

  This configuration allows connections from an etch client to
the etch server, but not from a lenny client to the etch server,
with the same certificates in both cases.  

  Running "id <valid-username>" illustrates the difference
in behavior, on the etch client I get the username output,
and on the lenny client, I get "no such user".  

  Running "strace id <valid-username>" shows that the socket
connection is succeeding on the correct port, and reads and 
writes through the socket are successful.  This eliminates 
networking issues.

  Running "id <valid-username>" with a "debug 9999" line added
to /etc/libnss-ldap.conf gives a message part way through 
stating "TLS: peer certificate is expired", but running 
"openssl -x509 -text -in /etc/ldap/cacerts/cacert.pem" shows
that the certificate's validity period extends from October 2006
through October 2016.  "date" on the lenny client gives the
correct date.

  Doing the same "debug 9999" "id <valid-username>" operation
on an etch client shows a "certificate validated" message.

  A work-around is to change the TLS-REQCERT entry in
/etc/ldap/ldap.conf to "allow", although presumably this means
that the traffic is then not encrypted.  "try" and "hard"
both fail, and "never" also allows the "id" process to succeed.

  The permissions on /etc/ldap/cacerts/cacert.pem are 644.

  One oddity is that the certificate *is* self-signed.  I have
seen documentation suggesting that this could be a problem, but
I'm unclear on whether this is really the case, and encouraged
by the fact that the etch clients don't appear to have a
problem with this.

  My personal suspicion is that some security default has changed,
or possibly that I'm missing an optional library or cipher method
or something, and this is possibly a migration issue.  I would 
appreciate any assistance you could offer with that.

  In any case, it seems clear to me that, at a minimum, the 
certificate status is being misreported.

                                -- A.
-- 
Dr. Andrew C. E. Reid
Computer Operations Administrator
Center for Theoretical and Computational Materials Science
National Institute of Standards and Technology, Mail Stop 8910
Gaithersburg MD 20899 USA
[EMAIL PROTECTED]



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to