view Side-By-Side changes
INTERNET-DRAFT Gunnar Lindbergdraft-lindberg-anti-spam-mta-02.txtdraft-lindberg-anti-spam-mta-03.txt Chalmers University ExpiresJuly,October, 1998 of Technology6 Feb23 Apr 1998 Anti-SpamRequirements on anRecommendations for SMTPMTAMTAs Abstract This memo gives a number oftechnical requirement onimplementation recommendations for SMTP [1] MTAs (Mail Transfer Agents, e.g.sendmail)sendmail [6]) to make them more capable of reducing the impact of spam(*). The intent is that theserequirementsrecommendations will help clean up the spam situation, if applied on enough SMTP MTAs on the Internet, and that they should be used as guidelines for the various MTA vendors. We are fully aware that this is not the final solution, but if theserequirementsrecommendations were included, and used, on all Internet SMTP MTAs, things would improve considerably and give time to design a more long term solution. Some ideas are presented in the Future Work section. A brief summary of this memo is: o Stop unauthorized mail relaying. o Spammers then have to operate in the open; deal with them. o Design a mail system that can handle spam. Status of This Memo This document is an Internet-Draft. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Comments on this draft should be sent to <anti-spam@chalmers.se>. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." To view the entire list of current Internet-Drafts, please check the "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow Directories on ftp.is.co.za (Africa), ftp.nordu.net (Northern Europe), ftp.nis.garr.it (Southern Europe), munnari.oz.au (Pacific Rim), ftp.ietf.org (US East Coast), or ftp.isi.edu (US West Coast). Lindberg et.al. Anti-SpamRequirements on anRecommendations for SMTPMTAMTAs [Page 1]draft-lindberg-anti-spam-mta-02.txt 6 Febdraft-lindberg-anti-spam-mta-03.txt 23 Apr 1998 1. Introduction This memo is intended to become a Best Current Practice (BCP) RFC. As such it should be used as a guideline for SMTP MTAvendorsimplementors to make their products more capable of preventing/handling spam. Despite this being its primary goal, an intended side effect is to suggest to the sysadmin/Postmaster community which "anti spam knobs" an SMTP MTA is expected to have. However, this memo is not generally intended as a description on how to operate an SMTP MTA - which "knobs" to turn and how to configure the options. If suggestions are provided, they will be clearly marked and they should be read as such. 1.1. Background Mass unsolicited electronic mail, often known as spam(*), has increased considerably during a short period of time and has become a serious threat to the Internet email community as a whole. Something needs to be done fairly quickly. The problem has several components: o It is high volume, i.e. people get a lot of such mail in their mailboxes. o It is completely "blind", i.e. there is no correlation between the receivers' areas of interest and the actual mail sent out (at least if one assumes that not everybody on the Internet is interested in porno pictures and spam programs...). o It costs real money for the receivers. Since many receivers pay for the time to transfer the mailbox from the (dialup) ISP to their computer they in reality pay real money for this. o It costs real money for the ISPs. Assume one 10 Kbyte message sent to 10 000 users with their mailboxes at one ISP host; that means an unsolicited, unexpected, storage of 100 Mbytes. State of the art disks, 4 Gbyte, can take 40 such message floods before they are filled. It is almost impossible to plan ahead for such "storms". oSeveralMost of the senders of spam areanything but serious, e.gdishonest, e.g. hide behind falseaddressesreturn addresses, deliberately write messages to look like they were between two individuals so the spam recipient will think it was just misdelivered to them, say the message is "material you requested" when you never asked for it, and generally do everything they can without regard to honesty ormail hosts that refuseLindberg et.al. Anti-Spam Recommendations for SMTP MTAs [Page 2] draft-lindberg-anti-spam-mta-03.txt 23 Apr 1998 ethics, toreceive.try to get a few more people to look at their message". In fact many of the spam-programs show a pride in adding false info that will "make the ISPs scratch their heads". It isnot uncommonusually the case that people who send in protests (often according to the instructions in the mail) find their mail addresses added to more lists and sold to other parties. o It is quite common practice to make use of third party hosts as relays to get the spam mail sent out to the receivers. This theft of service isalmost certainlyillegal in most - if not allcountries, but- countries (at least in the US, spammers have been successfully sued). However, with the original sender in the US, the (innocent) relay in Sweden andLindberg et.al. Anti-Spam Requirements on an SMTP MTA [Page 2] draft-lindberg-anti-spam-mta-02.txt 6 Feb 1998the list of receivers back in theUSUS, the legalaspects become almost overhelming.process of getting damages from the spammers becomes extremely difficult 1.2. Scope This memo has no intent to be the final solution to the spam problem. If, however, enough Internet MTAs did implement enough of the rules described below (especially the Non-Relay rules), we would get the spammers out in the open, where they could be taken care of. Either pure legal actions would help, or we can block them technically using other rules described below (since the Non-Relay rules now make them appear openly, with their own hosts and domains, we can apply various access filters against them). In reality, a combination of legal and technical methods is likely to give the best result. This way, the spam problem could be reduced enough to allow the Internet community to design and deploy a real and general solution.1.3. Terminology Throughout this memo we will use the terminologyBut, please note: The Non-Relay rules are not in themselves enough to stop spam. Even of 99% ofRFC2119, [4]: o "MUST" This word ortheadjective "REQUIRED" meansSMTP MTAs implemented them from day 1, spammers would still find the remaining 1% and use them. Or, spammers would just switch gear and connect directly to each and every recipient host; that will be to a higher cost for theitemspammer, but isan absolute requirement. o "SHOULD" This word orstill quite likely. Despite IPv6 deployment may be near in time, the spam problem is here already and thus this memo restricts itself to the current IPv4. Lindberg et.al. Anti-Spam Recommendations for SMTP MTAs [Page 3] draft-lindberg-anti-spam-mta-03.txt 23 Apr 1998 1.3. Terminology Throughout this memo we will use the terminology of RFC2119, [4]: o "MUST" This word or the adjective "REQUIRED" means that the item is an absolute requirement. o "SHOULD" This word or the adjective "RECOMMENDED" means that there may exist valid reasons in particular circumstances to ignore this item, but the full implications should be understood and the case carefully weighed before choosing a different course. o "MAY" This word or the adjective "OPTIONAL" means that this item is truly optional. One vendor may choose to include the item because a particular marketplace requires it or because it enhances the product, for example; another vendor may omit the same item. 1.4. Using DNS information In the memo we sometimes use the term "host name" or "domain name" which should be interpreted as a Fully Qualified Domain Name, FQDN. By this we mean the name returned from the DNS in response to a PTR query (.IN-ADDR.ARPA), i.e. when an IP address is translated to a name, or we mean a name with a DNS A or MX record associated to it. When we suggest use ofhost or domain names, FQN,FQDNs rather than IPaddresses. Thisaddresses this is becauseFQNFQDNs are intuitively much easier to use.Lindberg et.al. Anti-Spam Requirements on an SMTP MTA [Page 3] draft-lindberg-anti-spam-mta-02.txt 6 Feb 1998However, all such usage depends heavily on DNS and .IN-ADDR.ARPA (PTR) information. Since it is fairly easy to forge that, either by false cache information injected in DNS servers or spammers running their ownDNS,DNS with false information in them, host and domain names must be used with care, e.g.verifyverified so that the translation address->name corresponds to name->address.1.5. SMTP Return Codes Our basic assumption is that refuse/acceptWith Secure DNS, RFC2065, [5], things will improve, since spoofing of .IN-ADDR.ARPA will no longer be possible. One of the recommendations ishandled atabout verifying "MAIL From:" domains with theSMTP layer and that an MTADNS (assure thatdecides to refuse a message should do so while still inappropriate DNS information exisists for theSMTP dialogue. First, this means that we do not have to store a copydomain). When making use of this capability there are amessage we later decidefew things torefuse and second, our responsibility for that message is low or none - since we have not yet read it we leaveconsider: For early versions of spam software itto the sender to handle the error.does provide quite some Lindberg et.al. Anti-Spam Recommendations for SMTP MTAs [Page 4] draft-lindberg-anti-spam-mta-03.txt 23 Apr 1998 relief, since that software generates mail with completely bogus "MAIL From:" that will never get into the system if verified with the DNS. This is in active use at many installations today and it does reduce spam. On the other hand, sites with weak DNS connectivity may find their legitimate mail having problems reaching destinations due to DNS timeouts when the receivers verify their "MAIL From:". However, since DNS information is handled asynchronously and is cached even though the initial requester has given up, chances are high that the necessary information is there at a later attempt. For later versions of spam software, a check of "MAIL From:" is much less likely to help, since spam software evolves too and will start using existing mail addresses (whether or not that is legal is beyond the scope of this memo). But, at least the Internet will benefit from the side effect that this test stops typos and misconfigured UAs. 1.5. Where to block spam, in SMTP, in RFC822 or in the UA Our basic assumption is that refuse/accept is handled at the SMTP layer and that an MTA that decides to refuse a message should do so while still in the SMTP dialogue. First, this means that we do not have to store a copy of a message we later decide to refuse and second, our responsibility for that message is low or none - since we have not yet read it in, we leave it to the sender to handle the error. 1.6. SMTP Return Codes SMTP has several classes of Return Codes, see [1] for a discussion: o 5xx is aFatal ErrorPermanent Negative Completion reply (Fatal Error) and results in the mail transfer being terminated and the mail returned to sender.For someo 4xx is a Transient Negative Completion reply (Temporary Error) and results in the mail transfer being put back on queue again and a new attempt being made later. o 2xx is a Positive Completion reply and indicates that the MTA now has taken responsibility for the delivery of the mail. When making use of the options/"knobs" described in this memo there are a few things to consider: Lindberg et.al. Anti-Spam Recommendations for SMTP MTAs [Page 5] draft-lindberg-anti-spam-mta-03.txt 23 Apr 1998 For some events, like "Denied - you're on the spammer's list",this is probably5xx may be the correctresponse andReturn Code, since it terminates theright thing to say. Asession at once and we are done with it. However, a mistake inconfiguration, however,configuration may causevalidlegitimate mail tobounce back to the sender,bounce, which may be quite unfortunate.oTherefore, we suggest 4xx as the Return Code for most cases. Since that is aTemporary Error and results innon fatal error, the mailtransfer being put back on queue againgets re-queued at the sender anda new attempt being made later. Therefore, configuration mistakes are much less fatalwe have at least some time to discover andyou maycorrectthem before any real damageconfiguration errors, rather than have mail bounce (typically this isdone.when we refuse to Relay for domains that we actually should accept since we are on their MX list). A 4xx response also makes the spammer's host re-queue the mail and if it really is his own host who gets to do this, it is probably a goodthing.thing - fill up his disks with his own spam. If, on the other hand, he is using someone else as Relay Host, all the spam mail being queued is a fairly strong evidence that somethingillegalbad is going on and should cause attention atthethat Relay Host.4xx, Temporary Error, is almost always the recommended Return Code, since it both allows us to correct our mistakes and keeps the spam mail in the mail queue at the sender for a longer period of time.However, 4xx Temporary Errors may have unexpected interaction with MX-records. If the receiving domain has several MX records and the lowest preference MX-host refuses to receive mailfrom a certain "MAIL From" domainwith a "451" Response Code, the sending host may choose to - and often will - use the next host on the MX list.Lindberg et.al. Anti-Spam Requirements on an SMTP MTA [Page 4] draft-lindberg-anti-spam-mta-02.txt 6 Feb 1998If that next MX host does not have the same refuse-list, it will of course accept the mail, only to find that the final host still refuses to receive that piece of mail ("MAILFrom").From:"). I.e. our intent was to make the offending mail stay at the offending sender's host and fill up his mqueue disk, but it all ended up at our friend, the next lowest preference MX-host.2. Requirements Here we first give a brief list of requirements, followed by aFinally, it has been suggested that one may use a 2xx Return Code but nevertheless decide not to forward or receive the spam mail; typical alternatives are to store it elsewhere (e.g. /dev/null). This clearly violates the intent of RFC821 and should not be done without careful consideration - instead of blindly dropping the mail one could re- queue it and manually (or automagically) inspect whether it is spam or legitimate mail and whether it should be dropped or forwarded. 1.7. Mailing Lists An MTA that also has the ability to handle mailing lists and expand that to a number of recipients, needs to be able to authorize senders and protect its lists from spam. The mechanisms for this may be very different from those for ordinary mail and ordinary users and are not covered in this memo. Lindberg et.al. Anti-Spam Recommendations for SMTP MTAs [Page 6] draft-lindberg-anti-spam-mta-03.txt 23 Apr 1998 2. Recommendations Here we first give a brief list of recommendations, followed by a more thorough discussion of each of them. We will also give recommendations on things NOT to do, things that may seem natural in the spam fight (and might even work so far) but that might wreak havoc on Internet mail and thus may cause more damage than good. 1) MUST be able to restrict unauthorized use as Mail Relay. 2) MUST be able to provide "Received:" lines with enough information to make it possible to trace the mail path, despite spammers use forged host names in HELO statements etc. 3) MUST be able to provide local log information that makes it possible to trace the event afterwards. 4) SHOULD be able to log all occurrences of anti-relay/anti-spam actions. 5) MUST NOT refuse "MAIL To: <Postmaster@my.local.dom.ain>". 6) SHOULD be able to refuse mail from a host/or a group of hosts.6a)7a) MUST NOT refuse "MAIL From: <>". 7b) MUST NOT refuse "MAIL From: <user@my.local.dom.ain>". 8a) SHOULD be able to refuse mail from a specific "MAILFrom"From:" user, <foo@domain.example>.6b)8b) SHOULD be able to refuse mail from an entire "MAILFrom"From:" domain <.*@domain.example>.7)9) SHOULD be able to limit ("rate control") mail flow.8)10) SHOULD be able to verify "MAILFrom"From:" domain (using DNS or using other means).9)11) SHOULD be able to verify <local-part> in outgoing mail.10)12) SHOULD be able to control SMTP VRFY and EXPN. 13) SHOULD be able to control SMTP ETRN. 14) MUST be able to configureforto provide different Return Codes for different rules (e.g. 451 Temp Fail vs551550 Fatal Error).11) SHOULD be able to authorize mailing list usage.Lindberg et.al. Anti-Spam Recommendations for SMTP MTAs [Page 7] draft-lindberg-anti-spam-mta-03.txt 23 Apr 1998 The discussion below often ends up in a need to do various forms of pattern matching, on domain/host names and on IP addresses/subnets. It is RECOMMENDED that the data/template for doing so may be supplied outside of the MTA, e.g. that the pattern matching rules be included in the MTA but that the actual patterns may be in an external file.Lindberg et.al. Anti-Spam Requirements on an SMTP MTA [Page 5] draft-lindberg-anti-spam-mta-02.txt 6 Feb 1998It is also RECOMMENDED that the pattern matching rules (external file) may contain regular expressions, to give maximum flexibility. Of course all string matching on domain/host names MUST be non case sensitive. Since <local-part> may be case sensitive it may be natural to keep that here. However, since <sPAmMeR@domain.example> and <spammer@domain.example> is most probably the same user and since the string compares are used to refuse his messages, we suggest that <local-part> be compared non case sensitive too. 2.1. Restricting unauthorized Mail Relay usage Unauthorized usage of a host as Mail Relay means theft of the relay's resources and puts the owner's reputation at risk. It also makes it impossible to filter out or block spam without at the same time blocking legitimate mail. Therefore, the MTA MUST be able to control/refuse such Relay usage. In an SMTP session we have34 elements, with a varying degree of trust: 1) "HELO Hostname" Easily and often forged. 2) "MAIL From:" Easily and often forged.2)3) "RCPT To:" Correct, or at least intended.3) "SMTP Caller"4) SMTP_Caller (host) IP.src addr OK,FQNFQDN may be OK. Since 1)is soand 2) are so easily and often forged, we cannot depend onthatthem at all to authorize usage of our host as Mail Relay. Instead, the MTA MUST be able to authorize Mail Relay usage based on a combination of: o "RCPTTo"To:" address (domain). o"SMTP Caller" FQNSMTP_Caller FQDN hostname. o"SMTP Caller"SMTP_Caller IP address. Lindberg et.al. Anti-Spam Recommendations for SMTP MTAs [Page 8] draft-lindberg-anti-spam-mta-03.txt 23 Apr 1998 The suggested algorithm is: a) If "RCPTTo"To:" is one of "our" domains, local or a domain that we accept to forward to (alternate MX), then accept to Relay. b) If"SMTP Caller"SMTP_Caller is authorized, either its IP.src or itsFQNFQDN (depending on if you trust the DNS), then accept to Relay. c) Else refuse to Relay. When doing a) you have to make sure all kinds of SMTP source routing (both the official[@a,@b:u@c] and[@a,@b:u@c], the '%'hack)hack and uucp-style '!' path) is either removedLindberg et.al. Anti-Spam Requirements on an SMTP MTA [Page 6] draft-lindberg-anti-spam-mta-02.txt 6 Feb 1998completely before the test, or is at least not taken into account. In all cases the configuration MUST support wild cards forFQNsFQDNs and classful IP addresses and SHOULD support "address/mask" for classless IP addresses, e.g. domain.example and *.domain.example; 10.11.*.*, 192.168.1.*, 192.168.2.*, 10.0.0.0/13, 192.168.1.0/23. The configuration SHOULD allow for the decision/template data to be supplied by an external source, e.g. text file or dbm database. The decision/template SHOULD be allowed to contain regular expressions. 2.2. Received: lines The MTA MUST prepend a "Received:" line in the mail (as described in RFC822, [2], and required in RFC1123, [3]). This "Received:" line MUST contain enough information to make it possible to trace the mail path back to the sender. We have two cases: 2.2.1. Direct MTA-to-MTA connections Internet mail was designed such that the sending host connects directly to the recipient as described by MX records (there may be several MX hosts on a priority list). To assure traceability back to the sending host (which may be a firewall/gateway, as described later) each MTA along the path, including the final MTA, MUST prepend a "Received:" line.SuchFor such a "Received:" line we have: It MUST contain: o The IP address of the caller. o The 'date-time' as described in RFC822, [2], pp 18. It SHOULD contain: Lindberg et.al. Anti-Spam Recommendations for SMTP MTAs [Page 9] draft-lindberg-anti-spam-mta-03.txt 23 Apr 1998 o TheFQNFQDN corresponding to the callers IP address. o The argument given in the "HELO" statement. It is suggested that most other "Received:" fields described in RFC822 be included in the "Received:" lines. Theserequirementsrecommendations are deliberately stronger than RFC1123, [3], and are there to assure that mail sent directly from a spammer's host to a recipient can be traced with enough accuracy; a typical example is when a spammer uses a dialup account and the ISP needs to have his IP address at the 'date-time' to be able to take action against him.Lindberg et.al. Anti-Spam Requirements on an SMTP MTA [Page 7] draft-lindberg-anti-spam-mta-02.txt 6 Feb 19982.2.2. Firewall/gateway type devices Organizations with a policy to hide their internal network structure must still be allowed and able to do so. They usually make their internal MTAs prepend "Received:" lines with a very limited amount of information, or prepend none at all.They thenThen they send out the mail through some kind of firewall/gateway device, which may even remove all the internal MTAs' "Received:" lines before it prepends its own "Received:" line (as required in RFC1123, [3]). By doing so they take on the full responsibility to trace spammers that send from inside theirorganization.organization or they accept to be held responsible for those spammers' activities. It is REQUIRED that the information provided in their outgoing mail is sufficient for them to performsuchnecessary traces. 2.3. Event logs The MTA MUST be able to provide enough local log information to make it possible to trace the event. This includes most of the information put into the "Received:" lines, see above. 2.4. Log anti-relay/anti-spam actions The MTA SHOULD be able to log all anti-relay/anti-spam actions. The log entries SHOULD contain at least: o Time information. o Refuse information, i.e. why the request was refused ("Mail From", "Relaying Denied", "Spam User", "Spam Host", etc). o "RCPTTo"To:" addresses (domains). o Offending host's IP address. Lindberg et.al. Anti-Spam Recommendations for SMTP MTAs [Page 10] draft-lindberg-anti-spam-mta-03.txt 23 Apr 1998 o Offending host'sFQNFQDN hostname. o Other relevant information (e.g. given during the SMTP dialogue, before we decided to refuse the request).2.5.2.5 "MAIL To: <Postmaster@my.local.dom.ain>" The MTA MUST NOT refuse "MAIL To: <Postmaster@my.local.dom.ain>". By "my.local.dom.ain" we mean the domain name(s) that are treated as local and result in local delivery. This is regardles of any other anti-spam actions that have been taken, specified in this memo or elsewhere, and is to assure that it is at least possible to reach the Postmaster (RFC822, [2]) on a possibly misconfigured system and have him/her correct the error. 2.6. Refuse mail based onSMTP CallerSMTP_Caller address The MTA SHOULD be able to accept or refuse mail from a specific host or from a group of hosts. Here we mean the IP.src address or theFQNFQDN that its .IN-ADDR.ARPA resolves to (depending on whether your trust the DNS). This functionality could be implemented at a firewall, but since the MTA should be able to "defend itself" werequirerecommend it here.Lindberg et.al. Anti-Spam Requirements on an SMTP MTA [Page 8] draft-lindberg-anti-spam-mta-02.txt 6 Feb 1998It is RECOMMENDED that the MTA decide based onFQNFQDN hostnames (host.domain.example), on wild card domain names (*.domain.example), on individual IP addresses (10.11.12.13) or on IP addresses with a prefix length (10.0.0.0/8, 192.168.1.0/24). It is also RECOMMENDED that these decision rules can be combined to form a flexible list of accept/refuse/accept/refuse, e.g: accept host.domain.example refuse *.domain.example accept 10.11.12.13 accept 192.168.1.0/24 refuse 10.0.0.0/8 The list is searched until first match and the accept/refuse action is based on that. IP-address/length is RECOMMENDED. However, implementations with wild cards, e.g. 10.11.12.* (classful networks on byte boundaries only) are of course much better then those without. To improve filtering even more, the MTA MAY provide complete regular expressions to be used for hostnames; possibly also for IP addresses.2.6. Refuse based onLindberg et.al. Anti-Spam Recommendations for SMTP MTAs [Page 11] draft-lindberg-anti-spam-mta-03.txt 23 Apr 1998 2.7 "MAIL From: <>" and "MAILFrom"From: <user@my.local.dom.ain>" Although the fight against spammers is important it must never be done in way that violates existing email standards. The MTASHOULD be able toMUST NOT refuse to receivemail from a specific"MAILFrom" user (foo@domain.example) orFrom: <>". That sender address is used in error messages froman entire "MAIL From" domain (domain.example). In general this kind of rules are easily overcome by the spammers changing "MAIL From" every so often, buttheability to block a certain user ormail system itself, e.g. when acertain domainlegitimate mail relay isquite helpful while an attack has just been discoveredused andis ongoing. 2.7. Rate Control The MTA SHOULD provide tools forforwards an error back to the user. Refusing to receive such mailhostmeans that users may not be notified of errors, e.g. "User unknown", which will no doubt wreak more havoc tocontroltherate with whichmailis sent or received.community than spam does. Theidea is twofold: 1) IfMTA MUST NOT refuse "MAIL From: <user@my.local.dom.ain>". By "my.local.dom.ain" wehappen to have an legitimate mail user with an existing legitimate accountmean the domain name(s) that are treated as local andthis user sends out spam, weresult in local delivery. At first thought it maywantseem like noone else will need toreduce the speed with which he sends it out. This is not without controversysay "MAIL From: <user@my.local.dom.ain>" andmust be used with extreme care, but itthat restrictions on who mayprotectsay that would reduce therestrisk of fraud and thus reduce spam. While this may be true in theInternet from him. 2) If we are under a spam attack(very) short term, itmay help us considerably just being ablealso does away with at least two legitimate usages: o Aliases (.forward files). <user1@my.local.dom.ain> sends toslow down the incoming mail rate for<user2@external.example> and thatparticular user/host. For sending mail, this hasmail gets forwarded back tobe done by throttling the TCP connection<user2@my.local.dom.ain>, e.g. since <user2> has moved tosetmy.local.dom.ain and has a .forward file. o Mailing lists. RFC1123, [3], gives a clear requirement that "MAIL From:" for mail from a mailing list should reflect theacceptable output data rate, e.g. reduceowner of the"write()" frequency. Lindberg et.al. Anti-Spam Requirements on an SMTP MTA [Page 9] draft-lindberg-anti-spam-mta-02.txt 6 Feb 1998 For receiving mail, we could use basicallylist, rather then thesame technique, e.g. reduce the "read()" frequency, or we could signal with a 4xx Return Codeindividual sender. However, not all lists are that well maintained (not even all IETF lists) and thus wecannot receive. It is RECOMMENDED that the decisionwill have totake such action be based on "MAIL From" user,fall back to the principle of "Be strict in what you send and liberal in what you receive". If "MAILFrom" domain, "SMTP Caller" (name/address) orFrom: <user1@my.local.dom.ain>" is rejected, both these cases will result in failure to deliver acombination of all these.legitimate mail. 2.8.VerifyRefuse based on "MAILFrom"From:" The MTA SHOULD be able toperform a simple "sanity check" of the "MAIL From" domain andrefuse to receive mailif thatfrom a specific "MAIL From:" user (foo@domain.example) or from an entire "MAIL From:" domainis nonexistent. To(domain.example). In general this kind of rules are easily overcometemporary errors/problems inby theDNS, 4xx Return Codes are strongly recommended; howeverspammers changing "MAIL From:" every so often, but theMTA MAY allow for Return Codes that show real DNS state - 4xx for temporary problemsability to block a certain user or a certain domain is quite helpful while an attack has just been discovered and5xxis ongoing. Lindberg et.al. Anti-Spam Recommendations forNonExistent domain. In all honesty, pleaseSMTP MTAs [Page 12] draft-lindberg-anti-spam-mta-03.txt 23 Apr 1998 Please note thatthis requirement and ability is a mixed blessing"MAIL From: <>" andshould"MAIL From: <user@my.local.dom.ain>" MUST NOT beused with extreme care. For early versions of spam spam software it doesrefused (see above). 2.9. Rate Control The MTA SHOULD providequite some relief, since that software generates mail with completely bogus "MAIL From" that will never even get intotools for thesystem. Onmail host to control theother hand, sitesrate withweak DNS connectivity may find their legitimatewhich mailhaving problems reaching destinations due to DNS timeouts. However, since DNS information is handled asynchronously and is cached even though the initial requester has given up, chances are high that the necessary information is there at a later attempt. For later versions of spam software, a check of "MAIL From"ismuch less likely to help, since that software evolves too and will start using existing mail addresses (whethersent ornot that is legal is beyond the scope of this memo). But, at least the Internet will benefit from the side effect that this test stops typos and misconfigured UAs. 2.9. Verify <local-part>received. TheMTA SHOULD allow outgoing mailidea is twofold: 1) If we happen to haveits <local-part> verified so that the sender name is a realan legitimate mail userorwith an existingalias.legitimate account and this user sends out spam, we may want to reduce the speed with which he sends it out. This isbasically tonot without controversy and must be used with extreme care, but it may protect the rest of the Internet fromvarious "typos" MAIL From: <fo0bar@domain.example> and/or malicious users MAIL From: <I.am.unknown.to.you.he.he@domain.example> As always this can be overcome by spammers really wanting to do so, but with more strict rules for relayinghim. 2) If we are under a spam attack itbecomes harder and harder. In fact, catching "typos" atmay help us considerably just being able to slow down theinitial (and official)incoming mailrelay is in itself enough motivationrate for that particular user/host. For sending mail, thisrequirement. Lindberg et.al. Anti-Spam Requirements on an SMTP MTA [Page 10] draft-lindberg-anti-spam-mta-02.txt 6 Feb 1998 2.10. Return Codes The MTA MUSThas to beconfigurabledone by throttling the TCP connection to set the acceptable output data rate, e.g. reduce the "write()" frequency. For receiving mail, we could usedifferent Return Codes for different rules (e.g. 451 Temporary Failure vs 551 Fatal Error). Please refer tobasically theprevious section on SMTPsame technique, e.g. reduce the "read()" frequency, or we could signal with a 4xx ReturnCodes. 2.11. Mailing Lists An MTACode thatalso has the ability to handle mailing lists and expandwe cannot receive. It is RECOMMENDED that the decision to take such action be based on "MAIL From:" user, "MAIL From:" domain, SMTP_Caller (name/address) or anumbercombination ofrecipients,all these. 2.10. Verify "MAIL From:" The MTA SHOULD be able toauthorize senders. Despiteperform a simple "sanity check" of the "MAILFrom" is very easyFrom:" domain and refuse toforge we have no alternative, so authorization will havereceive mail if that domain is nonexistent (i.e. does not resolve tobe based on "MAIL From". The following options are suggested: o Allow all members in the list. o Allow all members andhaving an MX or anadditional list of senders. Violations could be handled in different ways (combinations of): oA"5xx"record). If the DNS errorcode and information inis temporary, TempFail, the MTA MUST return alog file. o Forwarding4xx Return Code (Temporary Error). If theviolating mail toDNS error is an Authoritative NXdomain (host/domain unknown) thelist owner. o ForwardingMTA SHOULD still return a 4xx Return Code (since this may just be primary and secondary DNS not being in sync) but it MAY allow for an 5xx Return Code (as configured by theviolatingsysadmin). 2.11. Verify <local-part> The MTA SHOULD allow outgoing mail tosome other address. 3. Future work 3.1. Impact onhave its <local-part> verified Lindberg et.al. Anti-Spam Recommendations for SMTPUAs and end users Despite this memo is aboutMTAsand[Page 13] draft-lindberg-anti-spam-mta-03.txt 23 Apr 1998 so that therequirements put on them, some of whatsender name isdone here falls backa real user or an existing alias. This is basically to protect theUAs (User Agents,rest of the"ordinary mail programs"). A UA does two things: 1) Reads mailInternet froma mailboxvarious "typos" MAIL From: <fo0bar@domain.example> and/or malicious users MAIL From: <I.am.unknown.to.you.he.he@domain.example> As always this can be overcome by spammers really wanting to do so, but with more strict rules for relaying it becomes harder andprints onharder. In fact, catching "typos" at thescreen. This typically usesinitial (and official) mail relay is in itself enough motivation for this recommendation. 2.12. SMTP VRFY and EXPN Both SMTP VRFY and EXPN provide means for aprotocol like POP, IMAP or NFS. 2) Reads text frompotential spammer to test whether thekeyboardaddresses on his list are valid (VRFY) andhands that overeven get more addresses (EXPN). Therefore, the MTA SHOULD control who is is allowed to issue these commands. This may be "on/off" or it may use access lists similar to those mentioned previously. Default for both should be "off". 2.13. SMTP ETRN SMTP ETRN means that themailboxMTA will re-run its mail queue, which may be quite costly and open fordelivery as a pieceDenial ofmail. This typically uses the SMTP protocol, i.e.Service attacks. Therefore, thesame protocol thatMTA SHOULD control who isused between MTAs. When MTAs now startis allowed toimplement various anti-relay filters as described above, a UA on a portable laptop hostissue the ETRN command. This mayget a response like "Relaying Denied" just becausebe "on/off" or ithappens tomay useIP addresses Lindberg et.al. Anti-Spam Requirements on an SMTP MTA [Page 11] draft-lindberg-anti-spam-mta-02.txt 6 Feb 1998 within an unknown range or that resolveaccess lists similar tounknown FQNs.those mentioned previously. Default should be "off". 2.14. Return Codes Thetypical victim of this "Relaying Denied" responseprimary issue here is flexibility - it is simply not possible to define in asalesman carrying a laptop on a business trip, or even an IETF delegatedocument how to make tradeoffs between returning 5xx and make legitimate mail fail at once due to ameeting hotel. The salesman will probably dial his nearest ISPconfiguration mistake andwill get an IP address from that dialup pool; the IETF delegate will use an IP address for the terminal room. In both cases their laptop mail program (the UA; e.g. pine, Netscape, Eudora) will tryreturning 4xx and be able tosend out mailcatch such configuration mistakes viatheir home MTA, e.g. SMTP-SERVER=mail.home.example, but unless mail.home.example has been updated to accept that (temporary) IP address it will respond "Relaying Denied" and refuse. To get around this problem we could simply addlog file inspection. Therefore, theterminal room'sMTA MUST be configurable to provide different Return Codes, 5xx / 4xx / 2xx, for different rules or policies However, when thedialup pool's IP network toresponse is thelist of accepted networks at mail.home.example. This does open up some minimal riskresult ofspammers using that host as their Mail Relay: If they use the same ISP's dialup poola DNS lookup andthey configure to use mail.home.example atthesame time as our salesman is on his trip, thenDNS system returned TempFail, a temporary error, thespammers will be authorized to relay their spam through mail.home.example. However,MTA MUST reflect thisis not extremely likelyandas long as we do not open up for the entire world allprovide a 4xx return code. If thetime and we keepDNS response is an Authoritative NXdomain (host or domain unknown) thelog files under close observation and we stop relaying at once we find we're being used,MTA MAY reflect thissolution is probably good enough. Antoher way around is that our salesman uses a Mail Relay providedbythe current dialup ISP, if that service exists. To do so he has to modify SMTP-SERVER= in his UA, which may or may not be reasonable. The correct waya 5xx Return Code. Please refer tohandlethe previous section on SMTP Return Codes. Lindberg et.al. Anti-Spam Recommendations for SMTP MTAs [Page 14] draft-lindberg-anti-spam-mta-03.txt 23 Apr 1998 3. Future work 3.1. Impact on SMTP UAs and end users Despite thissituation, though,memo isbyabout MTAs and recommendations for them, someother mail-sending protocol betweenof what is done here falls back to the UAs (User Agents, the "ordinary mail programs"). A UA does two things: 1) Reads mail from a mailbox and prints on theMTA. Although not officially standardized, one suchscreen. This typically uses a protocolislike POP, IMAP or NFS. 2) Reads text from the"XTND XMIT" extensions to POP3 [6]. Or, we could notekeyboard and hands thatwhenover to theSMTP Authentication work is all in place, it will allowmailbox MTA forAuthenticated SMTP to servedelivery asThe Protocol betweena piece of mail. This typically uses theUAs andSMTP protocol, i.e. thehome MTA (whether that should be considered a new protocol or "thesameold SMTP"protocol that isirrelevant here). This adds one item to the suggested Relay algorithm: + If "SMTP Authenticated" then acceptused between MTAs. When MTAs now start toRelay. 3.2. Personal anti-spamimplement various anti-relay filtersSince all users are individuals, there is little hope that any central anti-spam action will suit them all - in fact one could argue about Freedom of Speech if some central set of anti-spam rules is enforced without the users' approval (one could of course also argue Lindberg et.al. Anti-Spam Requirementsas described above, a UA onan SMTP MTA [Page 12] draft-lindberg-anti-spam-mta-02.txt 6 Feb 1998 whether spam really adds anythinga portable laptop host may get a response like "Relaying Denied" just because it happens toanyone, butuse IP addresses within an unknown range or thatmust be up to each individual user rather than centrally decided). Therefore the only reasonable extension isresolve toallow for personal anti-spam filters, i.e. anti-spam filters like the ones described earlier inunknown FQDNs. The typical victim of thismemo, but available and configurable on"Relaying Denied" response is aper user basis. Since most users will not havesalesman carrying astrong opinion (except that they want to avoid spam) the mail system should providelaptop on asystem default and give each user the ability to overridebusiness trip, ormodify that. Ineven an IETF delegate at aUNIX based environment one could think of /etc/mail/rc.spam ~/.spamrcmeeting hotel. The salesman will probably dial his nearest ISP andrules on howwill get an IP address from that dialup pool; thelatter can interfere withIETF delegate will use an IP address for theformer. All of this opens up quite a number of unresolved issues,terminal room. In both cases their laptop mail program (the UA; e.g.whether each user himself really should be allowedpine, Netscape, Eudora) will try todecide on SMTP Return Codes (and how it should be described so he understands enough of the implications) and how existingsend out mailsystems will deal with different per user responses, especially how theyvia their home MTA, e.g. SMTP-SERVER=mail.home.example, but unless mail.home.example has been updated to accept that (temporary) IP address it willdeal with a mix of 5xxrespond "Relaying Denied" and4xx codes: C MAIL From: <usr@spam.example> S 250 <usr@spam.example>... Sender ok C RCTP To: <usr@domain.example> S 250 <usr@domain.example>... Recipient ok C RCTP To: <foo@domain.example> S 451 <foo@domain.example>... Denied due to spam list C RCTP To: <bar@domain.example> S 551 <bar@domain.example>... Denied due to spam list Of course onerefuse. To get around this problem we coulddecide on either "250 OK"simply add the terminal room's or"551 Denied" with no other alternatives fortheindividual user, but this too hasdialup pool's IP network tobe explained enough that an ordinary user understandstheimplicationslist of"Refuse 'MAIL From: <.*@spam.example>'" andaccepted networks at mail.home.example. This does open up some minimal risk of spammers using thatit can do away with, or block out, mail he actually wanted. 3.3. SMTP Authentication SMTP Authentication has already been mentionedhost asa method to authorizetheir Mailrelaying, but of course there is much more to it than that. When that infrastructureRelay: If they use the same ISP's dialup pool andfunctionality is all in place, spammers will have a much harderthey configure to use mail.home.example at the same timeforging addressesas our salesman is on his trip, then the spammers will be authorized to relay their spam through mail.home.example. However, this is not extremely likely andhiding.as long as we do not open up for the entire world all the time and we keep the log files under close observation and we stop relaying at once we find we're being used, this solution is probably good enough. Another way around is that our salesman uses a Mail Relay provided by the current dialup ISP, if that service exists. To do so he has to modify SMTP-SERVER= in his UA, which may or may not be reasonable. Lindberg et.al. Anti-SpamRequirements on anRecommendations for SMTPMTAMTAs [Page13] draft-lindberg-anti-spam-mta-02.txt 6 Feb15] draft-lindberg-anti-spam-mta-03.txt 23 Apr 19983.4. SMTP ContentType A lot of the problem with spam is actually that it is so completely "blind", without any relationThe correct way to handle this situation, though, is by some other mail-sending protocol between thereceivers' personal interestUA andthat therethe MTA. Although not officially standardized, one such protocol isno easy waythe "XTND XMIT" extensions tosay No Thank You. One way thingsPOP3 [7]. Or, we couldevolve isnote thatspamwhen the SMTP Authentication work istaken care of by legal means, e.g. makingall in place, itillegalwill allow for Authenticated SMTP tosend unsolicited commercial emailserve as The Protocol between the UAs andmakethe home MTA (whether thathappen world wide. Not very likely, but anyway. Another way wouldshould beto accept that spam/UCE will continue to exist, accept it legally (just like we accept the pile of paper mail that clutters up the paper mail mailbox) but require it be tagged as UCE.considered a new protocol or "the same old SMTP" is irrelevant here). Thiswould then go alongadds one item to thelines of personalsuggested Relay algorithm: + If "SMTP Authenticated" then accept to Relay. 3.2. Personal anti-spam filters(~/.spamrc) where each user could define what kind of UCE heSince all users are individuals, there iswilling to accept and then have an "SMTP ContentType" codelittle hope that any central anti-spam action will suit them all - in fact one couldmatch his areasargue about Freedom ofinterest, e.g: S 220 host.domain.example Ready C HELO host.uce.example S 250 host.domain.example Hello host.uce.example C SMTP ContentType: UCE; money, porno S 250 ContentType accepted C MAIL From: <uce@uce.example> S 250 <uce@uce.example>... Sender ok C RCPT To: <foo@domain.example> S 250 <foo@domain.example>... Recipient ok C RCPT To: <bar@domain.example> S 551 <bar@domain.example>... No thanks, not for me Besides all issuesSpeech if some central set ofentering more functionality into SMTP, a major problem with this idea is how to handle people claiming SMTP ContentType: mail; personal although itanti-spam rules is enforced without the users' approval (one could of course also argue whether spam reallyspam/UCE. This is a non technical issueadds anything to anyone, but that must beresolved, although that may be hard or even impossible. 4. Security Considerations The grassfire-like increase of spam raises several security issues which, in fact, puts the entire Internet mail community at risk: o People may failup tofind important mail in their flooded mailboxes. Or, they may delete it while cleaning up. o ISPs get mailbox hosts overloadedeach individual user rather than centrally decided). Therefore the only reasonable extension is to allow for personal anti-spam filters, i.e. anti-spam filters like the ones described earlier in this memo, but available anddisk filled. Cleaningconfigurable on a per user basis. Since most users will not have a strong opinion (except that they want to avoid spam) the mail system should provide a system default and give each user the ability to override or modify that. In a UNIX based environment one could think of /etc/mail/rc.spam ~/.spamrc and rules on how the latter can interfere with the former. All of this opens up quite a number of unresolved issues, e.g. whether each user himself really should be allowed to decide on SMTP Return Codes (and how it should be described so he understands enough of the implications) andhelping customers requireshow existing mail systems will deal with different per user responses, especially how they will deal with alotmix ofhuman resources.5xx and 4xx codes: C MAIL From: <usr@spam.example> S 250 <usr@spam.example>... Sender ok C RCPT To: <usr@domain.example> S 250 <usr@domain.example>... Recipient ok C RCPT To: <foo@domain.example> Lindberg et.al. Anti-SpamRequirements on anRecommendations for SMTPMTAMTAs [Page14] draft-lindberg-anti-spam-mta-02.txt 6 Feb16] draft-lindberg-anti-spam-mta-03.txt 23 Apr 1998o While disks are unaccessible, eitherS 451 <foo@domain.example>... Denied due tobeing filled orspam list C RCPT To: <bar@domain.example> S 550 <bar@domain.example>... Denied due to"mail quota", important mail may be delayedspam list Of course one could decide on either "250 OK" orlost. Normally this would not happen without notice, but if both the sender and receiver hosts have their disk flooded, the mail being returned may also fail, i.e. the email service may become less trustworthy then before. o Hosts used as unauthorized Mail Relays get overloaded. Besides"550 Denied" with no other alternatives for thetechnical implications,individual user, but this toorequires a lothas to be explained enough that an ordinary user understands the implications ofhuman resources, cleaning up mail queues"Refuse 'MAIL From: <.*@spam.example>'" andtaking care of furious external usersthatwere spammed through the Relay. o The fight against spammers include blocking their hosts (which is described in this memo). However, there isit can do away with, or block out, mail he actually wanted. 3.3. SMTP Authentication SMTP Authentication has already been mentioned as agreat risk thatmethod to authorize MailRelay hosts be blocked too, despite they are also victims. In the long run, this may deteriorate Internet mail. o The common userelaying, but offorged "MAIL From" and "From:" addresses puts the blame on innocent persons/hosts/organizations. Thiscourse there isbad for reputationmuch more to it than that. When that infrastructure andmay affect business relations. 5. Acknowledgements This memofunctionality isthe result of discussionsall inan ad hoc group of Swedish ISPsplace, spammers will have a much harder time forging addresses andUniversities. Without hopehiding. 3.4. SMTP Type A lot of the problem with spam is actually that it is so completely "blind", without any relation tomention everyone we simply givethedomain names here: algonet.se, global-ip.net, pi.se, swip.net, telia.net, udac.se; chalmers.se, sunet.se, umu.se,receivers' personal interest anduu.se. We wantthat there is no easy way toacknowledge valuable input and suggestions from Andras Salamon, John Myers, Bob Flandrena, Dave Presottosay No Thank You. One way things could evolve is that spam is taken care of by legal means, e.g. making it illegal to send unsolicited commercial email andDave Kristol. 6. References [1] Jonathan B. Postel "Simple Mail Transfer Protocol; RFC821", August 1982. Available via anonymous ftp at ftp://ds.internic.net/rfc/rfc821.txt [2] David H. Crocker "Standard formake that happen world wide. Not very likely, but anyway. Another way would be to accept that spam/UCE will continue to exist, accept it legally (just like we accept theformatpile ofARPA Internet text messages; RFC822", August 1982. Available via anonymous ftp at ftp://ds.internic.net/rfc/rfc822.txt [3] R.T. Braden "Requirements for Internet hosts - applicationpaper mail that clutters up the paper mail mailbox) but require it be tagged as UCE. This would then go along the lines of personal anti-spam filters (~/.spamrc) where each user could define what kind of UCE he is willing to accept andsupport; RFC1123", Oct-01-1989. Available via anonymous ftp at ftp://ds.internic.net/rfc/rfc1123.txtthen have an "SMTP Type" code that could match his areas of interest. This also goes quite well with the various rules and regulations used by international Telemarketing. The SMTP dialogue would then be: S 220 host.domain.example Ready C HELO host.uce.example S 250 host.domain.example Hello host.uce.example C SMTP Type: UCE; money, porno S 250 accepted C MAIL From: <uce@uce.example> S 250 <uce@uce.example>... Sender ok C RCPT To: <foo@domain.example> S 250 <foo@domain.example>... Recipient ok C RCPT To: <bar@domain.example> S 550 <bar@domain.example>... No thanks, not for me Lindberg et.al. Anti-SpamRequirements on an SMTP MTA [Page 15] draft-lindberg-anti-spam-mta-02.txt 6 Feb 1998 [4] S. Bradner "Key wordsRecommendations foruse in RFCs to Indicate Requirement Level; RFC2119", March 1997. Available via anonymous ftpSMTP MTAs [Page 17] draft-lindberg-anti-spam-mta-03.txt 23 Apr 1998 Having the test atftp://ds.internic.net/rfc/rfc2119.txt [5] sendmail Home Page. http://www.sendmail.org [6] POP3 extensions http://musicm.mcgill.ca/~MSI/HTTP/pop3xtndxmit.html * spam (R) is a registered trademark ofthe SMTP layer means we may not need to receive ameat product made by Hormel. Usecopy of theterm spammail in question - if all potential receivers say "550" theInternet community comes from a Monty Python sketch andSMTP session isalmost Internet folklore. The term spamterminated without data copy. This requires adding more functionality to (E)SMTP, which isusually meant negative, however thisIETF controlled. It also need some legal support to handle the case SMTP Type: mail; personal although it isnotreally spam/UCE. This can be done on a legal basis (which is hard inany way intended to describetheHormel product. Editor's Address Gunnar Lindberg Computer Communications Group Chalmers University of Technology S-412 96 Gothenburg, SWEDEN, Phone +46 31 772 5913 FAX +46 31 772 5922 lindberg@cdg.chalmers.se Appendix A1. sendmail example The main purposeinternational context) or it can be put into the ISPs contract with its customers, just like most ISPs today have contracts against customers sending spam. 3.5. Spam and NATs With the increased use of NATs, Network Address Translators, may come a need for additional information in log files. As long as there is an 1:1 mapping between thememoaddresses inside the NAT and the addresses used outside it everything is OK, but if the NAT box also translates port numbers (to combine many internal hosts into one external address) we will need todefine a setlog not only the IP addresses ofrequirements thatspam hosts but also the port numbers. Otherwise we willhelp reduce spam. It isnotintended to describe howbe able todo that for any particular MTA. However, manyidentify the individual host inside the NAT. 4. Security Considerations The grassfire-like increase ofus usespam raises several security issues which, in fact, puts the entire Internet mail community at risk: o People may fail to find important mail in their flooded mailboxes. Or, they may delete it while cleaning up. o ISPs get mailbox hosts overloaded andare familiar with sendmail [5]disk filled. Cleaning up andtherefore we provide some hints; these require late versions of sendmail-8.8.* (when this was written, 6 Feb 1998, sendmail-8.8.8 was the latest). The example neither makeshelping customers requires aclaimlot of human resources. In fact, ISP mail servers have crashed by too much mail. o While disks are unaccessible, either due tosolve the problem norbeing filled or due to "mail quota", important mail may becorrectdelayed or lost. Normally this would not happen without notice, but if both the sender andyou use it at your own risk. These examples all use Return Code "451", Temp Fail. Please read that section above once morereceiver hosts have their disk flooded, the mail being returned may also fail, i.e. the email service may become less trustworthy then before. o Hosts used as unauthorized Mail Relays get overloaded. Besides the technical implications, this too requires a lot of human resources, cleaning up mail queues andverify that you will not hit your friends, your next lowest preference MX-hosts,taking care of furious external users thatmay have different rules.were spammed through the Relay. Lindberg et.al. Anti-SpamRequirements on anRecommendations for SMTPMTAMTAs [Page16] draft-lindberg-anti-spam-mta-02.txt 6 Feb18] draft-lindberg-anti-spam-mta-03.txt 23 Apr 1998(NB sendmail makes a difference between <tab> and <space> used as separators; if you use cut-and-paste fromo The fight against spammers include blocking their hosts (which is described in thismemo you are likely to get <space> everywhere). ################################################################## # Deny spammers, single users or entire domains Kspammers dbm -o /etc/mail/spammers.db # ### # In "class S" you entermemo). However, there is a great risk that Mail Relay hostsyou consider tobespammers, either # FQN (if you trust the DNS) or IP addresses (better). Since FQN # and IP addresses do not lookblocked too, despite they are also victims. In thesame, we keep them both here. # Welong run, this may deteriorate Internet mail. o The common usesimple pattern matchingof forged "MAIL From:" andthus IP"From:" addressesonly match #puts the blame onbyte boundaries, i.e. /24 prefixes. # # If you want to makeinnocent persons/hosts/organizations. This is bad for reputation and may affect business relations. 5. Acknowledgements This memo is thetest "recursive"result of discussions in an ad hoc group of Swedish ISPs and Universities. Without hope todo so you just # remove the comments atmention everyone we simply give the"Rec" lines below. # # FS/etc/mail/sendmail.cS CS # Scheck_mail # check for validdomainname (name exists within DNS) R<$* .> $: <$1> Drop fake trailing '.' R$* . $: $1 Drop fake trailing '.' R$* $: $>3 $1 ifdef(`_NO_CANONIFY_', ` # pass to name server to make hostname canonical # (done here if we have "nocanonify", in S3-S96 otherwise) R$* < @ $* $~P > $* $: $1 < @ $[ $2 $3 $] > $4 ') R$* < @ $*domain.com .> $: $1<@$2domain.com> sigh R$* < @ $+ . > $: <$1@$2> OK R$* < @ $+ > $#error $: 451 Domain must resolve # #R$* $@ OK return from here if you # have no spammers check ### # check user@dom.ainnames here: algonet.se, global-ip.net, pi.se, swip.net, telia.net, udac.se; chalmers.se, sunet.se, umu.se, anddom.ain versus spammers database R<$* @ $+> $: $1<@$2> re-focus # user@dom.ain R$* < @ $+ > $: $1<@$2><$(spammers $1@$2 $:OK $)> R$* < @ $+ ><OK> $: $1<@$2> R$* < @ $+ ><$* @ $+> $#error $: 451 Denied dueuu.se. We want tospam-list # dom.ain R$* < @ $+ > $: $1<@$2><$(spammers $2 $:OK $)> R$* < @ $+ ><OK> $: $1<@$2> R$* < @ $+ ><$+> $#error $: 451 Denied dueacknowledge valuable input and suggestions from Andras Salamon, John Myers, Bob Flandrena, Dave Presotto, Dave Kristol, Donald Eastlake, Ned Freed, Keith Moore and Paul Hoffman. Finally many thanks tospam-list Lindberg et.al. Anti-Spam Requirements on an SMTP MTA [Page 17] draft-lindberg-anti-spam-mta-02.txt 6 Feb 1998 ### # get sender's host name R$* $: $(dequote "" $&{client_name} $) R$=S $@ $#error $: 451 Denied $1 #R$+.$=S $@ $#error $: 451 Denied $1.$2 Rec ### # get sender's IP address R$* $: $(dequote "" $&{client_addr} $) R$=S $#error $: 451 Denied $1 #R$=S.$- $#error $: 451 Denied $1.$2 Rec #R$=S.$-.$- $#error $: 451 Denied $1.$2.$3 Rec #R$=S.$-.$-.$- $#error $: 451 Denied $1.$2.$3.$4 Rec ### R$* $@ OK ##################################################################Harald Alvestrand for support and guidance through the IETF process. 6. References [1] Jonathan B. Postel "Simple Mail Transfer Protocol; RFC821", August 1982. Available via anonymous ftp at ftp://ds.internic.net/rfc/rfc821.txt [2] David H. Crocker "Standard for the format of ARPA Internet text messages; RFC822", August 1982. Available via anonymous ftp at ftp://ds.internic.net/rfc/rfc822.txt [3] R.T. Braden "Requirements for Internet hosts - application and support; RFC1123", Oct-01-1989. Available via anonymous ftp at ftp://ds.internic.net/rfc/rfc1123.txt [4] S. Bradner "Key words for use in RFCs to Indicate Requirement Level; RFC2119", March 1997. Available via anonymous ftp at ftp://ds.internic.net/rfc/rfc2119.txt Lindberg et.al. Anti-SpamRequirements on anRecommendations for SMTPMTAMTAs [Page18] draft-lindberg-anti-spam-mta-02.txt 6 Feb19] draft-lindberg-anti-spam-mta-03.txt 23 Apr 1998In[5] D. Eastlake, 3rd, C. Kaufman "Domain Name System Security Extensions; RFC2065", January 1997. Available via anonymous ftp at ftp://ds.internic.net/rfc/rfc2065.txt [6] sendmail Home Page. http://www.sendmail.org [7] POP3 extensions http://musicm.mcgill.ca/~MSI/HTTP/pop3xtndxmit.html * spam (R) is a registered trademark of a meat product made by Hormel. Use of theexample below we use "CD" ("$=D") dual purpose, both forterm spam in thedomains (subdomains) we accept to relay intoInternet community comes from a Monty Python sketch andthe hosts that we accept use us as their Mail Relay. Itisof course trivial to split that into two different classes, if needed. ################################################################## # In "class D" you enter domains and hosts for two purposes # 1) You accept to relay mail TO them (MX). # 2) You accept to relay mail FROM them (SmartHost). # In both cases, thisalmost Internet folklore. The term spam is"recursive", i.e. foo.se -> *.foo.se #FD/etc/mail/sendmail.cD CD # # In "class B" you enter the "exceptionally bad guys", i.e. hosts # that you want to deny relay from regardless -usually meant negative, however thismay be hosts # that dois nothave enough filters orin anyother reason. Be careful. # FB/etc/mail/sendmail.cB CB # Scheck_rcpt # first get ridway intended to describe the Hormel product. Editor's Address Gunnar Lindberg Computer Communications Group Chalmers University ofa%b@c type addresses R< $+ % $+ > < $1 @ $2 > R< $+ @ $+ @ $+ > < $1 @ $2 > # "RCPT To" that terminates locally is OK R< $+ @ $=w > $@ OK R< $+ @ $=w . > $@ OK R<$-> $@ OK # "RCPT To" for accepted domains is OK R< $+ @ $=D > $@ OK R< $+ @ $=D . > $@ OK R< $+ @ $+ . $=D > $@ OK R< $+ @ $+ . $=D . > $@ OK # get sender host's name R$* $: $(dequote "" $&{client_name} $) # if it's me it's OK R$=w $@ OK R$@ $@ OK # exceptionally bad guys... R$=B $#error $:"451 Relaying Denied, " $1 # do this in case you want "bad with recursion" #R$+$=B $#error $:"451 Relaying Denied, " $1$2 # an accepted host is OK (with "recursion") R$=D $@ OK R$+$=D $@ OK # anything else is bogus R$* $#error $:"451 Relaying Denied, " $1 ##################################################################Technology S-412 96 Gothenburg, SWEDEN, Phone +46 31 772 5913 FAX +46 31 772 5922 lindberg@cdg.chalmers.se Lindberg et.al. Anti-SpamRequirements on anRecommendations for SMTPMTAMTAs [Page19]20] ----