Unterabschnitte

Das Antispam-Paket

Dieses Paket ist als Zusatzpaket zum Mail-Paket zu verstehen. Eingehende Nachrichten werden mit Hilfe dieses Programms, vor der Verteilung in die einzelnen Postfächer, auf Spam-Inhalt überprüft und gegebenenfalls herausgefiltert. Diese Dokumentation wurde bereits auf die nächste Version 1.8.12 abgestimmt. Nutzer vorheriger Version sollten die im jeweiligen Antispam-Paket enthaltene Dokumentation als Referenz verwenden.

Die Einleitung

Was ist Spam? Von Spam spricht man, wenn eine Kopie einer Nachricht das Internet überflutet, mit dem Ziel so viele Empfänger wie möglich zu erreichen, obwohl diese die Zusendung der Nachricht nicht verlangt haben. Meistens werden über Spam dubiose Produkte kommerziell beworben, die versprechen in 14 Tagen zum Millionär zu werden, oder es werden nicht ganz legale Services angepriesen.

An dieser Stelle kommt das Antispam-Paket ins Spiel!

Wenn die Überprüfung auf Spam über den Parameter EXISCAN_SPAMD_ENABLED (Mail-Paket) aktiviert wurde, wird jede eingehende Nachricht nach diversen Regeln bewertet und bei der Identifikation als Spam als solche behandelt. Standardmäßig wird z.B., in Abhängigkeit von dem Parameter EXISCAN_SPAMD_ACTION (Mail-Paket) eine solche Nachricht an den User-Account 'spam@domain.de' weitergeleitet, um es dem Mail-Administrator zu ermöglichen diese vor dem Löschen noch einmal zu verifizieren. Durch diese Prozedur werden die E-Mail-Nutzer vor Nachrichten geschützt, die sie normalerweise sowieso nicht empfangen wollen.

Die Funktionen

Das Antispam-Paket besteht aus folgender Komponente:

Die Voraussetzungen

Dieses Paket benötigt zur korrekten Funktion zwingend die installierten Pakete 'Mail', 'Perl' und andere Perl-Funktionspakete.

Die Installation

Das Antispam-Paket wird über das Setup-Menü installiert. Wird eine ältere Paketversion vorgefunden, so wird diese deinstalliert bevor die neuen Programmdateien installiert werden. Nach dem Installieren der Programmdateien wird direkt der Konfigurations-Editor gestartet um die Konfiguration anzupassen. Nach Beendigung dieses Schrittes werden die Konfigurationsdateien generiert und alle benötigten Programme gestartet.

Das Menü im Setup-Programm

Das Menü im Setup-Programm wird über 'Mail Services' -> 'Goto mail modules' angesprochen und ist wie folgt aufgebaut:

Die Menüpunkte dürften selbsterklärend sein, da sie keinerlei weitere Eingaben erwarten. Aus diesem Grund wird auf deren Funktion nicht weiter eingegangen.

Die Änderung der Konfiguration

Die Konfiguration kann über den Menüpunkt 'Edit configuration' geändert werden. Standardmäßig wird der Editor aufgerufen, der in der Environment-Konfiguration über die Variable 'EDITOR' festgelegt wurde. Nachdem der Editor beendet wurde wird abgefragt, ob die Konfiguration aktiviert werden soll. Wird dies bestätigt, werden über ein Skript die Anpassungen umgehend wirksam gemacht.

Die Konfigurationsdatei

In der Konfigurationsdatei, die über das Menü zugänglich ist, sind folgende Parameter vorhanden; wer sie von Hand editieren will findet sie unter /etc/config.d/antispam.

Die Parameter

START_ANTISPAM

Für die Aktivierung des Antispam-Programms muss diese Variable lediglich auf den Wert 'yes' gestellt werden. Die Einstellung 'no' deaktiviert das Antispam-Programm.

Gültige Werte: yes, no

Standardeinstellung: START_ANTISPAM='no'

ANTISPAM_ALLOWED_ADDRESSES

Über diesen Parameter können IP-Adressen oder Netzwerke angegeben werden, denen es zusätzlich zum lokalen Host erlaubt ist eine Verbindung zum Spam-Prozess aufzubauen. Es ist somit nicht notwendig auf allen Rechnern einen eigenen Spam-Prozess zu installieren.

