Migration Courier-imap/qmail vers Postfix/dovecot

Rédigé par gorki - - Aucun commentaire

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>
  1. créer dans postfixadmin sur le serveur B le nom de domaine à gérer
  2. générer la clé DKIM pour ce nouveau domaine (cf configuration DKIM multi-domaine)
  3. vérifier le domaine (cf post 10/10)
  4. 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)
  5. 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.

  1. Vérifier la présence de <domaine.com> dans /var/qmail/control/rcpthosts
  2. Supprimer la référence à <domaine.com> dans /var/qmail/control/smtproutes
  3. Ajouter la redirection dans : /var/qmail/control/smtproutes
<domaine.com>:<IP serveur B>
  1. redémarrer qmail
  2. 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 :

  1. 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> .

 

  1. les extraire
# Serveur B
cd /home/vmail/<domaine.com>/tmp_migrate
tar zxf <domaine.com>.tgz
  1. les convertir
 ./courier-dovecot-migrate.pl <domaine.com> --recursive 
# si ok
 ./courier-dovecot-migrate.pl <domaine.com> --recursive --convert
  1. les transférer dans la nouvelle boite
chown -R <user dovecot:user dovecot> *
cp -r <domaine.com>/* /home/vmail/<domaine.com>/

Configuration OpenDKIM en multi-domaines

Rédigé par gorki - - Aucun commentaire

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.

  1. ajout de la ligne du domaine dans : /etc/dkim/SigningTable
<domaine.com> mail._domainkey.<domaine.com>
  1. ajout de la ligne du domaine dans : /etc/dkim/TrustedHosts
<domaine.com>
  1. ajout de la ligne du domaine dans : /etc/dkim/KeyTable
mail._domainkey.<domaine.com> <domine.com>:mail:/etc/dkim/keys/<domaine.com>/mail.private
  1. générer la clé DKIM
cd /etc/dkim/keys/<domaine.com>/
opendkim-genkey -t -s mail -d <domaine.com>

Et voilà, ça roule.

 

Postfix et 10/10 aux tests antispam

Rédigé par gorki - - Aucun commentaire

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, , ...)
  • mais un petit DIG suffit aussi :
dig mail._domainkey.<domaine>.fr TXT @dnsserver.com

 

Fil RSS des articles de ce mot clé