Spamfilter für Sendmail selbstgebaut

Linux Spam Filter Mail

Wer kennt das Problem heute nicht? Jeden Tag wird das E-Mail Postfach mit dutzenden Spam-Mails überhäuft. Es kostet wertvolle Arbeits- oder Freizeit, sich durch das Postfach zu kämpfen und die unerwünschten E-Mails herauszufiltern.

Es gibt zwar mittlerweile etliche Spamfilter, die auf dem Clientrechner unter Windows oder Linux installiert werden können, doch besteht dabei das Problem, dass sämtliche Spam-Mails zunächst vom Mailserver auf den Client übertragen werden. Das birgt die Gefahr, sich Viren oder Trojaner einzufangen. Außerdem kostet es wertvolle Zeit und produziert unnötiges Datentransfervolumen. Und für diejenigen, die per Webmail auf ihre Postfächer zugreifen, sind lokale Applikationen wenig hilfreich. Warum Spam also nicht direkt bei Eintreffen auf dem Mailserver löschen?

Eine einfache Möglichkeit, Spam-Mails gleich beim Empfang auf dem Mailserver zu identifizieren und zu blockieren, möchten wir in der folgenden Anleitung zum Bau eines einfachen serverseitigen Spamfilters für Sendmail vorstellen.

Den größten Effekt kann man mit der Verwendung sogenannter "Blacklists" (dnsbl) erzielen. In diesen schwarzen Listen sind die IP-Adressen und Domainnamen hinterlegt, die als Versender von Spam-Mails bekannt sind. Man kann diese Listen nun beim Empfang jeder E-Mail dazu verwenden, per DNS-Abfrage herauszufinden, ob die E-Mail von einem bekannten Spammer stammt. Ist dies der Fall, so wird die E-Mail von Sendmail automatisch geblockt und ein entsprechender Hinweis an den Absender verschickt. Auf diese Weise filtern wir auf dem Server, auf dem auch linux-fuer-alle.de gehostet wird (ca. 10 E-Mailpostfächer) derzeit rund 300 Spam-Mails pro Tag heraus!

Bitte beachten:

Die Verwendung von Blacklists birgt die Gefahr, dass in einigen wenigen Einzelfällen Mails als Spam identifiziert werden, bei denen es sich um reguläre und erwünschte E-Mails handelt (sog. "False Positives"). Bei den von uns empfohlenen Blacklists ist dieses Risiko zwar sehr gering, dennoch sollte es dem Serveradministrator bei der Sendmail-Konfiguration bewusst sein. Gegebenenfalls sind die Benutzer des Mailservers auf dieses Risiko hinzuweisen. linux-fuer-alle.de übernimmt ausdrücklich keine Gewähr dafür, dass bei der Verwendung der hier beschriebenen Blacklist-Funktion in Sendmail lediglich unerwünschte E-Mails ausgefiltert werden!

Die Nutzung der Black-Listen mit Sendmail ist relativ einfach zu aktivieren.

SuSE:

Dazu muss man unter SuSE die Datei /usr/share/sendmail/ostype/suse-linux.m4 bearbeiten, aus der SuSE die Sendmail-Konfigurationsdatei erzeugt. Im unteren Teil dieser Konfigurationsdatei ergänzt man dazu die hier fett hervorgehobene Zeile, um in Sendmail die Verwendung von dnsbl zu aktivieren.

 

