Configuración de SpamAssassin: Guía Completa de Configuración Anti-Spam

Introducción

El correo spam sigue siendo uno de los desafíos más persistentes en la administración de correo electrónico. A pesar de las mejoras en la autenticación de correo y el filtrado, el spam continúa consumiendo ancho de banda, almacenamiento y tiempo del usuario, mientras representa riesgos de seguridad a través de phishing y distribución de malware. SpamAssassin proporciona una solución poderosa de código abierto para identificar y filtrar spam en servidores de correo.

SpamAssassin utiliza un sofisticado sistema de puntuación que evalúa múltiples características de cada mensaje de correo electrónico. Examina encabezados, contenido, listas negras DNS, filtrado Bayesiano y numerosos otros factores para calcular una puntuación de spam. Los mensajes que exceden un umbral configurable se marcan como spam, permitiendo que sean rechazados, etiquetados o movidos a carpetas de cuarentena automáticamente.

Lo que distingue a SpamAssassin es su flexibilidad y precisión. A diferencia de filtros simples basados en palabras clave, SpamAssassin combina docenas de pruebas ponderadas por su efectividad. Aprende de datos de entrenamiento usando análisis Bayesiano, se adapta a nuevas técnicas de spam y puede personalizarse extensivamente para necesidades específicas. Cuando está correctamente configurado y entrenado, SpamAssassin logra excelentes tasas de detección de spam mientras mantiene mínimos falsos positivos.

Esta guía completa le guía a través de la instalación de SpamAssassin, su integración con Postfix, la configuración de reglas y puntuación, la implementación de filtrado Bayesiano, la optimización del rendimiento y el mantenimiento del sistema para efectividad a largo plazo.

Prerrequisitos

Antes de instalar SpamAssassin, asegúrese de tener:

Requisitos del Sistema

  • Servidor de correo funcionando con Postfix configurado
  • Ubuntu 20.04/22.04, Debian 10/11, CentOS 8/Rocky Linux 8, o similar
  • Mínimo 1GB RAM (2GB+ recomendado para filtrado Bayesiano)
  • Al menos 10GB de espacio libre en disco
  • Acceso root o sudo

Requisitos del Servidor de Correo

  • Postfix enviando y recibiendo correo correctamente
  • Dovecot configurado para entrega local (recomendado)
  • Acceso a logs del servidor de correo
  • Comprensión del flujo actual de correo

Prerrequisitos de Conocimiento

  • Competencia en línea de comandos de Linux
  • Comprensión básica de configuración de Postfix
  • Familiaridad con protocolos de correo
  • Habilidades con editores de texto (nano, vim)

Entendiendo SpamAssassin

Cómo Funciona SpamAssassin

  1. Recepción de Correo: El correo llega a su servidor
  2. Análisis de Contenido: SpamAssassin escanea encabezados, cuerpo, adjuntos
  3. Ejecución de Pruebas: Ejecuta múltiples pruebas (50+ por defecto)
  4. Cálculo de Puntuación: Cada prueba contribuye puntos a la puntuación de spam
  5. Comparación de Umbral: La puntuación total se compara con el umbral (predeterminado: 5.0)
  6. Acción: El correo se etiqueta, rechaza o pone en cuarentena basándose en la puntuación

Sistema de Puntuación

SpamAssassin asigna puntos positivos por indicadores de spam:

  • Puntuación < 5.0: Probablemente legítimo
  • Puntuación 5.0-10.0: Probablemente spam
  • Puntuación > 10.0: Definitivamente spam

Las pruebas contribuyen diferentes valores de puntos:

BAYES_99        3.5    # Análisis Bayesiano dice 99% spam
HTML_MESSAGE    0.001  # El mensaje es solo HTML
URIBL_BLACK     3.0    # URL encontrada en lista negra
DKIM_VALID     -0.1    # Firma DKIM válida

Tipos de Pruebas

Pruebas de Encabezado:

  • Encabezados malformados
  • Enrutamiento sospechoso
  • Encabezados requeridos faltantes
  • Información de remitente falsificada

Pruebas de Cuerpo:

  • Palabras clave y frases de spam
  • Características HTML
  • Trucos de codificación de caracteres
  • Técnicas de ofuscación

