Le problème :
Je veux migrer en douceur et de manière transparente un serveur de courier d'un serveur A vers un serveur B.
Le serveur A est un qmail/vpopmail/courier-imap.
Le serveur B est un postfix/dovecot
Go !
Solution :
Pour palier au temps de propagation des DNS qui peut être rapide ou pas, l'idée est donc :
Serveur B : préparation
<domaine.com> mail._domainkey.<domaine.com>
-
créer dans postfixadmin sur le serveur B le nom de domaine à gérer
-
générer la clé DKIM pour ce nouveau domaine (cf configuration DKIM multi-domaine)
-
vérifier le domaine (cf post 10/10)
-
créer les boites aux lettres, j'en ai peu, mais il y a des scripts de migration à partir des vpasswd a priori (ou ça en fait)
-
via thunderbird portable, et mes configurations, je créé des comptes et je teste l'envoi et la réception
IMAP
ip du serveur (le DNS n'est pas migré), port 143, STARTTLS, mot de passe non chiffré
SMTP
ip du serveur (le DNS n'est pas migré), port 587, STARTTLS, mot de passe non chiffré
Serveur A : relay
Le serveur B étant prêt à gérer les mails, on redirige le trafic SMTP du serveur A vers le B pour ce domaine.
Un guide ici.
-
Vérifier la présence de <domaine.com> dans /var/qmail/control/rcpthosts
-
Supprimer la référence à <domaine.com> dans /var/qmail/control/smtproutes
-
Ajouter la redirection dans : /var/qmail/control/smtproutes
<domaine.com>:<IP serveur B>
-
redémarrer qmail
-
Tester l'envoi d'un email en utilisant le DNS mail.<domaine.com>, il passe par serveur A et est forwardé au serveur B
DNS : bascule
Modifier les DNS
Serveur A/B : recopier les boites aux lettres
Via un rsync plusieurs jours avant si les boites sont volumineuses, c'est la copie qui est longue, la conversion est rapide (quelques fichiers à modifier).
Le script de migration est ici : http://wiki.dovecot.org/Migration/Courier
Donc :
-
recopier les boites courier-map
# Serveur A
cd /home/vpopmail/domains
tar zcf <domaine.com>.tgz <domaine.com>
scp <domaine.com>.tgz <Serveur B>:/home/vmail/<domaine.com>/tmp_migrate
# OU rsynch
cd /home/vpopmail/domains
rsync -razh --delete root@<serveur A>:/home/vpopmail/domains/<domaine.com> .
-
les extraire
# Serveur B
cd /home/vmail/<domaine.com>/tmp_migrate
tar zxf <domaine.com>.tgz
-
les convertir
./courier-dovecot-migrate.pl <domaine.com> --recursive
# si ok
./courier-dovecot-migrate.pl <domaine.com> --recursive --convert
-
les transférer dans la nouvelle boite
chown -R <user dovecot:user dovecot> *
cp -r <domaine.com>/* /home/vmail/<domaine.com>/
Le problème :
En complément à cet article http://hoab.fr/postfix-et-10-10-aux-tests-antispam
Solution :
C'est tout simple, c'est pour tracer.
Par rapport aux tutoriels référencés dans l'article précédent, la configuration /etc/opendkim.conf :
#Domain & Selector & KeyFile ignore avec Keytable
#Domain origames.fr
#Selector mail
#KeyFile /etc/dkim/mail.private
KeyTable /etc/dkim/KeyTable
InternalHosts /etc/dkim/TrustedHosts
SigningTable /etc/dkim/SigningTable
On demande à opendkim d'aller chercher les clés dans un fichier plutôt que d'avoir une clé unique.
-
ajout de la ligne du domaine dans : /etc/dkim/SigningTable
<domaine.com> mail._domainkey.<domaine.com>
-
ajout de la ligne du domaine dans : /etc/dkim/TrustedHosts
<domaine.com>
-
ajout de la ligne du domaine dans : /etc/dkim/KeyTable
mail._domainkey.<domaine.com> <domine.com>:mail:/etc/dkim/keys/<domaine.com>/mail.private
-
générer la clé DKIM
cd /etc/dkim/keys/<domaine.com>/
opendkim-genkey -t -s mail -d <domaine.com>
Et voilà, ça roule.
Le problème :
Après avoir installé un serveur de mail. Gmail refusait les mails envoyés depuis ce serveur.
"Our system has detected that this message does 550-5.7.1 not meet IPv6 sending guidelines regarding PTR records and 550-5.7.1 authentication. Please review 550-5.7.1 https://support.google.com/mail/?p=ipv6_authentication_error for more 550 5.7.1 information"
Et là, il faut suivre les conseils vagues de Google, heureusement d'autres sites sont de meilleurs aides, exemple : https://www.mail-tester.com/
Le contexte :
- un serveur de mail + un nom de domaine (MONDOMAINE)
- un deuxième serveur de mail qui envoie des mails sur ce même domaine
Solution :
Suivre les recommendations du site mail-tester :)
Cela m'a conduit à :
Déclarer des enregistrements DNS sur MONDOMAINE pour autoriser mon deuxième serveur à envoyer des mails :
SERVEUR2.MONDOMAINE IN A IP-SERVEUR-2
MONDOMAINE. IN TXT "v=spf1 ip4:IP-SERVEUR-2 include:mx.ovh.com"
MONDOMAINE. IN SPF "v=spf1 ip4:IP-SERVEUR-2 include:mx.ovh.com"
Vérifier que le postfix de mon 2eme serveur est identifié avec SERVEUR2.MONDOMAINE
-
maintenant les serveurs SMTP reçevant nos mails savent que le deuxième serveur est autorisé à les envoyé.
-
que le nom de domaine SERVEUR2.MONDOMAINE est cohérent avec qui est déclaré dans postfix
-
ne pas avoir configurer postfix en openrelay, mais ça il faut l'avoir fait exprès
Il faut aussi installer des signatures DKIM en sortant :
mail._domainkey.MONDOMAINE. IN TXT ( "v=DKIM1;t=s;k=rsa; p=clepublic" )
-
on aurait pu avoir glustork à la place comme selecteur ! C'est aussi le principe d'avoir X domaines et X sélecteur pour avoir des clés de chiffrement différentes
glustork._domainkey.MONDOMAINE. IN TXT ( "v=DKIM1;t=s;k=rsa; p=clepublic" )
-
des outis pour vérifier les DNS existent sur le Web (ici, là, ...)
-
mais un petit DIG suffit aussi :
dig mail._domainkey.<domaine>.fr TXT @dnsserver.com