Kostenfreie Spamschutzprogramme

Diese Seite soll keine Werbung für oder Bewertung von Filterprogrammen sein, sondern ihnen exemplarisch an einigen Programmen deren Funktionsweise und Einbindung zeigen. Sehr viele Universitäten und andere Firmen nutzen Exchange und Outlook und haben entweder noch kein Exchange 2003 mit Intelligent Message Filter oder möchten mehr Kontrolle und eigene Anpassungen haben und nutzen daher andere Lösungen. Folgende Programme können Sie z.B. mit Exchange einsetzen. Schutzlösungen für Outlook finden Sie auf Clientfilter

Diese Seite ist schon in die Jahre gekommen und ein wirklich guter Spamschutz funktioniert nur, weil er immer weiter entwickelt wird und viele Daten einbezogen werden. Das können Einzelpersonen kaum leisten und ich habe schon einige Links auch wieder entfernen müssen. Das ist umso erschreckender, da WebHosting eigentlich "billig" ist und die Seiten nicht mal als Archiv mehr verfügbar sind.
Privatpersonen bekommen in der Regel bei ihrem Provider einen passablen Spamfilter und Firmen werden diesbezüglich entweder einen Dienstleister oder eine eigene Lösung wie z.B. NoSpamProxy einsetzen.

SpamAssassin mit Exchange

SpamAssassin ist eine sehr bekannte und weit verbreitete Filterlösung, die von sehr vielen Administratoren eingesetzt wird. SpamAssassin hat den Vorteil, dass es mehrere verschiedene Filter (RBL, DCC, Bayes, etc.) kombiniert und zudem kostenfrei verfügbar ist.