Pruebas DNS:

  • Búsquedas RBL (Realtime Blackhole List)
  • Verificaciones URIBL (URI Blacklist)
  • Reputación de dominio

Análisis Bayesiano:

  • Aprendizaje estadístico de datos de entrenamiento
  • Se adapta a sus patrones específicos de spam
  • Mejora la precisión con el tiempo

Pruebas de Red:

  • Filtrado colaborativo Razor
  • Detección basada en digest Pyzor
  • DCC (Distributed Checksum Clearinghouse)

Paso 1: Instalar SpamAssassin

Instalación en Ubuntu/Debian

# Actualizar listas de paquetes
sudo apt update

# Instalar SpamAssassin y dependencias
sudo apt install spamassassin spamc -y

# Crear usuario SpamAssassin (si no existe)
sudo groupadd -g 5001 spamd
sudo useradd -u 5001 -g spamd -s /bin/false -d /var/lib/spamassassin spamd

Instalación en CentOS/Rocky Linux

# Instalar SpamAssassin
sudo dnf install spamassassin -y

# Crear usuario SpamAssassin
sudo groupadd -g 5001 spamd
sudo useradd -u 5001 -g spamd -s /bin/false -d /var/lib/spamassassin spamd

Verificar Instalación

# Verificar versión de SpamAssassin
spamassassin --version

# Verificar versión de spamc
spamc --version

# Verificar que existe el servicio
systemctl list-unit-files | grep spamassassin

Paso 2: Configurar SpamAssassin

Archivo de Configuración Principal

Editar la configuración principal de SpamAssassin:

sudo nano /etc/spamassassin/local.cf

Agregar estas configuraciones optimizadas:

# Puntuación requerida para marcar como spam (predeterminado: 5.0)
required_score 5.0

# Reescribir línea de asunto para spam
rewrite_header Subject [SPAM]

# Reportar con spam/ham
report_safe 0

# Usar auto-aprendizaje Bayesiano
use_bayes 1
bayes_auto_learn 1
bayes_auto_learn_threshold_nonspam -0.1
bayes_auto_learn_threshold_spam 12.0

# Ubicación de base de datos Bayesiana
bayes_path /var/lib/spamassassin/.spamassassin/bayes

# Habilitar pruebas de red
skip_rbl_checks 0
use_razor2 1
use_pyzor 1
use_dcc 1

# Habilitar verificación DKIM
use_dkim 1

# Puntuaciones para pruebas comunes
score BAYES_99 3.5
score BAYES_00 -1.9
score HTML_MESSAGE 0.001
score MIME_HTML_ONLY 0.723
score URIBL_BLOCKED 0.001

# Lista blanca de autenticación
def_whitelist_auth *@example.com

# Timeouts de pruebas de red
razor2_timeout 5
pyzor_timeout 5
dcc_timeout 5
rbl_timeout 5

# Configuración de idioma (ajustar según necesidades)
ok_languages en
ok_locales en

# Tamaño máximo de mensaje a escanear (predeterminado 512KB)
# Mensajes más grandes no se escanean (rendimiento)
body_part_scan_size 50000
rawbody_part_scan_size 50000

# Confiar en remitentes autenticados
trusted_networks 127.0.0.0/8

Configuración Explicada

required_score: Umbral para marcar spam (5.0 es estándar, menor = más estricto)

rewrite_header: Modifica la línea de asunto del spam (ayuda al filtrado)

report_safe:

  • 0 = No encapsular spam
  • 1 = Encapsular como adjunto
  • 2 = Encapsular como texto plano

use_bayes: Habilitar aprendizaje Bayesiano (mejora significativamente la precisión)

skip_rbl_checks: Habilitar verificación de listas negras DNS

Pruebas de red: Razor, Pyzor, DCC para detección colaborativa de spam

Paso 3: Configurar Demonio SpamAssassin

Editar Configuración del Demonio

sudo nano /etc/default/spamassassin

Configurar ajustes del demonio:

# Habilitar demonio SpamAssassin
ENABLED=1

