GNU/Linux >> Tutoriels Linux >  >> Debian

Comment installer Spamassassin avec Postfix et Dovecot sur Ubuntu/Debian Server

E-mail sans spam avec SpamAssassin

Si vous utilisez votre propre boîte aux lettres sur un serveur utilisant Postfix et Dovecot, il est impératif d'installer un logiciel anti-spam pour protéger votre boîte aux lettres contre les bombardements de spams entrants.

Et pour cela, SpamAssassin est l'une des meilleures solutions disponibles. C'est assez efficace et l'un des plus populaires.

Dans cet article, nous verrons comment configurer spamassassin avec postfix et dovecot pour la protection anti-spam.

Nous supposons que vous avez déjà configuré Postfix et Dovecot sur votre serveur pour gérer les e-mails entrants.

Et que vous utilisez Dovecot LMTP pour envoyer des e-mails aux comptes d'utilisateurs. Le processus avait été décrit dans un post précédent ici -

Configurer un serveur de messagerie avec Postfix et Dovecot sur Ubuntu / Debian

Spamassassin analyse les e-mails entrants pour identifier les spams et s'il s'avère qu'un e-mail est potentiellement un spam, Spamassassin ajoute des en-têtes à cet e-mail pour le marquer comme spam.

La vérification des spams se fait au niveau de Postfix. Postfix est configuré pour parler à Spamassassin en tant que content_filter.

Dans l'étape suivante, Dovecot analyse ces en-têtes pour identifier les spams et les place dans un dossier Spam séparé, tout comme Gmail.

1. Installer SpamAssassin

La première chose serait d'installer les packages spamassassin.

$ apt-get install spamassassin spamc

2. Configurer un compte utilisateur et un groupe pour le service spamd

# groupadd spamd# useradd -g spamd -s /bin/false -d /var/log/spamassassin spamd# mkdir /var/log/spamassassin# chown spamd:spamd /var/log/spamassassin

3. Configurer Spamassassin

Modifiez /etc/default/spamassassin afin que ces options soient définies :

# Changez pour un pour activer le spamdENABLED=1SAHOME="/var/log/spamassassin/"# Options# Voir man spamd pour les options possibles. L'option -d est automatiquement ajoutée.# SpamAssassin utilise un modèle de préforkage, alors soyez prudent ! Vous devez # vous assurer que --max-children n'est pas supérieur à 5,# à moins que vous ne sachiez ce que vous faites.OPTIONS="--create-prefs --max-children 5 --helper-home- dir --username spamd \-H ${SAHOME} -s ${SAHOME}spamd.log"

Trouvez également l'option appelée CRON en bas et changez-la en 1. Cela permettra la mise à jour automatique des règles de spamassassin au fur et à mesure de leur publication.

# Cronjob# Défini sur autre chose que 0 pour permettre à la tâche cron de mettre à jour automatiquement# les règles de spamassassin chaque nuitCRON=1

4. Démarrer le démon Spamassassin (spamd)

# service spamassassin startStarting SpamAssassin Mail Filter Daemon :[email protected]:/etc/default#[email protected]:/etc/default# service spamassassin status * spamd est en cours d'exé[email protected]:/etc /default#

Spamassassin démarre un service en arrière-plan, utilisez donc la commande netstat pour vous assurer que spamassassin fonctionne correctement ou non.

# netstat -nlp4 | grep spamtcp 0 0 127.0.0.1:783 0.0.0.0:* ECOUTEZ 1123/spamd.pid

4. Configurez Postfix pour utiliser Spamassassin comme filtre

Postfix doit être configuré pour utiliser le service spamassassin afin de filtrer tous les e-mails entrants
Le fichier de configuration de postfix master.cf doit être modifié pour ajouter le filtre spamassassin. Ouvrez le fichier.

# chat /etc/postfix/master.cf

Ajoutez ce qui suit à la fin du fichier

spamassassin unix - n n - - pipe user=spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${expéditeur} ${destinataire}

Après avoir ajouté les lignes ci-dessus à master.cf, la tâche suivante consiste à redémarrer postfix et à s'assurer qu'il fonctionne correctement.

redémarrage du suffixe du service $

5. Configurer Spamassassin pour marquer les messages de spam

