Hello,
Description of problem is as follows:
I have a email server package called Scalix, which when installed came with openldap. On the same server i am also running Stunnel, which is already successfully ssl wrapping imap,pop, and smtp protocols. The ldap directory is very handy for an address book internally but we also have people that will be outside the corporate lan and to provide the directory securely would be desirable so i added the lines in the stunnel.conf to wrap ldap as well. I can see the stunnel daemon listening on port 636. But when i try to connect from any ssl aware mail client, such as evolution, or entourage, i get an error indicating failure to authenticate, which i know is not really the problem because the ldap directory is anonymous read access enabled. Debug logging gives more information about what is occurring, here is the conversion when attempting to connect:
2005.04.28 12:15:05 LOG5[27926:1076812720]: ldaps connected from 71.4.124.200:43012 2005.04.28 12:15:05 LOG7[27926:1076812720]: SSL state (accept): before/accept initialization 2005.04.28 12:15:05 LOG7[27926:1076812720]: waitforsocket: FD=14, DIR=read 2005.04.28 12:15:05 LOG7[27926:1076812720]: waitforsocket: ok 2005.04.28 12:15:05 LOG3[27926:1076812720]: SSL_accept: 140760FC: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol 2005.04.28 12:15:05 LOG7[27926:1076812720]: ldaps finished (6 left)
Searching the archive is saw someone suggesting that either the ldap server or ldap client was not compiled with ssl support. I know the email clients i am trying to connect with are ssl compatible and maybe someone can set me straight here but i didn't think that the ldap server had to be ssl aware and that was the advantage of stunnel is that it can wrap services that are do not have ssl support? At any rate i believe the ldap server does have ssl support becuase i can see the binary omslapd (provided by Scalix, preceding "om" is there because Scalix is based on HP's Open Mail) links to the ssl library using the ldd command, here is the output, note the bolded line:
msp1intmx01:~ # ldd /opt/scalix/bin/omslapd linux- gate.so.1 => (0xffffe000) libom_er.so => /opt/scalix/lib/libom_er.so (0x40018000) libom_ext.so => /opt/scalix/lib/libom_ext.so (0x40023000) libom_ldapth.so => /opt/scalix/lib/libom_ldapth.so (0x4002d000) libom_mdc.so => /opt/scalix/lib/libom_mdc.so (0x4004f000) libom_omldap.so => /opt/scalix/lib/libom_omldap.so (0x4005c000) libom_os.so => /opt/scalix/lib/libom_os.so (0x40079000) libom_sdl.so => /opt/scalix/lib/libom_sdl.so (0x40087000) libom_str.so => /opt/scalix/lib/libom_str.so (0x4008e000) libpthread.so.0 => /lib/tls/libpthread.so.0 (0x400a9000) libc.so.6 => /lib/tls/libc.so.6 (0x400b9000) libom_cvc.so => /opt/scalix/lib/libom_cvc.so (0x401ce000) libom_go.so => /opt/scalix/lib/libom_go.so (0x401e2000) libom_t61.so => /opt/scalix/lib/libom_t61.so (0x401e6000) libom_tfl.so => /opt/scalix/lib/libom_tfl.so (0x401eb000) libom_gcl.so => /opt/scalix/lib/libom_gcl.so (0x401f1000) libom_ccs.so => /opt/scalix/lib/libom_ccs.so (0x401f5000) libdl.so.2 => /lib/libdl.so.2 (0x40203000) libom_cl.so => /opt/scalix/lib/libom_cl.so (0x40206000) libom_cust.so => /opt/scalix/lib/libom_cust.so (0x40215000) libom_da.so => /opt/scalix/lib/libom_da.so (0x4021c000) libom_dit.so => /opt/scalix/lib/libom_dit.so (0x40244000) libom_dr.so => /opt/scalix/lib/libom_dr.so (0x4024a000) libom_hash.so => /opt/scalix/lib/libom_hash.so (0x4027b000) libom_lng.so => /opt/scalix/lib/libom_lng.so (0x4027e000) libom_mes.so => /opt/scalix/lib/libom_mes.so (0x40282000) libom_mim.so => /opt/scalix/lib/libom_mim.so (0x4028a000) libom_ml.so => /opt/scalix/lib/libom_ml.so (0x4029d000) libom_pam.so => /opt/scalix/lib/libom_pam.so (0x402a6000) libom_pwdl.so => /opt/scalix/lib/libom_pwdl.so (0x402b4000) libom_ul.so => /opt/scalix/lib/libom_ul.so (0x402b9000) libom_uni.so => /opt/scalix/lib/libom_uni.so (0x402cc000) libom_im.so => /opt/scalix/lib/libom_im.so (0x402e3000) libom_sfl.so => /opt/scalix/lib/libom_sfl.so (0x402ee000) libcrypt.so.1 => /lib/libcrypt.so.1 (0x4030c000) libom_sml.so => /opt/scalix/lib/libom_sml.so (0x4033d000) libom_tfo.so => /opt/scalix/lib/libom_tfo.so (0x40340000) libom_enc.so => /opt/scalix/lib/libom_enc.so (0x40343000) libom_lkf.so => /opt/scalix/lib/libom_lkf.so (0x40347000) libom_nm.so => /opt/scalix/lib/libom_nm.so (0x4034b000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) libom_uscv.so => /opt/scalix/lib/libom_uscv.so (0x40352000) libom_fstr.so => /opt/scalix/lib/libom_fstr.so (0x4035a000) libom_gen.so => /opt/scalix/lib/libom_gen.so (0x4035c000) libom_xdse.so => /opt/scalix/lib/libom_xdse.so (0x40362000) libom_acl.so => /opt/scalix/lib/libom_acl.so (0x40365000) libom_cdl.so => /opt/scalix/lib/libom_cdl.so (0x4036c000) libom_drsc.so => /opt/scalix/lib/libom_drsc.so (0x40374000) libom_inet.so => /opt/scalix/lib/libom_inet.so (0x40379000) libom_vi.so => /opt/scalix/lib/libom_vi.so (0x40388000) libom_akt.so => /opt/scalix/lib/libom_akt.so (0x40399000) libom_q.so => /opt/scalix/lib/libom_q.so (0x403a1000) libom_date.so => /opt/scalix/lib/libom_date.so (0x403a6000) libom_ssn.so => /opt/scalix/lib/libom_ssn.so (0x403a8000) libom_orname.so => /opt/scalix/lib/libom_orname.so (0x403ac000) libom_culb.so => /opt/scalix/lib/libom_culb.so (0x403af000) libom_dstring.so => /opt/scalix/lib/libom_dstring.so (0x403b3000) libssl.so.0.9.7 => /usr/lib/libssl.so.0.9.7 (0x403b6000) libom_ufcv.so => /opt/scalix/lib/libom_ufcv.so (0x403e7000) libom_vista.so => /opt/scalix/lib/libom_vista.so (0x4040d000) libom_rda.so => /opt/scalix/lib/libom_rda.so (0x40439000) libom_rdudp.so => /opt/scalix/lib/libom_rdudp.so (0x4043e000) libom_rsl.so => /opt/scalix/lib/libom_rsl.so (0x40444000) libom_mp.so => /opt/scalix/lib/libom_mp.so (0x40456000) libom_mpl.so => /opt/scalix/lib/libom_mpl.so (0x4045e000) libom_msg.so => /opt/scalix/lib/libom_msg.so (0x40466000) libom_qml.so => /opt/scalix/lib/libom_qml.so (0x4046c000) libom_tf.so => /opt/scalix/lib/libom_tf.so (0x40471000) libcrypto.so.0.9.7 => /usr/lib/libcrypto.so.0.9.7 (0x4047b000) libom_fmem.so => /opt/scalix/lib/libom_fmem.so (0x4056b000) libom_acf.so => /opt/scalix/lib/libom_acf.so (0x40570000) libom_cvr.so => /opt/scalix/lib/libom_cvr.so (0x40575000) libom_ct.so => /opt/scalix/lib/libom_ct.so (0x40589000) libom_bb.so => /opt/scalix/lib/libom_bb.so (0x405cc000) libom_rtfl.so => /opt/scalix/lib/libom_rtfl.so (0x405e1000) libom_isl.so => /opt/scalix/lib/libom_isl.so (0x405f2000) libom_nf.so => /opt/scalix/lib/libom_nf.so (0x405fc000) libom_nfda.so => /opt/scalix/lib/libom_nfda.so (0x40602000) libom_nsl.so => /opt/scalix/lib/libom_nsl.so (0x40607000) libom_exual.so => /opt/scalix/lib/libom_exual.so (0x4060d000)
Stunnel version information is as follows:
stunnel 4.05 on i686-suse-linux-gnu PTHREAD with OpenSSL 0.9.7d 17 Mar 2004
Global options cert = /etc/stunnel/stunnel.pem ciphers = ALL:!ADH:+RC4:@STRENGTH debug = 5 key = /etc/stunnel/stunnel.pem pid = /var/run/stunnel.pid RNDbytes = 64 RNDfile = /dev/urandom RNDoverwrite = yes session = 300 seconds verify = none
Service-level options TIMEOUTbusy = 300 seconds TIMEOUTclose = 60 seconds TIMEOUTidle = 43200 seconds
Stunnel is running in stand-alone mode and is being started without any parameters that i am aware of, i just used the init script supplied SuSE for their Enterprise 9 server product.
Output of "stunnel -f -D 7 is:
msp1intmx01:~ # stunnel -f -D 7 2005.04.29 08:27:24 LOG3[3326:1076392064]: -f: No such file or directory (2)
Output of "stunnel -V is:
msp1intmx01:~ # stunnel -V 2005.04.29 08:30:49 LOG3[3368:1076392064]: -V: No such file or directory (2)
Output of "uname -a"
msp1intmx01:~ # uname -a Linux msp1intmx01 2.6.5-7.151-smp #1 SMP Fri Mar 18 11:31:21 UTC 2005 i686 i686 i386 GNU/Linux
Libc version is 2.3.3
Output of "gcc -v"
msp1intmx01:~ # gcc -v Reading specs from /usr/lib/gcc-lib/i586-suse-linux/3.3.3/specs Configured with: ../configure --enable-threads=posix -- prefix=/usr --with-local-prefix=/usr/local -- infodir=/usr/share/info --mandir=/usr/share/man --enable- languages=c,c++,f77,objc,java,ada --disable-checking -- libdir=/usr/lib --enable-libgcj --with-gxx-include- dir=/usr/include/g++ --with-slibdir=/lib --with-system-zlib -- enable-shared --enable-__cxa_atexit i586-suse-linux Thread model: posix gcc version 3.3.3 (SuSE Linux)
Openssl version is:
msp1intmx01:~ # openssl version OpenSSL 0.9.7d 17 Mar 2004
Regards,