Gültige Werte: IP-Adressen und/oder Netzwerke

Beispiel: ANTISPAM_ALLOWED_ADDRESSES='192.168.6.20,192.168.7.0/24'

Standardeinstellung: ANTISPAM_ALLOWED_ADDRESSES=

ANTISPAM_LISTEN_ADDRESSES (Optionaler Parameter)

Über diesen Parameter kann eine IP-Adresse angegeben werden, auf welcher der Spam-Prozess Verbindungsanfragen entgegen nehmen soll. Wird der Parameter auf den Wert 'all' gesetzt, so werden auf allen Netzwerkanschlüssen Verbindungsanfragen entgegen genommen. Wird der Parameter nicht gesetzt oder leer gelassen, so wird standardmäßig die Adresse '127.0.0.1' verwendet.

Gültige Werte: leer, all, IP-Adresse

Beispiel: ANTISPAM_LISTEN_ADDRESSES='192.168.0.20'

Standardeinstellung: ANTISPAM_LISTEN_ADDRESSES=

ANTISPAM_DNS_AVAILABLE

Um die Funktionsfähigkeit von DNS zu prüfen wird standardmäßig versucht die Namen einiger Hosts im Internet aufzulösen. Dies kann in einigen Fällen zu Fehlern führen, weil z.B. die Netzwerkverbindung unterbrochen wurde und so vermutet wird, dass keine DNS-Auflösung möglich ist. Über diesen Parameter wird nun bestimmt, ob eine automatische Prüfung stattfinden soll (test), generell immer davon ausgegangen werden soll, dass DNS verfügbar (yes) bzw. nicht verfügbar (no) ist.

Gültige Werte: yes, no, test[: name1 name2]

Standardeinstellung: ANTISPAM_DNS_AVAILABLE='test'

ANTISPAM_ENABLE_RBL_CHECKS

Wird dieser Parameter auf 'yes' gesetzt, so wird bei einer Überprüfung zusätzlich eine Verbindung zu RBL-Servern (Realtime Blackhole Lists) aufgebaut und geprüft, ob der Absender der Nachricht dort bereits als Spammer bekannt ist.

Gültige Werte: yes, no

Standardeinstellung: ANTISPAM_ENABLE_RBL_CHECKS='yes'

ANTISPAM_ENABLE_SPAMCOP