# Opciones pasadas al demonio
# -d = modo demonio
# -m = hijos máximos (escaneos concurrentes)
# -u = ejecutar como usuario
# -g = ejecutar como grupo
# --max-conn-per-child = recargar después de N conexiones (previene fugas de memoria)
# --helper-home-dir = directorio home
OPTIONS="--create-prefs --max-children 5 --username spamd --helper-home-dir /var/lib/spamassassin -s /var/log/spamassassin/spamd.log"

# Ubicación del archivo PID
PIDFILE="/var/run/spamassassin.pid"

# Nivel nice (prioridad más baja)
NICE="--nicelevel 10"

# Ubicación del log
LOGFILE="/var/log/spamassassin/spamd.log"

Ajustar Conteo de Hijos

Para servidores de bajo tráfico:

--max-children 2

Para tráfico medio:

--max-children 5

Para alto tráfico:

--max-children 10

Crear Directorio de Log

# Crear directorio de log
sudo mkdir -p /var/log/spamassassin

# Establecer propietario
sudo chown spamd:spamd /var/log/spamassassin

# Establecer permisos
sudo chmod 750 /var/log/spamassassin

Establecer Permisos del Directorio Home de SpamAssassin

# Crear directorio home si es necesario
sudo mkdir -p /var/lib/spamassassin

# Establecer propietario
sudo chown -R spamd:spamd /var/lib/spamassassin

# Establecer permisos
sudo chmod 750 /var/lib/spamassassin

Paso 4: Actualizar Reglas de SpamAssassin

SpamAssassin necesita reglas actualizadas para rendimiento óptimo:

# Actualizar reglas
sudo sa-update

# Compilar reglas para rendimiento más rápido
sudo sa-compile

Configurar actualizaciones automáticas:

# Crear script de actualización
sudo nano /usr/local/bin/update-spamassassin.sh

Agregar:

#!/bin/bash
# Actualizar reglas de SpamAssassin

# Actualizar reglas
sa-update

# Compilar si es exitoso
if [ $? -eq 0 ]; then
    sa-compile
    systemctl reload spamassassin
fi

Hacer ejecutable:

sudo chmod +x /usr/local/bin/update-spamassassin.sh

Programar actualizaciones diarias:

sudo crontab -e

Agregar:

0 3 * * * /usr/local/bin/update-spamassassin.sh

Paso 5: Integrar con Postfix

Opción 1: Usar Spamass-Milter (Recomendado)

Instalar spamass-milter para integración milter:

# Ubuntu/Debian
sudo apt install spamass-milter -y

# CentOS/Rocky Linux
sudo dnf install spamass-milter -y

Configurar spamass-milter:

sudo nano /etc/default/spamass-milter

Agregar:

# Habilitar spamass-milter
ENABLED=1

# Opciones
OPTIONS="-u spamd -i 127.0.0.1 -m -r -1 -- --socket=/var/run/spamassassin/spamd.sock"

# -u = ejecutar como usuario
# -i = ignorar usuarios autenticados
# -m = modificar asunto
# -r -1 = rechazar spam por encima del umbral -1 (deshabilitado)

Configurar Postfix para usar milter:

sudo nano /etc/postfix/main.cf

Agregar:

# SpamAssassin milter
smtpd_milters = unix:/spamass/spamass.sock
non_smtpd_milters = unix:/spamass/spamass.sock
milter_connect_macros = i j {daemon_name} v {if_name} _
milter_default_action = accept

Opción 2: Usar Filtro de Contenido

Método alternativo usando content_filter:

sudo nano /etc/postfix/master.cf

Agregar estas líneas:

spamassassin unix -     n       n       -       -       pipe
  user=spamd argv=/usr/bin/spamc -f -e
  /usr/sbin/sendmail -oi -f ${sender} ${recipient}

Configurar Postfix para usar filtro:

sudo nano /etc/postfix/main.cf

Agregar:

content_filter = spamassassin

Iniciar Servicios

# Habilitar e iniciar SpamAssassin
sudo systemctl enable spamassassin
sudo systemctl start spamassassin

# Habilitar e iniciar spamass-milter (si se usa)
sudo systemctl enable spamass-milter
sudo systemctl start spamass-milter

# Recargar Postfix
sudo systemctl reload postfix

Verificar Integración

