GNU/Linux >> Tutoriels Linux >  >> Cent OS

Configurer SpamAssassin sur CentOS/RHEL pour bloquer le spam par e-mail

Auparavant, nous avons discuté de 7 méthodes efficaces pour bloquer les spams par e-mail avec Postfix sur CentOS/RHEL. Dans ce tutoriel, nous allons apprendre à utiliser SpamAssassin (SA) pour détecter le spam sur le serveur de messagerie CentOS/RHEL. SpamAssassin est un outil de lutte contre le spam gratuit, open source, flexible et puissant.

SpamAssassin est un système basé sur le score. Il vérifiera le message électronique par rapport à un large ensemble de règles. Chaque règle ajoute ou supprime des points dans le score du message. Si le score est suffisamment élevé (par défaut 5,0), le message est considéré comme un spam.

Installer SpamAssassin sur CentOS/RHEL

Exécutez la commande suivante pour installer SpamAssassin à partir du référentiel de logiciels CentOS/RHEL par défaut.

sudo dnf install spamassassin

Le binaire du serveur installé par le spamassassin le paquet s'appelle spamd , qui écoutera sur le port TCP 783 sur localhost. Spamc est le client du démon de filtrage de spam SpamAssassin. Par défaut, le spamassassin Le service systemd est désactivé, vous pouvez activer le démarrage automatique au démarrage avec :

sudo systemctl enable spamassassin

Puis lancez SpamAssassin.

sudo systemctl start spamassassin

Intégrer SpamAssassin avec le serveur SMTP de Postfix en tant que Milter

Il existe plusieurs façons d'intégrer SpamAssassin à Postfix. Je préfère utiliser SpamAssassin via l'interface sendmail milter, car cela me permet de rejeter un e-mail lorsqu'il obtient un score très élevé tel que 8, il ne sera donc jamais vu par le destinataire.

Installez le spamass-filter packages sur CentOS/RHEL à partir du référentiel de logiciels EPEL.

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

Démarrez le service.

sudo systemctl start spamass-milter

Activer le démarrage automatique au démarrage.

sudo systemctl enable spamass-milter

Ensuite, modifiez /etc/postfix/main.cf fichier et ajoutez les lignes suivantes à la fin du fichier.

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

Si vous avez configuré OpenDKIM et OpenDMARC sur CentOS/RHEL, ces lignes devraient ressembler à celles ci-dessous. L'ordre du milter compte.

# 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 vous n'avez pas configuré OpenDMARC, vous devez supprimer local:opendmarc/opendmarc.sock, de smtpd_milters .

Enregistrez et fermez le fichier. Ouvrez maintenant le /etc/sysconfig/spamass-milter fichier et recherchez la ligne suivante.

#EXTRA_FLAGS="-m -r 15"

Décommentez cette ligne et remplacez 15 par votre score de rejet préféré, par exemple 8.

EXTRA_FLAGS="-m -r 8"

Si le score d'un e-mail particulier est supérieur à 8, Spamassassin le rejettera et vous trouverez un message comme ci-dessous dans le /var/log/maillog fichier, indiquant qu'il est rejeté.

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

Si vous souhaitez que l'expéditeur voie un texte de rejet différent, ajoutez le -R (rejeter le texte) comme ci-dessous.

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

C'est une bonne pratique d'ignorer les e-mails provenant de localhost en ajoutant le -i 127.0.0.1 option.

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

Nous devons également ajouter le -g sa-milt option pour rendre le socket spamass-milter accessible en écriture par le groupe sa-milt.

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

Enregistrez et fermez le fichier. Ajoutez ensuite postfix utilisateur au sa-milt groupe, afin que Postfix puisse communiquer avec spamass-milter.

sudo gpasswd -a postfix sa-milt

Redémarrez Postfix et Spamass Milter pour que les modifications prennent effet.

sudo systemctl restart postfix spamass-milter

