GNU/Linux >> Tutoriales Linux >  >> Cent OS

Configure SpamAssassin en CentOS/RHEL para bloquear el spam de correo electrónico

Anteriormente discutimos 7 métodos efectivos para bloquear el spam de correo electrónico con Postfix en CentOS/RHEL. En este tutorial, aprenderemos a usar SpamAssassin (SA) para detectar spam en el servidor de correo CentOS/RHEL. SpamAssassin es una herramienta de lucha contra el spam gratuita, de código abierto, flexible y potente.

SpamAssassin es un sistema basado en puntajes. Verificará el mensaje de correo electrónico contra un gran conjunto de reglas. Cada regla agrega o elimina puntos en la puntuación del mensaje. Si la puntuación es lo suficientemente alta (de forma predeterminada, 5,0), el mensaje se considera spam.

Instalar SpamAssassin en CentOS/RHEL

Ejecute el siguiente comando para instalar SpamAssassin desde el repositorio de software CentOS/RHEL predeterminado.

sudo dnf install spamassassin

El servidor binario instalado por spamassassin el paquete se llama spamd , que estará escuchando en el puerto TCP 783 en localhost. Spamc es el cliente del demonio de filtrado de spam SpamAssassin. Por defecto, el spamassassin El servicio systemd está deshabilitado, puede habilitar el inicio automático en el momento del arranque con:

sudo systemctl enable spamassassin

Luego inicie SpamAssassin.

sudo systemctl start spamassassin

Integre SpamAssassin con el servidor SMTP de Postfix como Milter

Hay varias formas que puede usar para integrar SpamAssassin con Postfix. Prefiero usar SpamAssassin a través de la interfaz de milter de sendmail, porque me permite rechazar un correo electrónico cuando obtiene una puntuación muy alta, como 8, por lo que el destinatario nunca lo verá.

Instale el spamass-filter paquetes en CentOS/RHEL del repositorio de software EPEL.

sudo dnf install epel-release
sudo dnf install spamass-milter

Inicie el servicio.

sudo systemctl start spamass-milter

Habilite el inicio automático en el momento del arranque.

sudo systemctl enable spamass-milter

A continuación, edite /etc/postfix/main.cf archivo y agregue las siguientes líneas al final del archivo.

# Milter configuration
milter_default_action = accept
milter_protocol = 6
smtpd_milters = unix:/run/spamass-milter/spamass-milter.sock
non_smtpd_milters = $smtpd_milters

Si configuró OpenDKIM y OpenDMARC en CentOS/RHEL, estas líneas deberían verse como a continuación. El orden de milter importa.

# Milter configuration
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:127.0.0.1:8891,inet:127.0.0.1:8893,unix:/run/spamass-milter/spamass-milter.sock
non_smtpd_milters = $smtpd_milters

Si no ha configurado OpenDMARC, debe eliminar local:opendmarc/opendmarc.sock, de smtpd_milters .

Guarde y cierre el archivo. Ahora abra el /etc/sysconfig/spamass-milter archivo y busque la siguiente línea.

#EXTRA_FLAGS="-m -r 15"

Descomente esta línea y cambie 15 a su puntaje de rechazo preferido, como 8.

EXTRA_FLAGS="-m -r 8"

Si la puntuación de un correo electrónico en particular es superior a 8, Spamassassin lo rechazará y encontrará un mensaje como el siguiente en /var/log/maillog archivo, indicando que ha sido rechazado.

milter-reject: END-OF-MESSAGE  5.7.1 Blocked by SpamAssassin

Si desea que el remitente vea un texto de rechazo diferente, agregue -R (rechazar texto) opción como la siguiente.

EXTRA_FLAGS="-m -r 8 -R SPAM_ARE_NOT_ALLOWED_HERE"

Es una buena práctica ignorar los correos electrónicos que se originan en localhost agregando -i 127.0.0.1 opción.

EXTRA_FLAGS="-m -r 8 -R SPAM_ARE_NOT_ALLOWED_HERE -i 127.0.0.1"

También necesitamos agregar el -g sa-milt opción para que el grupo sa-milt pueda escribir en el socket spamass-milter.

