OpenBSD's spamd.
Charles Sprickman
spork at bway.net
Fri Mar 9 00:43:25 UTC 2007
On Dec 19, 2006, at 6:56 PM, Christopher Hilton wrote:
> Charles Sprickman wrote:
>> On Tue, 19 Dec 2006, Christopher Hilton wrote:
>>> Oliver Fromme wrote:
>>>> Dimitry Andric wrote:
>>>> > Oliver Fromme wrote:
>>>> > > What does stuttering mean? Is it similar to sendmail's
>>>> > > "greet_pause" feature?
>>>> > > See here:
>>>> > http://www.ualberta.ca/~beck/nycbug06/spamd/mgp00014.html
>>>>
>>>> OK, so the answer to my question seems to be "yes". :-)
>>>>
>>>
>>> Actually I'd say it's similar. If you telnet to port 25 on a
>>> server that's using sendmail's greet_pause option I'm assuming
>>> that you get nothing for 5 seconds. OpenSD's Spamd sends the
>>> initial greeting at a rate of one character per second and only
>>> accepts data from you at the same rate.
>> It also sets the window size to something like 1 byte. :)
>
> Yes, it does. This results in the remote smtp daemon getting bound
> up by it's own kernel.
>
>> Someone had mentioned that this would consume many threads/
>> processes, but that is not the case. Bob explained that spamd
>> runs in a select() loop. I don't totally understand that, but to
>> me it sounds like the same methodology that thttpd used, and that
>> sure scaled up nice.
>
> It keeps an array of file descriptors, one for each connection to
> the remote smtp daemon. It periodically uses the select(2) system
> call to see which of the descriptors is ready and services them
> accordingly.
>
>> Here's what I think is the latest version of Bob's talk. It's
>> quite good.
>> http://www.ualberta.ca/~beck/nycbug06/spamd/
>> There's audio available here:
>> http://www.nycbsdcon.org/slides
>
> I heard the talk in the beginning of November, right about the
> middle of the big October/November spamming event of '06. To me the
> most interesting part of the talk was when he spoke about the
> results of tarpitting his greylisted connections and how he
> eliminated 1,300,000 Mail messages from a total of 3,000,000 before
> they ever hit his MTA. That's the feature that's missing from
> FreeBSD since the port pulls spamd from OpenBSD 3.7 and the
> tarpitting feature was added in the revision right after the
> release 3.7 tag.
>
>> Was the original question "when will the FreeBSD port be
>> updated"?? :)
>
> Yes. There's lots of ways to do it. One could pull diff from the
> openbsd cvs servers and drop it into the patch directory. That
> should go cleanly but it would be nice to get this revved up to the
> latest release. I've got a copy of the latest code to compile. The
> call symantics of openbsd's openlog_r(3) and syslog_r(3) differ
> from FreeBSD openlog(3) and syslog(3). But It should work. I need
> to throw some polish on it but after I do I'll post the patches
> here and send them to the port maintainer.
I know this is kind of old, but I'm needing to work with spamd on
FreeBSD and I noticed the port is still stuck at the 3.7 version.
Do you have anything that you'd like people to test?
Thanks,
Charles
> -- Chris
More information about the freebsd-stable
mailing list