On 9/27/2012 4:38 PM, Wietse Venema wrote:
> Victor discussed smtpd_relay_restrictions 6 years, see
> http://archives.neohapsis.com/archives/postfix/2006-05/0598.html.
> 
> The article also discussed a number of other ideas that have potential
> to increase the Postfix learning curve. I'll leave those for now.
> My current goal is to make Postfix easier to use by eliminating one
> opportunity for human error.
> 
> It seems that smtpd_relay_restrictions can be introduced with little
> pain, and that it can simplify configuration, with the direct benefit
> that it would prevent easy-to-make mistakes when all anti-spam
> features are placed in smtpd_recipient_restrictions.

Sounds useful.

> 
> I'm considering the idea to place smtpd_relay_restrictions before
> smtpd_recipient_restrictions, so that it can eliminate unnecessary
> work (there is little benefit from querying policy servers or DNSBLs
> when smtpd_relay_restrictions rejects a recipient).
> 
> As the built-in default value I consider adopting Victor's suggestion:
> 
>     smtpd_relay_restrictions = permit_mynetworks
>       permit_sasl_authenticated
>       reject_unauth_destination

I agree this is a reasonable built-in default. I suppose
smtpd_recipient_restrictions will be set empty as its built-in default.

> 
> This default setting would almost never need to be changed (by the
> way, that by itself presents a small usability problem - if people
> don't need to change this setting then its existence is not obvious).
> 
> From a user interface point of view there need be no surprises;
> both smtpd_relay_restrictions and smtpd_recipient_restrictions can
> behave identically. That reduces the human learning curve, and the
> effort of implementation and documentation.
> 
> For usability reasons, I would allow one desirable difference: when
> smtpd_relay_restrictions contains reject_unauth_destination or
> reject, then they are not needed in smtpd_recipient_restrictions.
> This means that sites can avoid a backwards compatibility break
> simply by setting "smtpd_relay_restrictions =" in main.cf, and get
> the exact same behavior of previous Postfix versions.
> 
> Perhaps for the first few years the install procedure should introduce
> smtpd_relay_restrictions with a safety net, to prevent mail from
> bouncing unexpectedly:
> 
>     smtpd_relay_restrictions = permit_mynetworks
>         permit_sasl_authenticated
>         permit_auth_destination
>       defer

I think a better upgrade compatibility shim would be to set
smtpd_relay_restrictions empty, ie. perform relay checks in
smtpd_recipient_restrictions as they are now; no behavior change.

and your proposed safety net looks to me as if it would defer all
{!mynetworks, !sasl, !auth_destination} mail before
smtpd_recipient_restrictions is evaluated. This would be surprising
upgrade behavior.


  -- Noel Jones




> 
> This is similar to the way that local_recipient_maps was introduced
> in Postfix 2.0 without unexpectedly bouncing mail after an upgrade.
> 
> On the other hand the likelihood of breakage is much smaller with
> smtpd_relay_restrictions than it ever was with local_recipient_maps,
> so perhaps smtpd_relay_restrictions does not need the temporary
> safety net.
> 
> In any case, smtpd_relay_restrictions would feature first in a
> non-production release so that we can get some experience with it.
> 
>       Wietse
> 

Reply via email to