Noel Jones put forth on 8/24/2010 2:18 PM:

> - This is specific for dnswl.org.  Postfix needs a general mechanism. 
> Other whitelists are not required to follow dnswl.org's 127.0.x.y
> mechanism.

Yeah, I used this example as dnswl is, afaik, the most "established" of
the dns whitelists.  I haven't yet looked at the return codes the others
use.

> - what do you mean by "accept the message"; OK? suppress further rbl
> lookups?

This is something that needs discussion due to various expectations of
what a dns "whitelist" entry actually means and how it can best be
implemented.  I think messages with a "positive" dnswl return code
should obviously bypass certain restrictions, mainly dnsbl hits, but not
all restrictions--we shouldn't bypass virus checks and content filters.
 And if an admin wants to locally ban an IP listed in a dnswl for any
reason, we shouldn't be bypassing user defined access tables.

I think bypassing reject_r*bl_* and most of the inbuilt/standard client,
sender, helo, etc sanity checks would be a good idea.  Obviously we
don't want to bypass something like reject_unlisted_recipient.

I think what we really need here is consensus on the use of local
whitelists.  Should dns whitelists carry the same weight?  If so, we may
want to bypass all restrictions but virus/content filters and recipient
address verification.

> - If "accept" means OK, how will you protect postfix from open relay if
> the dns whitelist accidentally or intentionally lists the whole internet?

We currently run similar risk, but in the opposite direction, using
dnsbls.  I don't believe there is a technical solution to this potential
issue.  Every dnsbl comes with a "use at your own risk... no
warranty..." disclaimer for this reason and others.  Though I think the
dnsbl case is worse as it can potentially stop all email flow.  In the
dnswl case, you'd simply see much more spam.  Although, at the inbox
level, the "denial of service" result may be equivalent, much like
yesteryear when folks had to sift through 100 spams to find 3 legit
emails they received on a given day.  But at least they still received
those 3.

Probably difficult to implement, but maybe some kind of analysis on mail
flow would help.  Keep statistics counters and establish an "average
volume" baseline.  If volume increases 10x over baseline, throttle all
connections.  The programming effort may not be worth the payoff here
given the odds of "list world" occurrences.

> - what would the user interface look like?  Is it possible to document
> it clearly?

I think something like I mentioned before would be good.  Simple single
line configuration parameter populating one global program variable.
How the variable would be used is the tricky part, and up to others.
I'm not much of a programmer these days. :(  I think it would be wise to
allow flexible use of accept_dnswl_client much like reject_r*bl_foo
which can today be used within access tables in addition to directly
within smtpd_foo_restrictions.  If we make its functionality very
permissive by default, I probably wouldn't make it globally effective by
default.

WRT documentation, that will depend on the values we allow for the
variable.  If we do something like the 0-3 thing similar to dnswl.org,
it's not as clear due to complexity.  If we make it boolean, it's very
clear.  In this latter case, lots of bold starred italic documentation
needs to inform the OP of the risks of turning it on.

-- 
Stan

Reply via email to