Ir al contenido principal

MailScanner + Clamav + SpamAssassin

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 ficheros ZIP, RAR, Tar, Gzip, Bzip2, MS OLE2, MS Cabinet, MS CHM y MS SZDD.
  • Soporte para explorar ficheros 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 sustento 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.

Sustento 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 5, CentOS 5 o White Box Enterprise Linux 5, puede utilizar el depósito yum.
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 fichero README. De igual modo podrá proceder con clamav desde http://clamav.net/
wget http://www.mailscanner.info/files/4/rpm/MailScanner-4.78.17-1.rpm.tar.gz
tar xzvf MailScanner-4.78.17-1.rpm.tar.gz
cd MailScanner-4.78.17-1
./install.sh
Una vez configurado lo anterior, solo bastará utilizar:
yum -y install clamav libclamav clamtk clamd 
Lo anterior instalará mailscanner y clamav junto con todas las dependencias que seas necesarias. 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% = Mi 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 fichero /etc/MailScanner/filename.rules.conf. En este fichero se define lo que se quiera denegar si los mensajes incluyen ciertos tipos de ficheros adjuntos que se consideran de alto riesgo. El formato de este fichero 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 sustento lógico libre. Localice lo siguiente en el fichero /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 = disarmAllow 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 fichero /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 fichero /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 fichero /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 fichero /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:  200.76.185.250 yes
From:  192.168.0. yes
En el ejemplo anterior, todo el correo proveniente de 200.76.185.250 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 Necesitará inicializar los servicios clamd y freshclam. El segundo, particularmente, se encarga de contactar los servidores que hospedan las bases de datos actualizadas con las más recientes firmas de los más recientes virus, gusanos, troyanos y otros tipos de sustento lógico maligno.
chkconfig clamd on
chkconfig freshclam on
service clamd start
service freshclam start
De ser necesario puede actualizar manualmente y de manera inmediata la base de datos de firmas ejecutando simplemente freshclam desde cualquier terminal como root. 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 como adjunto hacia una cuenta de correo local el fichero test2.zip conteniendo un virus, 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" 
Fecha: Mie, 18 de Agosto de 2004, 10:31 pm
Para: "Fulano" 
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</fulano@localhost.localdomain></fulano@localhost.localdomain>
El administrador del servidor de correo recibirá en cambio lo siguiente:
Asunto: Virus Detected
De: "MailScanner" 
Fecha: Mie, 18 de Agosto de 2004, 10:31 pm
Para: postmaster@localhost.localdomain
The following e-mails were found to have:
Virus DetectedSender: 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</postmaster@localhost.localdomain>
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 fichero /etc/MailScanner/MailScanner.conf, como seguramente podrá leer se indica en la bitácora localizada en el fichero /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 fichero /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

Comentarios

  1. Muy bueno este Articulo

    Es de comentar que estan muy explicados las opciones del archivo .conf

    Sabes de algun how to donde se explique con detalle cada entrada?

    ResponderBorrar

Publicar un comentario

Entradas más populares de este blog

JSP y MySQL Conexion a Base de Datos

Tema anterior: http://superahacker.blogspot.com/2009/06/instalacion-netbeans-glassfish.html El modulo JSP con conexion a una base de datos MySQL, tiene las siguientes caracteristicas usar una clase Java llamada "Customers" que se encuentra en un package llamado "Mypackage" , para usar sus metodos y con ellos llevar acabo una consulta.

JSP y MsSQL Conexion a Base de Datos

Tema anterior: http://superahacker.blogspot.com/2009/09/jsp-y-mysql-conexion-base-de-datos.html El modulo JSP con conexion a una base de datos Ms SQL Server, tiene las siguientes caracteristicas usar una clase Java llamada "Customers" que se encuentra en un package llamado "Mypackage" , para usar sus metodos y con ellos llevar acabo una consulta.

FreeTDS para el acceso a MsSQL desde PHP en Linux CentOS 5

Tema Anterior: http://superahacker.blogspot.com/2009/04/instalacion-de-unixodbc-para-la.html En esta ocasion la situación es como conectar con PHP 5 desde un Servidor Linux a una base de Datos Ms Sql Server en Servidor Windows.