Für Windows Administratoren ist allerdings etwas von Nachteil, dass SpamAssassin in PERL geschrieben ist und damit auf einem Windows System noch zusätzliche Komponenten (ActivePerl etc.) erforderlich sind. Zudem integriert sich SpamAssassin primär in verschiedene Unix-Mailserver. Trotzdem gibt es auch Möglichkeiten SpamAssassin mit Exchange zu kombinieren. SpamAssassin kann dazu mit zwei Betriebsarten verwendet werden:

  • Serial
    SpamAssassin wird gestartet, erhält die Mail über STDIN und gibt seiner Bewertung wird auf STDOUT aus. für jede Mail wird also Perl gestartet, SpamAssassin initialisiert, ausgeführt und wieder beendet. Dieses Verfahren ist nur für wenige Mails geeignet.
  • Daemon
    In dieser Betriebsart läuft SpamAssassin als Prozess (SpamD) permanent und der Mailserver sendet die Nachrichten über eine TCP/IP-Verbindung an den Daemon (Normalerweise auf Port 783) und erhält das Ergebnis zurück. Da SpamAssassin nun permanent aktiv ist, ist die Leistung höher. Allerdings steht immer wieder geschrieben (z.B. auch auf der ansonsten sehr guten Beschreibung zu SpamAssassin auf Windows unter (Link ungültig) http://www.openhandhome.com/howtosa.html, dass SpamD nicht unter Windows laufen würde. Das kann ich nicht bestätigen.

Aber SpamAssassin ist eben nur ein Prozess zum Bewerten von Nachrichten. Die Integration in Exchange fehlt jedoch komplett. Hier sind eigene Lösungen zu bauen bzw. bestehende Lösungen eben anzupassen. Hier gibt es mehrere Ansätze, die Sie gehen könnten:

  • Eventsink für Exchange
    So hatte z.B. Christopher Lewis auf (Link ungültig) http://www.christopherlewis.com/ExchangeSpamAssassin.htm einen Code bereit gestellt, der als EventSink die Mails abfängt, als Datei abspeichert, SpamAssassin startet und die Mail samt den neuen Headern von SpamAssassin an den Anwender weiter leitet. Dieser kann dann mit Outlook Regeln basierend auf dem Header die Nachrichten automatisch weiter verarbeiten. Schade, dass diese Lösung nicht für SpamD angepasst ist.
  • Unix-Relay in Front
    Natürlich können Sie auch problemlos ein Unix-System zwischen Exchange und Internet stellen und dort mit SpamAssassing die eingehenden Nachrichten kennzeichnen. Allerdings stört gerade viele kleinere und mittlere Firmen der zusätzliche Server oder die mangelnden Kenntnisse über Unix, um dieses System zu installieren. Hierzu gibt es dann jedoch sehr viele unterschiedliche Lösungen, die ich nicht mal im Ansatz aufzählen kann.
  • Einbindung im Client
    Nur der Vollständigkeit halber könnten Sie natürlich die Arbeit auch auf den Client verlagern, d.h. alle Mails landen im Postfach und der Anwender selbst integriert SpamAssassin in seine Software (siehe z.B.: http://www.easylinux.de/Artikel/ausgabe/2004/04/033-spamassassin/)

Neben dem Einsatz von SpamAssassin auf dem Gateway ist natürlich SpamAssassin ach sehr oft in POP3-Proxies und Addins für Outlook enthalten, die auf dem Arbeitsplatz nach Spam suchen und diesen verschieben oder löschen.

SpamAssassin ist mit Windows und Exchange noch lang keine fertig einsetzbare Lösung, sondern erfordert immer eine Menge manuelle Anpassungen und Installationen. Es gibt kommerzielle Hersteller (siehe http://wiki.apache.org/spamassassin/CommercialWindows), die um SpamAssassin herum ein eigenes Programm geschrieben haben. Die Erkennungsrate von SpamAssassin ist aktuell noch relativ gut, wenn gleich ich das Gefühl haben, dass SpamAssassin als einziger Filter bald wieder ein paar Anpassungen braucht. Virenschutz ist mit SpamAssassin nicht integriert und eine feinere Kontrolle nach Benutzern oder Domäne meines Wissens nach nicht oder nur sehr schwer möglich. Aber am meisten stört mich persönlich, dass SpamAssassin die Mails nur kennzeichnet, aber ansonsten die Arbeit dem Anwender überlässt.

ASSP

Einen anderen Ansatz wählt z.B. das Programm ASSP. Auch hier kommt wieder Perl zum Einsatz aber ASSP übernimmt auch die Kommunikation per SMTP. Allerdings ist ASSP kein Mail Relay, sondern ähnlich wie NoSpamProxy ein SMTP-Proxy. ASSP muss dazu zwischen Internet und Exchange stehen und nimmt alle eingehenden Verbindungen an. Gleichzeitig verbindet sich ASSP mit dem nach geschalteten Mailserver um die eingehenden Nachrichten zuzustellen. ASSP ist daher ein komplett transparenter Proxy. Jede SpamMail wird also auch schon an den internen Mailserver zugestellt aber dann am Ende abgebrochen.

Auch ASSP wird auf Sourceforge (http://assp.sourceforge.net/) gehostet und nutzt im wesentlichen Bayes und Virenscanner (ClamAV) um Nachrichten zu klassifizieren. Die Konfiguration erfolgt per Browser.

Der Ansatz von ASSP ist aus meiner Sicht daher schon um einiges besser als SpamAssassin, da ASSP verdächtige Mails auch ablehnen kann und damit die Handlung dem Absender überträgt. Allerdings ist ASSP nach meinen Tests etwas zu einfach gestrickt, um die vielfältigen Anforderungen und Wünsche in unternehmen abzudecken.

Spamschutz in Outlook mit SpamPal

SpamPal ist z.B.: ein Beispiel für einen Mail Proxy (siehe Clientfilter). SpamPal wird auf ihrem PC installiert und ihr POP3/IMAP4-Programm befragt nun nicht mehr direkt den Mailserver, sondern verbindet sich mit SpamPal auf ihrem PC. Über den Anmeldenamen wird SpamPal nun mitgeteilt, an welchen Server es sich wenden muss, um die Nachrichten abzurufen.

SpamPal ruft dann die Nachrichten ab und prüft primär über RBL-Listen (Siehe RBL) auf Spam. Alle entsprechenden Nachrichten werden nun mit einem Flag in den Kopfzeilen versehen, so dass Sie mit Filtern in Outlook solche Nachrichten z.B.: direkt löschen oder einen Ordner verschieben können.

Die sehr gute Dokumentation zu SpamPal macht dieses kostenfreie Tool sicher zu einem Favoriten für Privatanwender.

Spamschutz per EventSink

Der beste Schutz gegen Spam ist der, der die Nachricht gar nicht erst komplett annimmt, sondern schon beim Empfang kontrolliert und ablehnt. In diesem Fall kann die Absenderseite die Nachricht nicht zustellen und erstellt einen NDR. Wenn Sie nur einen Exchange Server und keine komplexe Firewall mit DMZ betreiben, dann ist der Exchange Server zumeist auch der Server, der die Mails direkt annimmt. Insofern ist ein Spamschutz als SMTP-Eventsink natürlich erste Wahl. Hier ein paar Links zu entsprechenden Produkten, Projekten und Codebeispielen.

  • ORFilter
    (Link ungültig) http://www.martijnjongen.com/site/ORFilter/tabid/53/Default.aspx
  • Spam Sinker Introduction and Installation
    (Link ungültig) http://www.layer-7.com/spamsinker.htm
  • A better Windows SpamAssassin für Exchange
    (Link ungültig) http://www.spamblogging.com/archives/000028.html
  • Exchange SpamAssassin SMTP Sink
    (Link ungültig) http://www.christopherlewis.com/ExchangeSpamAssassin.htm
  • SMTP Tracker
    (Link ungültig) http://www.smtptracker.com/intro.html
  • So schreiben Sie ihren eigenen Event Sink mit C#
    http://msdn.Microsoft.com/library/default.asp?URL=/library/en-us/dnsmtps/html/writingmngsinks.asp
    894286 How to write an OnArrival-type SMTP event sink in managed code by using Visual Studio .NET 2003
  • Und einige mehr

Weitere Links