Date: Fri, 30 May 1997 19:09:53 -0700 (PDT) From: Alan Batie <batie@agora.rdrop.com> To: steve@ns1.cioe.com (Steve Ames) Cc: freebsd-isp@FreeBSD.ORG Subject: Re: sendmail: stop mail forwarding Message-ID: <199705310209.TAA00624@agora.rdrop.com> In-Reply-To: <199705310036.TAA25045@ns1.cioe.com> from "Steve Ames" at May 30, 97 07:36:32 pm
next in thread | previous in thread | raw e-mail | index | archive | help
> What's the Q&D patch to sendmail.cf to stop people from being able to > forward mail through? Can that be restricted by domain? This is based on www.sendmail.org's filter, and excerpted from my .mc file: LOCAL_CONFIG # database of known spammers Kspammers hash /etc/spammers # relays file has key value where "value" == OK, eg: # racsys.rt.rain.com OK # slip-d0.rdrop.com OK # racsys is a system I MX for # slip-d0 is one of the dialup ports --- allows them to send outgoing mail # If either sending host or destination is not in relays, it's rejected Krelays hash /etc/relays LOCAL_RULESETS Scheck_rcpt # # This ruleset has two parts: first, check recipient, next check sender # if the recipient didn't pass muster # # Check Recipient # # This rule checks for %hack addresses, eg user%ahost.domain@myhost.domain # It either returns "OK" (the matching value in the database) or "CONTINUE" # meaning the recipient didn't match, try checking the sender # we can't just return because of the way the database lookups work R< $+ % $+ @ $=w > $: $(relays $2 $: CONTINUE $) # normal user@myhost.domain addresses; if match, return OK R< $+ @ $=w > $@ OK # user@myrelays.domain addresses ok R< $+ @ $+ > $: $(relays $2 $: CONTINUE $) # If one of the database lookups passed, then return OK now ROK $@ OK # Check Sender # # This kindof a dummy rule that just returns the name of the # connecting host R$* $: $(dequote "" $&{client_name} $) # If they're us, return OK R$=w $@ OK # The following rule causes all addresses to pass in address test mode # otherwise they always fail R$@ $@ OK # Look up the sender to see if they're one of our relays R$* $: $(relays $&{client_name} $: FAIL $) # If not, they've failed all the tests - bounce them RFAIL $#error $: "550 Relaying Denied" # If they haven't failed, they must be OK R$* $@ OK # # This one is pretty much straight out of www.sendmail.org # it checks to see that the sender is using a valid domain name # then checks to see if they're a known spammer; I don't actually # use that yet, as most are one-offs and not worth the effort. # The domain check gets rid of 99% of the scam stuff, as most of # the real businesses use real domains. # LOCAL_RULESETS Scheck_mail # check for valid domain name (incompatible with DeliveryMode=defer) R$* $: <?> $>3 $1 make domain canonical R<?> $* < @ $+ . > $: <OK> tag resolved names R<?> $* < @ $+ > $#error $: 451 Domain must resolve # check relay against spammers database R$* $: $(spammers $&{client_name} $: OK $) ROK $@ OK R$+ $#error $: 551 $1 -- Alan Batie ______ It's not my fault! It's some guy batie@agora.rdrop.com \ / named "General Protection"! +1 503 452-0960 \ / --Ratbert PGP FP: DE 3C 29 17 C0 49 \/ 7A 27 40 A5 3C 37 4A DA 52 B9 It is my policy to avoid purchase of any products from companies which use unrequested email advertisements or telephone solicitation.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199705310209.TAA00624>