EXTRA_FLAGS="-m -r 8 -R SPAM_ARE_NOT_ALLOWED_HERE -i 127.0.0.1 -g sa-milt"

Guarde y cierre el archivo. Luego agregue postfix usuario al sa-milt grupo, para que Postfix pueda comunicarse con spamass-milter.

sudo gpasswd -a postfix sa-milt

Reinicie Postfix y Spamass Milter para que los cambios surtan efecto.

sudo systemctl restart postfix spamass-milter

Verifique el estado y asegúrese de que se estén ejecutando.

sudo systemctl status postfix spamass-milter

Comprobación del encabezado y el cuerpo del correo electrónico con SpamAssassin

SpamAssassin viene con muchas reglas de detección de spam en /usr/share/spamassassin/ directorio. Permítame explicarle algunas de las reglas.

En el /usr/share/spamassassin/20_head_tests.cf archivo, puede encontrar las siguientes dos líneas.

header MISSING_HEADERS       eval:check_for_missing_to_header()
describe MISSING_HEADERS     Missing To: header

La primera línea comprueba si To: encabezado existe en un mensaje de correo electrónico. La segunda línea, que es opcional, explica lo que hace la primera línea. Las letras mayúsculas es el nombre de esta prueba.

Las siguientes 3 líneas son para probar si hay una Fecha: encabezado en el mensaje de correo electrónico.

header __HAS_DATE            exists:Date
meta MISSING_DATE            !__HAS_DATE
describe MISSING_DATE        Missing Date: header

Y estas 3 líneas son para probar si hay un De: encabezado en el mensaje de correo electrónico.

header __HAS_FROM            exists:From
meta MISSING_FROM            !__HAS_FROM
describe MISSING_FROM        Missing From: header

Establecer puntuación personalizada para reglas existentes

En el 50_scores.cf y 72_scores.cf archivo, puede ver las puntuaciones predeterminadas para varias pruebas. Si cree que la puntuación predeterminada es demasiado baja o demasiado alta para una determinada prueba, puede establecer una puntuación personalizada en /etc/mail/spamassassin/local.cf archivo.

sudo nano /etc/mail/spamassassin/local.cf

Por ejemplo, RFC 5322 requiere que cada mensaje de correo electrónico tenga De: y Fecha: campos de encabezado, por lo que puedo establecer una puntuación muy alta si alguno de ellos falta en un mensaje de correo electrónico agregando las siguientes dos líneas en local.cf archivo.

score MISSING_FROM   5.0
score MISSING_DATE   5.0

Aunque el Para: El campo de encabezado no es obligatorio en RFC 5322, prefiero establecer una puntuación alta si falta en un mensaje de correo electrónico porque nunca he visto un correo electrónico legítimo que no tenga este campo de encabezado.

score MISSING_HEADERS 3.0

Algunos spammers usan dos direcciones de correo electrónico en De: campo de encabezado como el siguiente.

From: "[email protected]" <[email protected]>

Creo que la puntuación predeterminada para este tipo de correo electrónico es baja, prefiero establecerla en 3,0.

score PDS_FROM_2_EMAILS 3.0

Hay spammers que envían mensajes vacíos sin asunto y sin partes de texto en el cuerpo. Establecí el puntaje para este tipo de correo electrónico en 5.0, por lo que se colocará en la carpeta de correo no deseado. ¿Por qué leerlo si está vacío?

score EMPTY_MESSAGE 5.0

Y otros spammers a menudo te piden que envíes una confirmación de lectura, puse la puntuación en 2.0 para este tipo de correo electrónico.

score FREEMAIL_DISPTO 2.0

Hay algunos spammers que usan diferentes nombres de dominio en el De: y Responder a: cabecera, les doy una puntuación de 3,5.

score FREEMAIL_FORGED_REPLYTO 3.5

También he visto a algunos spammers usando un nombre de dominio inexistente en el De: campo de encabezado. Establecí una puntuación de 5,0 para este tipo de correo electrónico.

score DKIM_ADSP_NXDOMAIN 5.0

Por último, pero no menos importante, muchos spammers falsifican gmail.com dominio en el De: campo de encabezado. Establecí una puntuación de 2,5 para este tipo de correo electrónico.