Vérifiez l'état et assurez-vous qu'ils sont en cours d'exécution.

sudo systemctl status postfix spamass-milter

Vérification de l'en-tête et du corps des e-mails avec SpamAssassin

SpamAssassin est livré avec de nombreuses règles de détection de spam dans /usr/share/spamassassin/ annuaire. Permettez-moi d'expliquer certaines des règles.

Dans /usr/share/spamassassin/20_head_tests.cf fichier, vous pouvez trouver les deux lignes suivantes.

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

La première ligne teste si le To : l'en-tête existe dans un message électronique. La deuxième ligne, qui est facultative, explique ce que fait la première ligne. Les lettres majuscules sont le nom de ce test.

Les 3 lignes suivantes servent à tester s'il y a une Date : en-tête dans le message électronique.

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

Et ces 3 lignes sont pour tester s'il y a un De : en-tête dans le message électronique.

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

Définir un score personnalisé pour les règles existantes

Dans le 50_scores.cf et 72_scores.cf fichier, vous pouvez voir les scores par défaut pour divers tests. Si vous pensez que le score par défaut est trop faible ou trop élevé pour un certain test, vous pouvez définir un score personnalisé dans /etc/mail/spamassassin/local.cf fichier.

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

Par exemple, la RFC 5322 exige que chaque e-mail contienne De : et Date : champs d'en-tête, afin que je puisse définir un score très élevé si l'un d'eux est manquant dans un message électronique en ajoutant les deux lignes suivantes dans local.cf fichier.

score MISSING_FROM   5.0
score MISSING_DATE   5.0

Bien que le À : le champ d'en-tête n'est pas obligatoire dans la RFC 5322, je préfère définir un score élevé s'il manque dans un e-mail car je n'ai jamais vu un e-mail légitime manquer ce champ d'en-tête.

score MISSING_HEADERS 3.0

Certains spammeurs utilisent deux adresses e-mail dans le champ De : champ d'en-tête comme ci-dessous.

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

Je pense que le score par défaut pour ce type d'email est faible, je préfère le mettre à 3.0.

score PDS_FROM_2_EMAILS 3.0

Il y a des spammeurs qui envoient des messages vides sans sujet et sans parties textuelles dans le corps. J'ai défini le score pour ce type d'e-mail sur 5,0, il sera donc placé dans le dossier spam. Pourquoi le lire s'il est vide ?

score EMPTY_MESSAGE 5.0

Et d'autres spammeurs vous demandent souvent d'envoyer une confirmation de lecture, j'ai mis la note à 2.0 pour ce genre d'email.

score FREEMAIL_DISPTO 2.0

Certains spammeurs utilisent des noms de domaine différents dans De : et Répondre à : en-tête, je leur donne une note de 3,5.

score FREEMAIL_FORGED_REPLYTO 3.5

J'ai également vu des spammeurs utiliser un nom de domaine inexistant dans le De : champ d'en-tête. J'ai défini un score de 5,0 pour ce type d'e-mail.

score DKIM_ADSP_NXDOMAIN 5.0

Enfin, de nombreux spammeurs usurpent gmail.com domaine dans De : champ d'en-tête. J'ai défini une note de 2,5 pour ce type d'e-mail.

score FORGED_GMAIL_RCVD 2.5

Ajouter vos propres règles

Vous pouvez ajouter des règles SpamAssassin personnalisées dans /etc/mail/spamassassin/local.cf fichier.

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

Règles d'en-tête

Par exemple, certains spammeurs utilisent la même adresse e-mail dans le champ De : et À : entête. vous pouvez ajouter les lignes suivantes à la fin du fichier pour ajouter des scores à ces e-mails.

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

Certains spammeurs utilisent une adresse vide pour l'adresse Envelope From (alias l'en-tête Return Path). Bien que cela soit légitime pour envoyer des messages de rebond, je préfère donner une note à ce type d'e-mail.

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