Après avoir configuré Postfix pour utiliser Spamassassin, il est temps de configurer Spamassassin pour modifier les e-mails en fonction des vérifications anti-spam. Le fichier de configuration est - /etc/spamassassin/local.cf

$ nano /etc/spamassassin/local.cf

Décommentez la ligne rewrite_header pour modifier les lignes d'objet des e-mails identifiés comme spam.

# Ajouter *****SPAM***** à l'en-tête Objet des spams## rewrite_header Objet *****SPAM*****rewrite_header Objet [***** SPAM _SCORE_ *****]

La ligne ci-dessus ajouterait le score de spam avec les astérisques pour indiquer que le message ressemble à du spam. Des scores plus élevés indiquent une probabilité plus élevée que le message soit un spam.

Score de spam

Le score minimum requis pour marquer le message comme spam. La valeur par défaut est 5,0, mais de nos jours, vous pourriez avoir besoin d'un niveau de score plus strict. Donc 4.0 fonctionne bien.

# Définir le seuil à partir duquel un message est considéré comme spam (par défaut :5.0)#required_score 4.0

Vérifiez les autres options du fichier et modifiez-les si nécessaire.

Redémarrer Spamassassin - Après avoir configuré tous les paramètres du fichier, enregistrez le fichier et redémarrez spamassassin.

# service spamassassin restartRedémarrage du démon du filtre de messagerie SpamAssassin :spamd.

6. Vérifier le journal de Spamassassin

Si à un moment quelconque vous avez besoin de déboguer quelque chose ou de voir ce qui se passe en arrière-plan de spamassassin, n'hésitez pas à consulter son fichier look.

# tail -f /var/log/spamassassin/spamd.logFri Feb 5 20:11:43 2016 [1123] info :prefork:child states :IIFri Feb 5 20:23:02 2016 [1123] info :spamd :serveur tué par SIGTERM, arrêtVen 5 février 20:23:02 2016 [1404] info:logger:suppression de la méthode stderrVen 5 février 20:23:03 2016 [1406] info:zoom:capable d'utiliser 360/360 'body_0' règles compilées (100%)Ven 5 février 20:23:03 2016 [1406] info:spamd:serveur démarré sur IO::Socket::INET6 [127.0.0.1]:783, IO::Socket::INET6 [::1]:783 (version 3.4.0 en cours d'exécution)Ven 5 février 20:23:03 2016 [1406] info :spamd :pid du serveur :1406Ven 5 février 20:23:03 2016 [1406] info :spamd :le serveur a généré avec succès l'enfant process, pid 1407Fri Feb 5 20:23:03 2016 [1406] info:spamd:le serveur a généré avec succès un processus enfant, pid 1408Fri Feb 5 20:23:03 2016 [1406] info:prefork:child states:ISFri Feb 5 20:23:03 2016 [1406] info :prefork :états de l'enfant :II

7. Tester un spam

Envoyez un e-mail à votre système de messagerie depuis l'extérieur. Inclure le texte suivant dans le corps de l'e-mail

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

Il s'appelle GTUBE - Test générique pour les e-mails en masse non sollicités. C'est un moyen simple de tester si votre serveur de messagerie utilise spamassassin pour filtrer les e-mails ou non.

Apprenez-en plus ici -
http://spamassassin.apache.org/gtube/

SpamAssassin ajoute des en-têtes à tous les e-mails avec des scores de spam> 0

Courrier avec un score de spam de 12,9 Ceci est considéré comme un spam selon notre configuration de score minimum de 3

X-Spam-Checker-Version :SpamAssassin 3.4.0 (2014-02-07) sur localhostX-Spam-Flag :YESX-Spam-Level :************X-Spam -Status:Yes, score=12.9 required=3.0 tests=FROM_LOCAL_NOVOWEL, HTML_FONT_LOW_CONTRAST,HTML_FONT_SIZE_LARGE,HTML_MESSAGE,HTML_OBFUSCATE_05_10, MIME_HTML_ONLY,MISSING_MID,RCVD_IN_BL_SPAMCOP_NET,RCVD_IN_BRBL_LASTEXT, RCVD_IN_PBL,RCVD_IN_PSBL,RCVD_IN_XBL,RDNS_NONE autolearn=no autolearn_force=no version=3.4.0 