score FORGED_GMAIL_RCVD 2.5

Agregar sus propias reglas

Puede agregar reglas personalizadas de SpamAssassin en /etc/mail/spamassassin/local.cf archivo.

sudo nano /etc/mail/spamassassin/local.cf

Reglas de encabezado

Por ejemplo, algunos spammers usan la misma dirección de correo electrónico en el De: y Para: encabezamiento. puede agregar las siguientes líneas al final del archivo para agregar puntajes a dichos correos electrónicos.

header   FROM_SAME_AS_TO   ALL=~/\nFrom: ([^\n]+)\nTo: \1/sm
describe FROM_SAME_AS_TO   From address is the same as To address.
score    FROM_SAME_AS_TO   2.0

Algunos spammers usan una dirección vacía para la dirección del sobre (también conocido como el encabezado Return Path). Aunque esto es legítimo para enviar mensajes de rebote, prefiero darle una puntuación a este tipo de correo electrónico.

header    EMPTY_RETURN_PATH    ALL =~ /<>/i
describe  EMPTY_RETURN_PATH    empty address in the Return Path header.
score     EMPTY_RETURN_PATH    3.0

Si configuró OpenDMARC en su servidor de correo, ahora puede agregar las siguientes líneas para agregar puntajes a los correos electrónicos que no pasan la verificación de DMARC.

header    CUSTOM_DMARC_FAIL   Authentication-Results =~ /dmarc=fail/
describe  CUSTOM_DMARC_FAIL   This email failed DMARC check
score     CUSTOM_DMARC_FAIL   3.0

El código anterior le dice a SpamAssassin que verifique si los Authentication-Results El encabezado contiene la cadena "dmarc=fail". Si lo encuentra, aumente la puntuación en 3,0.

Reglas corporales

Puede decirle a SpamAssassin que aumente la puntuación de un correo electrónico si se encuentra una determinada frase en el cuerpo. Por ejemplo, muchos spammers utilizan la dirección de correo electrónico del destinatario en la primera línea del cuerpo, como se muestra a continuación.

Hi [email protected]
Hello [email protected]
Dear [email protected]

No quiero hablar con personas que no se molestan en escribir mi nombre en la primera línea del correo electrónico. Así que creé una regla en SpamAssassin para filtrar este tipo de correo electrónico.

body      BE_POLITE       /(hi|hello|dear) xiao\@linuxbabe\.com/i
describe  BE_POLITE       This email doesn't use a proper name for the recipient
score     BE_POLITE       5.0

La expresión regular en SpamAssassin distingue entre mayúsculas y minúsculas de forma predeterminada, puede agregar i opción al final para que no distinga entre mayúsculas y minúsculas.

Añadir puntuaciones negativas

También puede agregar una puntuación negativa a los buenos correos electrónicos, por lo que habrá menos falsos positivos. Por ejemplo, muchos de los lectores de mi blog me hacen preguntas sobre Linux y no creo que los spammers incluyan palabras como Debian , Ubuntu , Linux Mint en el cuerpo del correo electrónico, así que creé la siguiente regla.

body      GOOD_EMAIL    /(debian|ubuntu|linux mint|centos|red hat|RHEL|OpenSUSE|Fedora|Arch Linux|Raspberry Pi|Kali Linux)/i
describe  GOOD_EMAIL    I don't think spammer would include these words in the email body.
score     GOOD_EMAIL    -4.0

Si el cuerpo del correo electrónico contiene el nombre de una distribución de Linux, agregue una puntuación negativa (-4,0).

Hay algunas frases comunes que se incluyen en los mensajes de rebote legítimos, por lo que puedo agregar puntajes negativos a estos mensajes de correo electrónico.

body      BOUNCE_MSG    /(Undelivered Mail Returned to Sender|Undeliverable|Auto-Reply|Automatic reply)/i
describe  BOUNCE_MSG    Undelivered mail notifications or auto-reply messages
score     BOUNCE_MSG    -1.5

Tenga en cuenta que las reglas del cuerpo también incluyen el Asunto como la primera línea del contenido del cuerpo.

Metarreglas

