Cyrus 2.2.12 / TLS problems (SSL working) / Thunderbird - kontact

Denis Sacchet mailinglist at kikamedical.net
Wed Jul 5 08:20:35 EDT 2006


Hi,

I've got since 1 or 2 month problems with TLS connection to my cyrus
server in IMAP. I will try to explain the configuration and the problem.

First of all, here is my cyrus.conf and imapd.conf :

/ETC/CYRUS.CONF :

START {
  recover       cmd="ctl_cyrusdb -r"
}
SERVICES {
  imap          cmd="imapd -p 2 -s -U 1 -T 60" listen="143" prefork=8
  imaps         cmd="imapd -p 2 -s -U 1 -T 60" listen="993" prefork=1
  cyradm        cmd="imapd -p 0 -U 1 -T 60" listen="8143" prefork=1
  sieve         cmd="timsieved" listen="127.0.0.1:2000" prefork=0
  lmtpunix      cmd="lmtpd" listen="/var/imap/socket/lmtp" prefork=0
}

EVENTS {
  checkpoint    cmd="ctl_cyrusdb -c" period=30
  delprune      cmd="ctl_deliver -E 3" period=1440
  tlsprune      cmd="tls_prune" period=1440
}

/ETC/IMAPD.CONF

configdirectory:        /var/imap
partition-default:      /var/spool/imap
sievedir:               /var/imap/sieve

tls_ca_file:            /etc/ssl/certs/XXXX.pem
tls_cert_file:          /etc/cyrus/imap.crt
tls_key_file:           /etc/cyrus/imap.key

admins:                 cyrus at XXXX.XXX
hashimapspool:          yes
allowanonymouslogin:    no
allowplaintext:         yes
allowusermoves:         no
sieveusehomedir:        no
defaultdomain:          XXXX.loc
virtdomains:            yes
sasl_pwcheck_method:    saslauthd
sasl_mech_list:         PLAIN LOGIN
sasl_minimum_layer:     0

As you can see, I have a little CA, so I put the CA root certificate,
and the imap.crt is signed by XXXX.pem.

The server run a Gentoo 2006.0 installation with the following version
of cyrus-imapd and openssl :

[ebuild   R   ] net-mail/cyrus-imapd-2.2.12
[ebuild   R   ] dev-libs/openssl-0.9.7i  

Here is the result of the imtest in TLS (-s on the port 143) :

imtest -p 143 -s -a XXXX at XXXX.XXX 127.0.0.1
verify error:num=19:self signed certificate in certificate chain
TLS connection established: TLSv1 with cipher AES256-SHA (256/256 bits)
S: * OK smtp Cyrus IMAP4 v2.2.12-Gentoo server ready
C: C01 CAPABILITY
S: * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ MAILBOX-REFERRALS
NAMESPACE UIDPLUS ID NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND
BINARY SORT THREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMO
RE IDLE AUTH=LOGIN AUTH=PLAIN SASL-IR LISTEXT LIST-SUBSCRIBED X-NETSCAPE
S: C01 OK Completed
C: A01 AUTHENTICATE LOGIN
S: + VXNlcm5hbWU6
Please enter your password:
C: b3ViYUBvdWJhLm9yZw==
S: + UGFzc3dvcmQ6
C: bGdXM2l2e1s=
S: A01 OK Success (tls protection)
Authenticated.
Security strength factor: 256
. logout
* BYE LOGOUT received
. OK Completed
Connection closed.

With the log :

==> notice.log <==
Jul  5 14:01:07 smtp imap[27666]: starttls: TLSv1 with cipher AES256-SHA
(256/256 bits new) no authentication
Jul  5 14:01:10 smtp imap[27666]: login: localhost [127.0.0.1]
XXXX at XXXX.XXX LOGIN+TLS User logged in

And also the result of the imtest in SSL (-s on the port 993) :

imtest -p 993 -s -a XXXX at XXXX.XXX 127.0.0.1
verify error:num=19:self signed certificate in certificate chain
TLS connection established: TLSv1 with cipher AES256-SHA (256/256 bits)
S: * OK smtp Cyrus IMAP4 v2.2.12-Gentoo server ready
C: C01 CAPABILITY
S: * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ MAILBOX-REFERRALS
NAMESPACE UIDPLUS ID NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND
BINARY SORT THREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMO
RE IDLE AUTH=LOGIN AUTH=PLAIN SASL-IR LISTEXT LIST-SUBSCRIBED X-NETSCAPE
S: C01 OK Completed
C: A01 AUTHENTICATE LOGIN
S: + VXNlcm5hbWU6
Please enter your password:
C: b3ViYUBvdWJhLm9yZw==
S: + UGFzc3dvcmQ6
C: bGdXM2l2e1s=
S: A01 OK Success (tls protection)
Authenticated.
Security strength factor: 256
. LOGOUT
* BYE LOGOUT received
. OK Completed
Connection closed.

With the log :

