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,





-- 
Michael W. Partyka
Jumpnode Systems, LLC
Systems Administrator
612.605.5056 Desk
651.208.5734 Cell