Spam Score 1.7, Non considéré comme spam

X-Spam-Checker-Version :SpamAssassin 3.4.0 (2014-02-07) sur localhostX-Spam-Level :*X-Spam-Status :Non, score=1.7 required=3.0 tests=DEAR_SOMETHING,FREEMAIL_FROM, HTML_MESSAGE,RCVD_IN_MSPIKE_H2,URIBL_BLOCKED autolearn=non autolearn_force=non version=3.4.0

Ces en-têtes seront utilisés pour envoyer des e-mails dans un dossier Spam séparé via le transport Dovecot LMTP.

Configurer Dovecot avec un dossier Spam séparé

Dovecot est le système de lecture et de gestion du courrier, serveur POP3 et IMAP. C'est Dovecot qui organise les mails dans des dossiers séparés selon des critères.

Dovecot peut être configuré pour lire les en-têtes de courrier et déplacer les courriers indésirables dans un dossier séparé appelé Spam. Un peu comme vous le voyez avec les services de messagerie gratuits comme Gmail et Outlook.

Installer et configurer le plug-in Sieve

Dovecot a besoin du plugin d'interpréteur Sieve pour utiliser Sieve pour lire les mails. Installez les packages Sieve

# apt-get install dovecot-sieve dovecot-managesieved

Modifier
/etc/dovecot/conf.d/20-lmtp.conf

Configurez dovecot pour activer le plugin sieve