# Verificar que SpamAssassin está ejecutándose
sudo systemctl status spamassassin

# Verificar spamass-milter (si se usa)
sudo systemctl status spamass-milter

# Verificar configuración de Postfix
sudo postfix check

# Probar flujo de correo
echo "Correo de prueba" | mail -s "Prueba SpamAssassin" [email protected]

Verificar logs:

sudo tail -f /var/log/mail.log
sudo tail -f /var/log/spamassassin/spamd.log

Paso 6: Configurar Filtrado Bayesiano

El filtrado Bayesiano es el componente de aprendizaje de SpamAssassin.

Inicializar Base de Datos Bayesiana

# Crear directorio de base de datos
sudo mkdir -p /var/lib/spamassassin/.spamassassin

# Establecer propietario
sudo chown -R spamd:spamd /var/lib/spamassassin/.spamassassin

# Establecer permisos
sudo chmod 700 /var/lib/spamassassin/.spamassassin

Entrenar con Ham (Correo Legítimo)

# Entrenar con ham (correo bueno)
sudo -u spamd sa-learn --ham /ruta/a/ham/maildir/cur/

# O archivo único
sudo -u spamd sa-learn --ham /ruta/a/correo/ham.txt

Ejemplo para entrenar desde buzón de usuario:

# Entrenar desde bandeja de entrada del usuario
sudo -u spamd sa-learn --ham /var/mail/vmail/example.com/usuario/Maildir/cur/

# Entrenar múltiples usuarios
for user in /var/mail/vmail/example.com/*/Maildir/cur/; do
    sudo -u spamd sa-learn --ham "$user"
done

Entrenar con Spam

# Entrenar con spam
sudo -u spamd sa-learn --spam /ruta/a/spam/maildir/cur/

# O archivo único
sudo -u spamd sa-learn --spam /ruta/a/correo/spam.txt

Ejemplo:

# Entrenar desde carpeta de spam
sudo -u spamd sa-learn --spam /var/mail/vmail/example.com/usuario/Maildir/.Junk/cur/

Verificar Base de Datos Bayesiana

# Mostrar estadísticas
sudo -u spamd sa-learn --dump magic

La salida muestra:

0.000          0          3          0  non-token data: bayes db version
0.000          0      15234          0  non-token data: nspam
0.000          0      30145          0  non-token data: nham

Necesita:

  • Al menos 200 mensajes de spam
  • Al menos 200 mensajes de ham
  • Para que el filtrado Bayesiano se active

Automatizar Entrenamiento

Crear script de entrenamiento:

sudo nano /usr/local/bin/train-spamassassin.sh

Agregar:

#!/bin/bash

# Entrenar desde carpetas de spam de todos los usuarios
for spam_folder in /var/mail/vmail/*/*/Maildir/.Junk/cur/; do
    if [ -d "$spam_folder" ]; then
        sa-learn --spam "$spam_folder"
    fi
done

# Entrenar desde bandeja de entrada de todos los usuarios (ham)
for ham_folder in /var/mail/vmail/*/*/Maildir/cur/; do
    if [ -d "$ham_folder" ]; then
        sa-learn --ham "$ham_folder"
    fi
done

# Mostrar estadísticas
sa-learn --dump magic

Hacer ejecutable:

sudo chmod +x /usr/local/bin/train-spamassassin.sh

Programar semanalmente:

sudo crontab -e

Agregar:

0 2 * * 0 /usr/local/bin/train-spamassassin.sh

Paso 7: Configurar Pruebas de Red

Configuración Razor

# Instalar Razor
sudo apt install razor -y

# Crear home de Razor
sudo -u spamd mkdir -p /var/lib/spamassassin/.razor

# Descubrir servidores Razor
sudo -u spamd razor-admin -home=/var/lib/spamassassin/.razor -create
sudo -u spamd razor-admin -home=/var/lib/spamassassin/.razor -discover

# Registrar (opcional pero recomendado)
sudo -u spamd razor-admin -home=/var/lib/spamassassin/.razor -register

Configurar en local.cf:

sudo nano /etc/spamassassin/local.cf

Agregar:

use_razor2 1
razor_config /var/lib/spamassassin/.razor/razor-agent.conf

Configuración Pyzor

