Inleiding
In dit document worden het UNIX-postvakformaat (mbox) en de toepassing ervan op Cisco Email Security Appliance (ESA) beschreven.
Voorwaarden en belangrijke overwegingen
- Zorg ervoor dat u begrijpt dat AsyncOS op de ESA UNIX mbox-indeling gebruikt bij het archiveren van berichten en in de actie
log() van berichtenfilters.
- Het mbox-formaat is ASCII-gebaseerd en niet binair.
- Er zijn meerdere varianten van het mbox-formaat, wat het ontleden kan bemoeilijken.
- AsyncOS maakt geen gebruik van de "Content-Length" header methode of een
Content-Length veld invoegen.
Overzicht van UNIX mbox-indeling
De UNIX mbox-indeling wordt door AsyncOS gebruikt wanneer berichten worden gearchiveerd of geregistreerd door middel van acties voor berichtenfilters. "Archive Message" is een extra configuratieoptie voor functies zoals IronPort Anti-Spam (IPAS), Anti-Virus (Sophos en McAfee), Advanced Malware Protection (AMP) en Graymail op de ESA.
De mbox-indeling is een platte-tekstindeling (ASCII) waarin een of meer e-mailberichten in één bestand worden opgeslagen. Berichten worden gescheiden met behulp van een specifiek patroon, waardoor het mogelijk is om individuele berichten te extraheren. Het formaat komt overeen met berichten die zijn overgedragen tussen mailgateways die voldoen aan RFC 2821.
Structuur van een mbox-bestand
- Berichtenscheidingsteken: Elk bericht begint met een regel die begint met "Van" (de ASCII-tekens F, r, o, m en een spatie).
- Velden na "Van": De volgende velden zijn:
- Envelope-sender: kan een echte mailbox, een dash (
-) of een andere tekenreeks zijn, afhankelijk van de toepassing die de mbox genereert.
- Datum: Ingevoegd door ESA in standaard UNIX asctime() formaat, altijd 24 karakters lang.
- Optionele gegevens: sommige mbox-varianten voegen meer velden toe na de datum.
- Veldscheiding: Deze velden worden gescheiden door een enkele spatie.
- Inhoud e-mailbericht: Volgt de scheidingslijn in het standaard RFC 2822-formaat (kopregels, lege regel, hoofdtekst).
Voorbeeld: één bericht in mbox-indeling
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--
Berichtscheiding en "Van" regelafhandeling
- Omdat veel toepassingen mbox-bestanden genereren, kan het formaat van de scheidingslijn "Van" variëren. U kunt "Van" echter altijd gebruiken als een betrouwbare berichtgrens.
- Er zijn ongeveer 20 varianten bekend voor velden die de scheider volgen, waardoor automatisch parsen een uitdaging is.
- Om verwarring te voorkomen, worden regels in de e-mailbody die beginnen met "Van" altijd aangevuld met een enkele ">". AsyncOS-logbestanden zullen een ">" prependeren voor elke regel die begint met een of meer ">"-tekens gevolgd door "Van".
Voorbeeld: citeren in mbox-bestanden
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
Berichteinde en parseren
- Het einde van een bericht wordt meestal gemarkeerd met een lege regel. AsyncOS bevat altijd deze regel, maar niet alle implementaties doen dat.
- Behandel bij het parseren het begin van een nieuwe scheidingslijn "Van" of het einde van het bestand als het einde van een bericht. Verwijder de lege regel indien aanwezig.
- Sommige varianten gebruiken een veld "Inhoud-Lengte" om berichtgrenzen te markeren, maar AsyncOS gebruikt deze methode niet.
Overzicht van de belangrijkste punten
- AsyncOS gebruikt de standaard UNIX mbox-indeling voor het archiveren en registreren van berichten.
- De mbox-indeling is ASCII, sluit berichten aan en gebruikt "Van" -lijnen als scheidingstekens.
- AsyncOS zorgt ervoor dat regels in berichten die beginnen met "Van" worden aangehaald met ">" om parsfouten te voorkomen.
- Het ontleden van mbox-bestanden vereist het verwerken van tal van varianten, vooral met berichtscheidingslijnen.
- Verwacht of vertrouw niet op een veld "Inhoud-Lengte" in door AsyncOS gegenereerde mbox-bestanden.