Si vous avez configuré OpenDMARC sur votre serveur de messagerie, vous pouvez maintenant ajouter les lignes suivantes pour ajouter des scores aux e-mails qui échouent à la vérification DMARC.

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

Le code ci-dessus indique à SpamAssassin de vérifier si les Authentication-Results l'en-tête contient la chaîne "dmarc=fail". Si trouvé, augmentez le score de 3,0.

Règles du corps

Vous pouvez dire à SpamAssassin d'augmenter le score d'un e-mail si une certaine phrase se trouve dans le corps. Par exemple, de nombreux spammeurs utilisent l'adresse e-mail du destinataire dans la première ligne du corps, comme ci-dessous.

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

Je ne veux pas parler avec des gens qui ne prennent pas la peine d'écrire mon nom dans la première ligne de l'e-mail. J'ai donc créé une règle dans SpamAssassin pour filtrer ce genre d'email.

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

L'expression régulière dans SpamAssassin est sensible à la casse par défaut, vous pouvez ajouter le i option à la fin pour le rendre insensible à la casse.

Ajouter des scores négatifs

Vous pouvez également ajouter un score négatif aux bons e-mails, afin qu'il y ait moins de faux positifs. Par exemple, beaucoup de lecteurs de mon blog me posent des questions sur Linux et je ne pense pas que les spammeurs incluraient des mots comme Debian , Ubuntu , Linux Mint dans le corps de l'e-mail, j'ai donc créé la règle suivante.

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 le corps de l'e-mail contient le nom d'une distribution Linux, ajoutez un score négatif (-4.0).

Certaines phrases courantes sont incluses dans les messages de rebond légitimes. Je peux donc ajouter des scores négatifs à ces e-mails.

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

Notez que les règles du corps incluent également le sujet comme première ligne du contenu du corps.

Méta-règles

En plus des règles d'en-tête et de corps, il existe également des méta-règles. Les méta-règles sont des combinaisons d'autres règles. Vous pouvez créer une méta-règle qui se déclenche lorsque deux ou plusieurs autres règles sont vraies. Par exemple, je reçois occasionnellement des e-mails indiquant que l'expéditeur souhaite postuler à un emploi et qu'un CV est joint. Je n'ai jamais dit sur mon site Web que j'avais besoin d'embaucher des gens. La pièce jointe est utilisée pour propager le virus. J'ai créé la méta-règle suivante pour filtrer ce type d'e-mail.

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 première sous-règle __RESUME teste si le corps de l'email contient le mot C.V. ou resume . La deuxième sous-règle __MIME_BASE64 est déjà défini dans /usr/share/spamassassin/20_body_tests.cf fichier, comme suit, donc je n'ai pas besoin de le redéfinir dans le fichier local.cf. Cette règle teste si le message électronique inclut une pièce jointe base64.

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

Ma méta-règle RESUME_VIRUS se déclenchera lorsque les deux sous-règles sont vraies, ajoutant un score de 5,5 au message électronique. Notez que la sous-règle commence souvent par un double trait de soulignement, elle n'a donc pas de score à part entière.

Vous avez maintenant appris à ajouter un score si une chaîne est trouvée. Que faire si vous souhaitez ajouter un score lorsqu'une chaîne n'existe pas dans les en-têtes d'e-mail ? Eh bien, vous pouvez utiliser le ! opérateur. Par exemple, j'ai vu des spammeurs utiliser un seul mot dans l'adresse De :. J'ai ajouté les lignes suivantes pour noter ce type d'e-mail.

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

La première ligne vérifie si le @ signe existe dans l'en-tête De :. La deuxième ligne définit une méta-règle, qui se déclenche lorsque !__AT_IN_FROM est vrai. !__AT_IN_FROM la règle est l'opposé de la première règle d'en-tête, ce qui signifie qu'il n'y a pas de @ connectez-vous à l'adresse De :, la méta-règle se déclenche.

