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