Exchange 2007 Spamschutz

Exchange 2007 hat wie Exchange 2003 die Anti Spam-Funktionen des Intelligent Message Filter eingebaut. Wenn Sie sich allerdings einmal die E2007:Rollen anschauen, dann ist diese Funktion nur auf der Hub/Transport und der Edge-Rolle vorhanden. Alle anderen Rollen haben keine SMTP-Funktion.

Dass der Spamschutz bei der Edge-Rolle natürlich vorhanden ist, versteht sich von alleine. Schließlich ist genau diese Rolle das erste Gateway vom Internet. Aber auch auf der Hub/Transport-Rolle ist der Spamschutz vorhanden. Allerdings ist er nicht per Default aktiviert. Ob dies ein "gutes" Standardsetup für einen Exchange Server ist, muss Microsoft wissen. Ich hätte es eher per Default aktiviert, wenn ein Server als "Receive Connector" konfiguriert wird und nur dann deaktiviert, wenn es einen Edge-Server gibt.

Exchange 2007 kennt aber drei Stellen, an denen IMF aktiv wird

Aber es gibt noch zwei weitere Stellen, die mit IMF etwas zu tun haben:

Damit das aber alles funktioniert, ist etwas Konfiguration angesagt.

Kein EDGE
Alle Beschreibungen betreffen eine Installation ohne EDGE-Rolle. Diese ist nach meinen Erfahrungen eher selten installiert und in vielen Fällen gar nicht sinnvoll, z.B. wenn Sie eine kleinere Firma sind oder der Spamschutz bereits durch andere Produkte gewährleistet ist.

Spamschutz auf Hub-Transport aktivieren

Wenn Sie also ein kleines Netzwerk betreuen und auf die Edge-Rolle oder andere vorgelagerte Spamfilter verzichten, dann ist die Nutzung der in Exchange eingebauten Spamfilter durchaus anzuraten. Damit Sie die entsprechenden Karteikarten und Einstellungen jedoch vornehmen können, müssen wir einen Befehl auf der Powershell ausführen. Ein einfacher "DIR"-Befehl im Exchange Skripts Verzeichnis zeigt, welche Funktionen per Powershell erreichbar sind

Antispam Befehle

Für die Aktivierung müssen wir daher die Exchange Management Shell starten und folgenden Befehl ausführen

install-AntiSpamAgents.ps1

Ein direkter Aufruf aus der DOS-Box öffnet Notepad zum Bearbeiten des Skripts. Ein Aufruf aus der normalen Powershell bricht ab, weil zusätzliche Befehle wie Get-Transportserver etc. nicht funktionieren,

Install-AntiSpamAgents

Direkt nach der Installation können wir dann in der Exchange Management Konsole die Veränderungen kontrollieren. Hier ein Bild "Vorher/Nachher"

MMC Antispam Einstellungen

Auch auf der Hub/Transport-Rolle des entsprechenden Servers zeigen sich kleine Änderungen:

Disable AntiSpam Updates

Denken Sie daran, dass Sie diese Einstellungen nur auf den Servern durchführen müssen, die Mails aus dem Internet von anonymen Absendern annehmen. Damit Sie die "Ablehnen"-Funktion von Exchange 2007 vernünftig nutzen könnten, sollte es kein System zwischen dem Absender und ihrem Exchange Server geben, welcher als "Relay" arbeitet, da sonst ihr eigenes Relay (oder das des Providers) nicht alle Mails zu ihnen senden kann und für abgelehnte Nachrichten eine Unzustellbarkeit erstellen muss. (Siehe auch NDR Spamming)

Spamschutz konfigurieren

Die komplette Konfiguration erfolgt wieder "Organisationsweit". Eine Einstellung pro Server oder nach Domänen (also z.B. Kunden oder Abteilungen) ist nicht vorgesehen. Für solche erweiterten Funktionen sind wieder Drittprodukte erforderlich. Folgende Einstellungen sind möglich.  Teilweise können aber einzelne Mailadressen besonders behandelt werden.

Die Konfiguration der Spamschutzeinstellungen können natürlich auch über die Powershell erfolgen. Hier die ContentFilterConfig:

Set-ContentFilterConfig
 -BypassedRecipients
 -BypassedSenderDomains
 -BypassedSenders 
 -Enabled <$true | $false>
 -OutlookEmailPostmarkValidationEnabled <$true | $false>
 -QuarantineMailbox
 -RejectionResponse
 -SCLDeleteEnabled <$true | $false>
 -SCLDeleteThreshold'
 -SCLQuarantineEnabled <$true | $false>
 -SCLQuarantineThreshold
 -SCLRejectEnabled <$true | $false>
 -SCLRejectThreshold

Diese AntiSpam Agenten setzen für jede Mail, die nicht gleich abgewiesen oder in die Quarantäne (Edge only) verschoben wird, einen SCL-Wert, anhand dieser der Informationsspeicher dann die Mail z.B. nach Junk-E-Mail

Einstellung der Mailboxrolle auf der Organisation

Für die Funktion, Mails anhand des SCL in den "Junk-E-Mail"-Ordner zu verschieben ist eine globale Konfiguration in der Organisation zuständig. (Default = 4 bzw. die von Exchange 2003 übernommene Einstellung)

Get-OrganizationConfig | Set-OrganizationConfig -SCLJunkThreshold:4

Damit wird eingestellt, ab welcher Stufe die Mails verschoben werden. Die höchste Zahl ist "9", womit die Funktion abgeschaltet wird. Eine Mail wird nur verschoben, wenn Sie einen höheren Wert hat, auch wenn in einigen Dokumentationen noch ein "größer oder gleich" steht, was aber falsch ist.. Mails ohne SCL werden ebenfalls nicht berücksichtigt.

Einstellungen pro Benutzer

Auch wenn es die Exchange 2007 Management Console noch nicht offenbart, so können auch beim Benutzer entsprechende Werte konfiguriert werden. Hier mal ein Auszug von "Get-Mailbox"

SCl Benutzereinstellungen

Die Konfiguration ist natürlich auch wieder nur per Powershell mit "SET-MAILBOX" möglich.

get-Mailbox | set-Mailbox -SCLJunkThreshold 4 -SCLJunkEnable $true

Eine Einstellung auf dem Benutzer überschreibt die Einstellungen auf der Organisation. Daher kann die Benutzerkonfiguration nicht nur die Werte "$true" und "$false" annehmen, sondern auch "$null".

Achtung:
Die SCL-Verarbeitung auf einem Postfach wird ausgesetzt, wenn das Postfach über seinem Quota ist.

Transport Regeln

Mit Exchange 2007 Transport Regeln kann man auf zwei Arten mit SCLs umgehen.

Denkbar ist natürlich, dass Sie auch komplett eigene Transportagenten entwickeln. Diese Funktion ist besonders hilfreich, wenn man einen vorgelagerten Spamschutz hat, welcher in einem Header die Spambewertung hinterlegt.

Exchange 2007 Antispam, Transportregeln und Spam Assasin

Viele Firmen nutzen schon Exchange 2007, aber betreiben z.B. SpamAssassin vor der Exchange Umgebung als vorgelagerten Spamschutz. Mit Exchange 2007 Transport Regeln und etwas Konfiguration können Sie Exchange Veranlassen, Mails mit einem bestimmten Spamrating auf dem Server nach "Junk-E-Mail" zu verschieben. Sie können mit SpamAssassin daher eine dreistufige Kette aufbauen:

Damit landen im Postfach die nicht als SPAM erkannten Mails und in Junk-E-Mail mögliche Spam-Nachrichten, welcher nicht abgelehnt oder in der Gateway-Quarantäne festgehalten wurden.

