Schlagwort-Archive: spamassassin

Spam- und Virenfilter für den Mailserver mit Spamassassin und ClamAV

Mailboxes

Nachdem wir ja letztes Mal die Grundkonfiguration des Mailservers abgeschlossen haben, gibt es heute zwei Extras, die nicht fehlen sollten. Und zwar Spam- und Virusfilter. Ersteres wird bei uns Spamassassin erledigen, die Viren überlassen wir dem freien Virenscanner ClamAV.

Zur Tat. Erst natürlich die benötigte Software installieren:
sudo apt-get install spamassassin spamc clamav clamav-daemon mutt cpio arj zoo nomarch lzop cabextract pax unrar lha

Wie ihr seht werden auch einige Packer/Entpacker mit installiert, damit ClamAV auch zum Beispiel zip-Archive prüfen kann.

Spamassassin einrichten

Dazu bearbeiten wir die Datei '/etc/spamassassin/local.cf' wiefolgt:

rewrite_header Subject ***SPAM***
Wenn diese Zeile aktiv ist wird in jeder Spam-Mail '***SPAM***' am Ende der Betreffzeile angehängt.
Diese Zeile bestimmt ab welchem Wert Mails als Spam markiert werden:
required_score 6.31
Ebenfalls de-kommentieren und den Wert entsprechend ändern. Falls zu viel Spam durchkommt sollte dieser Wert gegebenenfalls nach unten korrigiert werden, bzw. anders herum wenn zu viele reguläre Mails das Spam-Tag erhalten.
Diese beiden Zeilen sorgen dafür das der Bayessche Filter zum erkennen von Spam benutzt wird und dieser automatisch trainiert wird:
use_bayes 1
bayes_auto_learn 1

Um unseren Bayes-Filter nicht durch Header zu verwirren, die von anderen Mailservern (z.B. dem des Providers) oder unserem getmail angefügt wurden, werden diese durch die folgenden Zeilen ignoriert:
bayes_ignore_header X-Bogosity
bayes_ignore_header X-Spam-Flag
bayes_ignore_header X-Spam-Status
bayes_ignore_header X-getmail-filter-classifier

Danach muss Spamassassin noch aktiviert werden, dazu wird in der Datei '/etc/default/spamassassin', die Zeile "ENABLED=0" in "ENABLED=1" umgeschrieben.

Dann kann Spamassassin gestartet werden:
sudo /etc/init.d/spamassassin start

Jetzt müssen wir nur noch getmail sagen, das es Spamassassin die Mails zur Prüfung geben soll. Dazu fügen wir folgenden Absatz in die 'getmailrc' des jeweiligen Benutzers ein:
[filter-spamassassin]
type = Filter_external
path = /usr/bin/spamc
arguments = ("--max-size=100000", )

Beim nächsten Aufruf von getmail sollte dieses die empfangenen Mails durch Spamassassin checken lassen. Prüfen kann man das wiefolgt:
Mail an die entsprechende Mail-Adresse schicken, dann getmail als Benutzer (nicht als root) aufrufen:
getmail
Dann den Posteingang checken:
mutt -f /home/benutzer/mail
Dort sollte dann eine E-Mail liegen, die mit Enter aufgerufen wird. Im oberen Bereich sollten dann Zeilen ähnlich dieser gefunden werden:
X-Spam-Checker-Version: SpamAssassin 3.2.4 (2008-01-01) on server
Dann wurde alles richtig gemacht, ansonsten noch einmal alle Einstellungen checken, bzw das getmail-Log unter '/home/benutzer/.getmail/log'.

ClamAV einrichten

Da wir ClamAV oben schon mit installiert haben und er von sich aus schon eingerichtet ist, muss nur der folgende Abschnitt in die getmailrc des jeweiligen Benutzers eingefügt werden:
[filter-clamav]
type = Filter_classifier
path = /usr/bin/clamdscan
arguments = ("--stdout", "--no-summary", "-")
exitcodes_drop = (1, )

Damit werden Mails die Viren enthalten automatisch verworfen. Falls das nicht gewünscht ist und die Mails trotzdem zugestellt werden sollen (was ich nicht unbedingt empfehlen würde), muss die letzte Zeile so lauten:
exitcodes_keep = (0,1)

Damit wäre auch diese Einrichtung geschehen und es kann Spam- und Virenfrei ge-E-mailt werden.

Um die Mails in eurem Mail-Programm automatisch in den Spam-Ordner werfen zu lassen, müsst ihr dort einstellen das die Header von Spamassassin benutzt werden sollen. Wie das geht findet ihr in der Dokumentation eures jeweiligen Mailprogrammes.

Natürlich gilt auch hier wieder: Für etwaige Schäden, oder ähnliches was durch Benutzung dieses Tutorials geschehen sollte, übernehme ich keine Haftung. Das Setup habe ich selbst in Betrieb und es funktioniert. Schreibfehler sind aber natürlich nicht ausgeschlossen. Falls euch etwas auffällt bitte ich um eine kurze Nachricht, damit ich gegebenenfalls Korrekturen machen kann.