Guía técnica · 4 min read · Jan 03, 2026

Guía de Mailscanner/Exim Gateway con Communigate PRO

Guía de Mailscanner/Exim Gateway con Communigate PRO

En este tutorial, instalaremos y configuraremos Mailscanner como un cortafuegos de correo frente a un clúster de Communigate pro. Este tutorial ha sido escrito para la distribución de Linux CENTOS 5.x, pero estoy seguro de que se puede usar para cualquier otro sistema basado en Linux con pocas modificaciones. El sistema funcionará con SELinux en modo de aplicación. Los componentes que utilizaremos incluyen:

  • Mailscanner
  • Clamav
  • exim
  • apache
  • mailwatch
  • razor
  • spamassassin
  • mysql
  • fuzzy ocr
  • firmas de sanesecurity
  • mailfeeder

Instalar Paquetes

Asumo que has instalado un sistema CENTOS 5 básico con el grupo “Development Tools” para trabajar, así que no entraré mucho en temas como la selección de paquetes y el diseño de particiones. Como necesitaremos instalar cierto software que no forma parte de las bases predeterminadas de CENTOS, necesitamos configurar el sistema para usar el repositorio rpm de Dag Wieers, ya que empaqueta mucho del software que necesitamos.

rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

Con eso hecho, hemos configurado el sistema para usar el repositorio rpmforge.

Para este tutorial, el directorio de trabajo será /usr/local/src - todas las descargas deben ser descargadas y extraídas allí.

Exim

yum install exim -y  
/usr/sbin/alternatives --set mta /usr/sbin/sendmail.exim  
service sendmail stop  
/sbin/chkconfig --level 345 sendmail off  
/sbin/chkconfig --level 345 exim off

MailScanner

wget http://www.mailscanner.info/files/4/rpm/MailScanner-4.66.5-3.rpm.tar.gz  
tar xzvf MailScanner-4.66.5-3.rpm.tar.gz  
cd MailScanner-4.66.5-3  
./install.sh

Clamav

yum install clamav clamav-db clamd -y  
freshclam

Firmas de Sanesecurity

wget http://www.sanesecurity.co.uk/clamav/update_sanesecurity.txt -O /usr/local/bin/update_sanesecurity.sh  
chmod +x /usr/local/bin/update_sanesecurity.sh  
ln -s /usr/local/bin/update_sanesecurity.sh /etc/cron.hourly/  
/usr/local/bin/update_sanesecurity.sh

Apache

yum install httpd php php-mysql php-gd php-eaccelerator -y /sbin/chkconfig --level 345 httpd on

Spamassassin

yum install spamassassin -y

Fuzzy OCR

yum install netpbm-progs ocrad gocr gifsicle giflib-utils giflib -y  
svn co svn://svn.own-hero.net/fuzzyocr/trunk/devel  
cd devel/  
perl -MCPAN -e 'install String::Approx'  
perl -MCPAN -e 'install Time::HiRes'  
perl -MCPAN -e 'install Log::Agent'  
cp -rv {FuzzyOcr.cf,FuzzyOcr.scansets,FuzzyOcr.preps,FuzzyOcr.pm,FuzzyOcr.words,FuzzyOcr/} /etc/mail/spamassassin  
chcon -R system_u:object_r:etc_mail_t /etc/mail/spamassassin/{FuzzyOcr.cf,FuzzyOcr.scansets,FuzzyOcr.preps,FuzzyOcr.pm,FuzzyOcr.words,FuzzyOcr/}  
wget http://www.gbnetwork.co.uk/mailscanner/FuzzyOcr.words -O /etc/mail/spamassassin/FuzzyOcr.words

Razor

yum install razor-agents

MySQL

yum install mysql mysql-server -y

Mailwatch

