Spamassassin und milter-spamd

Im vorliegenden Howto beschreibe ich wie man mit Sendmail, dem
Milter-Plugin 'milter-spamd' (von Daniel Hartmeier - dem pf-Guru!) und
dem allseits bekannten Spamassassin der Spamflut sinnvoll begegnen kann.

Milter-Plugin: http://www.benzedrine.cx/milter-spamd.html
SpamAssassin: http://spamassassin.apache.org/

Sendmail ist seit OpenBSD 3.6 nun schon von Hause aus mit 'Milter'
uebersetzt und muss deshalb nicht nochmal neu compiled werden.

Wir checken das kurz:

% sendmail -d0.1 -rv root | grep MILTER

Als naechstes installieren wir das Sendmail-Plugin aus den Ports:

% cd /usr/ports/mail/milter-spamd
% make
% make install
% make clean

In der Packungsbeilage ;-) stehen noch folgende Sachen, die wir nun 
noch schnell eintragen sollten:

+---------------
| milter-spamd has been installed as /usr/local/libexec/milter-spamd.
| See milter-spamd(8) for instructions on how to register the plugin.
|
| To start the plugin automatically on startup, one can use:
|
| /etc/rc.conf.local
| milter_spamd=""
|
| /etc/rc.local
| if [ X"${milter_spamd}" != X"NO" -a \
|      -x /usr/local/libexec/milter-spamd ]; then
|         echo -n ' milter-spamd'
|         /usr/local/libexec/milter-spamd ${milter_spamd}
| fi
+---------------

Nach einem reboot sollte man dann folgenden Process sehen:

24865 ??  Is      0:00.01 /usr/local/libexec/milter-spamd

Die Spamassassin-Version in den Ports ist nicht die neueste und deshalb
verwenden wir die CPAN-Shell um das Perl-Programm SpamAssassin zu
installieren:

%perl -MCPAN -e shell 
>install Mail::SpamAssassin 
>quit

Nun sollte sich spamd einfach starten lassen:

/usr/bin/spamd -d

(Muss spaeter noch in /etc/rc.local aufgenommen werden!)

Danach sollte man folgende Processe sehen:

18163 ??  Is      0:01.45 perl: /usr/bin/spamd -d (perl)
23679 ??  I       0:00.01 perl: spamd child (perl)
30768 ??  I       0:00.01 perl: spamd child (perl)
18210 ??  I       0:00.01 perl: spamd child (perl)
11671 ??  I       0:00.01 perl: spamd child (perl)
 8181 ??  I       0:00.01 perl: spamd child (perl)

Um das Funktionieren des SA zu testen tippen wir folgendes (die
Spam-Test-Mail befindet sich in der Anlage):

cat spammail.txt | spamc

Hierbei kommuniziert der Client (spamc) mit dem Daemon (spamd). Der
'spamc' hat spaeter aber keine weitere Bedeutung mehr fuer uns, da das
Sendmail via 'milter-spamd' direkt mit dem 'spamd' kommuniziert (bei 
diesem Test sollten neue Header-Zeilgen eingefuegt werden).

So, nun fehlt nur noch eine angepasste sendmail.cf:

% cd /usr/share/sendmail
% cp cf/openbsd-proto.mc spam.mc

Einpflegen folgender Zeile in spam.mc:

INPUT_MAIL_FILTER(`milter-spamd',
  `S=unix:/var/spool/milter-spamd/sock, T=S:30s;R:2m')

% m4 m4/cf.m4 spam.mc > sendmail.cf
% cp sendmail.cf /etc/mail
% kill -1 `head -n1 /var/run/sendmail.pid`

In dieser Konfiguration wird Spam einfach abgewiesen ... wie man
dem Logfile entnehmen kann. ;-)

SA laesst sich mittels:
            	/etc/mail/spamassassin/local.cf
steuern und sollte unbedingt individuell ueberarbeitet werden.

Siehe dazu auch:
		% perldoc Mail::SpamAssassin::Conf

Um den SA weiter zu trainieren gibt es das Programm 'sa-learn', welches
einzelne Mails oder bei Bedarf auch ganze Mailarchive "frisst".

NACHTRAG

Fuer private Anwendungen ist das alles so super(!) allerdings gibt es in
deutschen Landen fuer jeden Schmarrn ein Gesetz - wars hier auch das
Tele-Dienste-Gesetz!? - welches das Veraendern von Nachrichten und damit
auch gleiches bei Mails verbietet. Prinzipiell sollte man also beim
Aufsetzen eines Spam-Filters fuer KUNDEN die Spam-Mails nicht reject'en
sondern nur kennzeichnen und dann weiterleiten (der Client muss dann selber
entscheiden was er automatisch loescht und was nicht) ... mit dem
'milter-spamd' geht dies i.M. _leider_ nicht, da er halt generell alle als
Spam erkannten Mail rejected.

+++ Spam-Mail zum TESTEN +++

From: tester@your.domain.de
To: my_account@your.domain.de
Subject: Inrease your penis size                                      kjsdfsf

$$$$$$$$ CASH $$$$$$$$$
BUY THIS NOW
VIAGRA
VIAGRA
VIAGRA

sfgskfgjhhh asdadddass
vi@gra penis and other medicals for only $9.90 at

look at http://www.bla.de/penis.html

penis penis penis
need an errection errected erection WAREZ FOR FREE
free download at

I CAN DO THIS LOUD !!!!!!!!!!!!!!!!!
I CAN DO THIS LOUD !!!!!!!!!!!!!!!!!
I CAN DO THIS LOUD !!!!!!!!!!!!!!!!!
I CAN DO THIS LOUD !!!!!!!!!!!!!!!!!
I CAN DO THIS LOUD !!!!!!!!!!!!!!!!!
I CAN DO THIS LOUD !!!!!!!!!!!!!!!!!
I CAN DO THIS LOUD !!!!!!!!!!!!!!!!!
I CAN DO THIS LOUD !!!!!!!!!!!!!!!!!
I CAN DO THIS LOUD !!!!!!!!!!!!!!!!!
I CAN DO THIS LOUD !!!!!!!!!!!!!!!!!

low cost guaranteed, our GUARANTEE no FEE no fee

sfdgsfgh d sflg jdfgkljetw w rtery er hewsgvsdg
sdgegri gioa gjsig wfd	3R249TU9GJSFGSE GW4G42 TWS AETFWGW

+++ +++ +++ +++ +++

--
I.S.