# Instalar Pyzor
sudo apt install pyzor -y

# Crear home de Pyzor
sudo -u spamd mkdir -p /var/lib/spamassassin/.pyzor

# Descubrir servidores Pyzor
sudo -u spamd pyzor --homedir /var/lib/spamassassin/.pyzor discover

Configurar en local.cf:

use_pyzor 1
pyzor_options --homedir=/var/lib/spamassassin/.pyzor

Configuración DCC

# Instalar DCC (opcional, no en todos los repos)
# Puede necesitar compilar desde fuente
wget https://www.dcc-servers.net/dcc/source/dcc.tar.Z
tar xzf dcc.tar.Z
cd dcc-*
./configure
make
sudo make install

# Configurar
sudo nano /etc/spamassassin/local.cf

Agregar:

use_dcc 1
dcc_path /usr/local/bin/dccproc

Paso 8: Configurar Listas Blancas y Negras

Lista Blanca de Direcciones de Correo

sudo nano /etc/spamassassin/local.cf

Agregar:

# Lista blanca de direcciones específicas
whitelist_from [email protected]
whitelist_from *@dominio-confiable.com

# Lista blanca de remitentes autenticados
def_whitelist_auth *@example.com

# Lista blanca por IP
whitelist_from_rcvd [email protected] mail.dominio.com

Lista Negra de Direcciones de Correo

# Lista negra de direcciones específicas
blacklist_from [email protected]
blacklist_from *@dominio-spam.com

Lista Blanca de Dominios Completos

# No escanear correo de estos dominios
all_spam_to [email protected]

Crear Reglas Personalizadas

sudo nano /etc/spamassassin/local.cf

Agregar puntuación personalizada:

# Reglas de encabezado personalizadas
header CUSTOM_RULE_1 Subject =~ /viagra|cialis/i
describe CUSTOM_RULE_1 El asunto contiene spam de farmacia
score CUSTOM_RULE_1 3.0

# Reglas de cuerpo personalizadas
body CUSTOM_RULE_2 /haga clic aquí para desuscribirse/i
describe CUSTOM_RULE_2 El cuerpo tiene desuscripción sospechosa
score CUSTOM_RULE_2 1.5

# Reglas URI personalizadas
uri CUSTOM_RULE_3 /bit\.ly/i
describe CUSTOM_RULE_3 Contiene URL acortada
score CUSTOM_RULE_3 0.5

Paso 9: Probar SpamAssassin

Probar con GTUBE

GTUBE es una cadena de prueba garantizada para activar SpamAssassin:

# Crear correo de prueba
cat > /tmp/spam-test.txt << 'EOF'
Subject: Prueba detección de spam

Este es el GTUBE, la Prueba Genérica para Correo Masivo No Solicitado

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
EOF

# Probar con SpamAssassin
spamassassin -t < /tmp/spam-test.txt

La salida debería mostrar:

X-Spam-Flag: YES
X-Spam-Level: **************************************************
X-Spam-Status: Yes, score=1000.0 required=5.0

Probar Correo Real

# Guardar un correo a archivo
cat > /tmp/real-test.txt << 'EOF'
From: [email protected]
To: [email protected]
Subject: Correo de prueba legítimo

Este es un correo normal con contenido regular.
No hay características de spam aquí.
EOF

# Probar
spamassassin -t < /tmp/real-test.txt

Debería mostrar puntuación baja:

X-Spam-Status: No, score=-0.1 required=5.0

Probar a Través del Flujo de Correo

# Enviar correo de prueba
echo "Probando integración de SpamAssassin" | mail -s "Prueba SA" [email protected]

Verificar encabezados en el correo recibido:

X-Spam-Checker-Version: SpamAssassin 3.4.6
X-Spam-Level:
X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID

Modo Debug

Para solución de problemas:

# Ejecutar en modo debug
spamassassin -D -t < /tmp/test-email.txt 2>&1 | less

Muestra coincidencia de reglas detallada y puntuación.

Paso 10: Optimización del Rendimiento

Ajustar Límites de Proceso

sudo nano /etc/default/spamassassin

Para bajo tráfico (1-10 correos/minuto):

OPTIONS="--max-children 2"