Además de las reglas de encabezado y cuerpo, también hay reglas meta. Las reglas meta son combinaciones de otras reglas. Puede crear una regla meta que se activa cuando dos o más reglas son verdaderas. Por ejemplo, ocasionalmente recibo correos electrónicos que dicen que el remitente quiere solicitar un trabajo y se adjunta un currículum. Nunca he dicho en mi sitio web que necesito contratar gente. El archivo adjunto se utiliza para propagar virus. Creé la siguiente regla meta para filtrar este tipo de correo electrónico.

body      __RESUME        /(C.V|Resume)/i
meta      RESUME_VIRUS    (__RESUME && __MIME_BASE64)
describe  RESUME_VIRUS    The attachment contains virus.
score     RESUME_VIRUS    5.5

La primera regla secundaria __RESUME comprueba si el cuerpo del correo electrónico contiene la palabra C.V. o resume . La segunda regla secundaria __MIME_BASE64 ya está definido en /usr/share/spamassassin/20_body_tests.cf archivo, de la siguiente manera, por lo que no necesito definirlo nuevamente en el archivo local.cf. Esta regla comprueba si el mensaje de correo electrónico incluye un archivo adjunto base64.

rawbody   __MIME_BASE64  eval:check_for_mime('mime_base64_count')
describe  __MIME_BASE64  Includes a base64 attachment

Mi regla meta RESUME_VIRUS se activará cuando ambas reglas secundarias sean verdaderas, agregando una puntuación de 5.5 al mensaje de correo electrónico. Tenga en cuenta que la regla secundaria a menudo comienza con un guión bajo doble, por lo que no tiene puntaje por derecho propio.

Ahora aprendió cómo agregar puntaje si se encuentra una cadena. ¿Qué sucede si desea agregar puntaje cuando no existe una cadena en los encabezados de correo electrónico? Bueno, puedes usar el ! operador. Por ejemplo, he visto spammers que usan una sola palabra en la dirección De:. Agregué las siguientes líneas para calificar este tipo de correo electrónico.

header __AT_IN_FROM   From =~ /\@/
meta  NO_AT_IN_FROM   !__AT_IN_FROM
score NO_AT_IN_FROM   4.0

La primera línea comprueba si @ El signo existe en el encabezado De:. La segunda línea define una regla meta, que se activa cuando !__AT_IN_FROM es verdad. !__AT_IN_FROM regla es lo opuesto a la regla del primer encabezado, lo que significa que cuando no hay @ inicie sesión en la dirección De:, la regla meta se dispara.

También puede agregar las siguientes líneas para comprobar si existe un punto en la dirección De:.

header __DOT_IN_FROM   From =~ /\./
meta   NO_DOT_IN_FROM  !__DOT_IN_FROM
score  NO_DOT_IN_FROM  4.0

Lista blanca

Puede usar la whitelist_from parámetro para agregar una dirección de correo electrónico o un dominio en particular a su lista blanca de Spamassassin. Por ejemplo, agregue las siguientes dos líneas al final de local.cf archivo.

whitelist_from [email protected]
whitelist_from *@canonical.com

Un remitente incluido en la lista blanca tiene un -100 puntaje predeterminado. Todavía serán probados por las reglas de SpamAssassin, pero es muy difícil para ellos alcanzar una puntuación de 5.0.

Lista negra

Para incluir en la lista negra a un remitente, use blacklist_from parámetro, que tiene el mismo formato que whitelist_from .

blacklist_from [email protected]
blacklist_from *@example.org

Comprobación de sintaxis y reinicio

Después de guardar el local.cf expediente. Debes ejecutar spamassassin comando en modo pelusa para verificar si hay algún error de sintaxis.

sudo spamassassin --lint

Luego reinicie SpamAssassin para que los cambios surtan efecto.

sudo systemctl restart spamassassin

Lista blanca incorporada de SpamAssassin

Vale la pena mencionar que SpamAssassin se envía con su propia lista blanca. Hay varios archivos en /usr/share/spamassassin/ directorio que incluye 60_whitelist en el nombre del archivo. Estos archivos contienen la lista blanca integrada de SpamAssassin. Por ejemplo, el 60_whitelist_spf.cf El archivo contiene una lista de direcciones que envían correo que a menudo se etiqueta (incorrectamente) como spam.

