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/pyzordEste 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/pyzorAquí 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 pingNormalmente 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 -createRazor 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:
- Para registrar al usuario: foo y contraseña: s1kret (foo y s1kret son ejemplos) :
razor-admin -register -user=foo -pass=s1kr3t- Para registrarte con una dirección de correo electrónico y que se asigne la contraseña:
razor-admin -register [email protected]- Para que se asignen tanto el nombre de usuario como la contraseña (aleatorios):
razor-admin -registerNormalmente solo hago el número 3. Realiza los siguientes cambios en /root/.razor/razor-agent.conf:
vi /root/.razor/razor-agent.confCambia 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-clientNo 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 infoDeberías recibir ‘requests ok’ de los servidores.
4 Configuración de MailScanner, ClamAV y SpamAssassin
4.1 MailScanner y ClamAV
Detén Postfix:
postfix stopInstala los paquetes:
apt-get install mailscanner clamavActualiza las definiciones de virus de ClamAV:
freshclamComencemos 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.shIgnora 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.distHaz una copia de seguridad de tu archivo MailScanner.conf:
cp /opt/MailScanner/etc/MailScanner.conf /opt/MailScanner/etc/MailScanner.conf.backEdita MailScanner.conf:
vi /opt/MailScanner/etc/MailScanner.confCambia 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/spamassassinLas 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.disabledAhora 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.backvi /opt/MailScanner/etc/spam.assassin.prefs.confAgrega 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.confCambia 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/bayesBusca 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 0Edita el v310.pre de SpamAssassin para habilitar Razor y DCC
vi /etc/spamassassin/v310.preDescomenta las siguientes líneas:
loadplugin Mail::SpamAssassin::Plugin::DCC
loadplugin Mail::SpamAssassin::Plugin::Razor25 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/MailScannerAhora 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 -eAgrega 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_mailscannerNecesitamos agregar una línea a rc.local para que MailScanner se inicie en un reinicio:
vi /etc/rc.localAntes de la línea “Exit 0” agrega:
/opt/MailScanner/bin/check_mailscannerTambié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_mailscannerSolo para darte un registro limpio para mirar y reiniciar:
rm /var/log/mail.log
rebootSi ves algunos errores al reiniciar al iniciar MailScanner sobre el Perl Sys/Hostname/Long.pm, necesitas instalarlo así:
perl -MCPAN -e shellSi 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::LongCuando 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.Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.