Date: Fri, 23 Jan 1998 04:09:32 +0000 From: Brian Somers <brian@Awfulhak.org> To: "Jonathan M. Bresler" <jmb@FreeBSD.ORG> Cc: brian@Awfulhak.org (Brian Somers), kuku@gilberto.physik.RWTH-Aachen.DE, dwhite@resnet.uoregon.edu, freebsd-questions@freefall.FreeBSD.org Subject: Re: /etc/mail - anti spam measures Message-ID: <199801230409.EAA02451@awfulhak.org> In-Reply-To: Your message of "Thu, 04 Dec 1997 17:59:46 PST." <199712050159.RAA26466@hub.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
[following up from a month and a half ago - that O'Reilly book is thick]
> Brian Somers wrote:
> >
> > I've attached my version - altered to deal with machine names too.
>
> on further reflection, no reason to limit this to
> three part hostnames.
>
> > # called with host.tld and IP address of connecting host.
> > # ip address must NOT be in the "denyip" database
> > Scheck_relay
> > R$* $| [$+ $1 $| $2 should not be needed
> > R$* $| $+] $1 $| $2 same (bat 2nd ed p510)
> > R$* $| $* $: $1 $| $(denyip $2 $)
> > R$* $| $*.REJECT $#error $: 521 blocked. contact postmaster@FreeBSD.ORG ($2)
> > # host must *not* be in the "spamsites" database
> >
> > # jmb suggests for hosts as well as domains:
> > R$+.$+.$+ $| $* $: $(spamsites $1.$2.$3 $) $1.$2.$3 $| $4
>
> replcae the rule above with the rulse below:
>
> R$+.$+.$* $| $* $(spamsites $1.$2.$3 $) $1.$2 $| $4
>
> this will iterate, allowing you to check for
>
> host.foo.bar.baz.com
> foo.bar.baz.com
> bar.baz.com
> baz.com
Well, now I know a little more about sendmail, I figure that this
doesn't quite work. If I feed this rule `a.b.c $| 1.2.3.4', I'll get
in: a.b.c $| 1.2.3.4
out: a.b.c a.b $| 1.2.3.4
in: a.b.c a.b $| 1.2.3.4
out: a.b.c a.b a.b $| 1.2.3.4
etc. Your rule seems to assume that $( ... $) will eat the string if
it doesn't match....
Perhaps, what we really want is:
# host must *not* be in the "spamsites" database
R$* $| $* $: <$1> <$1 $| $2>
R<$+.$+> $* <$+> <$2> $| $(spamsites $1 $2 $) $3 <$4>
R<$*> $* $| $*.REJECT $* <$1> $3.REJECT $4
R<$*> $*.REJECT $* <$*$|$*> $#error $: 521 $4: $2
R<$*> $* <$+> $3
Here, we grab the text from spamsites.db and display it after the
failed host/domain name :-)
> > #jmb also suggests these two:
> > R$+.$+.$+ $: $(spamsites $1.$2.$3 $) $1.$2.$3
>
> do the same here.
And assuming a "user@domain" input,
# host must *not* be in the "spamsites" database
R$* @ $* $: <$2> <$1 @ $2>
R<$+.$+> $* <$+> <$2> $| $(spamsites $1 $2 $) $3 <$4>
R<$*> $* $| $*.REJECT $* <$1> $3.REJECT $4
R<$*> $*.REJECT $* <$*@$*> $#error $: 521 $5: $2
R<$*> $* <$+> $3
> jmb
I'd like to commit this to src/etc/mail/sendmail.cf.additions. Does
this make sense ?
Cheers.
--
Brian <brian@Awfulhak.org>, <brian@FreeBSD.org>, <brian@OpenBSD.org>
<http://www.Awfulhak.org>
Don't _EVER_ lose your sense of humour....
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199801230409.EAA02451>
