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
- Recepción de Correo: El correo llega a su servidor
- Análisis de Contenido: SpamAssassin escanea encabezados, cuerpo, adjuntos
- Ejecución de Pruebas: Ejecuta múltiples pruebas (50+ por defecto)
- Cálculo de Puntuación: Cada prueba contribuye puntos a la puntuación de spam
- Comparación de Umbral: La puntuación total se compara con el umbral (predeterminado: 5.0)
- 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
- SpamAssassin Instalado: Servicio ejecutándose e integrado
- Integración con Postfix: Correo siendo escaneado automáticamente
- Filtrado Bayesiano: Aprendiendo de sus patrones específicos de spam
- Pruebas de Red: Detección colaborativa de spam activa
- Rendimiento Optimizado: Configurado para sus niveles de tráfico
Próximos Pasos
- Entrenar filtro Bayesiano: Agregar más muestras de spam/ham
- Monitorear efectividad: Revisar spam capturado y falsos positivos
- Afinar puntuación: Ajustar umbral y pesos de reglas
- Crear reglas personalizadas: Abordar patrones específicos de spam
- 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.


