A spamd elindításához a /etc/rc.conf.local fájlba felvinni a megfelelő indító sort:
spamd_flags=
Ezzel azonban még csak azt értük el, hogy fut a spamd, de semmit sem csinál.
A csomagszűrőben be kell állítanunk, hogy a 25-ös porton bejövő, a spamd számára még ismeretlen smtp kapcsolatokat a spamd-hez irányítsuk. Más szükrelistás szűrők az smtp szerverbe épülve végzik a dolgukat, ezért itt kicsit zavaró lehet, hogy a csomagszűrő szintjén rendezzük a kapcsolatokat. Ha jobban belegondolunk ez előnyösebb, hiszen a kéretlen kapcsolatok így el sem jutnak az smtp szerverünkig, ennyivel is csökkentve rendszerünk felesleges terhelését. A spamd fenntart egy listát azókról az IP címekről, melyek bizonyították, hogy legitim források és átjukthatnak az smtp szerverig. Ezeket a címeket a csomagszűrő spamd-white táblájába tölti, azonban a tábla létezéséről nekünk kell gondoskodni, ezért hozzuk létre azt a /etc/pf.conf fájlban.
table <spamd-white> persist
A következő szabállyal a táblában még nem szereplő, vagyis a spamd számára vagy ismeretlen, vagy nem legitim forrásokat átiranyítjuk a spamd-be. Ez a szabály azt is magával vonja, hogy a legitim források eljutnak a levelező szerverünking.
rdr pass inet proto tcp from !<spamd-white> to $ext_if port smtp -> 127.0.0.1 port spamd
A spamd-white tábla karbantartásához a spamlogd alkalmazást használjuk. Indításához vegyük fel az alábbi sort a /etc/rc.conf.local fájlba.
spamlogd_flags="-I -l pflog1"
A spamlogd a pflog1-es interface-t fogja figyelni a 25-ös portra kapcsolódó IP címek után. A pflog0-t az egyéb, csomagszűrő által naplózott kapcsolatok kezelésére tartjuk fent, így nem keverednek a bejegyzések. A 25-ös portra bejövő, spamd-n átjutott kapcsolatok naplózását a pflog1-es interface-en a következő bejegyzéssel érhetjük el a /etc/pf.conf fájlban.
pass in quick log (to pflog1) on $ext_if inet proto tcp from any to $ext_if port 25 synproxy state
Most egy kicsit zavaró lehet, hogy a spamd tölti fel a spamd-white táblát vagy a spamlogd? Adott legitim IP-t először mindig a spamd teszi be a táblába. Mivel az ebben a táblában szereplő IP címekről érkező kapcsolatok elkerülik a spamd-t a továbbiakban (a korábbi rdr szabály) a spamd azt fogja hinni, hogy az adott géptől nem jön kapcsolat és ezért egy idő után (alapesetben kb. 1 hónap) törli a címet a fehérlistából, így a következő kapcsolat megint csúszni fog a szürkelistázás miatt. Itt jön képbe a spamlogd. A szürkelistás szűrőn átjutott kapcsolat minden egyes alkalommal eljut a csomagszűrő által használt pflog1-es interface-en keresztül a spamdlog-hez, ami ezt figyelve nem engedi törölni a legitim IP címeket a spamd-white táblából.
A spamd alapértelmezett beállításokkal szükrelistás és feketelistás szűrést csinál. A feketelistás szűréshez a tiltandó IP címeket a konfigurációs fájlban (/etc/mail/spamd.conf) meghatározott forrásokból szedi.
uatraps:\ :black:\ :msg="Your address %A has sent mail to a ualberta.ca spamtrap\n\ within the last 24 hours":\ :method=http:\ :file=www.openbsd.org/spamd/traplist.gz
Az alapforrások a távolkeleti spammerek jelentős részét tiltják már csomagszűrő szinten, így ez már önmagában elég hatásos.
spamd[28281]: 41.217.66.4: disconnected after 554 seconds. lists: uatraps
A konfigurációs fájlban szereplő listák frissítéséről a spamd-setup alkalmazás gondoskodik. A rendszeres futtatásához vegyük fel az alábbi bejegyzést a crontab-ba.
0 * * * * /usr/libexec/spamd-setup
És végül csemegének beállíthatjuk a spamd naplózását is. A /etc/syslog.conf fájl elejére vegyük fel az alábbi sorokat.
!!spamd daemon.err;daemon.warn;daemon.info /var/log/spamd !*