On 05/19/2010 04:26 PM, Karsten � wrote:
On Wed, 2010-05-19 at 23:13 +0200, Mikael Syska wrote:
Not to highjack the thread, but there are also other things to consider.

I have no idea how on Postfix, but this could help you too Scott Lavoie.

If there are multiple exchange backends for postfix/spamasassin
gateway ... how could one validate that users exists, given that you
only have a list of valid users for some of the exchange servers and
the mailahead/milterahead/smtp are not an option?

Don't think you're hijacking the thread -- you just stated exactly, what
I mentioned in my previous post.

The only real problem, validating recipients at the front MX, based on
the data in the backend Exchange servers. Everything else is not a
problem, even though managing a Linux server might seem to be one from
the point of view of a Windows admin... ;)


Aside from the spam, keeping track of the valid addresses has been one of our (AnteSpam) biggest challenges over the past 8 years. The solution that has worked best for us has been to maintain a separate list of valid addresses for postfix to use. But coming from a db background, it has annoyed us no end that we have to maintain a duplicate of another db. ;-)

We develop the valid address list by using a short (and very fast) perl smtp test that checks the destination server's response to RCPT for the new address. We run this test when email comes in for every new/unknown address (and we track the failures in a simple key-value high speed db so we do not continuously hammer the poor destination servers with queries for the same bad address used yesterday or earlier).

Exchange servers have been our biggest headache with doing this however cause many take "eons" to respond. And when your filtering server is trying to handle a LOT of incoming junk emails per second, you just can not wait for Exchange to get around to answering you. So for most Exchange servers we either require they manage their address list manually OR, if they insist on AnteSpam automatically adding new addresses, we send what we call a "ping" email with a special reply-to address so when the Exchange server gets around to sending us the NDR, we can mark that address as bogus and move on.

As you can see from this long-winded but simplified explanation, this has not been easy to do. Honestly, I am NOT an Exchange expert...but I swear it had to be a design goal for some of these servers take 15 or 30 minutes (or longer) to send the NDR. And when you are supporting a domain that is being flooded with thousands of emails to bogus addresses per hour, it gets kinda tedious holding the mail and addresses in limbo long enough to give the Exchange server time to respond (or not) so you know what to do with the email.

Honestly, for a simple solution the best thing is to manually keep a list of valid addresses for Postfix (or whatever MTA you use). It adds a little support load until you train the domain admin to add new addresses twice, once in Exchange and once for the filter. But the option of building the valid address list automatically is NOT for the faint of heart.

Or I suppose it is possible for Exchange and Postfix/your MTA to share a db of valid addresses? I know Postfix is very flexible in that regard. No clue about Exchange.

Good luck.

--
Andy Dorman
Ironic Design, Inc.
AnteSpam.com, HomeFreeMail.com, ComeHome.net

Reply via email to