On Thu, Apr 30, 2015 at 08:28:21PM -0700, Tom Johnson wrote:

> > That aside, even with the "wrong" MX host, I still get successful
> > connections.  Perhaps you're behind some sort of firewall that
> > proxies TLS and disconnects when it does not like the peer certificate:
> > 
> > $ posttls-finger -c -Ldebug "[mail.mlmatthews.com]"
> > posttls-finger: Untrusted TLS connection established to \
> > mail.mlmatthews.com[23.25.38.217]:25: TLSv1 with cipher RC4-MD5 (128/128 
> > bits)

Notice I that with posttls-finger I'm connecting with "RC4-MD5",
when I disable RC4, I get connection problems.

> Yes, that's what's strange.  I get the same result with posttls-finger.   

Same, as in success with RC4?  Have you disabled RC4?  Or otherwise
changed the cipher-suite or procotol controls?  Post the output of:

        $ postconf -n | grep '^smtp_tls'

> I've also tried this, which works fine:
> 
> # openssl s_client -starttls smtp -connect mail.mlmatthews.com:25
>     Cipher    : RC4-SHA

RC4-SHA this time.

> But postfix consistently gets those errors:

Postfix offers more ciphers when the security level is "may".  When
I explicitly set the "posttls-finger" security level to "may".  I
see your symptoms:

    $ posttls-finger -c -lmay -o 'tls_medium_cipherlist=ALL:+RC4:@STRENGTH' 
-Ldebug "[mail.mlmatthews.com]"
    posttls-finger: initializing the client-side TLS engine
    posttls-finger: setting up TLS connection to 
mail.mlmatthews.com[23.25.38.217]:25
    posttls-finger: mail.mlmatthews.com[23.25.38.217]:25: TLS cipher list 
"ALL:+RC4:@STRENGTH:!eNULL"
    posttls-finger: SSL_connect:before/connect initialization
    posttls-finger: SSL_connect:SSLv2/v3 write client hello A
    posttls-finger: SSL_connect error to mail.mlmatthews.com[23.25.38.217]:25: 
lost connection

This is indeed an Exchange 2003 server which only supports RC4 and
a broken 3DES, but you must have a sufficiently recent OpenSSL
version where even 3DES (re-rated at 112-bit) is not in the first
64 cipherlist elements, and so the handshake fails early.

For this server, you need a more "compact" cipherlist as a work-around.

        smtp_tls_exclude_ciphers = 
                #
                # Disable MD5, DSA, SRP and PSK, and the "exotic" fixed DH 
cipher suites.
                #
                MD5, SRP, PSK, aDSS, kECDH, kDH,
                #
                # Disable 256-bit ciphers, 128-bit is for now quite strong 
enough.
                # Also disable the largely unused SEED, IDEA, RC2, RC5, ...
                # leaving just AES128, CAMELLIA128, RC4 and 3DES.
                #
                AES256, CAMELLIA256, SEED, IDEA, RC2, RC5

This is does not noticeably impact the security of connections to
other sites, but enables communication with Exchange 2003 servers
(it is rather sad that folks are still using these), without having
to configure a separate policy for each such site.

-- 
        Viktor.

Reply via email to