Mover el spam a la carpeta de correo no deseado

Le mostraré cómo mover el spam a la carpeta de correo no deseado con el servidor Dovecot IMAP y el complemento de tamiz. Este método requiere que los correos electrónicos entrantes se entreguen al almacén de mensajes a través del LDA (agente de entrega local) de "entrega" de Dovecot. Si puede encontrar el siguiente texto en /var/log/maillog archivo, entonces se cumple este requisito.

postfix/lmtp

o

delivered via dovecot service

Ejecute el siguiente comando install dovecot-pigeonhole paquete del repositorio de software CentOS/RHEL.

sudo dnf install dovecot-pigeonhole

Este paquete instala dos archivos de configuración en /etc/dovecot/conf.d/ directorio:90-sieve.conf y 90-sieve-extprograms.conf . Abra el 15-lda.conf archivo.

sudo nano /etc/dovecot/conf.d/15-lda.conf

Agregue el complemento de tamiz al agente de entrega local (LDA).

protocol lda {
    # Space separated list of plugins to load (default is global mail_plugins).
    mail_plugins = $mail_plugins sieve
}

Guarde y cierre el archivo. Si puede encontrar el 20-lmtp.conf archivo bajo /etc/dovecot/conf.d/ directorio, entonces también debe habilitar el complemento de tamiz en ese archivo como se muestra a continuación.

protocol lmtp {
      mail_plugins = quota sieve
}

Luego abra el 90-sieve.conf archivo.

sudo nano /etc/dovecot/conf.d/90-sieve.conf

Vaya a la línea 79 y agregue la siguiente línea, que le dice a Sieve que siempre ejecute SpamToJunk.sieve secuencia de comandos antes de cualquier secuencia de comandos específica del usuario.

sieve_before = /var/mail/SpamToJunk.sieve

Guarde y cierre el archivo. Luego crea el script de tamiz.

sudo nano /var/mail/SpamToJunk.sieve

Agregue las siguientes líneas, que le indican a Dovecot que mueva los mensajes de correo electrónico con X-Spam-Flag: YES encabezado en la carpeta de correo no deseado.

require "fileinto";

if header :contains "X-Spam-Flag" "YES"
{
   fileinto "Junk";
   stop;
}

Guarde y cierre el archivo. Podemos compilar este script para que se ejecute más rápido.

sudo sievec /var/mail/SpamToJunk.sieve

Ahora hay un archivo binario guardado como /var/mail/SpamToJunk.svbin . Edite el archivo 10-mail.conf.

/etc/dovecot/conf.d/10-mail.conf

Agregue la siguiente línea en el archivo, para que los scripts de tamiz de cada usuario puedan almacenarse en su directorio de inicio.

mail_home = /var/vmail/%d/%n

Finalmente, reinicie dovecot para que los cambios surtan efecto.

sudo systemctl restart dovecot

Establecer el tamaño máximo del mensaje

De forma predeterminada, SpamAssassin no comprueba los mensajes con archivos adjuntos de más de 500 KB, como se indica en la siguiente línea en /var/log/mail.log archivo.

spamc[18922]: skipped message, greater than max message size (512000 bytes)

El max-size predeterminado se establece en 512000 (bytes). Un valor alto podría aumentar la carga del servidor, pero creo que el tamaño predeterminado es un poco pequeño. Para aumentar el tamaño máximo, edite /etc/sysconfig/spamass-milter archivo y busque la siguiente línea.

EXTRA_FLAGS="-m -r 8 -R SPAM_ARE_NOT_ALLOWED_HERE -i 127.0.0.1 -g sa-milt"

Agrega el -- --max-size=5120000 opción al final.

EXTRA_FLAGS="-m -r 8 -R SPAM_ARE_NOT_ALLOWED_HERE -i 127.0.0.1 -g sa-milt -- --max-size=5120000"

El -- vacío opción le dice a spamass-milter para pasar todas las opciones restantes a spamc , que comprende el --max-size opción. Aumenté el tamaño a 5000 KB. Guarde y cierre el archivo. Luego reinicie spamass-milter.

sudo systemctl restart spamass-milter

Cómo configurar las preferencias de usuario individuales

