En gros, ça sert à éviter de faire exploser votre queue de mails
Peut-être avez-vous déjà un serveur mail secondaire pour votre domaine, qui discutent entre eux avec du SMTP tout simple.
Cela fonctionne très bien tant que le serveur
principal n’est pas trop longtemps dans le noir,
sinon vous verrez votre queue grandir de façon
démentielle (enfin, celle de postfix).
Il existe alors une parade à ce problème si vous avez installé dovecot, le dsync.
Ce n’est plus postfix, mais dovecot qui se chargera de synchroniser les mails entre les deux serveurs, allégeant ainsi le premier.
Il y a quelques vérifications à faire avant d’entamer la configuration
Dans mon cas, je veux synchroniser un serveur sous gentoo avec un autre sous debian oldstable (wheezy à ce jour). Or dans le wiki de dovecot, il est précisé « NOTE: v2.2 is highly recommended for this. Earlier versions can't do incremental metadata syncing. This means that the more mails a mailbox has, the slower it is to sync it. ».
Et comme debian aime bien les paquets pas à jour, il faut commencer par prendre la version des backports.
Une fois ceci fait, il faut s’assurer que
doveadm user '*'
ressorte bien la
liste des utilisateurs. Et ce, sur les deux
serveurs. J’utilise un backend MySQL, il faut
donc que dans le fichier /etc/dovecot/dovecot-sql.conf.ext
j’ai un truc du genre iterate_query =
SELECT username AS user FROM
mailbox;
.
Sous gentoo, je n’ai pas eu à modifier les useflags pour utiliser dsync.
Et maintenant on peut configurer
Dans /etc/dovecot/conf.d/10-mail.conf
il faut ajouter replication à la variable mail_plugins : mail_plugins = $mail_plugins [vos autres plugins] replication
.
Puis, dans /etc/dovecot/conf.d/10-master.conf
, on ajoute
service doveadm {
inet_listener {
port = $port
ssl = yes
}
}
doveadm_port = $port
doveadm_password = $passwd
service replicator {
process_min_avail = 1
unix_listener replicator-doveadm {
mode = 0600
}
}
service aggregator {
fifo_listener replication-notify-fifo {
user = dovecot
}
unix_listener replication-notify {
user = dovecot
}
}
Les valeurs commençant par un dollar sont à remplacer selon votre envie, il faut juste être cohérent :).Pour l’utilisateur du service aggregator, j’utilise dovecot sous debian et mail sous gentoo.
Ensuite, il faut éditer
/etc/dovecot/conf.d/90-plugin.conf
pour préciser le serveur avec lequel on veut synchroniser les mails :
plugin {
[autres variables]
mail_replica = tcps:$fqdn_du_serveur_en_face
}
Enfin, comme je suis un gros psychomaniaque du chiffrement, il faut préciser les paramètres SSL dans /etc/dovecot/conf.d/10-ssl.conf
:
ssl = yes
ssl_cert = </etc/ssl/certs/swordarmor.fr.crt
ssl_key = </etc/ssl/private/swordarmor.fr.key
ssl_client_ca_dir = /etc/ssl/certs/
Tests et conclusion
Pour tester votre configuration, vous pouvez utiliser doveadm sync -A -d
et vérifier que vous avez bien tous les mails de l’autre côté. Attention cependant, la synchronisation peut prendre pas mal de temps la première fois.
Si ça fonctionne, réglez le postfix du secondaire pour
lui dire qu’il n’est plus serveur secondaire mais
serveur principal sur votre domaine (oui, vous aurez deux serveurs principaux).
Avec tout ceci, vous devriez pouvoir éteindre l’un des
deux serveurs deux semaines si vous voulez et quand
même avoir accès à tous vos mails en IMAP.