Type | How To |
Version | 1.1.2 |
Testé sur | SME 5.0, 5.12, 5.5, 5.6, 6.0, 6.0.1, 7.0, 7.1, 7.2, 7.3 et 7.3-utf-8 |
L'envoi d'un message sur Internet se fait en utilisant un protocole normalisé : SMTP pour Simple Mail
Transport Protocol.
Ce protocole, comme son nom l'indique est 'assez' simple. Lorsqu'un mail est envoyé, le serveur SMTP
de l'émetteur commence à décortiquer l'adresse du destinataire. Soit une adresse mail :
La partie jean.dupont située à gauche du signe @ n'intéresse pas l'émetteur : Par analogie avec le 'snail mail', il s'agit de la boîte postale de M Jean Dupont. Cette information sera traitée par le serveur SMTP de destination.
Par contre, la partie située à droite du signe @, dupontnet.com est l'adresse du bureau de poste. C'est la partie qui doit être traitée par l'émetteur.
En fait, le SERVEUR SMTP se retrouve avec un nom Internet (en général un nom de domaine). Le serveur doit maintenant chercher le ou les serveurs SMTP qui gèrent le domaine dupontnet.com. Il obtient cette information en demandant à son serveur DNS.
En français, la requête serait celle ci : "Peux tu s'il te plait m'indiquer la liste des serveurs gérant le courrier pour le domaine dupontnet.com ? "Ces informations sont stockées dans des enregistrements spécifiques du DNS, les enregistrements 'MX' (pour Mail eXchanger).
Pour un domaine donné, vous pouvez consulter cette information, par exemple avec la commande suivante :
# host -t mx cw.com cw.com mail is handled by 20 mail14.messagelabs.com. cw.com mail is handled by 10 mail49.messagelabs.com.
A partir de là, le serveur SMTP de l'émetteur tente de rentrer en contact avec le serveur de mail du domaine de destination qui a la priorité la plus basse, également appelé serveur SMTP primaire ou MX primaire.
Mais il se peut que le serveur de destination soit non joignable.
C'est pour cela qu'on peut indiquer plusieurs serveur au niveau du DNS :
A noter : de plus en plus de 'gros' sites ont plusieurs serveurs SMTP avec le même ordre de priorité. Dans ce cas, la connexion est faite de manière aléatoire. Ceci permet de faire de l'équilibrage de charge.
Il faut essentiellement configurer deux parties :
Le but de ce document est justement la mise en place de serveurs MX de backup
Essentiellement, une personne prête à partager l'expérience avec vous !
La page que vous lisez en ce moment a été pensée (et testée ...) avec ma distribution Linux chérie : SME Server. Cependant, cette distribution utilise comme démon SMTP le logiciel QMAIL. Toute distribution basée sur ce démon de messagerie devrait pouvoir être configuré à l'aide de cette page.
Plus précisément, il faut que chaque administrateur dispose des éléments suivants :Quelques précisions concernant les exemples que vous allez voir à partir de maintenant :
Vous travaillez de concert avec l'Admin d'un autre serveur SME.
Il y a trois procédures d'installation, selon votre version de SME. Choisissez la votre, et continuez ensuite à partir de Validation
p120:/root-# tar xvfP MXBackupDomains.tar /etc/e-smith/templates-custom/var/spool/smtpd/etc/smtpd_check_rules/61MXBackupDomains /etc/MXBackupDomainsCette opération installe deux fichiers sur votre machine:
# /sbin/e-smith/expand-template /var/spool/smtpd/etc/smtpd_check_rules #Il est normal de ne pas avoir de messages en retour.
------- extrait ---- # list of domains for witch we are acting as MX backup # Receiving mail for the domain dupontnet.com is allowed on this system allow:ALL:ALL:*.dupontnet.com *@dupontnet.com ------ fin d'extrait ---------
Bon, ben voilà, il faut le dire :-( : J'ai pas assuré ! Je suis passé en SME 5.5, et j'ai une petite
faiblesse, actuellement, pour repackager comme il faut le MXBackup...
La manip mentionnée pour 5.5 fonctionne également sur 5.6
Mais voyez la méthode Trois, pour les SME 6 et supérieurs !
En attendant, il faut tout faire à la main (ou presque !) - C'est le moment de passer à SME 6 !
# tar xvfP MXBackupDomains55.tar /etc/e-smith/templates-custom/var/qmail/control/rcpthosts/20QandD
# 20QandD (Quick and Dirty...) # Ce fichier ajoute vite fait, mal fait les domaines dont on est MXBackup # dans la liste des domaines approuves par Qmail # PS 30 Septembre 2002 # Syntaxe : Il faut deux lignes par domaines approuves : # domaine.ntlg # .domaine.ntlg # La premiere ligne autorise les mails du type : toto@domaine.ntlg # La deuxieme ligne autorise les mails du type : toto@www.domaine.ntlg # # Ajout des domaines approuves dupontnet.com .dupontnet.com
# /sbin/e-smith/expand-template /var/qmail/control/rcpthosts
Je ne suis pas un expert, mais à priori, vous avez de fortes chances de pouvoir vous en sortir en cherchant sur votre système le fichier rcpthosts (qui, sur SME , se trouve dans le dossier /var/qmail/control/)
Il vous suffit alors de modifier le fichier présent, de manière à le faire ressembler à mes exemples... Vous ne devriez pas rencontrer les problèmes spécifiques à SME, qui régénère régulièrement ses fichiers de configuration, d'où le système des templates.
Voici mon chef-d'oeuvre !!! J'ai écrit un panneau de contrôle pour gérer le MX-Backup directement depuis le server-manager.
Note : depuis avril 2008, SME a subi de sérieuses modifications. Plus d'explications Ici Je n'ai pas su gérer un rpm unique compatible avec les deux versions de SME. Il y a donc maintenant deux RPMS :
Vous pouvez télécharger le RPM d'installation .
Le RPM Source est également disponible, pour les
développeurs ou les curieux. Il n'est pas nécessaire pour faire fonctionner la solution.
Ce logiciel est disponible dans les termes de la licence GNU. En très court : Vous pouvez utiliser ce logiciel
et le modifier comme vous le souhaitez, tant que le logiciel reste libre.
L'installation est simple :
# rpm -Uvh http://www.schirrms.net/files/smeserver-mxbackup-utf8-0.1.0-03.noarch.rpm Preparing... ########################################### [100%] 1:smeserver-mxbackup-utf8########################################### [100%] Rebuilding Web Server Manager Left Panel Cache ... Can take up to a minute. Done. Setting defaults values in SME configuration database, if needed. Don't change any existing configuration. Migrating existing database domains Migrating existing database spamassassin Migrating existing database configuration Migrating existing database hosts Migrating existing database yum_repositories Migrating existing database yum_available Migrating existing database backups Migrating existing database networks Migrating existing database mailpatterns Migrating existing database accounts Migrating existing database yum_updates Migrating existing database yum_installed Done. Regenerating the config file... Installation finished.Maintenant, dans la section Configuration, vous avez un choix Configuration du MX Backup juste sous le choix Courrier électronique.
La configuration est simple :
Cliquez sur le bouton 'Créer une nouvelle règle de MX-Backup' pour ajouter un nom de domaine.
Mis à part le nom de domaine, vous pouvez choisir entre 'Domaine' ou 'Ordinateur'.
A partir de là, tronc commun pour tous ! (toutes versions de SME, et tous les utilisateurs de QMAIL). En fait, la procédure de tests est valide pour n'importe quel serveur de Backup (même sous Windows, si, si ! - Encore qu'utiliser Windows pour faire du Backup :-) )
Il reste à vérifier que le MX Backup fonctionne. Cette opération est à faire de n'importe où sur Internet, mais pas depuis la machine qui est MX Backup, ni depuis son réseau local, car les règles de gestion des messages sont différentes dans ces deux cas.
Le plus simple est de faire effectuer les vérifications par l'Admin. du domaine dupontnet.com .
C'est l'opération la plus longue, en fait : Il s'agit de se connecter par TELNET au serveur de messagerie et de simuler un autre serveur SMTP qui enverrait un message.
Avant de se lancer dans les démos, quelques rappels:
Tout d'abord, un serveur SMTP qui toque à la porte d'un autre serveur SMTP se présente (ou plutôt présente son domaine). C'est la commande HELO .
Ensuite, le serveur expéditeur envoie les paramètres de l'enveloppe du message. C'est une partie que les
utilisateurs regardent rarement (il faut aller lire l'en-tête du message), mais c'est la partie utilisée
pour gérer l'acheminement du message. Ce qui est intéressant (quand on dépanne !), c'est que chaque bureau de
poste visité tamponne l'enveloppe.
Dans notre mail de test hyper simplifié, les deux seules commandes concernant l'enveloppe sont :
MAIL From: adresse de l'expéditeur.
RCPT To: adresse du destinataire.
Nous pouvons alors commencer le corps du mail (le contenu).
Pour ce faire, on envoie la commande DATA (seule sur une ligne.
Là, en principe, il suffit de taper un texte quelconque. Mais, au niveau client de messagerie, le message
sera alors reçu sans sujet, mais également sans expéditeur ni destinataire.
Pour avoir un mail un peu plus conforme (encore que je vous encourage à tester les différentes combinaisons !),
Nous allons renseigner 4 champs spécifiques, suivi d'une ligne vide, puis du corps du message:
From: trucmuche@machin.com
To: jean.dupont@dupontnet.com
Date: Tue, Mar 09 2004, 21:00:00
Subject: Test de validation MX Backup
Voici le message,
Particulièrement passionnant.
.
Après quelques instants, la boîte de jean.dupont du serveur de mail du domaine duponnet.com devrait recevoir
un message.
Voici l'expédition d'un message complet par Telnet :
# telnet mail.durantcom.net 25 Trying 111.112.113.114... Connected to mail.durantcom.net Escape character is '^]'. 220 sme.durantcom.net mailfront ESMTP HELO anything.other.org 250 sme.durantcom.net MAIL From: admin@anything.other.org 250 Sender accepted. RCPT To: jean.dupont@dupontnet.com 250 Recipient accepted. DATA 354 End your message with a period. From: admin@anything.other.org To: jean.dupont@dupontnet.com Date: Tue, Mar 09 2004, 21:00:00 Subject: Test Essai particulièrement brillant ! . 250 QUIT 221 Good bye. Connection closed by foreign host.Et voici l'en-tête du message reçu par jean.dupont@dupontnet.com
Return-Path: <admin@anything.other.org> Delivered-To: jean@server.dupontnet.com Received: (qmail 24095 invoked by alias); 9 Mar 2004 21:36:17 -0000 Delivered-To: alias-localdelivery-jean@dupontnet.com Received: (qmail 24092 invoked from network); 9 Mar 2004 21:36:16 -0000 Received: from mail.durantcom.net (HELO durantcom.net) (111.112.113.114) by mail.dupontnet.com (100.99.98.97) with SMTP; 09 Mar 2004 21:36:16 -0000 Received: (qmail 27033 invoked from network); 9 Mar 2004 21:27:51 -0000 Received: from some.other.computer.on.the.net (HELO anything.other.org) (200.200.200.200) by sme.durantcom.net (111.112.113.114) with SMTP; 09 Mar 2004 21:27:51 -0000 From: admin@anything.other.org To: jean.dupont@dupontnet.com Date: Tue, Mar 09 2004, 21:00:00 Subject: Test Essai particulièrement brillant !Voilà, vous avez fait le minimum de test : un mail à l'attention de dupontnet.com est bien accepté par le serveur de mail de durantcom.net, et arrive bien à terme au serveur de mail de dupontnet.com. Je vous encourage à faire la contre manip : vérifiez bien que le serveur de mail de durantcom.net refuse les mails à destination d'ailleurs :
# telnet mail.durantcom.net 25 Trying 111.112.113.114... Connected to mail.durantcom.net. Escape character is '^]'. 220 sme.durantcom.net mailfront ESMTP HELO anything.other.org 250 durantcom.net MAIL From: a_guy@anything.other.org 250 Sender accepted. RCPT To: tomy@hotmail.com 553 Sorry, that domain isn't in my list of allowed rcpthosts. QUIT 221 Good bye. Connection closed by foreign host.
ça y est, tout est prêt ! Il reste à activer cette belle configuration. L'administrateur du domaine
dupontnet.com doit maintenant modifier (ou faire modifier) le DNS public de son domaine.
Il s'agit d'ajouter un enregistrement MX qui pointe sur le serveur de mail de durantcom.net
Selon votre fournisseur de DNS, il se peut que vous ayez juste à saisir le nom de la machine de
durantcom.net en précisant que c'est le deuxième serveur de mail.
Si votre DNS est plus rustique, il va falloir affecter une préférence.
Sachez que la préférence de valeur la plus basse est prioritaire.
Le MX primaire doit donc avoir une préférence inférieure à celle du MX secondaire
Pour tester la configuration, il vous faut l'adresse IP du DNS primaire du domaine à contrôler. En effet,
votre DNS interne risque fort de vous donner des information erronées !
En supposant que le DNS primaire ait pour IP 1.2.3.4 :
# host -t mx smithnet.com 1.2.3.4 Using domain server: Name: 1.2.3.4 Address: 1.2.3.4#53 Aliases: dupontnet.com mail is handled (pri=0) by mail.dupontnet.com dupontnet.com mail is handled (pri=5) by mail.durantcom.net
Voilà, tout est en place. Le temps que tous les DNS se mettent à jour, votre MX Backup est opérationnel.
Suite à la publication du RPM MX-Backup, un cas intéressant m'a été soumis : Le cas d'un serveur SME qui ferait office de MX-Backup, mais qui utiliserait pour l'expédition SMTP les services d'un 'Smart Host' SMTP.
Problème : le mode MX-Backup n'est pas compatible avec l'utilisation d'un 'SmartHost' !
Pourquoi ?
En fait, supposons que mail.titi.com soit le MX secondaire du domaine toto.com.
Et la configuration de mail.titi.com est d'utiliser smtp.provider.net comme 'SmartHost'.
A un moment donné, le serveur SMTP primaire du domaine toto.com est injoignable. Le courrier à l'attention
du domaine toto.com se met à arriver sur le serveur mail.titi.com.
Cependant, comme mail.titi.com est configuré pour utiliser un 'SmartHost', et comme le courrier pour
le domaine 'toto.com' doit repartir, il transfère tout ce courrier arrivant à son 'SmartHost', smtp.provider.net.
Le serveur smtp.provider.net à son tour analyse le DNS et trouve qu'il doit renvoyer à mail.titi.com !!!
Ceci s'appelle un 'Bounce-Mail'. Dans le meilleur des cas, c'est SME qui s'en rend compte, dans le pire des cas c'est le serveur 'SmartHost', et vous risquez d'entendre parler de son admin...
Depuis la version 0.1.0 de MX-Backup, ceci ne peut plus arriver : en effet, si le serveur de MX-Backup utilise un 'SmartHost' il ne le fera pas pour les domaines pour lesquels il est MX-Backup'.
Mais le remède peut être pire que le mal ! En effet, deux raisons principales peuvent vous amener à utiliser le serveur SMTP de votre provider:
Cependant, si vous êtes dans ce cas, et si vous êtes MX-Backup d'un autre serveur SME, ne désespérez pas, écrivez moi, il y a une solution !
Et bien après, pas grand chose...
Vous pouvez souhaiter disposer de plus d'un MX-Backup. La manipulation est la même : faites configurer
votre troisième MX-Backup, testez le, puis ajoutez une entrée dans le DNS public.
SME a subi en Avril 2008 un changement profond, quoique quasi invisible : elle a changé de jeu de caractères ! Qu'est ce à dire ? Un ordinateur stocke toutes les données sous forme de successions de bits. Pour que nous puissions lire un texte, il faut associer une succession de bits à une lettre. Par exemple, dans l'essentiel des langages informatiques du monde 'micro' un A = 65, et un 1 =49. Pour les caractères non américains (accents, caractères grecs, symboles chinois) il y a plusieurs normes. une des plus récentes (et probablement celle jugée la plus 'fédératrice') est la norme UTF-8. Elle permet de gérer quasiment tous les symboles connus. Jusqu'à présent, SME n'était pas en UTF-8, ce qui rendait impossible par exemple la traduction du server-manager en grec. L'équipe de dev a donc fait le grand pas. Malheureusement, il n'existe pas à ma connaissance de solution pour qu'une contrib soit compatible avec les deux jeux de caractères. Donc, il me faut gérer deux versions fonctionnellement identiques, jusqu'à disparition des anciennes versions de SME (ce qui peut prendre plusieurs années !)
20 Avril 2008 | Mise à jour du RPM en version 0.1.0-03 : Support du jeu de caractères utf-8 |
26 Avril 2006 | Mise à jour du RPM en version 0.1.0-02 : Support complet de SME 7 (notamment, la partie qpsmtpd) |
13 mai 2004 | Mise à jour du RPM en version 0.1.0-00 : Gestion du MX-Backup pour des serveurs SME utilisant en général un 'SmartHost'. Mais s'il vous plait, lisez bien ce document ! |
22 avril 2004 | Mise à jour 'discrète' : correction dans le RPM d'un bug empéchant la saisie d'un domaine comprenant le chiffre 0 (zéro) : ceci correspond aux rpm en révision 0.0.4-00 |
mars 2004 | Version Initiale comprenant le rpm pour la 6.0 |
copyleft Schirrms Studio 2002-2004 |
|
L'ensemble du site web www.schirrms.net est sous licence GFPL |