Si algunos de nuestros foros, manuales, ALDOS, paquetería o proyectos te han resultado de ayuda, apreciaremos mucho nos apoyes con un donativo.

Configuración de MailScanner y ClamAV con Sendmail.

Configuración de MailScanner y ClamAV con Sendmail.

Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: http://www.alcancelibre.org/
Jabber ID: darkshram@jabber.org

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1

© 1999-2007 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

Introducción.

Acerca de MailScanner.

MailScanner, un robusto servicio que se encarga de examinar el correo electrónico e identificar y etiquetar correo masivo no solicitado (Spam), así como también los fraudes electrónicos (Phishing). Combinado con ClamAV, un poderoso y versátil anti-virus libre para GNU/Linux y otros sabores de Unix, resultan una de las soluciones más robustas para la protección contra correo masivo no solicitado, fraudes electrónicos, virus, gusanos y troyanos desde el servidor de correo electrónico.

MailScanner tiene las siguiente características:

•  Distribuido bajo los términos de la Licencia Publica General GNU versión 2.
•  Revisa el correo electrónico en busca de virus utilizando cualquier combinación de entre más de una docena de distintos programas anti-virus.
•  Automáticamente actualiza todo los anti-virus instalados cada hora.
•  Identifica alrededor del 95% del correo masivo no solicitado (Spam) utilizando diferentes técnicas, incluyendo altamente avanzadas técnicas de heurística (capacidad de un sistema para realizar de forma inmediata innovaciones positivas para sus fines).
•  El correo identificado como peligroso puede ser etiquetado, rechazado, descartado, archivado o reenviado hacia otras direcciones para su inspección por los administradores.
•  Puede eliminar el contenido gráfico de correo masivo no solicitado (Spam) de tipo pornográfico protegiendo a los usuarios de contenido obsceno.
•  Verifica el coreo electrónico en busca de conocidas vulnerabilidades para las más populares aplicaciones de correo electrónico y corrige automáticamente los mensajes durante el proceso cuando sea posible poniendo en cuarentena las secciones peligrosas de contenidas en los mensajes.
•  Es altamente escalable. Un servidor puede procesar más de millón y medio de mensajes de correo por día.
•  Es robusto. Se protege a si mismo contra ataques de Denegación de Servicio (DoS) y fuga de recursos del sistema operativo.
•  Es altamente configurable, proporciona a los Proveedores de Servicios de Internet (ISP o Internet Service Provider y Proveedores de Servicios de Aplicaciones (ASP o Application Service Provider) la posibilidad de utilizar miles de diferentes reglas y configuraciones para cualquier combinación de usuarios y dominios.
•  Es fácil de instalar y configurar puesto que sus opciones predefinidas permiten trabajar al servicio de correo sin complicaciones.

URL: http://www.mailscanner.info/.

Acerca de ClamAV.

ClamAV tiene las siguiente características:

•  Distribuido bajo los términos de la Licencia Publica General GNU versión 2.
•  Cumple con las especificaciones de familia de estándares POSIX (Portable Operating System Interface for UNIX o interfaz portable de sistema operativo para Unix).
•  Exploración rápida.
•  Detecta más de 44 mil virus, gusanos y troyanos, incluyendo virus para MS Office.
•  Capacidad para examinar contenido de archivos ZIP, RAR, Tar, Gzip, Bzip2, MS OLE2, MS Cabinet, MS CHM y MS SZDD.
•  Soporte para explorar archivos comprimidos con UPX, FSG y Petite.
•  Avanzada herramienta de actualización con soporte para firmas digitales y consultas basadas sobre DNS.

URL: http://www.clamav.net/

Acerca de SpamAssassin.

SpamAssassin es un equipamiento lógico que utiliza un sistema de puntuación, basado sobre algoritmos de tipo genético, para identificar mensajes que pudieran ser sospechosos de ser correo masivo no solicitado, añadiendo cabeceras a los mensajes de modo que pueda ser filtrados por el cliente de correo electrónico o MUA (Mail User Agent).

URL: http://spamassassin.apache.org/

Procedimientos.

Equipamiento lógico necesario.

 mailscanner >= 4.50  clamav >= 0.88  spamAssassin >= 3.0.4
 perl-Convert-BinHex  perl-MailTools  perl-MIME-tools
 perl-IO-stringy  perl-TimeDate  perl-Net-CIDR
 perl-Compress-Zlib  perl-Convert-ASN1  perl-Archive-Zip
 tnef

Si dispone de un sistema con Red Hat™ Enterprise Linux 4, CentOS 4 o White Box Enterprise Linux 4, puede utilizar el siguiente depósito yum:

[alcance-libre]
name=Alcance Libre para Enterprise Linux 4
baseurl=http://www.alcancelibre.org/al/el/4/
gpgkey=http://www.alcancelibre.org/al/AL-RPM-KEY

Una vez configurado lo anterior, solo bastará utilizar:

yum -y install mailscanner clamav clamav-update clamav-data-empty

Lo anterior instalará mailscanner y clamav junto con todas las dependencias que seas necesarias.

También podrá instalar MailScanner descargando la más reciente versión desde http://www.mailscanner.info/ en donde encontrará un paquete *.tar.gz en cuyo interior hay paquetes SRPM que podrá compilar e instalar en el orden indicado siguiendo las instrucciones del archivo README. De igual modo podrá proceder con clamav desde http://clamav.net/

Configuración de MailScanner.

Utilice el editor de texto de su predilección y disponga a modificar /etc/MailScanner/MailScanner.conf con la finalidad de configurar los siguiente parámetros:

Lenguaje de los mensajes de sistema.

Puede configurar MailScanner para que devuelva los mensajes de sistema en español. Localice lo siguiente:

%report-dir% = /etc/MailScanner/reports/en

Cambie por:

%report-dir% = /etc/MailScanner/reports/es

Identificación de la organización.

Solo es de carácter informativo y sirve para identificar si un mensaje infectado pertenece a un servidor u otro. Localice lo siguiente:

%org-name% = yoursite

Cambie por:

%org-name% = empresa

El parámetro %org-long-name% es utilizado para definir que mostrar en la firma localizada al final de los reportes enviados por MailScanner. Puede incluir cuanto texto sea necesario, e incluso definir varias líneas utilizando secuencias \n.

%org-long-name% = Empresa Imaginaria S.A. de C.V.

El parámetro %web-site% se utiliza para definir el URL de la empresa, mismo que también se incluye en la firma al final de los reportes que envía MailScannmer. Se recomienda se utilice una URL hacia un documento que explique el porque se han rechazado/filtrado mensajes o bien información de contacto.

%web-site% = http://www.empresa-imaginaria.com.mx/info-correo.html

Adjuntos en formato de texto enriquecido.

Algunas versiones de Microsoft Outlook generan adjuntos en formato de Texto Enriquecido (Rich Text Format) que no pueden ser examinados. El valor predefinido es no ya que de otro modo habría un alto riesgo de permitir la entrada de virus a través de este tipo de mensajes. Sin embargo muchos usuarios de Outlook pueden protestar al respecto por carecer una enfoque apropiado acerca de la seguridad. ¿Realmente vale la pena el riesgo? Si los usuarios están de acuerdo en que recibir un mensaje con colores y letras bonitos es más importante que la seguridad, puede cambiarse el valor a yes.

Deliver Unparsable TNEF = no

Adicionalmente puede, aunque no se recomienda, cambiar el valor de deny por allowen la línea de configuración correspondiente para adjuntos con extensión *.dat en el archivo /etc/MailScanner/filename.rules.conf. En este archivo se define lo que se quiera denegar si los mensajes incluyen ciertos tipos de archivos adjuntos que se consideran de alto riesgo. El formato de este archivo consiste en definir una regla (que puede ser allow, deny o deny+delete), una expresión regular a filtrar, texto a incluir en la bitácora del sistema y el texto a utilizar en el reporte para el usuario, todo separado por tabuladores y en una sola línea por cada regla.

deny     winmail.dat$     Windows security vulnerability     No Outlook Rich Text Format messages due to security hole, use HTML instead

Lo anterior rechaza los mensajes que incluyan adjuntos *.dat, es decir mensajes de Outlook en Formato de Texto Enriquecido (Outlook Rich Text Format), devolviendo un mensaje de error en inglés que diría: «No Outlook Rich Text Format messages due to security hole, use HTML instead». Se puede poner el mensaje al español:

deny     winmail.dat$     Windows security vulnerability     No aceptamos mensajes en Formato de Texto Enriquecido de Outlook, por favor utilice HTML.

Lo anterior rechaza los mensajes que incluyan adjuntos *.dat, es decir mensajes de Outlook en Formato de Texto Enriquecido (Outlook Rich Text Format), devolviendo un mensaje de error en inglés que diría: «No aceptamos mensajes en Formato de Texto Enriquecido de Outlook, por favor utilice HTML.».

Definir anti-virus a utilizar.

MailScanner puede detectar automáticamente los anti-virus a utilizar dejando el valor auto en el parámetro Virus Scanners, de modo que detectará cualquiera de los siguientes:

• Sophos. • Mcafee. • Command.
• Bitdefender. • DRweb. • Kaspersky.
• eTrust. • Inoculate. • Inoculan.
• Nod32. • F-Secure. • F-Prot.
• Panda. • Rav. • Antivir.
• ClamAV. • Trend. • Norman.
• Css. • AVG. • Vexira.

Para agilizar el inicio de MailScanner se pueden definir los anti-virus necesarios. ClamAV es el anti-virus recomendado por tratarse de un equipamiento lógico libre.

Localice lo siguiente en el archivo /etc/MailScanner/MailScanner.conf:

Virus Scanners = none

Cambie por:

Virus Scanners = clamav

Puede utilizar más de un anti-virus si así lo considera conveniente. Solo necesitará instalar las versiones apropiadas para el sistema operativo que utilice y añadirlos en MailScanner como lista horizontal separada por espacios. Ejemplo:

Virus Scanners = clamav mcafee sophos trend

¿Poner en cuarentena los mensajes infectados o no?

Si decide no poner en cuarentena los elementos adjuntos infectados en los mensajes de correo electrónico y prefiere eliminar estos adjuntos inmediatamente después de ser procesados, localice lo siguiente:

Quarantine Infections = yes

Cambie por:

Quarantine Infections = no

Permitir mensajes con etiqueta Iframe, Form y Script.

Las etiquetas iframe se utilizan para cargar una página empotrada dentro de un marco. Lamentablemente esto representa un riesgo muy alto e innecesario debido a que un mensaje de correo electrónico podría no contener material dañino, pero tal vez el la página que cargue el marco que si lo contenga. Actualmente se considera el enviar correo electrónico utilizando etiquetas iframe como poco ético por todos los riesgos que conlleva.

Las opciones permitidas son:

• yes: Permite la etiqueta en el mensaje.
• no: elimina los mensajes que contengan la etiqueta.
• disarm: Permite las etiquetas pero impide que éstas funcionen.

El valor predeterminado es disarm.

Allow IFrame Tags = disarm

Lo mismo aplica para las etiquetas form, que pueden permitir la recolección de datos desde el mensaje de correo electrónico con ayuda de la ingenuidad del usuario o bien la ejecución de código peligroso a través de guiones escritos en JavaScript a través de la etiqueta script.

Allow Form Tags = disarm
Allow Script Tags = disarm

Control de Spam.

De modo predefinido está activo el soporte de exploración de correo en búsqueda de correo masivo no solicitado (Spam).

Spam Checks = yes

Quienes se dedican al envío de correo masivo no solicitado han aprendido que pueden hacer que su mensaje pase los filtros enviando un mensaje con muchos destinatarios, uno de los cuales podría tener configurado tener todo en lista blanca en las opciones de SpamAssassin en el directorio de inicio del usuario. De este modo, si un mensaje llega con más de un número determinado de destinatarios (20 de modo predefinido), éste se será tratado como cualquier otro mensaje sin aún si el destinatario ha decidido poner todo en lista blanca o si el remitente está en la lista blanca en el archivo /etc/MailScanner/rules/spam.whitelist.rules.

Ignore Spam Whitelist If Recipients Exceed = 20

A través de DNSBL o listas negras.

MailScanner permite también realizar filtrado de correo contra listas negras como SpamCop y Spamhaus. Si ya utiliza los DNSBL o listas negras desde Sendmail, no active esta funcionalidad en MailScanner para no duplicar las consultas hacia los DNSBL.

Modifique el archivo /etc/MailScanner/spam.lists.conf y defina o confirme las listas negras a utilizar

ORDB-RBL relays.ordb.org.
#
# spamhaus.org sbl.spamhaus.org.
# spamhaus-XBL xbl.spamhaus.org.
# combinación de las dos anteriores:
SBL+XBL sbl-xbl.spamhaus.org.
#
spamcop.net bl.spamcop.net.
NJABL dnsbl.njabl.org.
SORBS dnsbl.sorbs.net.

Localice en el archivo /etc/MailScanner/MailScanner.conf lo siguiente:

Spam List = ORDB-RBL SBL+XBL # MAPS-RBL+ costs money (except .ac.uk)

Cambie por:

Spam List = ORDB-RBL SBL+XBL spamcop.net NJABL SORBS

A través de SpamAssassin.

MailScanner puede echar mano de SpamAssassin para una más eficiente detección de correo masivo no solicitado. Puede activarse o desactivarse esta funcionalidad a través del parámetro Use SpamAssassin asignando yes o no.

Use SpamAssassin = yes

SpamAssassin utiliza un sistema de calificación para etiquetar o no como correo masivo no solicitado. Se asigna un valor numérico a partir de 1 (valor recomendado es 6), con o sin decimales, para el parámetro Required SpamAssassin Score. Cada vez que se identifica en un mensaje contiene alguna característica que pudiera clasificarlo como correo masivo no solicitado, se asignan fracciones de punto que se van sumando. Cuando un mensaje rebasa el valor asignado para Required SpamAssassin Score éste es etiquetado de inmediato como correo masivo no solicitado.

Required SpamAssassin Score = 6

Puede especificarse también a través del parámetro High SpamAssassin Score que los mensajes que rebasen la puntuación establecido como valor de este se eliminen directamente en lugar de solo etiquetarlos como correo masivo no solicitado. El valor prefinido (y recomendado) es 10.

High SpamAssassin Score = 10

El parámetro Spam Actions define que política a aplicar para el correo electrónico que se clasifica como Spam, calificado a partir del valor definido en Required SpamAssassin Score, pero inferior al valor definido a High SpamAssassin Score. El parámetro High Scoring Spam Actions se utiliza para definir la política a aplicar para el correo electrónico que se clasifica como Spam, calificado a partir del valor definido en High SpamAssassin Score. Pueden utilizarse combinaciones de los siguientes valores:

deliverEntrega del mensaje de modo normal.
deleteEliminar el Mensaje.
bounceEnvía un masaje de rechazo al remitente. Este valor solo puede utilizarse con el parámetro Spam Actions, no puede utilizarse con el parámetro High Scoring Spam Actions.
storeAlmacenar el mensaje en el directorio de cuarentena.
forward usuario@dominio.comReenviar copia del mensaje a usuario@dominio.com
striphtmlConvierte el contenido HTML a texto simple. Se requiere especificar el valor deliver para que tenga efecto.
attachmentConvierte el mensaje a adjunto, de modo que el usuario tendrá que realizar un paso adicional para mirar el contenido.
notifySe envía una breve notificación al usuario que le indica que no le fue entregado un mensaje por haber sido clasificado como correo masivo no solicitado, permitiendo solicitar recuperar el mensaje si acaso éste fuese un mensaje esperado.
header "nombre: valor"Añade la cabecera con cualquier nombre (sin espacios) con el valor especificado.

Suponiendo se aplicarán las siguientes políticas:

• Si el mensaje es calificado al menos el valor definido en Required SpamAssassin Score, pero inferior al valor definido en High SpamAssassin Score, se entregará al usuario como mensaje adjunto y añadirá la cabecera "X-Spam-Status: Yes".
• Si el mensaje es calificado al menos con el valor definido en High SpamAssassin Score, se eliminará automáticamente.

Los valores para Required SpamAssassin Score y High SpamAssassin Score coresponderían del siguiente modo:

Spam Actions = deliver attachment header "X-Spam-Status: Yes"
High Scoring Spam Actions = delete

Listas Blancas.

Pueden especificarse listas blancas de direcciones o nombres de dominio que no se desee etiqueten como correo masivo no solicitado (Spam) en el archivo /etc/MailScanner/rules/spam.whitelist.rules del siguiente modo, donde yes signficará que el correo proveniente de dichas direcciones nunca se etiquetará como correo masivo no solicitado (Spam):

# This is where you can build a Spam WhiteList
# Addresses matching in here, with the value
# "yes" will never be marked as spam.
#From:          152.78.         yes
#From:          130.246.        yes
FromOrTo:       default         no
From:		201.161.1.226	yes
From:		192.168.0.	yes

En el ejemplo anterior, todo el correo proveniente de 201.161.1.226 y cualquier dirección IP de la red 192.168.0.0/24 quedará exento de etiquetarse como correo masivo no solicitado (Spam).

Configuración de servicios.

Es necesario actualizar manualmente la primera vez y de manera inmediata la base de datos de firmas ejecutando simplemente freshclam desde cualquier terminal como root.

freshclam

A fin de mantener actualizada la base de datos de firmas digitales, es necesario editar el archivo /etc/sysconfig/freshclam y comentar la línea que desactiva la actualización automática a través del servicio crond:

### !!!!! REMOVE ME !!!!!!
### REMOVE ME: By default, the freshclam update is disabled to avoid
### REMOVE ME: network access without prior activation
# FRESHCLAM_DELAY=disabled-warn # REMOVE ME

En adelante, un registro en el servicio crond se encargará de su actualización y mantenimiento diario (archivo /etc/cron.d/clamav-update).

Se debe desactivar y detener el servicio de sendmail, el cual será controlado en adelante por el servicio MailScanner:

chkconfig sendmail off
chkconfig MailScanner on
service sendmail stop
service MailScanner start

Comprobaciones.

Utilice cualquier cliente de correo electrónico y envíe éste como adjunto hacia una cuenta de correo loca el archivo test2.zip, incluido en el directorio de MailScanner del disco de extras de curso de Alcance Libre. El procedimiento deberá entregar el mensaje al destinatario con el título alterado indicando que el mensaje contenía un virus y en el interior un texto que indica que el adjunto fue removido y eliminado.

Si quiere hacer una prueba rápida, utilice mutt para enviar un mensaje de prueba ejecutando lo siguiente, suponiendo que hay un usuario denominado como «fulano» en el sistema:

echo "Prueba Anti-virus" | mutt -a test2.zip -s "Prueba Anti-virus" fulano

Lo anterior deberá devolver al destinatario el siguiente mensaje de correo electrónico:

Asunto: {Virus?} Prueba Anti-virus
De: "Fulano" <fulano@localhost.localdomain >
Fecha: Mie, 18 de Agosto de 2004, 10:31 pm
Para: "Fulano" <fulano@localhost.localdomain >
Atención: Este mensaje contenía uno o más anexos 
que han sido eliminados
Atención: (test2.zip, clamtest).
Atención: Por favor, lea el(los) anexo(s) "empresa-Attachment-Warning.txt"
para más información.
Prueba Anti-virus

El administrador del servidor de correo recibirá en cambio lo siguiente:

Asunto: Virus Detected
De: "MailScanner" <postmaster@localhost.localdomain>
Fecha: Mie, 18 de Agosto de 2004, 10:31 pm
Para: postmaster@localhost.localdomain

The following e-mails were found to have:Virus Detected
Sender: root@localhost.localdomain
IP Address: 127.0.0.1
 Recipient: fulano@localhost.localdomain
 Subject: Prueba Anti-virus
 MessageID: i7J3VTXF004487
 Informe: ClamAV: clamtest contains ClamAV-Test-Signature 
 Informe: ClamAV: test2.zip contains ClamAV-Test-Signature 
 ClamAV: clamtest contains ClamAV-Test-Signature -- 
MailScanner
Email Virus Scanner
www.mailscanner.info

Si todos los procedimientos de comprobación por algún motivo no funcionan, por favor verifique la sintaxis en todas las líneas modificadas en el archivo /etc/MailScanner/MailScanner.conf, como seguramente podrá leer se indica en la bitácora localizada en el archivo /var/log/maillog.y que también puede mostrar información de utilidad.

tail -f /var/log/maillog

Modificaciones necesarias en el muro cortafuegos.

Si se utiliza un cortafuegos con políticas estrictas, como por ejemplo Shorewall, es importante que MailScanner pueda realizar conexiones hacia el exterior hacia los siguientes servicios:

• SMTP, puerto 25 a través de TCP (entrada y salida).
• DNS, puerto 53 a través de TCP y UDP (salida).
• Razor23, puerto 2703 a través de TCP y puerto 7 a través de UDP (salida).
• DCC, puerto 6277 a través de UDP (salida).
• Pyzor, puerto 24441 a través de UDP (salida).

ClamAV necesita además poder realizar conexiones hacia HTTP (puerto 80) en el exterior para sincronizar la base de datos de firmas.

Las reglas para el archivo /etc/shorewall/rules de Shorewall correspondería a algo similar a esto:

#ACTION	SOURCE	DEST	PROTO 	DEST		SOURCE
#				PORT		PORT(S)
ACCEPT	fw	net	tcp	25,53,80,2703
ACCEPT	fw	net	udp	7,53,6277,24441
ACCEPT	net	fw	tcp	25
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE