serveur_hebergement:serveur_mail:partie_5_lutter_contre_le_spam

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
serveur_hebergement:serveur_mail:partie_5_lutter_contre_le_spam [2022/11/02 17:46] fateserveur_hebergement:serveur_mail:partie_5_lutter_contre_le_spam [2023/08/08 14:00] (Version actuelle) – modification externe 127.0.0.1
Ligne 6: Ligne 6:
  
 ==== Postgrey ==== ==== Postgrey ====
-À chaque e-mail reçu, Postgrey va vérifier la combinaison adresse IP de l'envoyeur, adresse e-mail de l'envoyeur et adresse e-mail du destinataire. Si cette combinaison n'a jamais été vu, il va rejeter l'e-mail. Les serveur e-mail légitimes vont renvoyer l'e-mail alors que la plupart des serveurs envoyant du spam ne renvoi rien en cas de rejet+À chaque e-mail reçu, Postgrey va vérifier la combinaison adresse IP de l'envoyeur, adresse e-mail de l'envoyeur et adresse e-mail du destinataire. Si cette combinaison n'a jamais été vue, il va rejeter l'e-mail. Les serveurs e-mail légitimes vont renvoyer l'e-mail alors que la plupart des serveurs envoyant du spam ne renvoient rien en cas de rejet
  
 ==== ClamAV ==== ==== ClamAV ====
-Pas grand chose à dire dessus. C'est un antivirus qui va nous permettre d'éliminer les e-mails contenant des virus+Pas grand-chose à dire dessus. C'est un antivirus qui va nous permettre d'éliminer les e-mails contenant des virus
  
 ==== Amavis ==== ==== Amavis ====
-Amavis est un logiciel central. C’est un logiciel qui filtre le contenu des e-mails en se couplant avec d’autres logiciels. En se couplant avec Spamassassin il va pouvoir filtrer les spam et à l’aide de Clamav il va éliminer les e-mails contenant des virus. Le tout avec la coopération de Postfix, le serveur e-mail.+Amavis est un logiciel central. C’est un logiciel qui filtre le contenu des e-mails en se couplant avec d’autres logiciels. En se couplant avec Spamassassin il va pouvoir filtrer les spams et à l’aide de Clamav il va éliminer les e-mails contenant des virus. Le tout avec la coopération de Postfix, le serveur e-mail.
  
 ==== SpamAssassin ==== ==== SpamAssassin ====
-Pour finir, le logiciel le plus important, SpamAssassin. C’est un logiciel qui fait passer à chaque e-mails une série de tests, appelés règles, et dont on peut trouver la liste [[|https://spamassassin.apache.org/old/tests_3_3_x.htmlici]]. chaque règle correspond une note, et le cumul des notes de toutes ces règles va représenter le score de l'-email. Par défaut, le système va considérer tous les e-mails avec un score supérieur à 6,31 comme un spam. Donc plus le score est haut, plus l'e-mail a de chance d’être un spam.+Pour finir, le logiciel le plus important, SpamAssassin. C’est un logiciel qui fait passer à chaque e-mail une série de tests, appelés règles, et dont on peut trouver la liste [[|https://spamassassin.apache.org/old/tests_3_3_x.htmlici]]. À chaque règle correspond une note, et le cumul des notes de toutes ces règles va représenter le score de l'-email. Par défaut, le système va considérer tous les e-mails avec un score supérieur à 6,31 comme un spam. Donc plus le score est haut, plus l'e-mail a de chance d’être un spam.
  
 Prenons la règle SUBJ_ALL_CAPS comme exemple pour expliquer le principe un peu plus en détail. Cette règle vérifie si le sujet de l'e-mail est écrit uniquement en majuscule. Comme toutes les règles, une note est associée à cette règle. Par défaut, cette règle vaut 1,506. Prenons la règle SUBJ_ALL_CAPS comme exemple pour expliquer le principe un peu plus en détail. Cette règle vérifie si le sujet de l'e-mail est écrit uniquement en majuscule. Comme toutes les règles, une note est associée à cette règle. Par défaut, cette règle vaut 1,506.
-Dés qu’un e-mail est reçu, cette règle, comme toutes les autres, va être jouée. Si le sujet du mail est écrit uniquement en majuscule, la règle va être activée pour cet e-mail et augmentera son score de 1,506. Si le sujet n’est pas uniquement en majuscule, elle ne sera pas activée et n’augmentera pas son score.+Dès qu’un e-mail est reçu, cette règle, comme toutes les autres, va être jouée. Si le sujet du mail est écrit uniquement en majuscule, la règle va être activée pour cet e-mail et augmentera son score de 1,506. Si le sujet n’est pas uniquement en majuscule, elle ne sera pas activée et n’augmentera pas son score.
 Toutes les règles fonctionnent sur le même principe, de manière binaire. Si elles sont vraies, elles augmentent ou diminuent le score du mail d’une valeur fixe propre à chaque règle et si elles sont fausses, elles ne modifient pas le score du mail. Toutes les règles fonctionnent sur le même principe, de manière binaire. Si elles sont vraies, elles augmentent ou diminuent le score du mail d’une valeur fixe propre à chaque règle et si elles sont fausses, elles ne modifient pas le score du mail.
  
 Ca fera peut-être tiquer certains de lire que les règles augmentent ou diminuent le score. L’écrasante majorité des règles sont des malus, dans le sens où lorsqu’elles sont actives elles augmentent le score de l'e-mail pour augmenter les chances qu’il soit classé en tant que spam. Comme SUBJ_ALL_CAPS par exemple. Ca fera peut-être tiquer certains de lire que les règles augmentent ou diminuent le score. L’écrasante majorité des règles sont des malus, dans le sens où lorsqu’elles sont actives elles augmentent le score de l'e-mail pour augmenter les chances qu’il soit classé en tant que spam. Comme SUBJ_ALL_CAPS par exemple.
-Mais quelques unes sont des bonus. Comme USER_IN_SPF_WHITELIST par exemple, qui s’active si l’adresse de l’expéditeur est dans une liste blanche. Ces règles diminuent le score du mail lorsqu’elles sont actives pour augmenter les chances que le mail soit classé comme ham (l’inverse d’un spam, un e-mail désiré). La note de USER_IN_SPF_WHITELIST par exemple est de -100.+Mais quelques-unes sont des bonus. Comme USER_IN_SPF_WHITELIST par exemple, qui s’active si l’adresse de l’expéditeur est dans une liste blanche. Ces règles diminuent le score du mail lorsqu’elles sont actives pour augmenter les chances que le mail soit classé comme ham (l’inverse d’un spam, un e-mail désiré). La note de USER_IN_SPF_WHITELIST par exemple est de -100.
 Les e-mails marqués comme spam vont voir leur titre modifié avec l’ajout du flag SPAM (suivant la configuration) et certains champs vont être ajoutés dans l’entête de l'e-mail : Les e-mails marqués comme spam vont voir leur titre modifié avec l’ajout du flag SPAM (suivant la configuration) et certains champs vont être ajoutés dans l’entête de l'e-mail :
   * X-Spam-Flag : indique si le'-mail est considéré comme spam ou ham.   * X-Spam-Flag : indique si le'-mail est considéré comme spam ou ham.
Ligne 29: Ligne 29:
   * X-Spam-Status : indique le détail du calcul du score en affichant les règles activées sur cet e-mail et la note de chacune d’elles.   * X-Spam-Status : indique le détail du calcul du score en affichant les règles activées sur cet e-mail et la note de chacune d’elles.
  
-Parmi toutes ces règles, il y en a une, ou plutôt un ensemble, qui est toujours activée. C’est un ensemble de règle utilisant un filtre bayésien (n’étant pas mathématicien, je vous laisse chercher sur Wikipédia comment fonctionne en détail un filtre bayésien 😉 ). la différence des autres tests, le filtre bayésien est amélioré avec le temps chaque fois que vous marquez manuellement un e-mail comme spam ou comme ham via le programme sa-learn, un outil interne de Spamassassin qui sert à alimenter la base de donnée du filtre bayésien.+Parmi toutes ces règles, il y en a une, ou plutôt un ensemble, qui est toujours activée. C’est un ensemble de règle utilisant un filtre bayésien (n’étant pas mathématicien, je vous laisse chercher sur Wikipédia comment fonctionne en détail un filtre bayésien 😉). À la différence des autres tests, le filtre bayésien est amélioré avec le temps chaque fois que vous marquez manuellement un e-mail comme spam ou comme ham via le programme sa-learn, un outil interne de Spamassassin qui sert à alimenter la base de donnée du filtre bayésien.
 Pour chaque e-mail, il va calculer le pourcentage de chance que l'e-mail soit un spam. Si, par exemple, il estime qu'il a entre 40 et 60% de chance d’être un spam, il va activer la règle BAYES_50 et augmenter le score de 0,8. Si l’estimation est entre 60 et 80%, il va activer la règle BAYES_60 qui augmente le score de 1,5, et ainsi de suite. Pour chaque e-mail, il va calculer le pourcentage de chance que l'e-mail soit un spam. Si, par exemple, il estime qu'il a entre 40 et 60% de chance d’être un spam, il va activer la règle BAYES_50 et augmenter le score de 0,8. Si l’estimation est entre 60 et 80%, il va activer la règle BAYES_60 qui augmente le score de 1,5, et ainsi de suite.
  
Ligne 35: Ligne 35:
 La première méthode va utiliser Roundcube, un des webmail les plus utilisés. La première méthode va utiliser Roundcube, un des webmail les plus utilisés.
 La seconde méthode va utiliser Thunderbird (ou tout autre gestionnaire de mail). La seconde méthode va utiliser Thunderbird (ou tout autre gestionnaire de mail).
-Le détail des ces méthodes est expliqué dans la [[serveur_hebergement:serveur_mail:partie_6_roundcube|partie 6]]+Le détail de ces méthodes est expliqué dans la [[serveur_hebergement:serveur_mail:partie_6_roundcube|partie 6]]
  
 Fin des explications Fin des explications
Ligne 122: Ligne 122:
     -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_address_mappings     -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_address_mappings
 </code> </code>
 +
 +On va également en profiter pour optimiser Postfix dans la lutte contre le spam.
 +
 +Ouvrez le fichier main.cf :
 +<code bash>sudo nano /etc/postfix/main.cf</code>
 +
 +Ajoutez les lignes suivantes :
 +<code>
 +smtpd_helo_required = yes
 +smtpd_helo_restrictions = permit_mynetworks, permit_sasl_authenticated, check_helo_access hash:/etc/postfix/helo_access, reject_invalid_helo_hostname, reject_non_fqdn_helo_hostname, reject_unknown_helo_hostname
 +</code>
 +La première ligne oblige les clients à envoyer la commande "HELO" avant "MAIL FROM".
 +La seconde ligne autorise les connexions dont le nom d'hôte passé avec HELO correspond au réseau local, à des utilisateurs enregistrés ou est en liste blanche et rejette les connexions dont le nom d'hôte passé avec HELO est en liste noire (check_helo_access gère la liste blanche et noire), a une syntaxe invalide, n'est pas sous la forme FQDN ou n'est associé à aucun enregistrement DNS de type A ou MX.
 +
 +Pour la liste blanche/noire, il vous faut créér le fichier helo_access :
 +<code bash>sudo nano /etc/postfix/helo_access</code>
 +puis ajouter le nom d'hôte comme suit pour l'ajouter en liste blanche :
 +<code>/^mail\.domaine\.fr$/                  OK</code>
 +et comme suit pour l'ajouter en liste noire :
 +<code>/^mail\.domaine\.fr$/                  REJECT</code>
 +Puis lancez la commande suivante pour créer le fichier helo_access.db :
 +<code bash>sudo postmap /etc/postfix/helo_access</code>
 +Si vous modifiez le fichier helo_access, vous devrez relancer la commande postmap pour mettre à jour le fichier helo_access.db.
 +
 +Toujours dans le fichier main.cf, modifiez la ligne smtpd_sender_restrictions pour avoir comme suit :
 +<code bash>smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unknown_sender_domain, check_sender_access hash:/etc/postfix/spam_exceptions, reject_unknown_client_hostname</code>
 +On accepte les e-mails provenant du réseau local, des utilisateurs enregistrés, on refuse les e-mails non destiné au server et provenant d'un nom de domaine sans enregistrement DNS de type A ou MX, et on refuse également les e-mail lorsque l'adresse IP ne correspond pas au nom de domaine (et inversement) ou si l'adresse IP associée au nom de domaine ne correspond pas à l'adresse IP du client, sauf si l'adresse est dans la liste blanche spam_exceptions. Le reste des e-mails sont acceptés. 
 +Pour la liste blanche, il vous faut créér le fichier spam_exceptions :
 +<code bash>sudo nano /etc/postfix/spam_exceptions</code>
 +puis ajouter le nom d'hôte comme suit pour l'ajouter en liste blanche :
 +<code>/^mail\.domaine\.fr$/                  OK</code>
 +Puis lancez la commande suivante pour créer le fichier spam_exceptions.db :
 +<code bash>sudo postmap /etc/postfix/spam_exceptions</code>
 +Si vous modifiez le fichier spam_exceptions, vous devrez relancer la commande postmap pour mettre à jour le fichier spam_exceptions.db.
 +
 +Modifiez la ligne smtpd_recipient_restrictions pour avoir comme suit :
 +<code>smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_policy_service unix:private/policyd-spf, reject_rhsbl_helo dbl.spamhaus.org, reject_rhsbl_reverse_client dbl.spamhaus.org, reject_rhsbl_sender dbl.spamhaus.org, permit_dnswl_client list.dnswl.org=127.0.[0..255].[1..3], reject_rbl_client zen.spamhaus.org </code>
 +On accepte les e-mails à destination d'une adresse locale, d'une adresse d'un utilisateur enregistré et on rejette l'e-mail s'il n'est pas à destination de notre domaine ou si l'adresse d'expédition, l'adresse IP ou le nom de domaine du client est dans une liste noire, à part si l'adresse IP se trouve dans la liste blanche dnswl.org
  
 ==== ClamAV ==== ==== ClamAV ====
Ligne 137: Ligne 175:
 <code bash>sudo adduser clamav amavis</code> <code bash>sudo adduser clamav amavis</code>
  
-Par défaut, Amavis écoute sur le port 10024 à la fois pour les e-mails entrant et sortant. Il est conseillé d'avoir un port pour les e-mails entrant et un autre pour les sortant.+Par défaut, Amavis écoute sur le port 10024 à la fois pour les e-mails entrant et sortant. Il est conseillé d'avoir un port pour les e-mails entrants et un autre pour les sortants.
  
 Ouvrez le fichier 50-user : Ouvrez le fichier 50-user :
Ligne 178: Ligne 216:
 Afin que les e-mails provenant d'utilisateurs enregistrés soient transférés au processus Amavis sur le port 10026, après "smtps     inet  n                               smtpd", ajoutez à la fin la ligne suivante : Afin que les e-mails provenant d'utilisateurs enregistrés soient transférés au processus Amavis sur le port 10026, après "smtps     inet  n                               smtpd", ajoutez à la fin la ligne suivante :
 <code>-o content_filter=smtp-amavis:[127.0.0.1]:10026</code> <code>-o content_filter=smtp-amavis:[127.0.0.1]:10026</code>
 +Ajoutez également la ligne suivante pour éviter qu'OpenDKIM ne signe deux fois les messages (une fois avant le transfert à Amavis et une fois après l'avoir récupéré) :
 +<code>-o receive_override_options=no_milters</code>
  
 ==== SpamAssassin ==== ==== SpamAssassin ====
Ligne 202: Ligne 242:
 </code> </code>
  
-Pour que les modifications dans ce fichier soient prises en compte, il faut que $mydomain dans le fichier 05-domain_id correspondent bien à votre nom de domaine. La valeur par défaut de $mydomain est "head -n 1 /etc/mailname". Si cette commande ne renvoi pas "domaine.fr" (correspondant donc à votre nom de domaine), il faudra remplacer la ligne+Si vous souhaitez avoir l'en-tête X-Spam-Report sur les e-mails classés en spam, ajoutez la ligne suivante : 
 +<code>$allowed_added_header_fields{lc('X-Spam-Report')} = 1;</code> 
 + 
 +Pour que les modifications dans ce fichier soient prises en compte, il faut que $mydomain dans le fichier 05-domain_id correspondent bien à votre nom de domaine. La valeur par défaut de $mydomain est "head -n 1 /etc/mailname". Si cette commande ne renvoie pas "domaine.fr" (correspondant donc à votre nom de domaine), il faudra remplacer la ligne
 <code>chomp($mydomain = `head -n 1 /etc/mailname`);</code> <code>chomp($mydomain = `head -n 1 /etc/mailname`);</code>
 par par
Ligne 210: Ligne 253:
 <code>/var/lib/amavis/.spamassassin/user_prefs</code> <code>/var/lib/amavis/.spamassassin/user_prefs</code>
 Il vous suffit d'ajouter la ligne "score nom_de_la_règle score_désiré". Vous pouvez également ajouter des adresses e-mail en liste blanche en ajoutant la ligne "whitelist_from adresse_e-mail" Il vous suffit d'ajouter la ligne "score nom_de_la_règle score_désiré". Vous pouvez également ajouter des adresses e-mail en liste blanche en ajoutant la ligne "whitelist_from adresse_e-mail"
- 
- 
  
 Redémarrez Amavis, ClamAV et Postfix : Redémarrez Amavis, ClamAV et Postfix :
 <code bash>sudo systemctl restart amavis clamav-daemon postfix</code> <code bash>sudo systemctl restart amavis clamav-daemon postfix</code>
  • serveur_hebergement/serveur_mail/partie_5_lutter_contre_le_spam.1667411198.txt.gz
  • Dernière modification : 2023/08/08 14:01
  • (modification externe)