Para tráfico medio (10-50 correos/minuto):

OPTIONS="--max-children 5"

Para alto tráfico (50+ correos/minuto):

OPTIONS="--max-children 10"

Limitar Tamaño de Mensaje

sudo nano /etc/spamassassin/local.cf

Agregar:

# No escanear mensajes mayores a 500KB
body_part_scan_size 500000
rawbody_part_scan_size 500000

Deshabilitar Pruebas Innecesarias

Si ciertas pruebas son lentas o innecesarias:

sudo nano /etc/spamassassin/local.cf

Agregar:

# Deshabilitar DCC si es muy lento
use_dcc 0

# Reducir verificaciones RBL
skip_rbl_checks 0
dns_available test  # Solo hacer pruebas de red si DNS funciona

Usar Caché de Memoria

sudo nano /etc/default/spamassassin

Agregar:

OPTIONS="--max-children 5 --max-conn-per-child 200"

Recarga hijos después de 200 conexiones para prevenir fugas de memoria.

Monitorear Rendimiento

# Verificar conteo de procesos SpamAssassin
ps aux | grep spamd | wc -l

# Monitorear uso de memoria
ps aux | grep spamd

# Verificar log para escaneos lentos
grep "check: tests" /var/log/spamassassin/spamd.log | tail -20

Monitoreo y Mantenimiento

Monitoreo Diario

# Verificar estado de SpamAssassin
sudo systemctl status spamassassin

# Verificar detecciones recientes de spam
grep "X-Spam-Status: Yes" /var/log/mail.log | wc -l

# Verificar aprendizaje Bayesiano
sudo -u spamd sa-learn --dump magic

Tareas Semanales

# Entrenar filtro Bayesiano
sudo /usr/local/bin/train-spamassassin.sh

# Verificar falsos positivos
grep "X-Spam-Status: Yes" /var/log/mail.log | tail -50

# Revisar lista blanca/negra
sudo nano /etc/spamassassin/local.cf

Mantenimiento Mensual

# Actualizar reglas
sudo sa-update
sudo sa-compile

# Reconstruir base de datos Bayesiana si está corrupta
sudo -u spamd sa-learn --rebuild

# Revisar efectividad de reglas personalizadas
spamassassin --lint

Crear Script de Monitoreo

sudo nano /usr/local/bin/check-spamassassin.sh

Agregar:

#!/bin/bash

echo "=== Estado de SpamAssassin ==="
echo ""

echo "Estado del Servicio:"
systemctl is-active spamassassin

echo ""
echo "Estadísticas Bayesianas:"
sudo -u spamd sa-learn --dump magic | grep "non-token data"

echo ""
echo "Conteo de Spam de Hoy:"
grep "X-Spam-Status: Yes" /var/log/mail.log | grep "$(date '+%b %d')" | wc -l

echo ""
echo "Puntuaciones de Spam Recientes:"
grep "X-Spam-Status: Yes" /var/log/mail.log | tail -5 | awk '{print $NF}'

echo ""
echo "Conteo de Procesos:"
ps aux | grep [s]pamd | wc -l

Hacer ejecutable:

sudo chmod +x /usr/local/bin/check-spamassassin.sh

Programar diariamente:

sudo crontab -e

Agregar:

0 10 * * * /usr/local/bin/check-spamassassin.sh | mail -s "Reporte Diario SpamAssassin" [email protected]

Solución de Problemas Comunes

Problema 1: SpamAssassin No Inicia

Diagnóstico:

sudo systemctl status spamassassin
sudo journalctl -u spamassassin -n 50

Causas comunes:

  • Problemas de permisos
  • Errores de sintaxis de configuración
  • Dependencias faltantes

Soluciones:

# Verificar configuración
spamassassin --lint

# Corregir permisos
sudo chown -R spamd:spamd /var/lib/spamassassin
sudo chmod 750 /var/lib/spamassassin

# Reiniciar servicio
sudo systemctl restart spamassassin

Problema 2: Correo No Se Está Escaneando

Diagnóstico:

# Verificar encabezados de correo
# Buscar X-Spam-Status

# Verificar que Postfix está usando milter
sudo postconf | grep milter

# Verificar logs
sudo grep spamassassin /var/log/mail.log

