spamd auf openbsd kann als erste Verteidigungslinie sehr effektiv sein …
… und ist auch ziemlich einfach einzurichten.
Das greylisting funktioniert nach folggendem Prinzip:
Ein normaler Spammer versucht nur einmal seine Mail loszuwerden und bleibt folglich am spamd hängen. Ein echter mailserver versucht aber mehrmals seine Mails zuzustellen bevor er aufgibt. Die Versuche merkt sich spamd in einer Datenbank, und wenn nach einer Zeit länger als 25 Minuten versucht wird die Mail zuzustellen nimmt er sie auch an.

Die /etc/pf.conf benötigt folgende Einträge:
table persist
table persist

rdr pass on $ext_if inet proto tcp from to $ext_if port 25 -> 127.0.0.1 port 8025
rdr pass on $ext_if inet proto tcp from ! to any port smtp -> 127.0.0.1 port 8025

Sollen auch dial-up IP’s versenden dürfen, ist es notwendig einen 2. smtp Port aussen auf der Firewall auf den Mailserver Port umzuleiten, z.B.

rdr pass on $ext_if proto tcp from any to $ext_if port 30025 -> $mailserver port 25

Nun muss nur in der Mailclient Software der smtp port auf 30025 eingestellt werden.
Damit der spamd im greylisting Mode beim starten ausgeführt wird noch folgende Änderung in der /etc/rc.conf:

spamd_flags=”“ # for normal use: “” and see spamd-setup(8)
spamd_grey=YES # use spamd greylisting if YES

Und schon haben wir den spammern ein weiteres Hindernis in den Weg gestellt