Es posible que desee establecer reglas personalizadas para los correos electrónicos enviados a una dirección específica en el servidor de correo. Me gusta mucho esta función. Tengo una dirección de correo electrónico de contacto para este blog, que solo se usa para mantener contacto con los lectores. No uso la dirección de correo electrónico de contacto en ningún otro lugar , para que pueda crear reglas especiales de filtrado de spam que se apliquen solo a esta dirección de correo electrónico de contacto.

Primero, edite el archivo de configuración principal de SpamAssassin.

sudo nano /etc/mail/spamassassin/local.cf

Agregue la siguiente línea para permitir reglas de usuario.

allow_user_rules 1

Guarde y cierre el archivo. A continuación, edite el archivo de entorno de SpamAssassin.

sudo nano /etc/sysconfig/spamassassin

Busque la siguiente línea.

SPAMDOPTIONS="-c -m5 -H --razor-home-dir='/var/lib/razor/' --razor-log-file='sys-syslog'"

Necesitamos agregar varias opciones adicionales.

SPAMDOPTIONS="-c -m5 -H --razor-home-dir='/var/lib/razor/' --razor-log-file='sys-syslog' --nouser-config --virtual-config-dir=/var/vmail/%d/%l/spamassassin --username=vmail"

donde:

  • --nouser-config :deshabilitar el archivo de configuración por usuario para usuarios locales de Unix.
  • --virtual-config-dir :especifique el directorio de configuración por usuario para usuarios virtuales. El %d el marcador de posición representa la parte del dominio de la dirección de correo electrónico y %l representa la parte local de la dirección de correo electrónico.
  • --username :ejecute spamd como usuario de vmail.

Guarde y cierre el archivo. Luego reinicie SpamAssassin.

sudo systemctl restart spamassassin

De forma predeterminada, spamass-milter no pasa la dirección del destinatario a SpamAssassin. Necesitamos hacer que envíe la dirección de correo electrónico completa a SpamAssassin. Edite el archivo de configuración de spamass-milter.

sudo nano /etc/sysconfig/spamass-milter

Agrega la siguiente opción.

-e yourdomain.com -u sa-milt

Así:

EXTRA_FLAGS="-e yourdomain.com -u sa-milt -m -r 8 -R SPAM_ARE_NOT_ALLOWED_HERE -i 127.0.0.1 -g sa-milt -- --max-size=5120000"

El -e La opción hará que spamass-milter pase la dirección de correo electrónico completa a SpamAssassin. Reemplace yourdomain.com con su nombre de dominio real. Guarde y cierre el archivo. Luego reinicie spamass-milter.

sudo systemctl restart spamass-milter

Ahora envíe un correo electrónico desde Gmail, Hotmail, etc. a la dirección de correo electrónico de su dominio. Encontrará que el directorio spamassassin se crea automáticamente en /var/vmail/yourdomain.com/username/ directorio.

cd /var/vmail/yourdomain.com/username/spamassassin/

Puede usar un editor de texto de línea de comandos para crear el archivo de preferencias por usuario aquí. Este archivo debe tener el nombre user_prefs .

sudo nano user_prefs

Puede agregar reglas personalizadas en este archivo tal como lo haría en /etc/spamassassin/local.cf archivo.

Por ejemplo, descubrí que muchos spammers terminan el cuerpo de su correo electrónico con un enlace para cancelar la suscripción que le permite eliminar contactos futuros. No me suscribí a su correo no deseado y no creo que el enlace para cancelar la suscripción elimine mi dirección de correo electrónico de su base de datos de contactos. Así que uso SpamAssassin para calificar este tipo de correo electrónico. La siguiente regla agrega una puntuación de 3.0 a los correos electrónicos que contienen la palabra "cancelar suscripción" o sus variaciones en el cuerpo. (No uso la dirección de correo electrónico de contacto de este blog para suscribirme a nada en línea).

body      SUBSCRIPTION_SPAM   /(unsubscribe|u n s u b s c r i b e|Un-subscribe)/i
describe  SUBSCRIPTION_SPAM   I didn't subscribe to your spam.
score     SUBSCRIPTION_SPAM   3.0