FEATURE(`mailertable',                  `hash -o /etc/mail/mailertable.db')dnl
FEATURE(`genericstable',                `hash -o /etc/mail/genericstable.db')dnl
FEATURE(`virtusertable',                `hash -o /etc/mail/virtusertable.db')dnl
FEATURE(`access_db',                    `hash -o /etc/mail/access.db')dnl
FEATURE(`dnsbl', `sbl-xbl.spamhaus.org', `"571 SPAM MAIL REJECTED from "$&{client_name}" by LINUX-FUER-ALLE.DE powered by spamhaus.org! Please see http://www.spamhaus.org/sbl for details.'")dnl
FEATURE(`dnsbl', `list.dsbl.org', `"571 SPAM MAIL REJECTED from "$&{client_name}" by LINUX-FUER-ALLE.DE powered by dsbl.org! Please see http://www.dsbl.org for details.'")dnl
FEATURE(`dnsbl', `relays.ordb.org', `"571 SPAM MAIL REJECTED from "$&{client_name}" by LINUX-FUER-ALLE.DE powered by ordb.org! Please see http://www.ordb.org for details.'")dnl
FEATURE(`dnsbl', `relays.visi.com', `"571 SPAM MAIL REJECTED from "$&{client_name}" by LINUX-FUER-ALLE.DE powered by relays.visi.com! Please see http://relays.visi.com for details.'")dnl
FEATURE(`dnsbl', `blacklist.spambag.org', `"571 SPAM MAIL REJECTED from "$&{client_name}" by LINUX-FUER-ALLE.DE powered by blacklist.spambag.org! Please see http://www.spambag.org for details.'")dnl
FEATURE(`dnsbl', `ix.dnsbl.manitu.net', `"571 SPAM MAIL REJECTED from "$&{client_name}" by LINUX-FUER-ALLE.DE powered by ix.dnsbl.manitu.net! Please see http://ix.dnsbl.manitu.net for details.'")dnl
dnl
LOCAL_CONFIG

 

Dabei ist es auch möglich, mehrere verschiedene Blacklists gleichzeitig zu verwenden. Bei Angabe mehrerer Listen fragt Sendmail per DNS alle Listen der Reihe nach an, ob es sich beim Absender der Mails um einen Spam-Versender handelt. Auf diese Weise kann die Effektivität des Filters noch einmal deutlich gesteigert werden. Da die Ersteller der Blacklists recht unterschiedliche Kriterien (Policy) verwenden, um Spammer in ihren Listen aufzunehmen, ist es dringend zu empfehlen, sich die Hinweise auf den Webseiten der Blacklists anzusehen und dann individuell zu entscheiden, ob man diese Blacklist verwenden möchte.

Wir verwenden auf unserem Server derzeit die folgenden Blacklists, die bei einschlägigen Websites und Foren als besonders gut eingeschätzt werden. Hervorzuheben ist hier insbesondere spamhaus.org, eine von mehreren großen Providern (u.a. Schlund & Partner) unterstützte Organisation.

 

sbl-xbl.spamhaus.org
list.dsbl.org
relays.ordb.org
relays.visi.com
blacklist.spambag.org
ix.dnsbl.manitu.net

 

Der komplette dnsbl-Teil unserer suse-linux.m4 mit allen von uns verwendeten Blacklists kann HIER als Datei heruntergeladen werden und dann direkt in die eigene suse-linux.m4 eingebunden werden.

Bitte beachten:

Die Verwendung von Blacklists birgt die Gefahr, dass in einigen wenigen Einzelfällen Mails als Spam identifiziert werden, bei denen es sich um reguläre und erwünschte E-Mails handelt (sog. "False Positives"). Bei den von uns empfohlenen Blacklists ist dieses Risiko zwar sehr gering, dennoch sollte es dem Serveradministrator bei der Sendmail-Konfiguration bewusst sein. Gegebenenfalls sind die Benutzer des Mailservers auf dieses Risiko hinzuweisen. linux-fuer-alle.de übernimmt ausdrücklich keine Gewähr dafür, dass bei der Verwendung der hier beschriebenen Blacklist-Funktion in Sendmail lediglich unerwünschte E-Mails ausgefiltert werden!

Nach den oben beschriebenen Änderungen in der suse-linux.m4 muss man die alte Sendmail-Konfigurationsdatei verschieben oder löschen und dann mit Hilfe von SuSEconfig neu erzeugen. Dies geschieht mit den beiden nachfolgenden Befehlszeilen:

 

mv  /etc/sendmail.cf  /etc/sendmail.cf.org
SuSEconfig --module sendmail

 

Um die neuen Konfigurationen nun in Sendmail zu übernehmen, muss Sendmail noch neu gestartet werden:

 

rcsendmail restart

 

In Kürze werden wir diese Anleitung noch um eine Anleitung für andere Linux-Distributionen und um das lokale Sperren von Absendern mit Hilfe der Datei /etc/mail/access erweitern. Außerdem wird es eine Installationsanleitung für ein Shell-Script geben, welches Statistiken zu ausgefilterten Spam-Mails auf Basis der Sendmail-Logdatei liefert.

Artikelbewertung: 
4
Average: 4 (1 vote)
War dieser Artikel hilfreich?