Shun 'em all and let Quanta Sort 'em out
I consider blocking spam a special challenge. One that requires a multi-tiered
approach to be effective, and one that requires tuning for your site. The
sendmail .mc ruleset presented here is based upon the one available from:
http://quanta.kyunghee.ac.kr/~dacapo/sendmail/rulesets/
That provided an excellent starting point, but unfortunately it is not updated too often.
The old version of this document is still available.
Last Update: 10/09/2002You may also want to try the Milter feature of Sendmail. I tried this with Perl, and while it works great when it is running, it was too unstable for my wants with Perl 5.6|7. However, it appears to be very stable with Perl 5.8 and I have begun using it again. If you want a jumpstart on the process, try the MilterD package (1.5) / 01/20/2003.
Beta: MilterD package (1.6B1) / 01/21/2003 (Full MIME Support)
Simply implementing the ruleset is not enough. Those pesky little spammers are somewhat intelligent, and as such they find ways to make the messages look completely legitimate. Thus, I also block addresses at my firewall. I used to count the total number of hosts I block, but stopped doing that lately. I really don't care. What I do care about is that I get on average 1-2 messages per day that slip through. This is down considerably from when I began. The IP addresses that are presently being blocked are here.
And a nice IPtables script that can be used on any Linux firewall: local.iptables
Note: if your site/network is on this list, do not waste your or my time with
telling me about it. I honestly do not care. In fact, you won't be able to
tell me about it, as you are blocked. And I like it that way. And I intend
fully to keep it that way. Indefinitely.
Note: I am no longer using the offenders list as I have resumed
development of MilterD, mentioned above. With Threaded Perl 5.8.0 it is 100%
stable! This amount of spam has gone up considerably, yet the amount that
gets through remains about the same as before. I will be adding message body
checking soon to solve that issue.
I also use the virtusertable, and the access table features from sendmail. Once again, if you are on this list, see the note above. I don't care.
optinmail.cc REJECT keywordrankings@excite.com REJECT sympatico.ca REJECT stormie@yahoo.com REJECT mailandnews.com REJECT msn.com REJECT aol.com REJECT polbox.com REJECT daahiaste8@yahoo.com REJECT gbolin@w2w.com REJECT algx.net REJECT jennifer1@ REJECT mach10.com REJECT free4all.com REJECT Todays_Stock_Update@eudoramail.com REJECT pfcnt.profuturo.pl REJECT trafalgergo.com REJECT Todays_Stock_Update573@mailandnews.com REJECT bdodd69@hotmail.com REJECT troops@upscaletrading.com REJECT ign.com REJECT artsandobjects.com REJECT root-mail.com REJECT email.com REJECT link2buy.com REJECT customoffers.com REJECT editor@brainbench.com REJECT @ewrma.com REJECT @banjo.agora.com REJECT @recruitersmarket.net REJECT @journyx.com REJECTI extract much pleasure from this little script I created to summarize the messages that did not make it through.
Brad Doctor