console linux

Migrer un serveur Cyrus vers Exchange via Imapsync

Il y a des moments où des choix nous sont imposés, et dans mon cas il s’agit de migrer des boites mails d’un serveur Cyrus vers un serveur Microsoft Exchange… La méthode la plus simple pour migrer des centaines de boites mails est de passer par Imapsync. Mais il faut encore choisir les bonnes options…

Cela tien en 3 petites étapes détaillées dans cet article :

  • Préparer le serveur Cyrus
  • Préparer le serveur Exchange de destination
  • Installer IMAPsync et le script de migration

Préparer le serveur Cyrus

Dans mon cas c’est un Debian vieillissant en Lenny avec Cyrus 2.2.

Il faut d’abord créer un utilisateur admin dans Cyrus, ou utiliser l’utilisateur admin de base nommé ‘cyrus’.

Ensuite on autorise cet utilisateur à lire toutes les boites mails de cette façon :

Pour vérifier, il suffit d’aller lire les droits d’une mailbox au hasard :

Autoriser les connexions IMAPS dans Cyrus si ce n’est déjà fait (dans mon cas c’était un webmail exclusivement donc pas d’IMAP actif)

Editer le fichier /etc/cyrus.conf et remplacer l’adresse IP d’écoute :

Dans le fichier /etc/imapd.conf rajouter les lignes suivantes :

Il vous faut avoir généré une clé et un certificat SSL autosigné au préalable.

Préparer le serveur Exchange de destination

Sous Windows Server 2008R2, il vous faut créer un utilisateur qui est administrateur pour l’OU utilisée pour les comptes Exchange à migrer. C’est cette utilisateur qui sera utilisé par le script d’IMAPsync.

Activer IMAPs si ce n’est déjà fait.

Installer IMAPsync et le script de migration

Imapsync peut être installé sur n’importe quelle machine linux, étant donné que c’est un client qui se connecte aux 2 serveurs IMAP. Il est même préférable de ne pas le mettre sur le serveur Cyrus, mais sur un autre serveur ou pc linux afin de répartir la charge. Celle-ci est assez élevée pour le serveur Cyrus durant les transferts.

Imapsync ne se trouve pas sur les dépôts de Debian Wheezy, il faut donc l’installer manuellement. Voici la liste des dépendances et les commandes :

Et voici le script qui permettra de migrer les boites mails via un simple fichier texte en entrée avec les identifiants des utilisateurs :

  • Les identifiants doivent être les mêmes des 2 côtés dans ce script imapsync_cyrus_exchange.sh
  • Les comptes à migrer se trouvent dans le fichier compte-to-migrate.txt
  • le mot de passe de l’administrateur cyrus se trouve dans un fichier cyrusadmin.pass
  • le mot de passe de l’administrateur exchange se trouve dans un fichier passwd_ad.pass

 

Remarques

On peut voir des options du style :

Il faut savoir que sous Cyrus, peut importe la langue de l’utilisateur, le dossier IMAP porte un nom en anglais. Alors que sous Exchange, le nom du dossier est en fonction de la langue de l’utilisateur. Si vous travaillez dans un environnement multi-langues vous aller donc créer de nouveaux dossiers dans l’Exchange lors de la synchro et les utilisateurs d’une autre langue devront déplacer leurs emails ou renommer le dossier.

Si vous voulez éviter au maximum les frustrations des utilisateurs à renommer le dossier dans leur langue natale, vous pouvez toujours faire une liste des utilisateurs par langue en vous basant sur le LDAP. Ensuite, vous modifierez le script et l’exécuterez autant de fois que vous aurez de langues différentes dans l’entreprise.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">