Vous pouvez également ajouter les lignes suivantes pour vérifier si un point existe dans l'adresse De :.

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

Liste blanche

Vous pouvez utiliser la whitelist_from paramètre pour ajouter une adresse e-mail ou un domaine particulier à votre liste blanche Spamassassin. Par exemple, ajoutez les deux lignes suivantes à la fin de local.cf fichier.

whitelist_from [email protected]
whitelist_from *@canonical.com

Un expéditeur sur liste blanche a un -100 note par défaut. Ils seront toujours testés par les règles de SpamAssassin, mais il leur est très difficile d'atteindre un score de 5,0.

Liste noire

Pour mettre un expéditeur sur liste noire, utilisez le blacklist_from paramètre, qui a le même format que whitelist_from .

blacklist_from [email protected]
blacklist_from *@example.org

Vérification de la syntaxe et redémarrage

Après avoir enregistré le local.cf dossier. Vous devriez exécuter le spamassassin commande en mode peluche pour vérifier s'il y a des erreurs de syntaxe.

sudo spamassassin --lint

Redémarrez ensuite SpamAssassin pour que les modifications prennent effet.

sudo systemctl restart spamassassin

Liste blanche intégrée de SpamAssassin

Il convient de mentionner que SpamAssassin est livré avec sa propre liste blanche. Il y a plusieurs fichiers sous /usr/share/spamassassin/ répertoire qui inclut 60_whitelist dans le nom du fichier. Ces fichiers contiennent la liste blanche intégrée de SpamAssassin. Par exemple, le 60_whitelist_spf.cf contient une liste d'adresses qui envoient du courrier souvent marqué (incorrectement) comme spam.

Déplacer les spams dans le dossier de courrier indésirable

Je vais vous montrer comment déplacer le spam vers le dossier Junk avec le serveur Dovecot IMAP et le plugin sieve. Cette méthode nécessite que les e-mails entrants soient livrés au magasin de messages via le Dovecot "deliver" LDA (agent de livraison local). Si vous pouvez trouver le texte suivant dans /var/log/maillog fichier, alors cette exigence est satisfaite.

postfix/lmtp

ou

delivered via dovecot service

Exécutez la commande suivante pour installer dovecot-pigeonhole package du référentiel de logiciels CentOS/RHEL.

sudo dnf install dovecot-pigeonhole

Ce paquet installe deux fichiers de configuration sous /etc/dovecot/conf.d/ répertoire :90-sieve.conf et 90-sieve-extprograms.conf . Ouvrez le 15-lda.conf fichier.

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

Ajoutez le plugin sieve à l'agent de livraison local (LDA).

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

Enregistrez et fermez le fichier. Si vous pouvez trouver le 20-lmtp.conf fichier sous /etc/dovecot/conf.d/ répertoire, alors vous devez également activer le plugin sieve dans ce fichier comme ci-dessous.

protocol lmtp {
      mail_plugins = quota sieve
}

Ouvrez ensuite le 90-sieve.conf fichier.

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

Allez à la ligne 79 et ajoutez la ligne suivante, qui indique à Sieve de toujours exécuter le SpamToJunk.sieve script avant tout script spécifique à l'utilisateur.

sieve_before = /var/mail/SpamToJunk.sieve

Enregistrez et fermez le fichier. Créez ensuite le script de tamis.

sudo nano /var/mail/SpamToJunk.sieve

Ajoutez les lignes suivantes, qui indiquent à Dovecot de déplacer tous les e-mails avec le X-Spam-Flag: YES en-tête dans le dossier Junk.

require "fileinto";

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

Enregistrez et fermez le fichier. Nous pouvons compiler ce script afin qu'il s'exécute plus rapidement.

sudo sievec /var/mail/SpamToJunk.sieve

Il existe maintenant un fichier binaire enregistré sous /var/mail/SpamToJunk.svbin . Modifiez le fichier 10-mail.conf.

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

