Hi, > > I have a postfix-3.5.10 system and having a little trouble configuring > > it to ensure I'm not including any vulnerable ciphers. I had > > previously posted about this issue in September, and thought I > > followed the instructions I was given, but a recent security scan > > (onsecurity) shows port 25 is still vulnerable to the SWEET32 attack. > > But it actually isn't. Sweet32 can only be used against very long-lived > TLS sessions using obsolete ciphers. You have to do some hacking on > OpenSSL code to get it to support a vulnerable cipher in recent > versions. > > Fire that vendor, they lie to you.
I later learned they basically just ran testssl.sh against port 25 and reported back. It's apparently a one-size-fits-all approach. It's either "secure" or it's not. > > Here are my current settings: > > # postconf -n -c /etc/postfix-117|grep -E 'tls|cipher' > > smtp_tls_mandatory_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1 > > smtp_tls_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1 > > smtp_tls_security_level = may > > This means that you will use plaintext for sending to many sites, rather > than falling back to the almost universally supported TLSv1.0 on sites > that can't do 1.2 or 1.3. > > The vulnerabilities I am aware of that justify sticking to v1.2/3 in > web, IMAP, and database servers are not viable against SMTP because of > the brief, non-repetitive, and largely unpredictable nature of the TLS > sessions used by SMTP. Would you explain what specifically about the above that's removed any ability for clients to build an encrypted connection and require cleartext? Is it the exclusion of the use of any TLS version above 1.2? Maybe the part I'm not understanding is whether it's possible to somehow compromise the server if we offer older versions of TLS? What is my exposure for allowing older versions of TLS? > Very few people have the cryptography chops to usefully evaluate an > extensive list of specific ciphers for maximal safety. 99.9% of such > lists that you will find published are cargo-cult artifacts at some > point, if only when you read the list from RH and drop it in to Postfix > without deep analysis. If you're going to be like almost everyone and > trust a third party to do such deep analysis, you have to choose your > trusted authorities carefully. Trusting the Postfix developers (and > perhaps the official packagers for your platform) is at least as safe as > pulling a list from a RH page, and you get the bonus of your cipherlists > being maintained by SOMEONE ELSE as long as you keep updating > diligently. Yes, which is exactly why I'm coming here, asking questions, and trying to understand, instead of just blindly implementing something from the interwebs. Just to be clear, here's my current config: smtpd_tls_security_level = may smtp_use_tls = yes smtpd_tls_auth_only = yes smtpd_tls_cert_file = /etc/letsencrypt/cert.pem smtpd_tls_key_file = /etc/letsencrypt/privkey.pem smtpd_tls_received_header = yes smtpd_tls_security_level = may smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_tls_session_cache tls_random_source = dev:/dev/urandom smtpd_tls_mandatory_protocols = >=TLSv1.2 smtp_tls_mandatory_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1 smtpd_tls_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1 smtp_tls_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1 smtpd_tls_exclude_ciphers = MD5, RC4, 3DES, IDEA, SEED, aNULL tls_preempt_cipherlist = yes smtpd_tls_mandatory_ciphers = high tls_ssl_options = NO_COMPRESSION, NO_RENEGOTIATION Is excluding SSL and TLS for smtpd_tls_protocols above the same as stipulating >=TLSv1.2 with smtpd_tls_mandatory_protocols? Thanks, Alex