Migration courriel

De ClissXXI.

Sommaire

Situation initiale

Soit 2 serveurs

  • A l'ancien serveur, actuellement en production
  • N le nouveau serveur qui va remplacer A

Au niveau DNS:

  • le MX pointe vers A
  • le(s) champs serveurs (mail.tld, pop.tld, imap.tld, etc...) pointent vers A

Montage du nouveau serveur

Le nouveau serveur est fonctionnel, a sa propre IP et nous avons accès aux DNS. i.e.:

  • lorsque je fait une connexion smtp vers le nouveau serveur, celui ci est capable de distribuer les courriels (internes et externes).
  • lorsque je fait une connexion imap vers le nouveau serveur, celui ci me montre une boite (sans doute vide).
  • l'authentification (pop,imap,smtp) est fonctionnelle
  • les filtres (antispam, antivirus) sont fonctionnels
  • le cryptage (s'il y a lieu) imaps, smtps, pop3s, imap+starttls, pop3+starttls, smtp+starttls est fonctionnel (meme s'il est attendu d'avoir un certificat non valide tant que le nom du serveur n'est pas fixé).

Au niveau DNS, on change le TTL pour le réduire à 1 heure (selon la configuration actuelle ce changement sera effectif d'ici 2 jours maximum)

Etape 1 (domino SMTP)

Configurer le nouveau serveur N pour qu'il envoit tout les courriel à destination de tld vers l'ancien serveur A (table transport). Eventuellement le faire boite par boite s'il y a beaucoup de comptes. Tester en envoyant des courriel vers le nouveau serveur N:

  • un courriel à destination de tld doit être renvoyé à l'ancien serveur A
  • un courriel à destination de l'exterieur doit être envoyé directement par le nouveau serveur N si et seulement si il y a authentification SMTP (pas d'open relay!)

Si les tests sont concluants:

  • changez le MX pour qu'il pointe vers le nouveau serveur.
  • éventuellement changez smtp.tld pour qu'il pointe aussi vers le nouveau serveur.
                               +--->(smtp externe avec auth. SMTP)---->(internet)
                              /
(smtp)---->[nouveau serveur N]---->(smtp interne)---->[ancien serveur A (toutes les boites courriels)]---->(smtp)
  ^                                                                                                \
  |                                                                                                 +---->(pop3,imap)---->[utilisateurs]
[internet,utilisateurs]

Etape 2 (copie des boites courriel)

Estimez le temps de transfert et les transformations à faire pour recopier les boites courriels de l'ancien serveur vers le nouveau: faites un compte test sur l'ancien serveur _avec_ des sous répertoire IMAP transferez (rsync maildir, rsync maildir + transformations, imapsync, etc...)le vers le nouveau serveur et testez que vous retrouvez bien l'ensemble des courriels.

Quand la procédure est au point et que vous avez une estimation du temps de migration (1h, 2 jours ...),

  • choississez un moment qui s'y prete (typiquement le genre de truc qui pourrit la soirée ou le week end...),
  • coupez l'accès POP/IMAP pour les utilisateurs (via iptables si vous utilisez qqchose comme imapsync, sinon arrêtez simplement le service)
  • coupez temporairement l'entrée SMTP sur le nouveau serveur [adresse@]tld DEFER_IF_PERMIT "message" dans recipient_access
  • transferez l'ensemble des boites si possible.
  • Testez que les boites sont bien accessibles sur le nouveau serveur et modifiez le reste du DNS (pop.tld, imap.tld, mail.tld, courriel.tld).
  • faites en sorte que les boites courriel sur l'ancien serveur soient sauvegardées mais plus du tout accessible via pop/imap pour qu'en cas de pépins vos utilisateurs sachent qu'ils n'accèdent pas à leurs courriels plutôt qu'ils accèdent à une version figée sans le savoir.
  • si l'ensemble des boites courriels n'est pas transférable en une fois, on transfert un bloc (qui sera mis à jour dans la table transport et recipient_access) et pour ce premier bloc d'utilisateur on va leur donner une nouvelle adresse définitive de serveur (attention aux certificats).
Outils personnels