Ajoutez la ligne suivante dans le fichier, afin que les scripts sieve de chaque utilisateur puissent être stockés dans son répertoire personnel.

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

Enfin, redémarrez Dovecot pour que les modifications prennent effet.

sudo systemctl restart dovecot

Définir la taille maximale des messages

Par défaut, SpamAssassin ne vérifie pas les messages avec des pièces jointes supérieures à 500 Ko, comme indiqué par la ligne suivante dans le /var/log/mail.log fichier.

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

La valeur par défaut max-size est défini sur 512000 (octets). Une valeur élevée pourrait augmenter la charge du serveur, mais je pense que la taille par défaut est un peu petite. Pour augmenter la taille maximale, modifiez /etc/sysconfig/spamass-milter fichier et recherchez la ligne suivante.

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

Ajoutez le -- --max-size=5120000 option à la fin.

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

Le -- vide l'option indique à spamass-milter pour transmettre toutes les options restantes à spamc , qui comprend le --max-size option. J'ai augmenté la taille à 5000 Ko. Enregistrez et fermez le fichier. Redémarrez ensuite spamass-milter.

sudo systemctl restart spamass-milter

Comment configurer les préférences utilisateur individuelles

Vous pouvez définir des règles personnalisées pour les e-mails envoyés à une adresse spécifique sur le serveur de messagerie. J'aime beaucoup cette fonctionnalité. J'ai une adresse e-mail de contact pour ce blog, qui n'est utilisée que pour garder le contact avec les lecteurs. Je n'utilise pas l'adresse e-mail de contact ailleurs , afin que je puisse créer des règles spéciales de filtrage des spams qui s'appliquent uniquement à cette adresse e-mail de contact.

Commencez par modifier le fichier de configuration principal de SpamAssassin.

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

Ajoutez la ligne suivante pour autoriser les règles utilisateur.

allow_user_rules 1

Enregistrez et fermez le fichier. Ensuite, modifiez le fichier d'environnement SpamAssassin.

sudo nano /etc/sysconfig/spamassassin

Trouvez la ligne suivante.

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

Nous devons ajouter plusieurs options supplémentaires.

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"

Où :

  • --nouser-config  :désactiver le fichier de configuration par utilisateur pour les utilisateurs Unix locaux.
  • --virtual-config-dir :spécifiez le répertoire de configuration par utilisateur pour les utilisateurs virtuels. Le %d l'espace réservé représente la partie domaine de l'adresse e-mail et %l représente la partie locale de l'adresse e-mail.
  • --username  :exécutez spamd en tant qu'utilisateur vmail.

Enregistrez et fermez le fichier. Redémarrez ensuite SpamAssassin.

sudo systemctl restart spamassassin

Par défaut, spamass-milter ne transmet pas l'adresse du destinataire à SpamAssassin. Nous devons lui faire envoyer l'adresse e-mail complète à SpamAssassin. Modifiez le fichier de configuration de spamass-milter.

sudo nano /etc/sysconfig/spamass-milter

Ajoutez l'option suivante.

-e yourdomain.com -u sa-milt

Comme ceci :

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"

Le -e l'option obligera spamass-milter à transmettre l'adresse e-mail complète à SpamAssassin. Remplacez votredomaine.com par votre vrai nom de domaine. Enregistrez et fermez le fichier. Redémarrez ensuite spamass-milter.

sudo systemctl restart spamass-milter

Envoyez maintenant un e-mail depuis Gmail, Hotmail, etc. à l'adresse e-mail de votre domaine. Vous constaterez que le répertoire spamassassin est automatiquement créé sous /var/vmail/yourdomain.com/username/ répertoire.

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

Vous pouvez utiliser un éditeur de texte en ligne de commande pour créer ici le fichier de préférences par utilisateur. Ce fichier doit être nommé user_prefs .

sudo nano user_prefs

