Configuración de Spam · 8 min read · Nov 14, 2025

Filtro de Spam de Postfix usando Ubuntu Dapper, MailScanner, SpamAssassin, Razor, Pyzor, DCC y ClamAV - Página 4

3 Configuración de Pyzor, Razor, DCC, SpamAssassin y MailScanner

3.1 Configuración de Pyzor

Necesitamos cambiar algunos permisos en pyzor primero:

chmod -R a+rX /usr/share/doc/pyzor /usr/bin/pyzor /usr/bin/pyzord

Este siguiente comando tendrá que ser modificado si tienes una versión diferente de python. Intenta localizar pyzor.

chmod -R a+rX /usr/lib/site-python/pyzor

Aquí proporcionamos la dirección IP del servidor Pyzor a Pyzor. Esto creará un directorio .pyzor en los directorios de inicio de ambos usuarios y colocará la dirección IP del servidor en un archivo de servidores allí. Luego probará la conexión. Si estás detrás de un firewall, abre el puerto 24441/udp hacia y desde tu servidor. Mientras lo haces, también abre 6277/udp para DCC, 2703/tcp para Razor y 783/tcp para SpamAssassin:

pyzor ping

Normalmente recibirás un tiempo de espera del ping de pyzor, así que no te preocupes por eso. Probaremos de nuevo más tarde.

Si en el futuro la dirección IP del servidor cambia, necesitarás pasar por esta sección nuevamente. Puedes encontrar la dirección del servidor Pyzor actual aquí http://pyzor.sourceforge.net/cgi-bin/inform-servers-0-3-x.

Si Pyzor está funcionando, verás “Pyzor: got response:” Pyzor consulta un servidor Pyzor de manera muy similar a como tu computadora consulta un servidor DNS. La única diferencia práctica es el número de puerto que se utiliza. Si Pyzor no está funcionando, es posible que necesites abrir el puerto en tu firewall o que el servidor Pyzor esté ocupado.

3.2 Configuración de Razor

Crea una configuración default.razor en el directorio home de root:

cd  
rm /etc/razor/razor-agent.conf  
razor-admin -create  
razor-admin -create

Razor v2 requiere que los reporteros estén registrados para que sus reputaciones puedan ser calculadas con el tiempo y puedan participar en el mecanismo de revocación. La registración se realiza con razor-admin -register. Cuando razor-admin -register se invoca como root, negocia una registración con el Servidor de Nominación y escribe la información de identidad en /root/.razor/identity-username. Invócalo manualmente de una de las siguientes maneras:

  1. Para registrar al usuario: foo y contraseña: s1kret (foo y s1kret son ejemplos) :
razor-admin -register -user=foo -pass=s1kr3t
  1. Para registrarte con una dirección de correo electrónico y que se asigne la contraseña:
razor-admin -register [email protected]
  1. Para que se asignen tanto el nombre de usuario como la contraseña (aleatorios):
razor-admin -register

Normalmente solo hago el número 3. Realiza los siguientes cambios en /root/.razor/razor-agent.conf:

vi /root/.razor/razor-agent.conf

Cambia debuglevel = 3 a debuglevel = 0 (sí, cero no “o”). Esto evitará que Razor llene tu disco con información de depuración. También moveremos estas configuraciones a un lugar donde el usuario de Postfix pueda leerlas, así que agrega la línea razorhome al final del archivo. Esas dos líneas deberían verse así cuando termines:

debuglevel             = 0
razorhome             = /var/lib/MailScanner/.razor/

Probaremos Razor más tarde. man razor-agent.conf o ve a http://razor.sourceforge.net/docs/razor-agent.conf.php para más información sobre Razor.

3.3 Configuración y Setup de DCC

Instala DCC:

apt-get install dcc-client

No estamos ejecutando un servidor DCC, así que no necesitamos perder tiempo revisándonos: Si eres una gran organización (100,000 mensajes por día), deberías investigar la posibilidad de ejecutar tu propio servidor.

Una vez que la instalación esté hecha, ejecuta:

cdcc "delete 127.0.0.1"  
cdcc "delete 127.0.0.1 Greylist"

Prueba nuestra instalación con:

cdcc info

Deberías recibir ‘requests ok’ de los servidores.

4 Configuración de MailScanner, ClamAV y SpamAssassin

4.1 MailScanner y ClamAV

Detén Postfix:

postfix stop

Instala los paquetes:

apt-get install mailscanner clamav

Actualiza las definiciones de virus de ClamAV:

freshclam

Comencemos con MailScanner. La versión de MailScanner que se acaba de instalar desde los repositorios es una versión muy antigua, así que ahora la eliminaremos e instalaremos el paquete de MailScanner desde la fuente.