==> notice.log <==
Jul  5 14:02:08 smtp imap[27665]: starttls: TLSv1 with cipher AES256-SHA
(256/256 bits new) no authentication
Jul  5 14:02:11 smtp imap[27665]: login: localhost [127.0.0.1]
XXXX at XXXX.XXX LOGIN+TLS User logged in

The same thing with the s_client of openssl :


penssl s_client -host 127.0.0.1 -port 143 -tls1
CONNECTED(00000003)
depth=1 /C=FR/ST=Lorraine/L=Nancy/O=XXXX.XXX/OU=XXXX.XXX/CN=OUBA.ORG
C.A./emailAddress=XXXX at XXXX.XXX
verify error:num=19:self signed certificate in certificate chain
verify return:0
---
Certificate chain
 0
s:/C=FR/ST=Lorraine/L=Nancy/O=XXXX.XXX/OU=XXXX.XXX/CN=imap.XXXX.XXX/emailAddress=XXXX at XXXX.XXX
   i:/C=FR/ST=Lorraine/L=Nancy/O=XXXX.XXX/OU=XXXX.XXX/CN=OUBA.ORG
C.A./emailAddress=XXXX at XXXX.XXX
 1 s:/C=FR/ST=Lorraine/L=Nancy/O=XXXX.XXX/OU=XXXX.XXX/CN=OUBA.ORG
C.A./emailAddress=XXXX at XXXX.XXX
   i:/C=FR/ST=Lorraine/L=Nancy/O=XXXX.XXX/OU=XXXX.XXX/CN=OUBA.ORG
C.A./emailAddress=XXXX at XXXX.XXX
---
Server certificate
-----BEGIN CERTIFICATE-----
<...snip...>
-----END CERTIFICATE-----
subject=/C=FR/ST=Lorraine/L=Nancy/O=XXXX.XXX/OU=XXXX.XXX/CN=imap.XXXX.XXX/emailAddress=XXXX at XXXX.XXX
issuer=/C=FR/ST=Lorraine/L=Nancy/O=XXXX.XXX/OU=XXXX.XXX/CN=OUBA.ORG
C.A./emailAddress=XXXX at XXXX.XXX
---
No client certificate CA names sent
---
SSL handshake has read 2058 bytes and written 300 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 1024 bit
SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES256-SHA
    Session-ID:
CA9CCA52A78CCF48A2947BC93ADCCA46D886F571E6349AED3BBE5A49ABD1BC73
    Session-ID-ctx:
    Master-Key:
EEF680291C80759D9C511FD0EA081E9F198157113BC1FF845B262B7F4CBE97E6D985671CC32F9D2DF1D106A125DE4FBB
    Key-Arg   : None
    Start Time: 1152101081
    Timeout   : 7200 (sec)
    Verify return code: 19 (self signed certificate in certificate chain)
---
* OK smtp Cyrus IMAP4 v2.2.12-Gentoo server ready
. LOGOUT
* BYE LOGOUT received
. OK Completed
read:errno=0

And in SSL :

openssl s_client -host 127.0.0.1 -port 993 -ssl3
CONNECTED(00000003)
depth=1 /C=FR/ST=Lorraine/L=Nancy/O=XXXX.XXX/OU=XXXX.XXX/CN=OUBA.ORG
C.A./emailAddress=XXXX at XXXX.XXX
verify error:num=19:self signed certificate in certificate chain
verify return:0
---
Certificate chain
 0
s:/C=FR/ST=Lorraine/L=Nancy/O=XXXX.XXX/OU=XXXX.XXX/CN=imap.XXXX.XXX/emailAddress=XXXX at XXXX.XXX
   i:/C=FR/ST=Lorraine/L=Nancy/O=XXXX.XXX/OU=XXXX.XXX/CN=OUBA.ORG
C.A./emailAddress=XXXX at XXXX.XXX
 1 s:/C=FR/ST=Lorraine/L=Nancy/O=XXXX.XXX/OU=XXXX.XXX/CN=OUBA.ORG
C.A./emailAddress=XXXX at XXXX.XXX
   i:/C=FR/ST=Lorraine/L=Nancy/O=XXXX.XXX/OU=XXXX.XXX/CN=OUBA.ORG
C.A./emailAddress=XXXX at XXXX.XXX
---
Server certificate
-----BEGIN CERTIFICATE-----
<...snip...>
-----END CERTIFICATE-----
subject=/C=FR/ST=Lorraine/L=Nancy/O=XXXX.XXX/OU=XXXX.XXX/CN=imap.XXXX.XXX/emailAddress=XXXX at XXXX.XXX
issuer=/C=FR/ST=Lorraine/L=Nancy/O=XXXX.XXX/OU=XXXX.XXX/CN=OUBA.ORG
C.A./emailAddress=XXXX at XXXX.XXX
---
No client certificate CA names sent
---
SSL handshake has read 2074 bytes and written 314 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 1024 bit
SSL-Session:
    Protocol  : SSLv3
    Cipher    : AES256-SHA
    Session-ID:
DF383DECC1677110482A1FEA576EB9D52EBE1E2124DD5C871C1B192F7B6FE000
    Session-ID-ctx:
    Master-Key:
9C92EA25D229A8847795511A83D3790E6CDDC8E7AA4B97A9DF964D4DDA054104CD93E1C852F7D0B848B3CE647F177CAA
    Key-Arg   : None
    Start Time: 1152101127
    Timeout   : 7200 (sec)
    Verify return code: 19 (self signed certificate in certificate chain)
---
* OK smtp Cyrus IMAP4 v2.2.12-Gentoo server ready
. LOGOUT
* BYE LOGOUT received
. OK Completed
read:errno=0

With the two lines of log (I didn't authenticate mysel) :

Jul  5 14:04:41 smtp imap[27742]: starttls: TLSv1 with cipher AES256-SHA
(256/256 bits new) no authentication
Jul  5 14:05:27 smtp imaps[28081]: starttls: SSLv3 with cipher
AES256-SHA (256/256 bits new) no authentication


So, it seems eveything works fine, now try to connect with thunderbird
with a fresh new profile :

If I choose SSL onto port 993 :

Jul  5 14:09:03 smtp imaps[28175]: starttls: TLSv1 with cipher
AES256-SHA (256/256 bits new) no authentication
Jul  5 14:09:09 smtp imaps[28175]: login:
4be54-5-82-244-105-30.fbx.proxad.net [82.244.105.30] XXXX at XXXX.XXX
plain+TLS User logged in

But if I switch to TLS on port 143, after a while (about 2 or 3 minutes) :

==> err.log <==
Jul  5 14:11:05 smtp imap[27757]: Fatal error: tls_start_servertls() failed
 
==> notice.log <==
Jul  5 14:11:05 smtp imap[27757]: imaps TLS negotiation failed:
4be54-5-82-244-105-30.fbx.proxad.net [82.244.105.30]

If I do a SSLDUMP session in TLS on port 143, I only got :

ssldump \( port 993 or port 143 \) and host www.ouba.org
New TCP connection #1: XXXX.XXXX.XXX(35964) <-> smtp.ouba.org(143)

It seems to not even try to negotiate something

But in SSL on port 993 :

ssldump \( port 993 or port 143 \) and host XXX.XXXX.XXX
New TCP connection #1: XXXX.XXXX.XXX(32799) <-> XXXX.XXXX.XXX(993)
1 1  0.0555 (0.0555)  C>S SSLv2 compatible client hello
  Version 3.1
  cipher suites
  SSL2_CK_RC4
  SSL2_CK_RC2
  SSL2_CK_3DES
  SSL2_CK_DES
  SSL2_CK_RC4_EXPORT40
  SSL2_CK_RC2_EXPORT40
  Unknown value 0x39
  Unknown value 0x38
  Unknown value 0x35
  Unknown value 0x33
  Unknown value 0x32
  TLS_RSA_WITH_RC4_128_MD5
  TLS_RSA_WITH_RC4_128_SHA
  Unknown value 0x2f
  TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
  TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
  Unknown value 0xfeff
  TLS_RSA_WITH_3DES_EDE_CBC_SHA
  TLS_DHE_RSA_WITH_DES_CBC_SHA
  TLS_DHE_DSS_WITH_DES_CBC_SHA
  Unknown value 0xfefe
  TLS_RSA_WITH_DES_CBC_SHA
  TLS_RSA_EXPORT1024_WITH_RC4_56_SHA
  TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA
  TLS_RSA_EXPORT_WITH_RC4_40_MD5
  TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5
1 2  0.1763 (0.1208)  S>C  Handshake
      ServerHello
        Version 3.1
        session_id[32]=
          58 5d aa 2a 1a dd 12 9d 98 d6 be e0 56 8b 75 a3
          95 70 c3 8b 96 7b 90 de 9c 5c 75 68 f1 ef 6d d2
        cipherSuite         Unknown value 0x35
        compressionMethod                   NULL
1 3  0.1813 (0.0049)  S>C  Handshake
      Certificate
1 4  0.1813 (0.0000)  S>C  Handshake
      ServerHelloDone
1 5  4.1021 (3.9208)  C>S  Handshake
      ClientKeyExchange
1 6  4.1021 (0.0000)  C>S  ChangeCipherSpec
1 7  4.1021 (0.0000)  C>S  Handshake
1 8  4.1753 (0.0731)  S>C  ChangeCipherSpec
1 9  4.1753 (0.0000)  S>C  Handshake
1 10 4.2324 (0.0571)  S>C  application_data
1 11 4.2360 (0.0036)  C>S  application_data
1 12 4.2965 (0.0604)  S>C  application_data

Do you think the problems come from Thunderbird or from Cyrus.
Thunderbird use to works well in TLS, I've got the same problem with
Kontact. I don't try with another client, if I have the time, I wil
l have a test with Outlook Express, Outlook and Opera.

Thanks for you help if possible.

Best regards

Denis Sacchet



More information about the Info-cyrus mailing list