Vous pouvez ajouter des règles personnalisées dans ce fichier comme vous le feriez dans le /etc/spamassassin/local.cf fichier.

Par exemple, j'ai constaté que de nombreux spammeurs terminent le corps de leur e-mail avec un lien de désabonnement pour vous permettre de supprimer un futur contact. Je ne me suis pas abonné à leur spam et je ne pense pas que le lien de désabonnement supprimera mon adresse e-mail de leur base de données de contacts. J'utilise donc SpamAssassin pour marquer ce genre d'email. La règle suivante ajoute un score de 3,0 aux e-mails contenant le mot "désabonnement" ou ses variantes dans le corps. (Je n'utilise pas l'adresse e-mail de contact de ce blog pour m'abonner à quoi que ce soit en ligne.)

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

Parfois, le corps de l'e-mail ne contient pas le mot "se désinscrire", mais il y a un List-Unsubscribe header, ce qui signifie que le spammeur a ajouté mon adresse e-mail de contact à sa liste de diffusion sans mon consentement. Je peux également noter ce type d'e-mail, avec la règle suivante.

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

J'ai créé un compte Mailjet avec une adresse email différente. Certains spammeurs supposent que j'ai utilisé mon adresse e-mail de contact pour créer un compte Mailjet, ils essaient donc d'usurper l'identité du service client Mailjet pour m'inciter à taper mon mot de passe sur une fausse page de connexion Mailjet. Je peux noter ce type d'e-mail comme ci-dessous.

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

Les lignes ci-dessus vérifient si le From: l'en-tête contient le mot mailjet . Si trouvé, donnez-lui une note de 2,5.

Je reçois occasionnellement des e-mails de spammeurs chinois dont le From: nom de domaine n'a pas de voyelles (a, e, i, o, u). Le spammeur a utilisé le cdjcbzclyxgs.xyz nom de domaine. Il est presque impossible pour une personne/entité normale d'utiliser des noms de domaine sans voyelle, étant donné que de nombreux domaines de premier niveau ont déjà inclus des voyelles (.com, .net, .org, .co, .io, .shop, .dev , etc.), je donne donc à ce type d'e-mail un score très élevé comme ci-dessous. Le score par défaut est de 0,5.

score FROM_DOMAIN_NOVOWEL 4.0

Certains spams utilisent de nombreuses images dans le corps mais contiennent très peu de texte. Le score par défaut pour ce type d'e-mail est de 1,9, mais je préfère définir un score élevé pour mon adresse e-mail de contact.

score HTML_IMAGE_RATIO_02 4.0

J'ai également reçu un spam avec mon adresse e-mail dans le sujet, afin que je puisse y ajouter un score élevé.

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

Certains spammeurs utilisent BCC (Blind Carbon Copy) pour masquer d'autres destinataires. Je ne veux pas recevoir un tel e-mail. J'ai donc établi la règle suivante. Si mon nom de domaine ne figure pas dans l'en-tête À :, ajoutez 3.0 à l'e-mail.

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

Après avoir ajouté des règles personnalisées, fermez le fichier et exécutez la commande suivante pour vérifier la syntaxe. Une sortie silencieuse signifie qu'il n'y a pas d'erreur de syntaxe.

sudo spamassassin --lint

Enfin, redémarrez SpamAssassin pour que les modifications prennent effet.

sudo systemctl restart spamassassin

Vous pouvez désormais tester les préférences de l'utilisateur en envoyant des e-mails de test à partir d'autres services de messagerie à votre propre adresse e-mail de domaine.

Rejeter ou rejeter

Si un serveur SMTP récepteur détermine au cours de la conversation SMTP qu'il n'acceptera pas le message, il rejette le message. Parfois, le serveur SMTP accepte un message et découvre plus tard qu'il ne peut pas être livré, peut-être que le destinataire prévu n'existe pas ou qu'il y a un problème dans la livraison finale. Dans ce cas, le serveur SMTP qui a accepté le message le renvoie à l'expéditeur d'origine en envoyant un rapport d'erreur, incluant généralement la raison pour laquelle le message d'origine n'a pas pu être livré.

