In message <20160115051749.gl...@mournblade.imrryr.org>
Viktor Dukhovni writes:
 
> On Thu, Jan 14, 2016 at 11:54:13PM -0500, Curtis Villamizar wrote:
>  
> > > > > > smtp_tls_ciphers = high
> > > > >  
> > > > >     Usually best to leave this at "medium".  This is opportunistic
> > > > >     TLS, and if high fails, you'll send cleartext, which is NOT
> > > > >     stronger than medium.
> > > > 
> > > > That's actually fine if it actuall fell back.  Comcast didn't fall
> > > > back, it tried secondary MX, then TEMPFAIL.  Its only intended for
> > > > internal servers that are supposed to bring up TLS with a trusted key
> > > > and then also SASL authenticate.  Otherwise I might just leave it at
> > > > none.
> > >  
> > > This is an SMTP *client* setting for your outbound connections,
> > > and has nothing to do with what happens when Comcast sends you
> > > mail.  My point is that this is unwise, regardless of Comcast.
> > 
> > This is so that the MTA can authenticate to the MDAs.  My MDA config
> > goes have smtpd_tls_req_ccert = yes.
>  
> Use dedicated transports in master.cf for connections to your MDAs,
> say, the "relay" transport or a similar clone, and configure appropriate
> master.cf overrides:
>  
>   master.cf:
>     relay      unix  -       -       y       -       -       smtp
>       -o smtp_tls_ciphers=$relay_tls_ciphers
>  
>   main.cf:
>     relay_tls_ciphers = high
>  
> Do not set enforce overly stringent TLS settings for outbound
> opportunistic TLS connections to the Internet at large.  Yes,
> admittedly peers with just "MEDIUM" ciphers are becoming increasingly
> rare, so you might not feel much pain, but there's no win from
> enforcing stronger ciphers if when you don't get them, Postfix
> fails over to cleartext.

Viktor,

Thanks.  I'll do this when I install the new server.  If so I might
have a rather long -o argument.

> > > smtpd_tls_req_ccert=yes requires trusted TLS, that is the client's
> > > certificate must be issued by a trusted CA.  For port 587 only,
> > > and understand the consequences.
> > 
> > The difference would be if you have:
> > 
> >     smtpd_tls_ask_ccert = yes
> >     smtpd_tls_req_ccert = no
> >     smtpd_tls_auth_only = trusted
>  
> I see, allow untrusted TLS, but only offer SASL to clients with
> trusted certs, and what are the others supposed to do?

There are three cases:

  1.  Anon TLS - they don't provide a cert
  2.  client provides cert with TLSA - trusted, they ignore the AUTH
  3.  internal client has trusted cert and SASL pw - they can relay

Lets leave this suggestion to die.  I don't need this as there is a
better way to do things (bottom of prior email).

> > then the same config supports opportunistic TLS for the outside
> > without client key (they just don't provide one) but does allow an
> > internal client to authenticate and get relaying.
>  
> Relaying is on port 587, where opportunistic connections simply
> don't happen.  On port 25 you should have no submission clients.
> So this is a non-issue.  Just unconditionally disable SASL on port 25.

See bottom of the prior email.

> > As I mentioned way down at the bottom, another and probably better
> > solution is to relay through the MSA.
>  
> Relay through the MSA, or some other dedicated port.  You can use
> client cert authorization for that, and not bother with SASL at
> all.

By MSA here I mean another host that serves as MSA (on port 25) not
same host on port 587.  Both approaches work.  See bottom of prior
email.

> > > > Relevant parts:
> > > > 
> > > >     ASN1 OID: secp384r1
> > > >     Signature Algorithm: ecdsa-with-SHA256
> > >  
> > > Well, that's probably why comcast is having trouble, they likely
> > > don't support ECDSA.  You really should field an RSA certificate,
> > > along with the (still bleeding-edge) ECDSA certificate.
> > 
> > That was my first theory but stated a different way.  I said early on
> > that they are probably running older (openssl 1.0.1) code that doesn't
> > support secp384r1.
>  
> Except that 1.0.1 does support EC with that curve, but not on RedHat
> systems (very cautious lawyers).

OK.  If you say so.  My emperical experience indicates that this
version does not support it.  OpenSSL 1.0.1p-freebsd 9 Jul 2015

> > > > Not supported in openssl 1.0.1, but that is > 1 year old version.
> > >  
> > > Actually, even 1.0.0 supports ECDSA, but not on RedHat/CentOS
> > > systems, for patent-fear reasons.
> > 
> > But not secp384r1.  That came with 1.0.2.
>  
> This is not true.  It was even present in 1.0.0, except with RedHat:
>  
>     $ OpenSSL_1_0_0/bin/openssl version
>     OpenSSL 1.0.0t-dev xx XXX xxxx
>     $ OpenSSL_1_0_0/bin/openssl ecparam -list_curves | grep 384
>       secp384r1 : NIST/SECG curve over a 384 bit prime field

Maybe its not in FreeBSD either except the version from ports
collection.

Do you have a reference to the legal issue handy?

> > > No, it means that Comcast can't perform a TLS handshake because
> > > they don't support ECDSA.
> > 
> > I guess we agree that is most likely the problem.
>  
> Yes.  For interoperability, deploy RSA certs in addition to or
> instead of ECDSA certs.

OK.  I hear you.  Or disable opportunistic TLS at least for now.

> > > The roles of the client and server are very differnt.  Just
> > > because the settings are the same, does not make them right,
> > > even if they are right for the other case.
> > >  
> > >     http://www.postfix.org/TLS_README.html#client_tls_limits
> > 
> > I'm going to keeping this strong and keeping an eye out for cipher
> > mismatch.  Until comcast a week or too ago there was no problem.
>  
> Forcing maximally strong settings gives you no additional security,
> it reduces security, by forcing cleartext fallback by less capable
> peers.  Yes, the absolutely weakest algorithms that nobody needs
> anymore should be turned off to minimize attack surface, but with
> opportunistic TLS you should avoid the temptation to turn it up to
> 11.

Somehow you missed this statement (sic) "I don't care about
opportunistic TLS.  It came for free and didn't cause any trouble
until now".

> > Thanks for the advice but I'm going to keep things at strong.  I will
> > take your earlier advice on changing smtp[d]_tls_exclude_ciphers.
>  
> Note that "strong" actually means less secure for the peers that
> are not capable of meeting that standard.  See RFC7435.

See prior sentence.

> > Since my use of TLS is primarily for internal connections where
> > smtpd_tls_auth_only is used, I haven't made anything I care about
> > weaker by making setting strong or using a strong key, even if it is
> > still bleeding-edge.  See bottom of this reply.
>  
> You can use dedicated ports and IP addresses for intramural traffic.
> No need to mix that in in the same ports as the unwashed massed.

When I migrate to the new physical server RSN, I'll redo the configs.
For now, I'll keep what I have because I have other things to do and
things are working well enough.

> -- 
>       Viktor.

Oops - you cut off the bottom of the old reply.  Anyway my prior email
explained how I plan to change my server setup.

Thanks again.  Lets not continue to beat a dead horse.

Curtis

Reply via email to