Einleitung
In diesem Dokument werden das UNIX-Postfachformat (mbox) und seine Anwendung auf der Cisco E-Mail Security Appliance (ESA) beschrieben.
Voraussetzungen und wichtige Überlegungen
- Stellen Sie sicher, dass AsyncOS auf der ESA beim Archivieren von Nachrichten und bei der
log()-Aktion von Nachrichtenfiltern das UNIX-Postfachformat verwendet.
- Das mbox-Format ist ASCII-basiert und nicht binär.
- Es gibt mehrere Varianten des mbox-Formats, die das Parsen erschweren können.
- AsyncOS verwendet nicht die Headermethode "Content-Length" und fügt kein Feld
Content-Length ein.
Übersicht über das UNIX-Postfachformat
Das UNIX-Postfachformat wird von AsyncOS verwendet, wenn Nachrichten archiviert oder durch Nachrichtenfilteraktionen protokolliert werden. "Archive Message" ist eine zusätzliche Konfigurationsoption für Funktionen wie IronPort Anti-Spam (IPAS), Anti-Virus (Sophos und McAfee), Advanced Malware Protection (AMP) und Graymail auf der ESA.
Das mbox-Format ist ein Nur-Text-Format (ASCII), in dem eine oder mehrere E-Mail-Nachrichten in einer einzigen Datei verknüpft gespeichert werden. Nachrichten werden nach einem bestimmten Muster getrennt, sodass einzelne Nachrichten extrahiert werden können. Das Format entspricht den Nachrichten, die zwischen RFC 2821-kompatiblen Mail-Gateways übertragen wurden.
Struktur einer mbox-Datei
- Nachrichtentrennzeichen: Jede Nachricht beginnt mit einer Zeile, die mit "From " beginnt (die ASCII-Zeichen F, r, o, m und ein Leerzeichen).
- Felder nach "Von ": Die nächsten Felder sind:
- Envelope-sender: Kann eine echte Mailbox, ein Bindestrich (
-) oder eine andere Zeichenfolge sein, je nachdem, welche Anwendung die mbox generiert.
- Datum: Eingefügt von ESA im Standard-UNIX asctime() Format, immer 24 Zeichen lang.
- Optionale Daten: Einige mbox-Varianten fügen nach dem Datum weitere Felder hinzu.
- Feldtrennung: Diese Felder sind durch ein einzelnes Leerzeichen voneinander getrennt.
- E-Mail-Nachrichteninhalt: Folgt der Trennlinie im RFC 2822-Standardformat (Kopfzeilen, leere Linie, Text).
Beispiel: Einzelne Nachricht im Postfachformat
From Adam@Outside.COM Sun Oct 17 12:03:20 2004
Received: from mail.outside.com (192.35.195.200)
by smtp.alpha.com with ESMTP; 17 Oct 2004 12:03:20 -0700
X-IronPort-AV: i="3.85,147,1094454000";
v="EICAR-AV-Test'0'v";
d="scan'208"; a="86:adNrHT37924848"
X-IronPort-RCPT-TO: alan@mail.example.com
From: Adam@Outside.COM
To: Alan Alpha <Alan@mail.example.COM>
Subject: Exercise 7a Anti-Virus Scanning
Reply-To: Adam Alpha <adam@outside.com>
Date: Sun, 17 Oct 2004 12:02:39 -0700
MIME-version: 1.0
Content-type: multipart/mixed; boundary="IronPort"
--IronPort
Content-type: text/plain; format=flowed; charset=us-ascii
Content-transfer-encoding: 7bit
Blah blah blah blah blah
Blah blah blah blah blah
Blah blah blah blah blah
...
--IronPort
Content-type: text/plain
Content-transfer-encoding: 7bit
Content-disposition: inline
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*">X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
--IronPort--
Meldungstrennung und Behandlung von Ausgangsleitungen
- Da viele Anwendungen mbox-Dateien generieren, kann das Format der Trennlinie "Von " variieren. Sie können jedoch jederzeit "From " als verlässliche Nachrichtengrenze verwenden.
- Es gibt ca. 20 bekannte Varianten für Felder, die dem Separator folgen, was das automatische Parsen schwierig macht.
- Um Verwirrung zu vermeiden, wird den Zeilen im E-Mail-Text, die mit "From" beginnen, immer ein einzelnes ">" vorangestellt. AsyncOS-Protokolldateien stellen einer beliebigen Zeile, die mit einem oder mehreren ">"-Zeichen beginnt, gefolgt von "Von" ein ">" voran.
Beispiel: Anführungszeichen in mbox-Dateien
From jtrumbo@example1.com Sun Dec 12 12:27:33 2004
X-IronPort-RCPT-TO: trumbo@example1.com
From: jtrumbo@example1.com
To: trumbo@example2.com
Subject: Quote this, if you dare
Date: Sun, 12 Dec 2004 12:28:00 -0700
The following line is just From
>From A From Line
The following line has quoted >From
>>From A >From Line
The following line has many >>>>From
>>>>>From This line has 4 > characters before From
And this is the last line
Nachrichtenende und -analyse
- Das Ende einer Nachricht wird in der Regel durch eine leere Zeile gekennzeichnet. AsyncOS enthält immer diese Zeile, aber nicht alle Implementierungen tun dies.
- Behandeln Sie beim Parsen den Anfang einer neuen Trennlinie vom Typ "From " oder das Ende der Datei als Ende einer Nachricht. Entfernen Sie ggf. die leere Leitung.
- Einige Varianten verwenden ein Feld "Content-Length", um Nachrichtengrenzen zu markieren, AsyncOS verwendet diese Methode jedoch nicht.
Zusammenfassung der wichtigsten Punkte
- AsyncOS verwendet das UNIX-Standardmbox-Format für die Archivierung und Protokollierung von Nachrichten.
- Das mbox-Format ist ASCII, verkettet Nachrichten und verwendet "From "-Zeilen als Trennzeichen.
- AsyncOS stellt sicher, dass Zeilen in Nachrichten, die mit "From" beginnen, mit ">" in Anführungszeichen gesetzt werden, um Parsing-Fehler zu vermeiden.
- Das Analysieren von mbox-Dateien erfordert die Behandlung zahlreicher Varianten, insbesondere mit Trennlinien für Nachrichten.
- Erwarten oder verlassen Sie sich nicht auf ein Feld "Content-Length" in von AsyncOS generierten Mbox-Dateien.