Vous ne devez pas renvoyer le spam, car l'adresse e-mail dans le Return-path: en-tête ou From: header n'existe probablement pas ou est l'adresse e-mail d'une personne innocente, donc le message de rebond ira probablement à l'adresse e-mail d'une personne innocente, créant le problème de rétrodiffusion. Au lieu de rejeter le spam, vous devez rejeter le spam pendant la boîte de dialogue SMTP, avant que l'e-mail ne soit accepté. Cet article ne vous a pas montré rebondir un message de spam. Vous devez vous souvenir de cette règle au cas où vous voudriez créer vous-même des règles de filtrage des spams. En cas de doute, testez vos règles de filtrage anti-spam pour voir si cela va créer des messages de rebond.

URIBL_BLOQUÉ

Par défaut, SpamAssassin active la règle URIBL, qui vérifie si un e-mail contient des liens identifiés comme spam par URIBL. Il s'agit d'une mesure anti-spam très efficace. Cependant, il se peut que vous ne puissiez pas interroger URIBL. Vérifiez les en-têtes d'e-mail bruts d'un e-mail entrant, trouvez le X-Spam-Status en-tête.

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 vous pouvez trouver URIBL_BLOCKED dans cet en-tête, cela signifie que vous ne pouvez pas interroger URIBL. La plupart du temps, c'est parce que vous n'utilisez pas votre propre résolveur DNS local. Vous pouvez exécuter la commande suivante sur votre serveur de messagerie pour tester le serveur DNS que vous utilisez pour interroger URIBL.

host -tTXT 2.0.0.127.multi.uribl.com

Exemple de sortie :

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]"

Pour corriger cette erreur, vous devez exécuter votre propre résolveur DNS local sur votre serveur de messagerie.

  • Exécutez votre propre résolveur DNS BIND sur CentOS/RHEL 

Une fois que votre résolveur DNS local est opérationnel, testez à nouveau URIBL.

host -tTXT 2.0.0.127.multi.uribl.com

Si vous voyez la sortie suivante, cela signifie que vous êtes maintenant autorisé à interroger URIBL.

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

À partir de maintenant, les e-mails entrants n'auront plus la balise URIBL_BLOCKED dans le X-Spam-Status en-tête.

Autres informations

SpamAssassin 4.0 inclut un plugin HashBL, qui peut vérifier si une adresse Bitcoin dans le corps de l'e-mail a été utilisée par des escrocs. Et il existe également un nouveau plugin appelé "Ole Macro" qui peut vérifier si un e-mail contient une pièce jointe Office avec une macro. Ce plugin essaierait de détecter si la macro attachée est malveillante ou non.


Cent OS
  1. Comment définir ou modifier le nom d'hôte dans CentOS 7 / RHEL 7

  2. Comment définir des noms de périphériques personnalisés à l'aide d'udev dans CentOS/RHEL 7

  3. Comment personnaliser les options de l'économiseur d'écran dans Gnome sur CentOS/RHEL 7

  4. Comment définir l'affinité CPU pour le processus SYSTEMD dans CentOS/RHEL 7

  5. Comment définir de manière permanente les paramètres ethtool dans CentOS/RHEL 6

Configurer le serveur Samba sur CentOS 8/RHEL 8 pour le partage de fichiers

Configurer SpamAssassin sur CentOS/RHEL pour bloquer le spam par e-mail

Configurer OpenDMARC avec Postfix sur CentOS/RHEL pour bloquer l'usurpation d'e-mails

7 conseils efficaces pour bloquer le spam par e-mail avec Postfix sur CentOS/RHEL

Comment configurer un VPN basé sur IPsec avec Strongswan sur CentOS/RHEL 8

Comment configurer SSH sur CentOS et RHEL