Descarga el tarball de http://www.mailscanner.info/downloads.html … En el momento de escribir esto está en la versión 4.56.8-1 y el enlace del tarball es http://www.mailscanner.info/files/4/tar/MailScanner-install-4.56.8-1.tar.gz. Luego instala MailScanner usando el script install.sh.

cd  
apt-get remove mailscanner  
wget http://www.mailscanner.info/files/4/tar/MailScanner-install-4.56.8-1.tar.gz  
tar zxvf MailScanner-install-4.56.8-1.tar.gz  
cd MailScanner-install-4.56.8  
./install.sh

Ignora el mensaje sobre las líneas de cron que necesitamos agregar a cron por ahora.

Una vez que eso esté hecho, necesitamos crear un directorio para SpamAssassin en el spool y dar permisos a postfix, si ejecutas sa-learn –force como root, la base de datos bayes que se almacena en estos directorios cambiará a root:root y spamassassin dará error al mirar la db. Solo mantén un ojo en el mail.log y recordarás cambiar los permisos de nuevo. También desactiva las configuraciones predeterminadas de MailScanner:

mkdir /var/spool/MailScanner/spamassassin  
mv /etc/MailScanner /etc/MailScanner.dist

Haz una copia de seguridad de tu archivo MailScanner.conf:

cp /opt/MailScanner/etc/MailScanner.conf /opt/MailScanner/etc/MailScanner.conf.back

Edita MailScanner.conf:

vi /opt/MailScanner/etc/MailScanner.conf

Cambia los siguientes parámetros en MailScanner.conf:

%org-name% = YOURDOMAIN-COM
%org-long-name% = Your Company Long Name INC
%web-site% = www.yourdomain.com
Run As User = postfix
Run As Group = postfix
Incoming Queue Dir = /var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming
MTA = postfix
Virus Scanners = clamav
Spam Subject Text = [SPAM]
Send Notices = no
Spam List = ORDB-RBL SBL+XBL
Required SpamAssassin Score = 6
High SpamAssassin Score = 10
Spam Actions = deliver striphtml
High Scoring Spam Actions = delete
Rebuild Bayes Every = 86400
Wait During Bayes Rebuild = yes
SpamAssassin User State Dir = /var/spool/MailScanner/spamassassin

Las primeras 9 líneas son básicamente requeridas para que todo funcione, el resto son recomendadas. El MailScanner.conf está bien documentado, así que por favor lee las notas allí si tienes alguna pregunta sobre el resto de las opciones que cambiamos. Explora este archivo de arriba a abajo.

También echa un vistazo a la sección “Eliminando/Registrando contenido peligroso o potencialmente ofensivo” en el archivo MailScanner.conf. Tuve que desactivar la mayoría de estos porque los clientes se quejaban de los mensajes ‘{Desarmados}’.

4.2 SpamAssassin

Primero necesitamos desactivar el archivo de configuración predeterminado de SpamAssassin:

mv /etc/spamassassin/local.cf /etc/spamassassin/local.cf.disabled

Ahora hagamos una copia de seguridad del archivo de configuración de SpamAssassin en MailScanner y luego editemos:

cp /opt/MailScanner/etc/spam.assassin.prefs.conf /opt/MailScanner/etc/spam.assassin.prefs.conf.back
vi /opt/MailScanner/etc/spam.assassin.prefs.conf

Agrega estas dos líneas en la parte superior de spam.assassin.prefs.conf:

pyzor_options --homedir /var/lib/MailScanner/
razor_config /var/lib/MailScanner/.razor/razor-agent.conf

Cambia donde SpamAssassin busca la base de datos Bayes, comenta la ruta bayes_path predeterminada o cámbiala en consecuencia:

#bayes_path /var/lib/MailScanner/bayes
bayes_path /var/spool/MailScanner/spamassassin/bayes

Busca estas líneas y cámbialas en consecuencia:

bayes_ignore_header X-YOURDOMAIN-COM-MailScanner
bayes_ignore_header X-YOURDOMAIN-COM-MailScanner-SpamCheck
bayes_ignore_header X-YOURDOMAIN-COM-MailScanner-SpamScore
bayes_ignore_header X-YOURDOMAIN-COM-MailScanner-Information

“YOURDOMAIN-COM” debe ser reemplazado por lo que usaste para “%org-name%” en el archivo MailScanner.conf. Deja el “X-“ en su lugar.

Asegúrate de que “bayes_auto_expire 0” no esté comentado:

bayes_auto_expire 0

Edita el v310.pre de SpamAssassin para habilitar Razor y DCC

vi /etc/spamassassin/v310.pre

Descomenta las siguientes líneas:

loadplugin Mail::SpamAssassin::Plugin::DCC
loadplugin Mail::SpamAssassin::Plugin::Razor2