Wird dieser Parameter auf 'yes' gesetzt, so wird eine als Spam eingestufte Nachricht automatisch an SpamCop (http://www.spamcop.net/) zur Analyse weitergeleitet.

Gültige Werte: yes, no

Standardeinstellung: ANTISPAM_ENABLE_SPAMCOP='no'

ANTISPAM_MAILBOX_FILE

Dieser Parameter legt den Postfachname und -pfad des Spam-Postfachs fest. Wird dieser Parameter nicht gefüllt, so wird der Standardname 'spam' im Verzeichnis /var/spool/mail verwendet.

Gültige Werte: Postfachname optional inkl. Pfad

Standardeinstellung: ANTISPAM_MAILBOX_FILE=

ANTISPAM_MAX_CHILDREN

Dieser Parameter legt fest, wie viele Kindprozesse maximal gleichzeitig auf dem Server aktiviert werden sollen. Auf sehr langsamer Hardware ist es manchmal sinnvoll diesen Parameter anzupassen. Standardmäßig werden die systemspezifischen Einstellungen verwendet.

Gültige Werte: Zahl

Standardeinstellung: ANTISPAM_MAX_CHILDREN='0'

ANTISPAM_BAYES_AUTO_LEARN

Wird dieser Parameter auf 'yes' gesetzt, so werden Nachrichten mit einer hohen Spam-Wertung dem Bayes-Filter zugeführt. Dieser wertet die zugeführten Informationen aus und passt dann dynamisch seine Spam-Bewertung an.

Gültige Werte: yes, no

Standardeinstellung: ANTISPAM_BAYES_AUTO_LEARN='yes'

ANTISPAM_BAYES_LEARN_FROM_SPAM_x

Über diese Parameter können Postfachdateien mit vollständiger Pfadangabe angegeben werden, in denen 'Spam'-Nachrichten (schlecht) gesammelt werden. Falls z.B. bei jedem Anwender eine Datei gleichen Namens verwendet werden soll, so ist der Einsatz von Jokerzeichen möglich. Diese werden dann im vorgegebenen Zeitintervall zum Trainieren des Bayes-Filter verwendet. (Siehe ANTISPAM_BAYES_LEARN_CRON_SCHEDULE)

Gültige Werte: Zahl bzw. Postfachname inkl. Pfad

Beispiel:

ANTISPAM_BAYES_LEARN_FROM_SPAM_N='1'
ANTISPAM_BAYES_LEARN_FROM_SPAM_1='/var/spool/mail/spam'

ANTISPAM_BAYES_LEARN_FROM_HAM_x

Über diese Parameter können Postfachdateien mit vollständiger Pfadangabe angegeben werden, in denen 'Ham'-Nachrichten (gut) gesammelt werden. Falls z.B. bei jedem Anwender eine Datei gleichen Namens verwendet werden soll, so ist der Einsatz von Jokerzeichen möglich. Diese werden dann im vorgegebenen Zeitintervall zum Trainieren des Bayes-Filter verwendet. (Siehe ANTISPAM_BAYES_LEARN_CRON_SCHEDULE)

Gültige Werte: Zahl bzw. Postfachname inkl. Pfad

Beispiel:

ANTISPAM_BAYES_LEARN_FROM_HAM_N='1'
ANTISPAM_BAYES_LEARN_FROM_HAM_1='/home/frank/.imapmail/ham-archive'

ANTISPAM_BAYES_LEARN_CRON_SCHEDULE

Hier wird festgelegt zu welchem Zeitpunkt bzw. in welchem Intervall die angegebenen Spam- bzw. Ham-Postfachdateien für das Training des Bayes-Filters ausgewertet werden sollen. Die fünf Teilparameter haben dabei folgende Bedeutung:

1 - Minuten, 2 - Stunden, 3 - Tag des Monats, 4 - Monat, 5 - Wochentag.

D.h. bei Verwendung der Standardeinstellung wird jeweils am Sonntag um 03:05h der Vorgang angestoßen. Wer Näheres über die verwendete Befehlssyntax erfahren möchte, sollte über eine Internet-Suchmaschine nach 'man' und 'crontab' suchen.

Gültige Werte: Crontab-spezifischer Parametereintrag

Standardeinstellung: ANTISPAM_BAYES_LEARN_CRON_SCHEDULE='5 3 * * 0'

ANTISPAM_AUTO_WHITELIST

Wird dieser Parameter auf 'yes' gesetzt, so wird versucht, anhand der von einem Absender versandten Nachrichten und deren Spam-Bewertung, die Spam-Wertung der aktuell von diesem Absender empfangenen Nachricht einzustufen. D.h. wurden über einen längeren Zeitraum Nachrichten von einem Absender als 'Nicht-Spam' eingestuft, so kann mit hoher Wahrscheinlichkeit auch bei der aktuellen Nachricht davon ausgegangen werden, dass es sich nicht um Spam handelt, obwohl vielleicht der Spam-Schwellwert geringfügig überschritten wurde. Die Einstellung 'no' deaktiviert diese Funktion.

Gültige Werte: yes, no

Standardeinstellung: ANTISPAM_AUTO_WHITELIST='yes'

ANTISPAM_AUTO_WHITELIST_FACTOR

Wurde die automatische Whitelist-Funktion über den Parameter ANTISPAM_AUTO_WHITELIST aktiviert, so beeinflusst der hier definierte Faktor die Einstufung einer Nachricht als Spam. D.h. man hat einerseits den Durchschnittswert der Spam-Wertungen eines Absenders und andererseits den aktuell berechneten Spam-Wert. Die endgültige Bewertung ergibt sich danach aus folgender Formel:

endgültige W. = aktuelle W. + (durchschnittliche W. - aktuelle W.) * Faktor

Ein Faktor von '1' bedeutet, dass immer der Durchschnittswert verwendet wird. Ein Faktor von '0' bedeutet, dass immer der aktuell berechnete Wert verwendet wird.

Gültige Werte: Zahl

Standardeinstellung: ANTISPAM_AUTO_WHITELIST_FACTOR='0.5'

ANTISPAM_BLACKLIST_FROM_x

Über diese Parameter können E-Mail-Adressen angegeben werden, die fälschlicherweise sehr häufig als 'Nicht-Spam' klassifiziert werden, obwohl das Gegenteil der Fall ist. Über ANTISPAM_BLACKLIST_FROM_N wird die Anzahl der Einträge festgelegt und über ANTISPAM_BLACKLIST_FROM_x werden die einzelnen Einträge definiert. Eingaben wie z.B. '*@domain.de' oder '*.domain.de' sind ebenfalls zulässig.

Gültige Werte: Zahl bzw. E-Mail-Adresse

Beispiel:

ANTISPAM_BLACKLIST_FROM_N='1'
ANTISPAM_BLACKLIST_FROM_1='spammer@spammershome.com'

ANTISPAM_WHITELIST_FROM_x

Über diese Parameter können E-Mail-Adressen angegeben werden, die fälschlicherweise sehr häufig als 'Spam' klassifiziert werden, obwohl das Gegenteil der Fall ist. Über ANTISPAM_WHITELIST_FROM_N wird die Anzahl der Einträge festgelegt und über ANTISPAM_WHITELIST_FROM_x werden die einzelnen Einträge definiert. Eingaben wie z.B. '*@domain.de' oder '*.domain.de' sind ebenfalls zulässig.

Gültige Werte: Zahl bzw. E-Mail-Adresse

Beispiel:

ANTISPAM_WHITELIST_FROM_N='1'
ANTISPAM_WHITELIST_FROM_1='nospammer@whitejacket.com'

Über die nachfolgenden Parameter kann die Funktion zur automatisierten Aktualisierung der Spamregeln konfiguriert werden. Wird der Parameter ANTISPAM_RULE_UPDATE='yes' gesetzt, so wird einmal alle 24 Stunden nach aktualisierten Spamregeln gesucht. Häufigere Prüfungen sind nicht zu empfehlen, da der eigene Rechner ansonsten von Aktualisierungen ausgeschlossen werden könnte. Falls neue Regeln herunter geladen wurden, wird mittels des zugehörigen GnuPG-Schlüssels geprüft ob die Archive unverändert übertragen wurden. Danach werden die Regeln im Verzeichnis /var/antispam/spamassassin/sa-update-files entpackt und ein Neustart des spamd-Prozesses angefordert.
Im Anschluss startet das im Hintergrund laufende antispam-control- Skript den Prozess wie gewünscht neu. Da die eigentlichen Spamregeln hierdurch nicht überschrieben werden, ist es jederzeit möglich zur Ursprungskonfiguration zurück zu kehren ohne das Antispam-Paket neu installieren zu müssen.

ANTISPAM_RULE_UPDATE

Wird dieser Parameter auf den Wert 'yes' gesetzt, so aktiviert man die automatisierte Aktualisierung der Spamregeln. Setzt man den Parameter auf den Wert 'no', so werden keine Aktualisierungen herunter geladen.
ACHTUNG
Um diese Funktion nutzen zu können muss zuvor das GnuPG-Paket installiert werden!


Gültige Werte: yes, no

Standardeinstellung: ANTISPAM_RULE_UPDATE='no'

ANTISPAM_RULE_CHANNEL_N

Über diesen Parameter legt man die Anzahl der Kanäle fest, welche automatisiert auf neue Spamregeln geprüft werden sollen.

Gültige Werte: Zahl

Beispiel:

ANTISPAM_RULE_CHANNEL_N='1'
ANTISPAM_RULE_CHANNEL_1_ACTIVE='no'
ANTISPAM_RULE_CHANNEL_1_NAME='updates.spamassassin.org'

ANTISPAM_RULE_CHANNEL_x_ACTIVE

Wird dieser Parameter auf den Wert 'yes' gesetzt, so wird der über den Parameter ANTISPAM_RULE_CHANNEL_x_NAME konfigurierte Kanal aktiviert, 'no' deaktiviert ihn.

Gültige Werte: yes, no

Standardeinstellung: ANTISPAM_RULE_CHANNEL_1_ACTIVE='no'

ANTISPAM_RULE_CHANNEL_x_NAME

Über diesen Parameter legt man den Namen eines Kanals fest von welchem automatisiert Spamregeln herunter geladen werden sollen.

Gültige Werte: gültiger Kanalname

Beispiel: ANTISPAM_RULE_CHANNEL_1_NAME='updates.spamassassin.org'

ANTISPAM_RULE_KEY_N

Über diesen Parameter legt man die Anzahl der GnuPG-Schlüssel fest, welche man automatisiert herunter laden möchte. Kanalinhalte die mit diesem Schlüssel signiert wurden werden automatisch als vertrauenswürdig eingestuft.

Gültige Werte: Zahl

Beispiel:

ANTISPAM_RULE_KEY_N='2'
ANTISPAM_RULE_KEY_1_ACTIVE='no'
ANTISPAM_RULE_KEY_1_URL='http://spamassassin.apache.org/updates/GPG.KEY'
ANTISPAM_RULE_KEY_1_ID='5244EC45'

ANTISPAM_RULE_KEY_x_ACTIVE

Wird dieser Parameter auf den Wert 'yes' gesetzt, so wird der über den Parameter ANTISPAM_RULE_KEY_x_URL konfigurierte GnuPG-Schlüssel herunter geladen und dem über den Parameter ANTISPAM_RULE_KEY_x_ID konfigurierten Schlüssel-ID vertraut, 'no' deaktiviert sie.

Gültige Werte: yes, no

Standardeinstellung: ANTISPAM_RULE_KEY_1_ACTIVE='no'

ANTISPAM_RULE_KEY_x_URL

Über diesen Parameter legt man die URL eines GnuPG-Schlüssels fest, welcher automatisiert herunter geladen werden soll.

Gültige Werte: gültige GnuPG-URL

Beispiel: ANTISPAM_RULE_KEY_1_URL='http://spamassassin.apache.org/updates/GPG.KEY'

ANTISPAM_RULE_KEY_x_ID

Soll dem über den Parameter ANTISPAM_RULE_KEY_x_URL herunter geladenen GnuPG-Schlüssel vertraut werden, so muss dessen Schlüssel-ID hier konfiguriert werden.

Gültige Werte: gültige GnuPG-ID

Beispiel: ANTISPAM_RULE_KEY_1_ID='5244EC45'

ANTISPAM_RULE_CRON_SCHEDULE

Hier wird festgelegt zu welchem Zeitpunkt bzw. in welchem Intervall automatisiert nach Spamregelaktualisierungen gesucht werden soll. Die fünf Teilparameter haben dabei folgende Bedeutung:

1 - Minuten, 2 - Stunden, 3 - Tag des Monats, 4 - Monat, 5 - Wochentag.

D.h. bei Verwendung der Standardeinstellung wird jeden Tag um 23:40h diese Prüfung durchgeführt. Wer Näheres über die verwendete Befehlssyntax erfahren möchte, sollte über eine Internet-Suchmaschine nach 'man' und 'crontab' suchen.

Gültige Werte: Crontab-spezifischer Parametereintrag

Standardeinstellung: ANTISPAM_RULE_CRON_SCHEDULE='40 23 * * *'

ANTISPAM_INFOMAIL

Über diesen Parameter kann der automatisierte Versand einer Mail an den Postmaster aktiviert werden, die über den Status des Spam-Postfaches informiert. Wird der Parameter auf den Wert 'no' gesetzt, so erfolgt keine Benachrichtigung.

Gültige Werte: yes, no

Standardeinstellung: ANTISPAM_INFOMAIL='yes'

ANTISPAM_INFOMAIL_SUBJECT

Über diesen Parameter wird der Text der Betreffzeile festgelegt, die über den Status des Spam-Postfaches informiert. Dieser Parameter wird nur ausgewertet, wenn zuvor ANTISPAM_INFOMAIL='yes' gesetzt wurde.

Gültige Werte: Text

Standardeinstellung: ANTISPAM_INFOMAIL_SUBJECT='Spam mailbox status'

ANTISPAM_INFOMAIL_BODY

Über diesen Parameter wird der Text der Nachricht festgelegt, die über den Status des Spam-Postfaches informiert. An Stelle des '|'-Zeichens wird vor dem Versand der Nachricht das Ergebnis der Postfachüberprüfung eingesetzt. Dieser Parameter wird nur ausgewertet, wenn zuvor ANTISPAM_INFOMAIL='yes' gesetzt wurde.

Gültige Werte: Text inkl. '|'-Zeichen

Standardeinstellung: ANTISPAM_INFOMAIL_BODY='Result of the spam mailbox check: \n| \nPlease delete messages after verification!'

ANTISPAM_INFOMAIL_CRON_SCHEDULE

Hier wird festgelegt zu welchem Zeitpunkt bzw. in welchem Intervall eine Überprüfung des Spam-Postfaches erfolgen soll. Dieser Parameter wird nur ausgewertet, wenn zuvor ANTISPAM_INFOMAIL='yes' gesetzt wurde. Die fünf Teilparameter haben dabei folgende Bedeutung:

1 - Minuten, 2 - Stunden, 3 - Tag des Monats, 4 - Monat, 5 - Wochentag.

D.h. bei Verwendung der Standardeinstellung wird täglich um 07:03h eine Überprüfung durchgeführt. Wer Näheres über die verwendete Befehlssyntax erfahren möchte, sollte über eine Internet-Suchmaschine nach 'man' und 'crontab' suchen.

Gültige Werte: Crontab-spezifischer Parametereintrag

Standardeinstellung: ANTISPAM_INFOMAIL_CRON_SCHEDULE='3 7 * * *'

Das Überprüfen von Spam Nachrichten

Um als Spam klassifizierte Nachrichten zu überprüfen wählt man den Menüpunkt 'Read messages' und lässt sich die Betreffzeilen der Nachrichten anzeigen. Durch Eingabe der Nachrichtennummer kann man sich dann den Nachrichtentext anzeigen lassen und durch drücken von 'd' die Nachricht gegebenenfalls löschen. Wurde eine Nachricht fälschlicherweise als Spam eingestuft, so geht man wie folgt vor um diese trotzdem dem Empfänger zuzustellen:

1 Eingeben von 'm <E-Mail-Adresse>' um eine Nachricht weiterzuleiten.
2 Eingabe der Betreffzeile.
3 Durch Eingabe von 'm̃<Nummer der Nachricht>' oder '~M<Nummer der Nachricht>' wird die weiterzuleitende Nachricht ausgewählt. Dabei wird mit '~m' nur der Nachrichtentext und mit '~M' zusätzlich auch die Kopfzeilen eingefügt.
4 Mit STRG-D wird die Nachricht abgeschlossen, mit STRG-C abgebrochen.
5 Falls gewünscht Eingabe von CC und BCC-Empfängern, sonst nur mit RETURN bestätigen.

Eine Test-Spam Nachricht senden

Will man testen ob der Spam-Filter korrekt funktioniert, so kann man sich selbst eine Nachricht von einem Mailaccount außerhalb des eigenen Netzes mit folgender Zeichenkette, die keine Leerzeichen oder Zeilenumbrüche enthält, zusenden:

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

Das Rollieren der Logdatei konfigurieren

Ab der Paketversion 1.1.2 werden die paketspezifischen Meldungen nicht mehr in die Datei /var/log/messages geschrieben, sondern es wird eine eigene Datei /var/log/antispam.log verwendet. Um sicher zu stellen, dass die Logdatei korrekt durch das Programm Logrotate aktiviert wird, sind folgende Änderungen an der Base-Konfiguration, Menü 'System admininstration -> Base configuration -> Edit base configuration', durchzuführen:

Beispiel:

START_SYSLOGD='yes'
SYSLOGD_DEST_N='2'
SYSLOGD_DEST_1='*.*;local7.none /var/log/messages'
SYSLOGD_DEST_1_LOGROTATE='/usr/sbin/service --quiet restart syslogd'
SYSLOGD_DEST_2='local7.* /var/log/antispam*.log'
SYSLOGD_DEST_2_LOGROTATE='/usr/sbin/service --quiet restart antispam'

Um die Änderungen sofort zu aktivieren gibt man folgenden Befehl an der Konsole ein '/etc/init.d/syslogd restart' oder wartet einfach die nächtliche Archivierung der Logdateien ab.