1.4. Configuration de la réplication entre deux serveurs Dovecot
Avec la réplication bidirectionnelle, vous pouvez rendre votre serveur Dovecot hautement disponible, et les clients IMAP et POP3 peuvent accéder à une boîte aux lettres sur les deux serveurs. Dovecot suit les changements dans les journaux d'indexation de chaque boîte aux lettres et résout les conflits de manière sûre.
Effectuez cette procédure sur les deux partenaires de réplication.
La réplication ne fonctionne qu'entre paires de serveurs. Par conséquent, dans un grand cluster, vous avez besoin de plusieurs paires de serveurs indépendants.
Conditions préalables
- Les deux serveurs utilisent le même backend d'authentification. Il est préférable d'utiliser LDAP ou SQL pour gérer les comptes de manière centralisée.
-
La configuration de la base de données des utilisateurs de Dovecot supporte le listing des utilisateurs. Utilisez la commande
doveadm user '*'
pour le vérifier. -
Dovecot accède aux boîtes aux lettres sur le système de fichiers en tant qu'utilisateur
vmail
au lieu de l'ID de l'utilisateur (UID).
Procédure
Créez le fichier
/etc/dovecot/conf.d/10-replication.conf
et effectuez-y les étapes suivantes :Activez les plug-ins
notify
etreplication
:mail_plugins = $mail_plugins notify replication
Ajouter une section
service replicator
:service replicator { process_min_avail = 1 unix_listener replicator-doveadm { mode = 0600 user = vmail } }
Avec ces paramètres, Dovecot démarre au moins un processus réplicateur lorsque le service
dovecot
démarre. De plus, cette section définit les paramètres du socketreplicator-doveadm
.Ajoutez une section
service aggregator
pour configurer le tuyaureplication-notify-fifo
et la prisereplication-notify
:service aggregator { fifo_listener replication-notify-fifo { user = vmail } unix_listener replication-notify { user = vmail } }
Ajouter une section
service doveadm
pour définir le port du service de réplication :service doveadm { inet_listener { port = 12345 } }
Définir le mot de passe du service de réplication
doveadm
:doveadm_password = replication_password
Le mot de passe doit être le même sur les deux serveurs.
Configurer le partenaire de réplication :
plugin { mail_replica = tcp:server2.example.com:12345 }
Facultatif : Définir le nombre maximum de processus parallèles
dsync
:replication_max_conns = 20
La valeur par défaut de
replication_max_conns
est10
.
Définir des autorisations sécurisées sur le fichier
/etc/dovecot/conf.d/10-replication.conf
:# chown root:root /etc/dovecot/conf.d/10-replication.conf # chmod 600 /etc/dovecot/conf.d/10-replication.conf
Activez le booléen SELinux
nis_enabled
pour permettre à Dovecot d'ouvrir le port de réplicationdoveadm
:setsebool -P nis_enabled on
Configurez les règles
firewalld
pour autoriser uniquement le partenaire de réplication à accéder au port de réplication, par exemple :# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.0.2.1/32" port protocol="tcp" port="12345" accept" # firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv6" source address="2001:db8:2::1/128" port protocol="tcp" port="12345" accept" # firewall-cmd --reload
Les masques de sous-réseau
/32
pour l'adresse IPv4 et/128
pour l'adresse IPv6 limitent l'accès aux adresses spécifiées.- Effectuez également cette procédure sur l'autre partenaire de réplication.
Recharger Dovecot :
# systemctl reload dovecot
Vérification
- Effectuer une action dans une boîte aux lettres sur un serveur et vérifier ensuite si Dovecot a répliqué la modification sur l'autre serveur.
Affiche l'état du réplicateur :
# doveadm replicator status Queued 'sync' requests 0 Queued 'high' requests 0 Queued 'low' requests 0 Queued 'failed' requests 0 Queued 'full resync' requests 30 Waiting 'failed' requests 0 Total number of known users 75
Affiche l'état des réplicateurs d'un utilisateur spécifique :
# doveadm replicator status example_user username priority fast sync full sync success sync failed example_user none 02:05:28 04:19:07 02:05:28 -
Ressources supplémentaires
-
dsync(1)
page de manuel -
/usr/share/doc/dovecot/wiki/Replication.txt