Einleitung
In diesem Dokument wird beschrieben, wie Sie eine E-Mail-Schleife auf der E-Mail-Security-Appliance (ESA) identifizieren.
Hintergrundinformationen
Mail-Schleifen können durch Nachrichten mit derselben Message-ID angezeigt werden, die mehr als dreimal eingeprägt wurden. Mail-Schleifen können Symptome wie hohe CPU, langsame Zustellung und allgemeine Leistungsprobleme verursachen. In der Regel weisen mehrfach injizierte Nachrichten-IDs auf Schleifen hin, werden aber manchmal aufgrund von Problemen mehr als einmal injiziert, oder es kann sich um einen schlampigen Spammer handeln, der dieselbe Spam-Nachricht mit derselben Nachrichten-ID immer wieder injiziert.
In der Regel wird ein Mail-Loop durch ein E-Mail-Infrastrukturproblem verursacht, das dieselbe Nachricht oder denselben Satz von Nachrichten endlos im Netzwerk sendet, vom Mail-Server zum Mail-Server. Diese Meldungen können sich zwar für eine sehr lange Zeit auf diese Weise unterhalten, es ist jedoch weder für die Netzwerkbandbreite noch für die ESA-Verarbeitungskosten von Vorteil.
Lösung
Eine Mail-Schleife zu identifizieren, wenn Sie vermuten, dass dies das Problem sein könnte, ist normalerweise ziemlich einfach, obwohl Sie es augenzwinkern müssen.
Melden Sie sich bei der Kommandozeile des Systems an, und geben Sie einen der folgenden Befehle oder beide Befehle aus, damit Sie von den folgenden Vorteilen profitieren:
grep "Subject" mail_logs
grep "Message-ID" mail_logs
Insbesondere für die Suche nach Message-ID, wenn Sie wiederkehrende Instanzen von genau der gleichen ID sehen, dann wissen Sie, dass Sie eine Mail-Schleife haben. Manchmal reicht dies jedoch nicht aus, da einer der Mail-Server, der dieselbe Nachricht zurückführt, den Nachrichten-ID-Header möglicherweise hilfreich ändern oder entfernen kann. Wenn Sie also keine identifizierbaren Informationen über die Message-ID erhalten, versuchen Sie es mit der Subject Check.
Angenommen, Sie haben es geschafft, die Schleifennachricht anhand der Message-ID zu finden, dann möchten Sie auch andere Informationen über die Nachricht und ihre übergeordnete Verbindung (ICID) herausfinden. Mithilfe der Message-ID und einer MID in derselben Protokollzeile können Sie Folgendes ausführen:
grep -e "MessageID_I_found" -e "MID 123456" mail_logs
In Anbetracht der resultierenden Ausgabe können Sie dort die relevanten ICID und DCID finden und Folgendes durchführen:
grep -e "MessageID_I_found" -e "MID 123456" -e "ICID 1234567" -e "DCID 2345767" mail_logs
Sie sollten nun über die vollständige Verbindungstransaktion verfügen und sehen können, woher sie stammt und wohin sie geliefert wurde (falls dies bereits geschehen ist). Sobald Sie die Schleifenmeldung identifiziert haben, ist Ihr nächster Schritt, sich die Meldung anzusehen, damit Sie das Problem beheben können. Ohne die Ursache der Schleife zu beheben, ist es wahrscheinlich, dass diese Nachricht und andere weiterhin Schleife oder dass das Problem bald wieder auftreten.
Erstellen Sie einen Nachrichtenfilter, ähnlich dem hier:
loganddrop_looper:
if(header("Message-ID") == "MessageID_I_found") {
archive("looper");
drop();
}
Bestätigen Sie diese Änderung, und geben Sie den folgenden Befehl aus, um die Nachricht auszuchecken:
tail looper
Mit den Informationen, die Sie über das entfernte System durch das Betrachten der Mail-Protokolle gewinnen können, und anderen Informationen, die Sie durch das Betrachten der Nachricht selbst gewinnen können, sollten Sie in der Lage sein, zu bestimmen, wo Ihr Problem ist.
Wie können Sie verhindern, dass E-Mail-Schleifen auftreten?
In komplexen Umgebungen kann dies schwierig sein - zu verstehen, wie E-Mail-Verkehr in Ihrer Umgebung und wie eine neue Netzwerkänderung, entweder auf der ESA oder zu einem anderen Gerät, wird sich auf den Datenverkehr ist der Schlüssel. Eine häufige Ursache für auslaufende Mail-Schleifen ist das Entfernen des Received-Headers. Die ESA erkennt und stoppt automatisch eine Mail-Schleife, wenn sie 100 empfangene Header in einer Nachricht sieht. Die ESA erlaubt jedoch das Entfernen dieser Header, was häufig zu einer fehlerhaften Mail-Schleife führt. Deaktivieren Sie den Empfangs-Header nicht, oder entfernen Sie ihn, es sei denn, es gibt einen * wirklich* guten Grund dafür.
Im Folgenden finden Sie ein Filterbeispiel, das helfen kann, eine Mail-Schleife zu verhindern oder zu beheben:
External_Loop_Count:
if (header("X-ExtLoop1")) {
if (header("X-ExtLoopCount2")) {
if (header("X-ExtLoopCount3")) {
if (header("X-ExtLoopCount4")) {
if (header("X-ExtLoopCount5")) {
if (header("X-ExtLoopCount6")) {
if (header("X-ExtLoopCount7")) {
if (header("X-ExtLoopCount8")) {
if (header("X-ExtLoopCount9")) {
notify ('joe@example.com');
drop();
}
else {insert-header("X-ExtLoopCount9", "from
$RemoteIP");}}
else {insert-header("X-ExtLoopCount8", "from $RemoteIP");}}
else {insert-header("X-ExtLoopCount7", "from $RemoteIP");}}
else {insert-header("X-ExtLoopCount6", "from $RemoteIP");}}
else {insert-header("X-ExtLoopCount5", "from $RemoteIP");}}
else {insert-header("X-ExtLoopCount4", "from $RemoteIP");}}
else {insert-header("X-ExtLoopCount3", "from $RemoteIP");}}
else {insert-header("X-ExtLoopCount2", "from $RemoteIP");}}
else {insert-header("X-ExtLoop1", "1"); }