OpenBSD's spamd.

Charles Sprickman spork at bway.net
Tue Dec 19 11:56:08 PST 2006


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. :)

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.

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

Was the original question "when will the FreeBSD port be updated"?? :)

Charles

> Through experimentation Bob Beck determined that many spammers were dropping 
> the connection and forgetting about delivering the mail completely after 
> short and shorter intervals if the connection was rate limited to 1 character 
> / sec. When the spammers got down to 3 seconds he modified spamd to stutter 
> for 10 seconds on any connection. That feature came in on OpenBSD 3.8
>
> -- Chris
> _______________________________________________
> freebsd-stable at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> To unsubscribe, send any mail to "freebsd-stable-unsubscribe at freebsd.org"
>


More information about the freebsd-stable mailing list