A veces, el cuerpo del correo electrónico no contiene la palabra "cancelar suscripción", pero hay un List-Unsubscribe encabezado, lo que significa que el spammer agregó mi dirección de correo electrónico de contacto a su lista de correo sin mi consentimiento. También puedo calificar este tipo de correo electrónico, con la siguiente regla.

header    LIST_UNSUBSCRIBE   ALL =~ /List-Unsubscribe/i
describe  LIST_UNSUBSCRIBE   I didn't join your mailing list.
score     LIST_UNSUBSCRIBE   2.0

Creé una cuenta de Mailjet con una dirección de correo electrónico diferente. Algunos spammers asumen que utilicé mi dirección de correo electrónico de contacto para crear una cuenta de Mailjet, por lo que intentan hacerse pasar por el servicio de atención al cliente de Mailjet para atraerme y escribir mi contraseña en una página de inicio de sesión falsa de Mailjet. Puedo calificar este tipo de correo electrónico como se muestra a continuación.

header    MAILJET_IMPOSTER   From =~ /mailjet/i
describe  MAILJET_IMPOSTER   I don't have a mailjet account for this email address.
score     MAILJET_IMPOSTER   2.5

Las líneas anteriores comprueban si From: el encabezado contiene la palabra mailjet . Si lo encuentra, asígnele una puntuación de 2,5.

De vez en cuando recibo correos electrónicos de spammers chinos cuyo From: nombre de dominio no tiene letras vocales (a, e, i, o, u). El spammer usó el cdjcbzclyxgs.xyz nombre de dominio. Es casi imposible que una persona/entidad normal use nombres de dominio sin letras vocales, considerando que muchos dominios de nivel superior ya han incluido letras vocales (.com, .net, .org, .co, .io, .shop, .dev , etc.), por lo que le doy a este tipo de correo electrónico una puntuación muy alta, como la siguiente. La puntuación predeterminada es 0,5.

score FROM_DOMAIN_NOVOWEL 4.0

Algunos correos electrónicos no deseados usan muchas imágenes en el cuerpo pero contienen muy poco texto. La puntuación predeterminada para este tipo de correo electrónico es 1,9, pero prefiero establecer una puntuación alta para mi dirección de correo electrónico de contacto.

score HTML_IMAGE_RATIO_02 4.0

También recibí un correo electrónico no deseado con mi dirección de correo electrónico en el asunto, por lo que puedo agregarle una puntuación alta.

header    SUBJECT_SPAM   Subject =~ /xiao\@linuxbabe.com/i
describe  SUBJECT_SPAM   Subject contains my email address.
score     SUBJECT_SPAM   4.0

Algunos spammers utilizan BCC (Blind Carbon Copy) para ocultar a otros destinatarios. No quiero recibir ese correo electrónico. Así que hice la siguiente regla. Si mi nombre de dominio no está en el encabezado Para:, agregue 3.0 al correo electrónico.

header __DOMAIN_IN_TO     To =~ /linuxbabe.com/
meta   DOMAIN_NOT_IN_TO   !__DOMAIN_IN_TO
score  DOMAIN_NOT_IN_TO   3.0

Después de agregar reglas personalizadas, cierre el archivo y ejecute el siguiente comando para verificar la sintaxis. Salida silenciosa significa que no hay error de sintaxis.

sudo spamassassin --lint

Finalmente, reinicie SpamAssassin para que los cambios surtan efecto.

sudo systemctl restart spamassassin

Ahora puede probar las preferencias del usuario enviando correos electrónicos de prueba desde otros servicios de correo electrónico a la dirección de correo electrónico de su propio dominio.

Rechazar o Rebotar

Si un servidor SMTP receptor determina durante la conversación SMTP que no aceptará el mensaje, lo rechaza. A veces, el servidor SMTP acepta un mensaje y luego descubre que no se puede entregar, quizás el destinatario no existe o hay un problema en la entrega final. En este caso, el servidor SMTP que ha aceptado el mensaje lo devuelve al remitente original mediante el envío de un informe de error, que generalmente incluye el motivo por el cual no se pudo entregar el mensaje original.

