David Wright wrote:
> 
> I am faced with the same "signaled to death by 11" problem on RH 7.1
> that has been reported in this list several times before. I think I
> understand the problem, but I need a little coaching to implement a
> solution.
> 
> Here's the problem: whenever I login correctly,
>    # telnet localhost imap
>    Trying 127.0.0.1...
>    Connected to localhost.localdomain.
>    Escape character is '^]'.
>    * OK sartre.rprc.washington.edu Cyrus IMAP4 v2.0.16 server ready
>    . login <username> <password>
>    Connection closed by foreign host.
> the connection closes, and the spawned imapd process
>    imapd[16162]: login: localhost.localdomain[127.0.0.1] <username>
> plaintext
>    imapd[16192]: pam_ldap: ldap_set_option(LDAP_OPT_X_TLS_REQUIRE_CERT):
> Unknown error
>    imapd[16192]: pam_ldap: _set_ssl_options failed
>    master[16154]: process 16192 exited, signaled to death by 11
> dies ignominiously.
> 
> I am using
>    sasl_pwcheck_method: PAM
> and pam_ldap to authenticate against an OpenLDAP database. Note that
> pam_ldap complains that it has been passed an option
>    LDAP_OPT_X_TLS_REQUIRE_CERT
> with which it is unfamiliar
> 
> My guess is that the LDAP_OPT_X_TLS_REQUIRE_CERT option is the problem.
> Needless to say, that means the the previously touted explanations
> regarding Berkley DB linking problems are red herrings.

Looks like you're probably correct.

> So... how can I get cyrus-imap not to require TLS for a plaintext login?
> I realize the cyrus team thinks they are doing me a favour by requiring
> this, but there really needs to be a simple way to disable it in
> configuration files. Also, imapd certainly shouldn't be comiting suicide
> just because a PAM module doesn't understand its request for some
> exceedingly obscure LDAP_OPT_X option.

What makes you think that cyrus-imap is requiring TLS?  SASL simply asks
the pam module to verify a username/password pair, how the pam module
does this is completely opaque to SASL and imapd.  How you looked at the
source code of pam_ldap?  I took a quick look, and even though I know
next to nothing about LDAP, its pretty obvious that pam_ldap is trying
to use STARTTLS when talking to the LDAP server.  Furthermore, it is
trying to require a client certificate.

I can't explain why pam_ldap works with other services and fails when
used with imapd/SASL, mainly because I don't care to dig into the
pam_ldap and SASL code any further, but I'd either trying disabling
SSL/TLS in pam_ldap by using the --disable-ssl option to configure or
try setting the tls_checkpeer option in pam.conf to off.

I'm guessing that one of these two things should change the behavior
that you are seeing.  I can't guarantee that this will fix the problem
entirely, but it *should* get you going in the right direction.

> If I use another PAM module instead of pam_ldap, for example the trivial 
> pam_permit, which always returns success, it all works. I (and, of 
> course, everyone else in the world) can login successfully, and nobody 
> dies! However, lest you think that a hopelessly buggy pam_ldap is the 
> problem, you should know that the selfsame pam_ldap is working fine with 
> about 42 other services I offer (login, netatalk, passwd, samba, ssh, 
> ...) including an old cyrus-imapd-1.6.24 installation on another machine.

Have you seen any complaints of other pam modules not working with the
current versions of imapd/SASL?  I haven't, so I would keep looking at
pam_ldap until you get some better evidence that SASL is doing something
incorrect.

My $.02

Ken
-- 
Kenneth Murchison     Oceana Matrix Ltd.
Software Engineer     21 Princeton Place
716-662-8973 x26      Orchard Park, NY 14127
--PGP Public Key--    http://www.oceana.com/~ken/ksm.pgp

Reply via email to