[FoLUG] SPAMD PF e OpenBSD

GG Noris gigi@pclinx.it
Mer 28 Nov 2007 11:19:16 CET


Salve a tutti,

Vorrei aggiungere un filtro antispam ( altre a spamassassin e compagnia ) al mio server qmail.

Dopo lunghe ricerche ho stabilito di provare spamd. devo pero' sottostare al vincolo openbsd che non ho mai usato ( uso solitamente SLK ). la configurazione tipo della mia rete e':

Firewall ipcop con 3 schede 1 ext 1 lan e 1 dmz.

sulla scheda esterna ora ridirezione la porta 25 sul server qmail che spamassassina lo spam e lo antivirussa e poi mi deposita la posta nelle mailbox.

io devo lasciare la configurazione attuale del server di posta intatta, per cui vorrei poter aggiungere una macchinetta con openbsd spamd e pf che funzioni in questo modo:

ridireziono la porta 25 esterna tramite ipcop su questa nuova macchina openbsd ( in dmz )che a seconda del caso, ( vedi funzionamento del greylisting ) ridireziona la porta a spamd o al server di posta reale in dmz.

in questo modo mi sembra che la configurazione sia la piu' indolore possibile, cosi' facendo piloto tutto da IPCOP, se voglio greylisting attivo portforwardo su openbsd se lo voglio escudere ( per manutenzione o altro, ) portforwardo direttamente su qmail.

Questo e' il quanto. ora arriva il bello, ho provato ad installare openbsd seguendo il documento da bsd howto.

ho configurato spamd con le sue opzioni di default e non ho avuto particolari problemi, il mio cruccio e' pf.
non riesco a fargli fare il forward della porta 25 sul server di posta reale. 

le regole che applico sono prese da internet ( http://home.xnet.com/~ansible/openbsd_spamd_conf.html )

questa prima regola che applico:

rdr on $ext_if proto tcp from <whitelist> to \
	$ext_if port smtp -> $mail_host port smtp

se la provo in ridirezione del IP locale 127.0.0.1 funziona, ma se la giro su IP del server di posta non funziona. non avendo mai usato PF non capisco se il concetto di rdr funziona solo su schede di rete diverse oppure se sto' sbagliando qualcosa su PF.


# send manually whitelisted hosts to the actual mail server
rdr on $ext_if proto tcp from <whitelist> to \
	$ext_if port smtp -> $mail_host port smtp

# send all previously seen but still suspect senders the spamd daemon
rdr pass on $ext_if inet proto tcp from <spamd> to \
         $ext_if port smtp -> 127.0.0.1 port 8025

# send all unknown senders to the spamd daemon
rdr pass on $ext_if inet proto tcp from !<spamd-white> to \
         $ext_if port smtp -> 127.0.0.1 port 8025

# send whitelisted hosts to the actual mail server
rdr on $ext_if proto tcp from <spamd-white> to \
	$ext_if port smtp -> $mail_host port smtp


Maggiori informazioni sulla lista FoLUG