wget http://dfn.dl.sourceforge.net/sourceforge/mailwatch/mailwatch-1.0.4.tar.gz  
tar xzvf mailwatch-1.0.4.tar.gz  
cd mailwatch-1.0.4  
cp -av mailscanner/* /var/www/html/  
cp /var/www/html/conf.php.example /var/www/html/conf.php  
mkdir /var/www/html/temp  
chmod u+rwx /var/www/html/temp  
rm -f /var/www/html/{index.php,xml,jpgraph,fpdf}  
cp /var/www/html/status.php /var/www/html/index.php  
mv /var/www/html/jpgraph-1.12.1 /var/www/html/jpgraph  
mv /var/www/html/fpdf152 /var/www/html/fpdf  
mv /var/www/html/xmlrpc_1.2 /var/www/html/xmlrpc  
chown apache.apache -R /var/www/html/  
chmod ug+rwx /var/www/html/images  
chmod ug+rwx /var/www/html/images/cache  
chcon -R system_u:object_r:httpd_sys_content_t /var/www/html/  
cp MailWatch.pm /usr/lib/MailScanner/MailScanner/CustomFunctions/  
cp SQLBlackWhiteList.pm /usr/lib/MailScanner/MailScanner/CustomFunctions/  
cp tools/db_clean.php /usr/local/bin/  
cp tools/quarantine_maint.php /usr/local/bin/

Mailfeeder

wget http://www.pldaniels.com/mailfeeder/mailfeeder-0.2.3.tar.gz  
tar xzvf mailfeeder-0.2.3.tar.gz  
cd mailfeeder-0.2.3  
make  
cp mailfeeder /usr/local/bin/

Configurar Paquetes

Configurar Exim

Introducción

Para ejecutar exim con mailscanner, necesitas 2 archivos de configuración, uno para el demonio que escuchará en el puerto 25 y aceptará correo entrante, y otro para el proceso de exim que entregará el correo limpio que ha sido escaneado por mailscanner. También necesitas 2 colas, una para el correo entrante y la otra para el correo limpio que ha sido escaneado.

No me detendré en todas las opciones de configuración que proporciona exim, espero que puedas obtener información detallada en otros lugares sobre cómo configurar un sistema exim en funcionamiento normal, así que solo me centraré en aquellas áreas que son específicas para esta configuración.

  • Así que para comenzar, haz una copia de seguridad de tu configuración de exim y luego crea el segundo archivo de configuración para el proceso de salida.
cp /etc/exim/exim.conf /etc/exim/exim.conf.orig  
cp /etc/exim/exim.conf /etc/exim/exim_out.conf

Exim Entrante

Esta es la configuración para el demonio exim que escucha en el puerto 25 y acepta los mensajes y los coloca en cola para que los procese mailscanner. El archivo de configuración es /etc/exim/exim.conf.

Anti-virus / Comprobaciones de Sanesecurity

Configura el demonio exim entrante (/etc/exim/exim.conf) para usar clamav para escanear el correo entrante y rechazar correos electrónicos infectados por virus y spam de imágenes y pdf en el tiempo smtp.

av_scanner = clamd:/var/run/clamav/clamd.sock

Enrutamiento de Correo

Configura los dominios para los que aceptas correo, los agregaremos a un archivo /etc/exim/relay_domains.

# ejemplo /etc/exim/relay_domains
example.com

Especifica esto en la configuración de exim:

domainlist relay_to_domains = lsearch;/etc/exim/relay_domains

Configura el enrutamiento de los dominios para los que estás filtrando correo en el archivo /etc/exim/mail-routes.

#ejemplo /etc/exim/mail-routes
example.com: xxx.xxx.xxx.xxx:xxx.xxx.xxx.xxx #este dominio está en un clúster CGP de 2 nodos frontales
somedomain.com: xxx.xxx.xxx.xxx # esto entrega a una máquina CGP

Configura un enrutador para aceptar correo para los dominios de reenvío. Necesitas agregar esto bajo el check_backend: router (ver verificación de dirección a continuación).

deliver_clean:
  driver = manualroute
  domains = +relay_to_domains
  transport = remote_smtp
  route_data = ${lookup{$domain}lsearch{/etc/exim/mail-routes}}

Integración de Mailscanner

Configura el exim entrante solo para colocar los mensajes en cola y no entregar para permitir que mailscanner los procese.

spool_directory = /var/spool/exim.in
process_log_path = /var/spool/exim/exim-process.info
queue_only = true
queue_only_override = false

RBL’s

Configura los RBL’s bajo acl_check_rcpt:

drop    message       = RECHAZADO porque $sender_host_address está en una lista negra spamhaus.org
           dnslists      = xen.spamhaus.org
drop    message       = RECHAZADO porque $sender_host_address está en una lista negra en $dnslist_domain\n$dnslist_text
           dnslists      = bl.spamcop.net
drop    message       = RECHAZADO porque $sender_host_address está en una lista negra en $dnslist_domain\n$dnslist_text
           dnslists      = dnsbl.sorbs.net
Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.