This is quite long. My apologies. After only two responses, I found I had a lot to clarify and more to add to the debate. I knew it would be controversial, but I think it's a direction we need to go. We need to at least have this capability. Every MTA in the world doesn't have to implement it, but I believe we need a solution (or multiple solutions to choose from) to implement if we so choose.
DM: Derek Martin KL: Keneth Lussier [My intro about user controlled SMTP rejections snipped] DM> This is difficult, if not impossible, to acheive. At least, if I DM> understand you correctly. The SMTP gateway is a mail TRANSFER agent, DM> and knows nothing about what the client wants or doesn't want, BY DM> DESIGN. The exception is probably MS Exchange, which I don't know DM> much about, and wouldn't ever use/manage unless I were starving to DM> death. I think I'ld flip burgers before managing an Exchange environment :-). Anyhow, sendmail already provides ways of filtering based on To: or From: fields in the access database. All that's needed is to combine the two to provide the functionality I'm talking about. That and, of course, a way for recipients to securely control it without compromising the entire mail system. Impossible? I doubt it. Difficult, yes, but that's why I posted to this group -- to get some tips. Whether or not it was originally by design that the MTA knows nothing about the client (client referring to end user in this case) wants or doesn't want matters not. The mere existence of rfc2505 (particularly section 3.2) indicates that I'm not the only one that wants that to change. KL> There are ways of doing this, but they are not clean, nor are they secure. KL> Most major, and some minor, MTA's allow the use of "Black List" lookups. KL> Your MTA can consult things like the RBL to see if mail is from a black KL> listed domain, sender, etc. One of the problems with this is that your MTA KL> is now depending on someone else's judgement, and someone elses security. If KL> the RBL is ever cracked, it would wreak havoc with the mail systems that KL> use it. Even depending on my own judgement as a sysadmin is not so good. I want to give the choice to individuals. I have heard the RBL is actually becoming less and less popular. They've taken more questionable actions over recent years and it still doesn't give the end user the choice. It doesn't even give organizations the choice. It's all or nothing. Vipul's Razor is a great idea as it deals with specific messages, but it remains to be seen how effective it is. Still, it only deals with messages already delivered through SMTP -- not what I looking to do. I want it rejected before being sucked into my servers. [My criticism of mail filtering tools snipped] DM> This is not a shortcoming in procmail. It's a problem with your DM> corporate policy. If you're going to lay blame, please do so where it DM> belongs... DM> DM> A workaround for this problem is to run fetchmail to get your mail DM> from your IMAP server, and filter it with procmail locally. And DM> IMNSHO, it's a much cleaner way than what you're about to suggest... As Paul L. mentions in a later message, there's no problem with this as a corporate policy. There are many arguments for sealed servers, but I believe that it's beyond the scope of the points I'ld to make. (I'm happy to discuss it, but I just think it's a different, though related, discussion.) I'm not really 'blaming' procmail, anyhow. It does what it does well. Problem is, that it's not designed for filtering using only IMAP. I personally cringe at alternating my access of an INBOX between IMAP and procmail or any other non-IMAP access. Leaving Cyrus out the picture for the moment, let's take a look at UW-IMAP. Upon accessing a folder, it puts a dummy message in the front of the file with some folder information. It looks pretty innocuous and I doubt it would ever be a problem deleting it and letting UW-IMAP recreate it, but I just don't trust letting non-techie users do stuff to IMAP folders unless it's through IMAP only. It's comparable (though not as bad as) to modifying an rcs file by hand. I'm not looking for workarounds, I'm looking for real solutions. Sieve, IMO, is actually a much cleaner solution. It allows me to shut my desktop down (if I so choose) and still have stuff faithfully filtered as I've specified. And I can then access my folders from home through a VPN without having make sure my procmail filters are in sync between home and work (which *I might not want*, anyhow). KL> Filtering should always be done at the client side, IMO.It's the user KL> that chooses the client, and the user that wants the filters. There KL> is no reason to put extra strain on a mail server, especially if it KL> is a high traffic environment, by asking the MTA to think for you as KL> well. I respectfully disagree. I've wanted server-side filtering for a long time. I was pleased to find that sieve has actually made it to the rfc stage and that Cyrus has already implemented it. I'm not trying to suggest that we load up are mail servers with a bunch of unneeded functionality and risk them getting too bloated. But let's not be afraid of taking advantage of the fact that you can easily find a 1GHz box with 1/2 Gig of RAM for a mere 600 bucks these days. [My promotion of sieve snipped] DM> Unless I'm mistaken (which is very possible), Cyrus mail tools require DM> the use of Maildir format mailboxes, which just aren't supported all DM> that well. True, a lot of major mail clients support it, but a lot of DM> popular clients don't. And if you need to read mail with mailx in an DM> emergency, forget it. Cyrus is not a set of client tools, it's an IMAP server. You access folders through IMAP running on a sealed server -- users don't need shell accounts in order to have IMAP accounts. True, you can't use mailx, but the typical non-techie is not going to be a mailx user any time soon. If the mail server is down, they're down. It's my job to make that possibility minimal. What you may be thinking of is the fact that Cyrus stores each message in a separate file and has some additionally db files for index info. I used to be a big proponent of one file per folder -- until my folders (especially my INBOX) grew to tens and even a few hundred megabytes. UW-IMAP falls over badly in situations like this. [My details about SMTP rejections snipped] DM> This seems to me to be making the process of delivering mail to a user DM> entirely too complex. The LAST thing I want, as a system DM> administrator, is dependence on a database program to make delivery of DM> mail work. When you do this, you've probably increased the complexity DM> of mail delivery by more than 100%, given how basically simple DM> sendmail is. That means headaches for me, and I don't like it. DM> DM> You can even configure procmail to send the sender bounce messages, if DM> you really want to. YAY! So I've doubled the complexity of email delivery. IMHSO, that's not that bad, given the potential payoff. And you don't have to use this, but there are many sysadmins that are as fed up with spam as I am. IMO, the payoff is great. I don't want my users to have send bounces, I want the mail they've chosen to reject to never enter my servers. A possible analogy is giving homeowners the right to not answer their doors when unwanted and/or unknown visitors arrive. That's one right that's a given. I don't think it's right for me to be opening the door for these strangers to harass the homeowners (it's not *their* equipment in most cases, but it is *their* time). Really, the door is just too open by default. I'm trying to find a way to close it and let my users decide who to open it for. KL> You can configure procmail to do pretty much everything. If you just KL> really don't like procmail for some odd reason, then use maildrop or KL> seive. They are all relativly the same. The difference with sieve, however, has to do with it's server-side focus and a protocol for transfering scripts. Mulberry from Cyrusoft (http://www.cyrusoft.com -- non-free) already supports a gui for generating and transfering scripts for the average user. It's kind of procmail meets the newbie-non-techie-gui-"what's a command line" user. KL> I 100% agree here. Making your MTA depend on a database backend just KL> seems suicidal. Not to mention the performance hit you would take if KL> you have a high traffic environment. If every single piece of e-mail KL> requires a database query, you will slow the mail server down KL> considerably. Especially if you have tables with thousands of entries, KL> which you would have to have if there needs to be an entry for everyone KL> that you *WILL* accept mail from. Besides the performance hit to the mail KL> server, just imagine the performance hit the sysadmins would take!! I KL> spend hours a day responding to e-mail. Now, imagine having to respong KL> to an e-mail saying that you will accept mail from this person, then KL> waiting for their e-mail, then responding to it... I don't have time KL> for that. I admit making mail delivery depend on a db is risky. In fact, rfc2505 does mention in general terms the performance and complexity issues as well as potential new DoS risks. Failure modes and high load situations definitely need to be studied. I'ld like to start on the path of getting something implemented so it *can* be studied rather than just debated. Debate is good, but as is often said the world of Free Software, show me the code. Although I'm sure that having additional processing like this done at the SMTP gateway will increase load, I have to wonder what the tradeoff would be with the decrease in the amount of spam actually sucked into our servers and clogging up our queues and user INBOXes. It may not be an even trade, but I have a suspicion that it would be enough that the remaining performance issues could be addressed to the point of being tolerable. It may not be as zippy as it once was, but it's quite possible it'll be acceptable in the face of the amount of spam that is averted. DM> Yes, I have some thoughts. What you're describing is a sysadmin's DM> worst nightmare, and I for one want no part of it. It's a great DM> example of overengineering a reletively simple problem. The best DM> solution for dealing with spam always was and always will be to press DM> the delete key. Anything else runs the risk of losing legitimate DM> mail if it's not configured meticulously, and if you ask me what you DM> describe introduces enough aditional complexity to make it very much DM> not worthwhile. The best solution for dealing with spam has never been and will never be the delete key. The first (but certainly not the last) story I have of this is a case about five years ago when someone I worked with was deleting the mucho spam she had received since the previous night. She inadvertently deleted a *very* important legitimate email about checking some code in for that night's build. She missed the email, missed the build, and as a result development lost some time (time == money in business) all due to using the 'delete' key for spam. Given the amount of spam she was getting, she can't really be faulted that much for inadvertently deleting the legitimate message. That was five years ago. There have been similar situations since then. She's not the only one. And the volume of spam has increased about 650% since last year (http://news.zdnet.co.uk/story/0,,t269-s2100516,00.html). The problem is getting so much worse that soon searching for legitimate email will be like trying to find a needle in a haystack...of pins. Filtering users' email based on *my* decisions runs the risk of losing legitimate email. Giving users the choice to reject mail at the SMTP gateway will only reject mail that they've specifically rejected or rejected through inaction. Coded well (which is my endeavor, of course), rejected mail will be bounced because the upstream SMTP server gets a permanent failure error code. If it's legitimate mail, it'll have a correct return address and it will reach the sender. Then the sender will know that he needs to contact the recipient through another means to alert him of the problem. I guess one man's nightmare, is another's dream ;-). I am fanatically against spam and I'm passionate about find a solution. Resigning myself to the delete key is exactly what the those low-lifes at the Direct Marketing Association what me to do. I refuse to do it. I don't think legislation is necessarily the appropriate way to deal with it, so a technological one is what's needed. And we need one that doesn't have people screaming (mostly, legitimately) of constitutional violations. KL> Beyond the complexity issue, which is bad enough, this proposal KL> introduces several new points of failure, as well as several points KL> of risk, that, IMNSHO, just aren't worth it. Besides, it's time KL> consuming, wasteful, risky, and probably ineffectual. If a sysadmin KL> has to spend their entire day replying to e-mails just to say that KL> they will accept the e-mail, you have just invented the first DDoS KL> attack against a human being!! Well, second, actually. The first being KL> stupid questions from the marketing department ;-) It just seems like a KL> lot of work, a lot of risk, and a lot of time spent for very little KL> return. All they have to do is spoof their mail and/or IP address (Oh, KL> like *THAT's* hard). Points of failure, yes. But I can think of one acceptable solution to a failed database -- just ignore the filters and let the spam roll in. Sounds silly at first, but that's basically what we're tolerating today. A failed database doesn't have to be a disaster in this case. Hell, if it's totally hosed and you have to wipe it clean and start from scratch, is there much harm in that? Not really, given what we have today. It means reloading some default accept lists, but it's a one time action we only need to take in the case of a total failure. I hope we (I?) can code it well enough to avoid frequent *total* failures. Time consuming? From the context, I assume you're talking mostly about mail from people in your organization. What's wrong with adopting a default policy that says when a new user account is created, seed it with an accept list that includes everybody in the organization, possibly by domain name. Doesn't work for something like yahoo mail, but any corporate structure shouldn't have a problem with a policy like this. If an employee really want to reject all mail from the CEO, he can do that himself, later. Wasteful? How wasteful is the spam that clogs our servers daily? Especially since it's only going to get worse. Risky? I assume you mean to implement as a sysadmin. Of course it is. Anything that's unproven is risky. But I'ld like to see it proven to the point that it's more risky *not* to implement it with the amount of spam that would flow into our organizations otherwise. Ineffectual? Not if I have anything to say about it. If we can implement it in our organizations (and our upstream MX providers), it'll be the relays that have accepted the mail that get clogged. If your relaying mail for spammers, you need to take a hard look at your policies. Here's a excerpt from a file I threw together while doing some brainstorming: === Rationale: If you are seeing messages pile up in your queue, you need to ask yourself these questions: 1) Am I allowing relaying from a ISP that tolerates spammers? 2) Are any of my customers spammers? (If I'm an ISP.) 3) Do I have an open relay? Either: a) through neglect or oversight b) by design c) because I've been hacked For 1, 2, 3a, and 3c you need to take action to correct the problem. For 3b, perhaps you need to review why the choice was made to keep the relay open. === -- -Paul Iadonisi Senior Systems Administrator Red Hat Certified Engineer / Local Linux Lobbyist Ever see a penguin fly? -- Try Linux. GPL all the way: Sell services, don't lease secrets ***************************************************************** To unsubscribe from this list, send mail to [EMAIL PROTECTED] with the text 'unsubscribe gnhlug' in the message body. *****************************************************************