Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
200-postfix-dovecot-etc:080-milters [le 30/05/2025 à 09:14] – supprimée - modification externe (Date inconnue) 127.0.0.1 | 200-postfix-dovecot-etc:080-milters [le 04/10/2025 à 17:24] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. 66.249.69.2 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Postfix et les «milters» ====== | ||
+ | //Ce protocole est utilisé par les applications exécutées en dehors du MTA pour inspecter les événements SMTP (CONNECT, DISCONNECT), | ||
+ | |||
+ | La prise en charge de Milter par Postfix s' | ||
+ | |||
+ | Parmi la nombreuse liste de filtres proposés, nous utiliserons spamassassin, | ||
+ | ====== Spamassassin ====== | ||
+ | Un filtre éventuellement adaptatif puisqu' | ||
+ | |||
+ | En installant le paquet '' | ||
+ | ===== spamass-milter ===== | ||
+ | Le démon '' | ||
+ | OPTIONS=" | ||
+ | OPTIONS=" | ||
+ | OPTIONS=" | ||
+ | * l' | ||
+ | * l' | ||
+ | |||
+ | Après avoir relancé le démon '' | ||
+ | - Les démons '' | ||
+ | ● spamass-milter.service - LSB: milter for spamassassin | ||
+ | < | ||
+ | < | ||
+ | | ||
+ | Docs: man: | ||
+ | Tasks: 5 (limit: 1099) | ||
+ | | ||
+ | CPU: 186ms | ||
+ | | ||
+ | | ||
+ | |||
+ | < | ||
+ | ● spamd.service - Perl-based spam filter using text analysis | ||
+ | < | ||
+ | < | ||
+ | ... | ||
+ | <span class=" | ||
+ | ... | ||
+ | </ | ||
+ | ===== Postfix ===== | ||
+ | |||
+ | - Configurer Postfix en ajoutant ces lignes à '' | ||
+ | <span class=" | ||
+ | milter_default_action = accept | ||
+ | non_smtpd_milters = $smtpd_milters</ | ||
+ | |||
+ | <span class=" | ||
+ | < | ||
+ | # milter macros useful for spamass-milter | ||
+ | milter_connect_macros = j {daemon_name} v {if_name} _ | ||
+ | milter_data_macros = j i {auth_type} {daemon_name} v {if_name} _ | ||
+ | milter_rcpt_macros = j {auth_type} {daemon_name} v {if_name} _ | ||
+ | |||
+ | </ | ||
+ | Les lignes vertes: | ||
+ | * **milter_protocol** comme son nom l' | ||
+ | * **milter_default_action** action à mener en cas d' | ||
+ | * **non_smtpd_milters** sont les filtres qui peuvent s' | ||
+ | * | ||
+ | |||
+ | Les lignes jaunes sont directement tirées de la documentation officielle du milter pour son intégration dans Postfix. | ||
+ | La ligne en gras contenir par la suite la liste des autres filtres mis en œuvre. Pour l' | ||
+ | |||
+ | ===== Tests ===== | ||
+ | ==== Envoi d'un spam ==== | ||
+ | Un client disposant d'une boîte aux lettres sur notre MTA poste un spam type fourni dans la documentation officielle de spamassassin à un correspondant quelconque. Dans l' | ||
+ | |||
+ | Le MTA refuse le message. Le client voit apparaître un «popup»: | ||
+ | {{ 200-postfix-dovecot-etc: | ||
+ | |||
+ | En affichant les traces , nous retrouvons: | ||
+ | < | ||
+ | [2025-05-12 18:00:32] ESMTP> MAIL FROM:< | ||
+ | [2025-05-12 18:00:32] SMTP< 250 2.1.0 Ok | ||
+ | [2025-05-12 18:00:32] SMTP> RCPT TO:< | ||
+ | [2025-05-12 18:00:32] SMTP< 250 2.1.5 Ok | ||
+ | [2025-05-12 18:00:32] SMTP> DATA | ||
+ | [2025-05-12 18:00:32] SMTP< 354 End data with < | ||
+ | [2025-05-12 18:00:32] SMTP> . (EOM) | ||
+ | <span class=" | ||
+ | ** erreur pendant la session SMTP | ||
+ | *** Une erreur est survenue pendant l' | ||
+ | 550 5.7.1 Blocked by SpamAssassin</ | ||
+ | </ | ||
+ | ==== Réception d'un message ==== | ||
+ | Un correspondant envoie un message à «user@home.nain-t.net». Ce message est propre, il passe. Nous pouvons trouver dans l' | ||
+ | < | ||
+ | <span class=" | ||
+ | DKIM_VALID_AU, | ||
+ | autolearn=ham autolearn_force=no version=4.0.1 | ||
+ | X-Spam-Checker-Version: | ||
+ | </ | ||
+ | Le message est tellement propre qu'il a même un score <0. Au passage, nous remarquons que le MTA de l' | ||
+ | |||
+ | Reste à faire de même avec notre MTA. | ||
+ | ===== SPF ===== | ||
+ | |||
+ | " | ||
+ | |||
+ | Sa mise en œuvre est assez simple, il suffit de créer un enregistrement TXT dans la zone DNS du domaine expéditeur, | ||
+ | ==== Le principe ==== | ||
+ | L' | ||
+ | - l' | ||
+ | - Il utilise un MTA sortant légitime pour le domaine exemple.tld. | ||
+ | - le smtp qui gère autrexemple.tld, | ||
+ | Un petit schéma ? | ||
+ | {{ 200-postfix-dovecot-etc: | ||
+ | - untel@home.nain-t.net envoie un message à untel@gmail.com. Pour ce faire, il utilise son MTA: mail.home.nain-t.net. | ||
+ | - Le message arrive sur le MTA du destinataire. | ||
+ | - Celui-ci interroge via DNS l' | ||
+ | * Si c'est le cas, le MTA destinataire va poursuivre la transaction, | ||
+ | * si ce n'est pas le cas, le MTA suivra la directive indiquée dans l' | ||
+ | * **-** Fail (échec) Le message doit être rejeté, | ||
+ | * **~** SoftFail le message peut être accepté, mais doit être marqué, | ||
+ | * **?** Neutral Le MTS destinataire fera ce qu'il veut. Il devrait accepter mais il n'est pas du tout obligé. | ||
+ | La syntaxe du champ est la suivante: | ||
+ | * **a** autorise toutes les adresses disposant d'un champ A ou AAAA du domaine à agir comme MTA | ||
+ | * **mx** autorise les adresses disposant du champ MX (Mail Exchanger) ce qui est pour le moins logique. | ||
+ | * **ipv4** et/ou **ipv6** spécifient des adresses IP autorisées. Adresses uniques ou sous-réseaux CIDR. | ||
+ | * **all** pour indiquer le sort de toutes les adresses non spécifiées. | ||
+ | Un exemple très directif pour un domaine quelconque pourrait être: | ||
+ | SPF v=spf1 mx -all | ||
+ | Ce qui veut dire que pour ce domaine, seule la ou les adresses IP indiquées dans des champs MX sont autorisées, | ||
+ | ==== Les limites ==== | ||
+ | Mail-From: c'est l' | ||
+ | < | ||
+ | <span class=" | ||
+ | Delivered-To: | ||
+ | ... | ||
+ | <span class=" | ||
+ | Subject: Various styles of Jersey and sneakers for you | ||
+ | To: irp@nain-t.net | ||
+ | ... | ||
+ | <span class=" | ||
+ | ... | ||
+ | </ | ||
+ | ===== DKIM ===== | ||
+ | |||
+ | **" | ||
+ | ===== DMARC ===== | ||
+ | **" | ||
+ | |||
Postfix et les «milters»: Dernière modification le: 01/01/1970 à 00:00 par