[Mimedefang] Re: On pinheaded ISP's (sort of OT)
John Rudd
john at rudd.cc
Wed Jan 31 16:57:11 EST 2007
Kevin A. McGrail wrote:
>> If you can't reject during the initial SMTP phase, then your NDR's of
>> spam,
>> with their possible forged envelope addresses, will also be spam. So,
>> if you
>> can't drop at the initial conversation, or it is relayed from a backup
>> MX, it
>> is your message, and your problem. Just don't generate NDR's. If you
>> can't
>> return at SMTP, you will need to drop it.
>
> We'll politely disagree because I am doing my best to reject mail
> including having backup servers query primary servers for valid email
> addresses but when the primary server is down, we MUST queue mail up on
> our servers. If people choose to view that as us being the source of
> SPAM, then they are negating the entire point of having backup MX's for
> when stuff hits the fan.
>
IMO:
A) My collection of mail servers as a whole is one big box. I don't
trust anything outside of the box, wrt to spam and viruses, but I do
trust everything inside of that box. And each host in that box has the
necessary information and configurations for making rejection decisions.
B) "Front-line" hosts here refers to all MX/routing/scanning hosts,
whether they are primary MX hosts or secondaries. All such hosts have
the same software for scanning, the same list of valid addresses, and
the same configurations for all of their software. They do not scan nor
reject messages that come from the back-line hosts.
C) "Back-line" hosts are the IMAP/POP/Webmail servers, which also accept
authenticated email via SMTP-AUTH. As a result, they also do anti-virus
scanning (but not anti-spam scanning) for any messages that do NOT come
from the front-line hosts.
So:
If a front-line host accepts the message, then the message will be
delivered to the user. Period. If it turns out that later, that
message would have been rejected for some reason, (such as a change in
anti-virus signatures between the time the front-line hosts accepted the
message and when the back-line hosts received it, which could now have
caught that messsage, etc.: too bad. The message was accepted. It is
now "inside the box" and will not be re-evaluated for rejection. (it
might be re-evaluated for spam marking, if we add a per-user bayesian
scanner for the delivery phase within the back-line servers, so that
they can train their own filters; but the anti-spam engine that decides
to reject or not does not use per-user information; but it will not be
re-evaluated for rejection)
So the scenario you present can't happen. The front-line servers (even
a very low MX host) will not accept a message for a user/list that
doesn't exist on the back-line hosts. So even if the back-line hosts
are down, it doesn't matter. If I were to make it such that the
front-line hosts were less-state-ful about destination addresses (ie.
move to the milter-ahead type model, that mimedefang also supports),
then I would say: if the back-line or higher-priority MX's are unable to
tell me if a destination is valid or not, then the low-priority MX
should tempfail that destination address.
It also means we don't drop messages ... which I agree is INCREDIBLY
irresponsible.
Reject at the border, and only at the border ... or mark or clean and
then deliver. Those are the only two options I allow.
The ONLY time we accept a message and then bounce it: the user's account
is over quota. And I'm working on how to reject at the front-line if
the destination is over-quota.
More information about the MIMEDefang
mailing list