Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
wiki:mail:presentation [2015/10/29 22:52] Thithib |
wiki:mail:presentation [2020/06/27 18:16] (Version actuelle) |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ===== Présentation de l' | ||
+ | ==== En bref ==== | ||
+ | |||
+ | Schéma de l' | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ==== Au niveau DNS ==== | ||
+ | === Enregistrement MX === | ||
+ | |||
+ | Quand un serveur veut acheminer un email vers l' | ||
+ | |||
+ | <code bash> | ||
+ | $ dig mx +short minet.net | ||
+ | 10 mx1.minet.net. | ||
+ | 10 mx2.minet.net. | ||
+ | </ | ||
+ | |||
+ | Les MX ont la même priorité, pour effectuer une répartition de charge entre les deux, tout en permettant à un des serveurs de gérer l' | ||
+ | |||
+ | Les enregistrement mx-main et mx-second anciennement présents correspondaient à une technique nommée nolisting, qui permet de n' | ||
+ | |||
+ | |||
+ | === Sender Policy Framework === | ||
+ | |||
+ | Nous utilisons aussi une technique appelée [[http:// | ||
+ | |||
+ | Pour afficher la politique sur les serveurs sortants : | ||
+ | |||
+ | < | ||
+ | $ dig txt +short minet.net | ||
+ | " | ||
+ | $ dig spf +short minet.net | ||
+ | " | ||
+ | </ | ||
+ | |||
+ | Cela signifie qu'on autorise les serveurs pointés par les entrées MX du domaine minet.net à envoyer des emails pour le domaine minet.net, et qu'on déconseille les autres ('' | ||
+ | |||
+ | Du côté des serveurs qui reçoivent les emails de l' | ||
+ | |||
+ | === DKIM === | ||
+ | |||
+ | Le DKIM est une autre manière d' | ||
+ | |||
+ | < | ||
+ | dig txt +short mail._domainkey.minet.net | ||
+ | " | ||
+ | </ | ||
+ | |||
+ | Il est destiné à être utilisé par les serveurs pour contrôler le domaine d' | ||
+ | |||
+ | <WRAP center round important 90%> | ||
+ | Ce serait peut-être bien de le faire maintenant, ou alors passer directement à [[https:// | ||
+ | </ | ||
+ | |||
+ | ==== RBL ==== | ||
+ | |||
+ | Le première barrière sont les RBL, des serveurs répertoriant les IP connues pour envoyer du spam. Nous le rejetons dès la connexion aux serveurs de réception de MiNET. | ||
+ | |||
+ | ==== Analyse du contenu : antispam/ | ||
+ | |||
+ | Les techniques présentées au dessus ne portant que sur l' | ||
+ | |||
+ | == Pourquoi un serveur mail ? Pourquoi Postfix ? == | ||
+ | |||
+ | Les MTA transmettent les emails d'un client (MUA, Mail User Agent) à un MDA (Mail Delivery Agent), qui va distribuer le courrier. | ||
+ | |||
+ | [[http:// | ||
+ | * Rapide et performant | ||
+ | * Simple à administrer | ||
+ | * Aussi sûr que possible, développé avec le principe de séparation des privilèges | ||
+ | * Robuste et bien documenté (doc officielle) | ||
+ | |||
+ | == Configuration générale d'un postfix == | ||
+ | |||
+ | La [[http:// | ||
+ | |||
+ | La configuration se fait principalement dans ''/ | ||
+ | |||
+ | Postfix utilise des données externes de plusieurs types (base de donnée, regexp, table hashée, ...). Dans le cas des tables, il faut générer le fichier hashé avec la commande | ||
+ | |||
+ | <code bash> | ||
+ | postmap fichier | ||
+ | </ | ||
+ | |||
+ | qui va créer '' | ||
+ | |||
+ | Les configurations des serveurs ne sont pas détaillées ici, mais les fichiers de configuration sont commentés. Les logs se trouvent dans ''/ | ||
+ | |||
+ | Pour recharger le configuration après une modification : | ||
+ | |||
+ | <code bash> | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | Pour voir la configuration différente des valeurs par défaut (assez pratique) : | ||
+ | |||
+ | < | ||
+ | postconf -n | ||
+ | </ | ||
+ | |||
+ | Pour voir la configuration par défaut (en complément de la commande précédente) : | ||
+ | |||
+ | < | ||
+ | postconf -d | ||
+ | </ | ||
+ | |||
+ | À noter que postconf permet aussi de modifier les configurations en ligne de commande au lieu de modifier manuellement le fichier de configuration. | ||
+ | |||
+ | ==== Configuration du smtp ==== | ||
+ | |||
+ | Le serveur smtp accepte les connexions authentifiées (grâce au ldap, avec sasl) sur l' | ||
+ | |||
+ | On accepte d' | ||
+ | |||
+ | C'est aussi sur le smtp que les emails provenant de MiNET sont signés par [[http:// | ||
+ | |||
+ | ==== Configuration des mx ==== | ||
+ | |||
+ | C'est la configuration mail la plus complexe. Les serveurs MX reçoivent les mails destinés à une adresse du type @minet.net ou @listes.minet.net, | ||
+ | |||
+ | Sur un serveur de ce type, il est important de ne pas devenir relai de spam ;), et de manière générale d' | ||
+ | |||
+ | Les messages sortants (sortant d'un vlan privé, par exemple depuis le SMTP) ne subissent aucun traitement et sont envoyés directement (on fait confiance à nos utilisateurs, | ||
+ | |||
+ | Le première barrière sont les RBL, des serveurs répertoriant les IP connues pour envoyer du spam. Nous le rejetons dès la connexion aux MX (en pratique au RCPT TO). Nous utilisions avant le service postgrey, qui effectue du greylisting, | ||
+ | |||
+ | ==== Divers ==== | ||
+ | |||
+ | === Débloquer des mails dans la queue === | ||
+ | |||
+ | Après une panne, par exemple serveur de spam down et donc tous les mails mis en attente, il peut être utile de vouloir libérer tous les mails qui sont dans la queue et que l'on souhaite faire partir tout de suite sans attendre que Postfix le fasse tout seul une fois. | ||
+ | |||
+ | Pour voir ce qui est dans la queue : | ||
+ | |||
+ | <code bash> | ||
+ | mailq | ||
+ | </ | ||
+ | |||
+ | Ensuite on choisit (étape non obligatoire) de faire un requeue de tout les messages (très utile si on a par exemple changé des règles de transport et qu'on souhaite les faire appliquer aux mails dans la queue) | ||
+ | |||
+ | <code bash> | ||
+ | postsuper -r ALL | ||
+ | </ | ||
+ | |||
+ | Flush de la queue = Libération des mails : | ||
+ | |||
+ | <code bash> | ||
+ | postqueue -f | ||
+ | </ | ||
+ | |||
+ | Il pourra vous arriver de supprimer des mails qui sont bloqués pour connexion refusée et dont vous voulez vous débarrasser : adresse erronée, etc: | ||
+ | |||
+ | <code bash> | ||
+ | postsuper -d mailID | ||
+ | </ | ||
+ | |||
+ | Pour tout supprimer (fonctionne pour l' | ||
+ | < | ||
+ | postsuper -d ALL | ||
+ | </ | ||
+ | |||
+ | [[http:// | ||
+ | === Ajouter un alias pour une mailing list === | ||
+ | |||
+ | Sur les 2 mx : | ||
+ | * modifier ''/ | ||
+ | * créer | ||
+ | * ''/ | ||
+ | |||
+ | === Monitoring Zabbix === | ||
+ | |||
+ | Le monitoring utilise pflogsumm (analyseur de log postfix), et un template Zabbix particulier. Pour le mettre en place : | ||
+ | |||
+ | <code bash> | ||
+ | apt-get install logtail pflogsumm zabbix-sender | ||
+ | </ | ||
+ | |||
+ | Dans la crontab : | ||
+ | <code bash> | ||
+ | 0/30 * * * * root / | ||
+ | </ | ||
+ | |||
+ | Le fichier en question : | ||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | |||
+ | MAILLOG=/ | ||
+ | DAT1=/ | ||
+ | DAT2=$(mktemp) | ||
+ | PFLOGSUMM=/ | ||
+ | ZABBIX_CONF=/ | ||
+ | ZABBIX_SERVER=192.168.102.78 | ||
+ | DEBUG=0 | ||
+ | |||
+ | function zsend { | ||
+ | key=" | ||
+ | value=`grep -m 1 " | ||
+ | [ ${DEBUG} -ne 0 ] && echo "Send key \" | ||
+ | / | ||
+ | } | ||
+ | |||
+ | / | ||
+ | |||
+ | zsend received | ||
+ | zsend delivered | ||
+ | zsend forwarded | ||
+ | zsend deferred | ||
+ | zsend bounced | ||
+ | zsend rejected | ||
+ | zsend held | ||
+ | zsend discarded | ||
+ | zsend " | ||
+ | zsend "bytes received" | ||
+ | zsend "bytes delivered" | ||
+ | zsend senders | ||
+ | zsend recipients | ||
+ | |||
+ | rm $DAT2 | ||
+ | </ | ||
+ | |||
+ | Il suffit ensuite d' | ||
+ | |||
+ | ==== Firewall ==== | ||
+ | |||
+ | Ces services sont sujets à des normes particulières de sécurité. Si vous souhaitez ajouter un serveur MX, veuillez lire [[wiki: | ||
+ | |||
+ | ==== Problème de mémoire et queuing MX ==== | ||
+ | |||
+ | Il arrive assez fréquemment que les queues des MX soient trop pleine. Il faut alors les vider avec les commandes précisés plus haut. | ||
+ | Ce problème va de pair avec une saturation swap. Les queues tentent de réenvoyer les mails et utilisent donc des ressources swap. Il suffit alors de vider les queues et de swap off les swaps des MX et de les réactiver. |