No debe rebotar spam, porque la dirección de correo electrónico en Return-path: encabezado o From: el encabezado probablemente no existe o es la dirección de correo electrónico de una persona inocente, por lo que el mensaje de rebote probablemente irá a la dirección de correo electrónico de una persona inocente, creando el problema de retrodispersión. En lugar de rebotar el spam, debe rechazar el spam durante el cuadro de diálogo SMTP, antes de que se acepte el correo electrónico. Este artículo no te mostró rebotando un mensaje de spam. Debe recordar esta regla en caso de que vaya a crear reglas de filtro de spam por su cuenta. En caso de duda, pruebe sus reglas de filtrado de spam para ver si va a crear mensajes de rebote.

URIBL_BLOCKED

De manera predeterminada, SpamAssassin habilita la regla URIBL, que verifica si un mensaje de correo electrónico contiene enlaces identificados como spam por URIBL. Esta es una medida anti-spam muy efectiva. Sin embargo, es posible que no pueda consultar URIBL. Verifique los encabezados de correo electrónico sin formato de un mensaje de correo electrónico entrante, busque el X-Spam-Status encabezado.

X-Spam-Status: No, score=-92.2 required=5.0 tests=DATING_SPAM,DKIM_SIGNED,
	DKIM_VALID,HTML_FONT_LOW_CONTRAST,HTML_MESSAGE,SPF_PASS,
	SUBSCRIPTION_SPAM,UNPARSEABLE_RELAY,URIBL_BLOCKED,USER_IN_WHITELIST
	autolearn=no autolearn_force=no version=3.4.2

Si puede encontrar URIBL_BLOCKED en este encabezado, eso significa que no puede consultar URIBL. La mayoría de las veces es porque no está utilizando su propio solucionador de DNS local. Puede ejecutar el siguiente comando en su servidor de correo para probar qué servidor DNS está utilizando para consultar URIBL.

host -tTXT 2.0.0.127.multi.uribl.com

Salida de muestra:

2.0.0.127.multi.uribl.com descriptive text "127.0.0.1 -> Query Refused. See http://uribl.com/refused.shtml for more information [Your DNS IP: xx.xx.xx.xx]"

Para corregir este error, debe ejecutar su propio solucionador de DNS local en su servidor de correo.

  • Ejecute su propio BIND DNS Resolver en CentOS/RHEL 

Una vez que su sistema de resolución de DNS local esté en funcionamiento, vuelva a probar URIBL.

host -tTXT 2.0.0.127.multi.uribl.com

Si ve el siguiente resultado, significa que ahora puede consultar URIBL.

2.0.0.127.multi.uribl.com descriptive text "permanent testpoint"

A partir de ahora, los mensajes de correo electrónico entrantes no tendrán la etiqueta URIBL_BLOCKED en el X-Spam-Status. encabezado.

Otras cositas

SpamAssassin 4.0 incluye un complemento HashBL, que puede verificar si los estafadores han utilizado una dirección de Bitcoin en el cuerpo del correo electrónico. Y también hay un nuevo complemento llamado "Ole Macro" que puede verificar si un correo electrónico contiene un archivo adjunto de Office con una macro. Este complemento intentaría detectar si la macro adjunta es maliciosa o no.


Cent OS
  1. Cómo configurar o cambiar el nombre de host en CentOS 7 / RHEL 7

  2. Cómo configurar nombres de dispositivos personalizados usando udev en CentOS/RHEL 7

  3. Cómo configurar children-max para el servicio udev en CentOS/RHEL 7

  4. Establecer contraseña para el modo de usuario único en Linux (CentOS/RHEL)

  5. CentOS / RHEL 7:cómo establecer el objetivo predeterminado (nivel de ejecución predeterminado)

Configure el servidor Samba en CentOS 8/RHEL 8 para compartir archivos

Configure SpamAssassin en CentOS/RHEL para bloquear el spam de correo electrónico

Configure OpenDMARC con Postfix en CentOS/RHEL para bloquear la falsificación de correo electrónico

7 consejos efectivos para bloquear el spam de correo electrónico con Postfix en CentOS/RHEL

Cómo configurar una VPN basada en IPsec con Strongswan en CentOS/RHEL 8

Cómo configurar SSH en CentOS y RHEL