Introducción
En este documento se describe el formato del buzón Unix (mbox) y cómo se relaciona con el uso en Cisco Email Security Appliance (ESA).
¿Cuál es el formato de UNIX mbox (buzón)?
AsyncOS utiliza el formato mbox de UNIX cuando los mensajes se archivan y se registran en la acción de log() del filtro de mensajes. "Archivar mensaje" es una opción de configuración adicional para Ironport Anti-spam (IPAS), antivirus (Sophos y McAfee), protección frente a malware avanzado (AMP) y graymail en el ESA.
El formato Mbox es un formato de archivo con formato ASCII (no binario) que puede contener cero o más mensajes de correo. Los mensajes se concatenan en el archivo mbox y se pueden separar en función de cadenas específicas del archivo. Este formato es idéntico al mensaje, ya que se transfieren entre gateways de correo compatibles con RFC 2821.
Cada mensaje en formato mbox comienza con una línea que comienza con la cadena "From" (caracteres ASCII F, r, o, m y espacio). Las líneas "De" van seguidas de varios campos más: remitente-sobre, fecha y (opcionalmente) más datos.
El primer campo después de la cadena "De" es el remitente-sobre del mensaje. Dependiendo de la aplicación que cree el archivo mbox, el remitente del sobre podría estar presente como un buzón real o podría ser otro carácter o cadena. Por lo general, encontrará que un "-" (guión de un solo carácter) reemplaza al remitente del sobre si el remitente del sobre real no está disponible o no se conoce. El campo de fecha insertado por el ESA tiene el formato estándar UNIX asctime() y siempre tiene una longitud de 24 caracteres. En algunos archivos mbox escritos por implementaciones que no son de AsyncOS, la información adicional sigue el sello de fecha. Estos tres campos están separados por un único espacio.
Aquí hay un ejemplo de un archivo mbox con un solo mensaje:
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
Subject: Exercise 7a Anti-Virus Scanning
Reply-To: Adam Alpha
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--
Cuando se analizan los archivos con formato mbox, es deseable no leer demasiada semántica en la línea "De" que separa los mensajes. Debido a que muchas utilidades diferentes escriben archivos mbox, hay una variación considerable en estas líneas. Sin embargo, la línea "De " siempre se puede utilizar como línea de separación de mensajes para indicar de manera confiable que un nuevo mensaje ha comenzado en el archivo mbox. En total, hay unos 20 formatos conocidos para las cadenas después del separador de mensajes "De", lo que generalmente hace que sea muy difícil analizarlas.
Después de la línea "De" hay un mensaje de correo electrónico en formato RFC 2822, con una serie de encabezados de cuerpo de mensaje seguidos de una línea en blanco seguida de contenido de cuerpo de mensaje adicional.
Para asegurarse de que los mensajes están correctamente separados, las líneas que comienzan con la cadena "From" siempre van precedidas por un único ">". Varias variantes diferentes de archivos mbox manejan líneas que comienzan con ">Desde" de manera diferente. En las primeras implementaciones de aplicaciones que escribían archivos mbox, estas líneas no se citaban. Los archivos de registro de AsyncOS siempre antepondrán un ">" a las líneas que comienzan con uno o más caracteres ">" seguidos de "From".
A continuación se muestra un ejemplo de un archivo mbox que contiene un mensaje con líneas que contienen las cadenas iniciales "From", ">From" y ">>>From":
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
El final de un mensaje en un archivo con formato mbox se señala tradicionalmente mediante una línea en blanco. Sin embargo, esto no siempre está presente (aunque AsyncOS lo coloca allí). Cuando se analiza un archivo con formato mbox, debe indicar el final de un mensaje ya sea por el inicio de un nuevo mensaje (elimine la línea en blanco si hay alguna) o por el final del archivo.
Otra variante del formato mbox pedía que la longitud del mensaje se señalara en un campo "Content-Length" dentro del encabezado del mensaje. Ese formato no utilizó presupuestos de línea "De". AsyncOS no utiliza este formato y no inserta un campo Content-Length.