> On 10/26/05, James Harless <[EMAIL PROTECTED]> wrote:
> > Chad,
> >
> > I appreciate the insight.  I do realize it's a difficult problem but,
> > I think that there's a solution (albeit possibly from someone smarter
> > than I).
>
> Nope there's just not.

There is, but not with spamd as currently implemented.  The fix would
involve this:

1) accept the connection, remember the target IP
2) go through the rcpt from/mail to protocol, and when you have
   the information, check it in your whitelist.  If it is present,
   open a connection with the original target, repeat the rcpt/mail
   exchange (not forgetting the HELO) and then sit back and transparently
   proxy the rest of the connection.

It's doable, it's just not easy.  That plus a lot more is what the
filter I was talking about in the other thread does; maybe if it's not
too difficult, I'll do a shorter version which doesn't have the majority
of my code, but just adds the logic above to spamd, if there's any interest?

It does require spamd to be running in a transparent bridge. *NOT* a
NAT gateway, which is the most common configuration.

By the way, the other improvement I'd make in spamd if I had my druthers, is
that it would have the option of accepting the initial email and returning
the tempfail code at the end of the data exchange rather than before it as it
currently does.  This would allow proper QA on the rejected mails.  You'ld
need to create a signature of an email and when the mail went through
successfully on the second attempt, locate the original copy using the
signature and remove it from the cache; mails which never retried would
remain in the cache, and would be swept after an appropriate time out,
giving you a good record of rejected mails.  You could either use this info
to generate stats, or you could run the mails through a traditional
spam filter as a consistency check, to try to detect genuine connections
that had been inadvertently blocked.  Or if you're sure all the
rejects were genuinely spam, you could feed the saved copies into
spam filter training, or to a cooperative net project like Vipul.
Lots of scope there for new features.


Graham

Reply via email to