protocol lmtp { # Liste séparée par des espaces des plugins à charger (la valeur par défaut est global mail_plugins). mail_plugins =$mail_plugins tamis}

Il est enfin temps de redémarrer le pigeonnier

# redémarrage du colombier du service

Vérifiez maintenant si le serveur sieve s'exécute sur le port 4190. Utilisez la commande netstat. Le service sera nommé colombier.

# netstat -nltp | grep 4190tcp 0 0 0.0.0.0:4190 0.0.0.0:* ECOUTEZ 9843/dovecottcp6 0 0 :::4190 :::* ECOUTEZ 9843/dovecot

Configurer le filtrage par tamis

Pour en savoir plus sur les filtres à tamis, consultez la page suivante - http://wiki2.dovecot.org/Pigeonhole/Sieve/Examples

# mkdir /var/lib/dovecot/sieve/

Créez un fichier appelé default.sieve et remplissez-le avec les ensembles de règles suivants

require ["fileinto", "mailbox"];if header :contains "X-Spam-Flag" "YES" { fileinto :create "Spam";}

Compilez maintenant le fichier de script .sieve à l'aide de la commande sievec.

# sievec default.sieve

Si vous avez plusieurs fichiers .sieve dans le répertoire, vous pouvez tous les compiler en une seule fois comme ceci -

# sievec sieve/

Modifiez maintenant la propriété des fichiers sieve à l'utilisateur spécifique de Dovecot afin que Dovecot puisse les lire. Dans ce cas, le nom d'utilisateur est vmail.

/var/lib/dovecot# chown -R vmail:vmail sieve/*

Redémarrez Dovecot à nouveau.

# redémarrage du colombier du service

Vérifiez les journaux du pigeonnier

Les fichiers journaux de Dovecot vous aideront à diagnostiquer les problèmes qui pourraient survenir en cours de route.

Trouvez l'emplacement des fichiers journaux dovecot avec la commande suivante

# doveadm log findDebug :/var/log/dovecot.logInfo :/var/log/dovecot.logWarning :/var/log/dovecot.logError :/var/log/dovecot.logFatal :/var/log/dovecot .log

Ouvrez ensuite le fichier à l'aide de la commande tail

# tail -f /var/log/dovecot.log
Feb 06 11:17:16 imap-login :Info :Connexion :user=, method=PLAIN, rip=122.163.23.27, lip=173.255.230.5, mpid=10370, TLS, session=Feb 06 11:17:37 lmtp(10379) :Info :Se connecter à partir de localFeb 06 11:17:37 lmtp(10379, [email protected]) :Erreur :uMMvHPmItVaLKAAA0J78UA:sieve:main script:failed to script stat sieve :stat(/var/lib/dovecot/sieve/default.sieve) a échoué :autorisation refusée (euid=5000(vmail) egid=5000(vmail) manquant +x perm :/var/lib/dovecot, propriété du répertoire par 0:0 mode=0750)Fév 06 11:17:37 lmtp(10379, [email protected]) :Erreur :uMMvHPmItVaLKAAA0J78UA :tamis :échec de l'accès au script utilisateur par défaut /var/lib/dovecot/sieve/default.sieveFeb 06 11:17:37 lmtp(10379, [email protected]) :Info :uMMvHPmItVaLKAAA0J78UA :msgid= :courrier enregistré dans INBOXFeb 06 11:17:37 lmtp(10379) :Info :Déconnectez-vous de local :QuitFeb 06 réussi 11:18:31 lmtp(10379) :Info :Connexion depuis localFeb 06 11:18:31 lmtp(10379, example@unix linux.online) :Erreur :vMMvHPmItVaLKAAA0J78UA :sieve :msgid= :échec du stockage dans la boîte aux lettres 'Spam' :la boîte aux lettres n'existe pas :SpamFeb 06 11:18:31 lmtp(10379, example@unixlinux .online) :Info :vMMvHPmItVaLKAAA0J78UA :sieve :msgid= :courrier stocké dans la boîte aux lettres 'INBOX'Feb 06 11:18:31 lmtp(10379, [email protected]) :Erreur :vMMvHPmItVaLKAAA0J78UA :sieve :l'exécution du script /var/lib/dovecot/sieve/default.sieve;name=main script a échoué, mais la conservation implicite a réussiFeb 06 11:18:31 lmtp(10379) : Info :Déconnexion du local :QuitFeb 06 11 :26:27 lmtp(10479) :Info :Se connecter à partir de localFeb 06 11:26:27 lmtp(10479, [email protected]) :Info :3h4eBwuLtVbvKAAA0J78UA :sieve :msgid= :courrier stocké dans la boîte aux lettres 'Spam'Fév 06 11:26:27 lmtp(10479):Info :Déconnexion de local :Quit réussiFév 06 11:26:57 imap-login :Info :Connexion :user=, method=PLAIN , déchirure=122.163.23.27, lèvre=173.255.230 .5, mpid=10483, TLS, session=Feb 06 11:26:58 imap-login :Info :Connexion :user=, method=PLAIN, rip=122.163.23.27, lip =173.255.230.5, mpid=10484, TLS, session=Feb 06 11:28:30 imap-login :Info :Connexion :user=, method=PLAIN, rip=122.163 .23.27, lèvre=173.255.230.5, mpid=10499, TLS, session=

Modifier les permissions du répertoire dovecot

/var/lib/dovecot# chmod a+x .

Améliorez le filtrage anti-spam de Spamassassin avec Pyzor

Pyzor agira comme les autres règles.
https://wiki.apache.org/spamassassin/Rules/PYZOR_CHECK

Il ajoutera un score de spam supplémentaire d'environ 1,985 selon le tableau des tests trouvé sur - http://spamassassin.apache.org/tests_3_3_x.html

# sudo apt-get install pyzor

Découvrir les serveurs Pyzor

# pyzor --homedir /etc/mail/spamassassin/pyzor découvre

Rendre le fichier des serveurs lisible par tous

/etc/spamassassin/pyzor# serveurs chmod a+r

Effectuer une vérification -

# echo "tester" | spamassassin -D pyzor 2>&1 | moins

Vous devriez voir une sortie comme celle-ci

9 février 16:24:58.824 [23979] dbg :pyzor :tests réseau activés, tentative de Pyzor9 février 16:24:59.787 [23979] dbg :pyzor :pyzor est disponible :/usr/bin/pyzor9 février 16:24 :59.788 [23979] dbg:pyzor:ouverture du canal :/usr/bin/pyzor check  

Ajoutez les lignes suivantes à la fin de /etc/spamassassin/local.cf

pyzor_options --homedir /etc/mail/spamassassin/pyzor

Et redémarrez le démon spamassassin

# redémarrage du service spamassassin

Installer Razor

sudo apt-get install razor
/etc/spamassassin# rasoir mkdir

Exécutez maintenant les commandes suivantes pour vous inscrire au réseau distribué Razor.

# razor-admin -home=/etc/spamassassin/razor -registerEnregistrement réussi. Identité stockée dans /etc/mail/spamassassin/razor/identity-rudkVFCIxs# razor-admin -home=/etc/spamassassin/razor -create# razor-admin -home=/etc/spamassassin/razor -discover

Ajoutez la ligne suivante à la fin du fichier /etc/spamassassin/local.cf

razor_config /etc/spamassassin/razor/razor-agent.conf

Redémarrez enfin spamassassin

vérifier que le rasoir fonctionne avec cette commande

# echo "tester" | spamassassin -D rasoir2 2>&1 | moins

quelque chose comme ça devrait apparaître

9 février 17:11:34.701 [26028] dbg :razor2 :razor2 est disponible, version 2.84 Razor-Log :read_file :15 éléments lus depuis /etc/mail/spamassassin/razor/razor-agent.conf

Des scores personnalisés pour des scores plus élevés

C'est un moyen un peu avancé d'augmenter la précision de spamassassin pour mieux attraper le spam. Cela implique d'augmenter les niveaux de score pour certains tests de spam à l'intérieur de spamassassin. Ce sont les tests anti-spam connus pour avoir un très haut niveau de précision dans la détection des spams.

Donc, si certains de ces tests de haute précision indiquent qu'un e-mail est un spam, nous devrions nous concentrer davantage dessus.

http://toao.net/566-improving-spamassassin-accuracy-with-statistics

Conclusion

C'était le processus de configuration de SpamAssassin sur votre serveur de messagerie pour détecter les spams et garder votre boîte aux lettres propre.
Le processus est un peu long mais il fonctionne très bien si vous avez besoin de votre propre serveur de messagerie avec un système anti-spam en place.

Si vous avez des commentaires ou des questions, veuillez nous en informer dans les commentaires ci-dessous.

Références et ressources

Configuration simple de Spamassassin avec Postfix et Dovecot sur Ubuntu Breezy
http://www.townx.org/index.php?q=blog/elliot/simple_spamassassin_setup_with_postfix_and_dovecot_on_ubuntu_breezy

Comment installer et configurer Spamassassin sur Ubuntu 12.04
https://www.digitalocean.com/community/tutorials/how-to-install-and-setup-spamassassin-on-ubuntu-12-04

Instructions pour installer Pyzor et Razor avec Spamassassin
https://kura.io/2011/09/22/spamassassin-razor-pyzor/

Configuration du filtrage Sieve avec Dovecot
https://easyengine.io/tutorials/mail/server/sieve-filtering/

Astuces Spamassassin :Guide de configuration ultime
http://www.spamtips.org/p/ultimate-setup-guide.html

Comment améliorer la précision de SpamAssassin
https://wiki.apache.org/spamassassin/ImproveAccuracy

Sur les effets de l'abaissement de votre seuil SpamAssassin
http://taint.org/2008/02/29/155648a.html

Améliorer la précision de SpamAssassin sur les serveurs de messagerie cPanel (ou tout autre) - avec des statistiques
http://toao.net/566-improving-spamassassin-accuracy-with-statistics

Cet article décrit des hacks simples que vous pouvez utiliser pour modifier les niveaux de score de certains des tests de spamassassin, améliorant ainsi le filtrage des spams.

Conseils avancés pour utiliser SpamAssassin
https://www.andrewferrier.com/oldpages/spamassassin_tips.html


Debian
  1. Comment installer le serveur FTP vsftpd et le sécuriser avec TLS sur Debian 11

  2. Comment installer Puppet 6.x sur Ubuntu 18.04 / Ubuntu 16.04 et Debian 9

  3. Installez le serveur de messagerie Postfix et Dovecot sur Ubuntu ou Debian

  4. Comment installer le serveur SSH sur Ubuntu / Debian avec OpenSSH

  5. Comment installer et intégrer SpamAssassin avec Postfix sur un VPS CentOS 6

Comment installer et configurer le serveur Web Apache avec l'hôte virtuel sur Debian 10

Comment installer le serveur Tomcat 7 sur Ubuntu, Debian et LinuxMint

Comment installer SpamAssassin sur Ubuntu/Debian

Comment installer Nginx avec PHP-FPM sur Debian 11

Comment installer Drupal avec Apache sur Debian et Ubuntu

Comment installer et activer le serveur SSH sur Debian 10