Filtro de spam para Postfix
Spam Scanner filtra un servidor Postfix en unos cinco minutos. Funciona como milterFiltro de correo: un protocolo de Sendmail, que también usa Postfix, que permite que un programa aparte inspeccione cada mensaje durante la sesión SMTP., así que Postfix le consulta sobre cada mensaje durante la sesión SMTP y puede rechazar el spam antes de aceptarlo.
Instalar y ejecutar#
npm install --global spamscanner
spamscanner milter --port 7831 --auth --subject-tag "[SPAM]"--auth comprueba SPFSender Policy Framework: un registro DNS que enumera los servidores autorizados a enviar correo de un dominio., DKIMDomainKeys Identified Mail: una firma sobre un mensaje, que se verifica con una clave pública publicada en el DNS del remitente., DMARCUna política en DNS que indica a los receptores qué hacer cuando el correo que dice venir de un dominio no supera la alineación de SPF y DKIM. y ARCAuthenticated Received Chain: firmas que conservan los resultados de autenticación a través de los servidores de reenvío.; --subject-tag marca el spam en el asunto. Cada mensaje recibe los encabezados X-Spam-Flag, X-Spam-Score, X-Spam-Status y X-Spam-Action, y cualquier encabezado X-Spam-* que haya puesto el remitente se elimina primero.
Conectar Postfix#
# /etc/postfix/main.cf
smtpd_milters = inet:127.0.0.1:7831
milter_protocol = 6
milter_default_action = acceptsudo postfix reloadmilter_default_action = accept deja pasar el correo sin filtrar si el milter no está disponible; tempfail pide en cambio a los remitentes que vuelvan a intentarlo.
Rechazar el spam durante la sesión SMTP#
spamscanner milter --port 7831 --auth --rejectLos mensajes que llegan al umbral de rechazo (15 puntos) se rechazan con 451 4.7.1 Message rejected as spam. Un 451 es temporal: el remitente conserva el mensaje y vuelve a intentarlo, así que una decisión equivocada cuesta un retraso, no un mensaje perdido. Cuando los resultados parezcan correctos, --reject-code 550 hace que el rechazo sea permanente.
Sin milter#
Un filtro de contenido se ejecuta después de que Postfix acepte un mensaje: Postfix lo pasa por una tubería a spamscanner filter, que añade los encabezados y lo devuelve. Nunca se rechaza nada durante la sesión, y un fallo siempre aplaza la entrega en lugar de devolver el mensaje. Configuración del filtro de contenido
Spam a Junk#
Con Dovecot, una regla de Sieve archiva el correo marcado:
require ["fileinto"];
if header :is "X-Spam-Flag" "YES" { fileinto "Junk"; stop; }Probado con un Postfix real#
Las pruebas de extremo a extremo del proyecto ejecutan Postfix con el milter y el filtro de contenido: el hamCorreo deseado: lo contrario del spam. se entrega con encabezados y sin el X-Spam-Flag falsificado, el spam se marca y GTUBEGeneric Test for Unsolicited Bulk Email: una cadena fija que todo filtro de spam trata como spam, para hacer pruebas. se rechaza con un 550 durante la sesión SMTP.
Siguiente: la guía completa de Postfix y Sendmail, con una unidad de systemd y el INPUT_MAIL_FILTER de Sendmail.