5 Unirlo Todo

Copia las configuraciones de Pyzor y Razor a un lugar donde el usuario de Postfix pueda leerlas:

cp -R /root/.pyzor /var/lib/MailScanner  
cp -R /root/.razor /var/lib/MailScanner

Ahora que tenemos todo allí, establece los permisos correctos:

chown -R postfix.postfix /var/spool/MailScanner/  
chown -R postfix.postfix /var/lib/MailScanner/

Veamos si SpamAssassin está feliz:

su postfix -p -c 'spamassassin -x -D -C /opt/MailScanner/etc/spam.assassin.prefs.conf --lint'

Deberías ver líneas que aparecen con DCC, Pyzor y Razor que dicen cargando plugin y, con suerte, sin errores.

NOTA: Si alguna vez ejecutas el sa-learn, recuerda ejecutarlo así, su postfix -p -c ‘sa-learn –sync –force-expire -C /opt/MailScanner/etc/spam.assassin.prefs.conf’ de lo contrario, cuando SpamAssassin reconstruya la base de datos bayes, no podrá leerla.

Si todo se ve bien, continúa, si no, soluciona problemas y luego continúa.

Terminando esta parte, necesitamos agregar trabajos cron que limpiarán/actualizarán/ejecutarán Mailscanner, probablemente viste el mensaje sobre esto después de que finalizó el script de instalación de MailScanner. La razón por la que lo hacemos ahora es porque no queremos que MailScanner comience mientras terminamos la configuración de SpamAssassin.

crontab -e

Agrega estas líneas:

37      5 * * * /opt/MailScanner/bin/update_phishing_sites
58     23 * * * /opt/MailScanner/bin/clean.quarantine
42      * * * * /opt/MailScanner/bin/update_virus_scanners
3,23,43 * * * * /opt/MailScanner/bin/check_mailscanner

Necesitamos agregar una línea a rc.local para que MailScanner se inicie en un reinicio:

vi /etc/rc.local

Antes de la línea “Exit 0” agrega:

/opt/MailScanner/bin/check_mailscanner

También puedes vincular el archivo “check_mailscanner” en el directorio bin. De esta manera puedes ejecutarlo cada vez que necesites reiniciar MailScanner:

cd /usr/bin  
ln -s /opt/MailScanner/bin/check_mailscanner check_mailscanner

Solo para darte un registro limpio para mirar y reiniciar:

rm /var/log/mail.log  
reboot

Si ves algunos errores al reiniciar al iniciar MailScanner sobre el Perl Sys/Hostname/Long.pm, necesitas instalarlo así:

perl -MCPAN -e shell

Si te pide que lo configures ahora, di que no, a menos que sepas lo que estás haciendo. Ahora ejecuta lo siguiente para instalar el módulo:

install Sys::Hostname::Long

Cuando eso termine, escribe “quit” para volver a la consola. Reinicia o inicia MailScanner con el script “check_mailscanner”.

En este punto deberías tener un filtro de spam completamente funcional. Echa un vistazo a tail -f /var/log/mail.log, debería estar prácticamente libre de errores.

Este README debería ser útil para futuros usos. Cópialo a tu filtro de spam para una referencia rápida.

POSTFIX, UBUNTU, MAILSCANNER README
************************************************
ADD DOMAIN
**********************************************
- Edita '/etc/postfix/relay_recipients', 'relay_domains' y 'transport'.
- Ejecuta 'postmap /etc/postfix/relay_recipients'. Lo mismo para 'relay_domains' y 'transport' después de editar para agregar dominios en el archivo db.
- 'postfix reload' para que postfix lea los nuevos archivos db.
- Para agregar usuarios a dominios edita 'relay_recipients' y haz postmap en él.
**********************************************
CONTROLLING BLIST WLIST
**********************************************
- Edita /etc/postfix/sender_access
- Ejecuta 'postmap /etc/postfix/sender_access'
- Ejecuta 'postfix reload'
**********************************************
OTHER CONFIG FILES
**********************************************
- Para editar la configuración de MailScanner "/opt/MailScanner/etc/MailScanner.conf"
- Para editar la configuración de spamassassin "/opt/MailScanner/etc/spam.assassin.prefs.conf"
- Para editar la configuración de clamav "/etc/clamav/clamd.conf"
**********************************************
MISC
************************************************
- Ejecuta 'LINUX2' si aparecen errores de postfix sobre archivos que no coinciden en el jailroot.
- Ejecuta 'postfix check' para ver si postfix está sincronizado con jailroot.
- Ejecuta newaliases para refrescar la base de datos /etc/postfix/aliases si se realizan cambios en ese archivo..
- 'mailq' y 'qshape' para verificar la cola.
- 'check_mailscanner' para reiniciar MailScanner.
Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

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