Die Konfiguration ist ganz einfach:

  1. SpamAsssin muss eingehende Mails mit einem Header kennzeichnen
    Kontrollieren Sie den Header einer heute bereits erhaltenen Mail und suchen Sie den Header "X-Spam-Score". Er sollte das Rating der Mail in "Sternen" enthalten und danach eventuell die Einzelbewertung der Filter. Wenn dies noch nicht so ist, dann müssen Sie SpamAssassin oder ihren Antispamfilter entsprechend anpassen.
  2. Transportregel einrichten
    Konfigurieren Sie nun in Exchange 2007 eine Transportregel, die alle Mails, die im Header "X-Spam-Score" z.B. 5 und mehr Sterne enthalten, einen SCL von 5 erhalten. Sie können natürlich im mehrere Transportregeln einrichten, die je nach Empfänger oder Headerinhalt unterschiedliche SCL-Werte 1-9 vergeben, aber sinnvoll ist dies nur, wenn ein Schwellwert nicht ausreicht und Empfänger gerne unterschiedliche Schwellwerte benötigen:


    Wichtig: Bei der Eingabe der "Textmuster" können reguläre Expressions genutzt werden. Allerdings hat bei mir ein "\*{5,}" nicht funktioniert. ein "\*\*\*\*\*" führte dann aber zum Ergebnis
  3. SCL-Verhalten des Store einstellen
    Wenn die überwiegende Anzahl an Postfächern "gleich" behandelt werden soll, dann ist eine Einstellung auf der Organisation meist ausreichend. "Ausreißer" nach oben oder Unten können Sie beim Benutzer abweichen konfigurieren. Entgegen der Beschreibung in der Exchange Hilfe muss die Mail einen höheren SCL haben und nicht "Größer/Gleich" sein. Ein SCL von 9 an dieser Stelle deaktiviert also die Logik, weil keine Mail einen SCL von 9,000001 haben kann.

Set-OrganizationConfig -SCLJunkThreshold 5

Zum Testen müssen sie nicht einmal eine SpamMail durch SpamAssassin jagen. Ein einfacher Test mit TELNET (siehe SMTP Telnet) reicht aus, da Sie auch hier den Header direkt mit übermitteln können.

HELO test
MAIL FROM:<absender@spamdomain.tld>
RCPT TO:<ihruser@ihredomain.tld>
DATA
Subject: Test mit 6 Sternen
X-Spam-Score: 6.38 (******) Filter, Filter, Filter
 
Spam
.

Exchange sollte diese Mail nun annehmen und anhand des Headers einen SCL setzen, der dann vom Informationsspeicher als hoch genug angesehen wird, um die Mail direkt in ihren Junk-E-Mail-Ordner zu legen. Ob allerdings die Empfänger etwas davon haben, immer mal wieder nach "Junk-E-Mail" zu schauen, ist fraglich. Ich persönlich würde lieber jede Mail, die ich nicht in den Posteingang zustellen werde, gleich vorne ablehnen, damit der entfernte Mailserver eine Unzustellbarkeit erzeugen kann.

Zwischenstatus

Wenn man all dies zusammenfasst, dann ist der Spamschutz in Exchange 2007 nicht sehr viel leistungsfähiger geworden, als die in Exchange 2003 bereits der Fall war. Die üblichen Filter durch RBL-Listen und die Analyse von Inhalten über den Contentscanner sind gängige Ansätze, um ziemlich viel Spam vorab schon zu filtern. Sehr lobenswert ist natürlich die Funktion, solche Nachrichten gar nicht erst anzunehmen und in eine Quarantäne zuzustellen oder zu löschen. Exchange lehnt hier die Mails auf SMTP-Level schon ab, wie ich es mit NoSpamProxy schon tue.

Allerdings fehlt dem Exchange Spamschutz immer noch die Funktion, um auch in größeren Umgebungen einen abgestuften flexiblen Spamschutz einzurichten. Auch die Empfängerprüfung sollte heute für jeden Mailserver und jede Firma zur Regel werden. Schade, dass Exchange diese Funktion nicht von Hause aus aktiviert hat. Vermutlich um all die Firmen zu schonen, die ein Relay zwischen Internet und Exchange betreiben.

Höherwertige Funktionen, wie z.B.: das "Lernen" von ausgehenden Verbindungen und eine entsprechende Nutzung dieses Wissens für eingehende Verbindungen sind nicht vorhanden. Dazu kommt, dass auch die RBL-Filter immer absolut wirken, d.h. wenn ihr Kommunikationspartner irrtümlich auf einer RBL-Liste steht, dann hilft es auch nicht, dass er ihnen eigentlich nur eine Antwort auf ihre Anfrage senden wollte.

Weitere Links

Keywords: Exchange2K7 Exchange 2007 Disclaimer