Soluciones:

  • Verificar que la integración de Postfix está configurada
  • Reiniciar ambos servicios
  • Verificar permisos del socket milter

Problema 3: Demasiados Falsos Positivos

Diagnóstico:

# Verificar puntuaciones
grep "X-Spam-Status: Yes" /var/log/mail.log | grep "remitente-legítimo"

Soluciones:

# Aumentar umbral
sudo nano /etc/spamassassin/local.cf

Cambiar:

required_score 7.0   # Más permisivo

O poner en lista blanca al remitente:

whitelist_from [email protected]

Problema 4: Spam Faltante

Diagnóstico:

# Probar spam conocido
spamassassin -t < /ruta/a/correo/spam.txt

Soluciones:

# Bajar umbral
sudo nano /etc/spamassassin/local.cf

Cambiar:

required_score 3.5   # Más estricto

Entrenar con más spam:

sudo -u spamd sa-learn --spam /ruta/a/carpeta/spam/

Problema 5: Alto Uso de CPU

Diagnóstico:

top -u spamd

Soluciones:

# Reducir hijos
sudo nano /etc/default/spamassassin

Cambiar:

OPTIONS="--max-children 2"

Deshabilitar pruebas lentas:

sudo nano /etc/spamassassin/local.cf

Agregar:

use_dcc 0
skip_rbl_checks 1

Mejores Prácticas

1. Entrenamiento Regular

  • Entrenar semanalmente con nuevo spam/ham
  • Mínimo 200 mensajes de cada categoría
  • Usar retroalimentación real de usuarios

2. Monitorear Falsos Positivos

  • Revisar regularmente correo marcado
  • Ajustar puntuaciones para reglas problemáticas
  • Poner en lista blanca remitentes legítimos

3. Mantener Reglas Actualizadas

  • Actualizar semanalmente: sa-update
  • Suscribirse a actualizaciones de reglas
  • Compilar reglas: sa-compile

4. Optimizar Rendimiento

  • Limitar hijos máximos apropiadamente
  • Establecer límites de tamaño de mensaje
  • Monitorear uso de recursos

5. Usar con Otras Herramientas

  • Combinar con SPF/DKIM/DMARC
  • Usar junto con greylisting
  • Implementar limitación de tasa

6. Documentar Reglas Personalizadas

# Siempre agregar descripciones
describe CUSTOM_RULE Propósito de esta regla

Conclusión

Ahora tiene SpamAssassin completamente configurado e integrado con su servidor de correo, proporcionando filtrado robusto de spam con mínimos falsos positivos. Combinado con autenticación de correo apropiada (SPF, DKIM, DMARC), SpamAssassin crea una solución anti-spam completa.

Logros Clave

  1. SpamAssassin Instalado: Servicio ejecutándose e integrado
  2. Integración con Postfix: Correo siendo escaneado automáticamente
  3. Filtrado Bayesiano: Aprendiendo de sus patrones específicos de spam
  4. Pruebas de Red: Detección colaborativa de spam activa
  5. Rendimiento Optimizado: Configurado para sus niveles de tráfico

Próximos Pasos

  1. Entrenar filtro Bayesiano: Agregar más muestras de spam/ham
  2. Monitorear efectividad: Revisar spam capturado y falsos positivos
  3. Afinar puntuación: Ajustar umbral y pesos de reglas
  4. Crear reglas personalizadas: Abordar patrones específicos de spam
  5. Mantenimiento regular: Mantener reglas actualizadas y base de datos entrenada

Recordatorios Importantes

  • Entrenar regularmente: El filtro Bayesiano mejora con datos
  • Monitorear falsos positivos: Revisar y poner en lista blanca correo legítimo
  • Actualizar reglas semanalmente: Las técnicas de spam evolucionan constantemente
  • Optimizar para su tráfico: Ajustar conteo de hijos apropiadamente
  • Documentar cambios: Mantener registro de reglas personalizadas y modificaciones

Con SpamAssassin correctamente configurado y mantenido, puede lograr tasas de detección de spam de 95%+ mientras mantiene falsos positivos por debajo del 1%. Continúe entrenando, monitoreando y optimizando para mejores resultados.