L’existant :
- Un serveur debian wheezy
- ISPConfig 3 configuré avec Courier en tant que service IMAP et POP et plugin Maildrop
- L’objectif :
- Dovecot 2.1.x en tant que service IMAP, POP, et SIEVE
Les raisons essentielles :
- Dovecot semble plus performant et la communauté plus dynamique.
- Plugin natif roundcube (managesieve) directement enfichables
La difficulté :
- Conserver la stabilité et l’évolutivité de la distribution (Wheezy / ISPConfig)
- Migrer les boîtes existantes as is (hiérarchies de dossiers)
Les références :
- L’excellent https://github.com/cubetech/sysadmin.courier-to-dovecot
La marche à suivre :
- Préparation de l’environnement
sudo -s cd mkdir courier-to-dovecot cd courier-to-dovecot git clone https://github.com/cubetech/sysadmin.courier-to-dovecot cd sysadmin.courier-to-dovecot # comme décrit dans le README /etc/init.d/postfix stop /etc/init.d/courier-authdaemon stop /etc/init.d/courier-imap stop /etc/init.d/courier-imap-ssl stop /etc/init.d/courier-pop stop /etc/init.d/courier-pop-ssl stop apt-get install dovecot-imapd dovecot-pop3d dovecot-common apt-get remove courier-authdaemon
- Ensuite, les 2 modifications illustrées ci-dessous sont à appliquer au niveau de la configuration du serveur ISPConfig :
- Aussi, pour permettre au script de cubetech de fonctionner, il faut lui communiquer les identifiants d’un utilisateur distant que l’on va créer via :
En effet, le script va littéralement piloter l’ensemble des mouvements à appliquer à la fois au niveau du reste de la configuration ISPConfig (messagerie) via l’interface SOAP de ce dernier, mais aussi au niveau filesystem, ce qui va impliquer un lancement du script en root.
- Une fois le script courier_to_dovecot.php modifié contenant l’url et l’uri du service ISPConfig ainsi que les identifiants du remote user, il suffit de lancer :
php courier_to_dovecot.php
L’output de la commande :
root@www-02:~/courier-to-dovecot/sysadmin.courier-to-dovecot# php courier_to_dovecot.php Logged successfull. Session ID:b432ae0090c67de1a906fb22d0a3993f Disabling mailfilters for mailbox toto@toto.com: We wait 5 minutes, dont interrupt the script............................................................................................................................................................................................................. ............................................................................................... /var/vmail/toto.com/toto Moved maildir contents from /var/vmail/toto.com/toto to /var/vmail/toto.com/toto/Maildir/ ......
- Dernière étape, reconfigurer les services ISPConfig à partir du tar.gz de la dernière version stable :
/usr/local/ispconfig/server/scripts/update_from_tgz.sh
L’output de la commande :
-------------------------------------------------------------------------------- _____ ___________ _____ __ _ ____ |_ _/ ___| ___ \ / __ \ / _(_) /__ \ | | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ / | | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ | _| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \ \___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/ __/ | |___/ -------------------------------------------------------------------------------- >> Update Operating System: Debian or compatible, unknown version. This application will update ISPConfig 3 on your server. Shall the script create a ISPConfig backup in /var/backup/ now? (yes,no) [yes]: no Checking ISPConfig database .. OK Starting incremental database update. Reconfigure Permissions in master database? (yes,no) [no]: Reconfigure Services? (yes,no) [yes]: Configuring Postfix Configuring Mailman Configuring Jailkit Configuring Dovecot Configuring Spamassassin Configuring Amavisd Configuring Getmail Configuring Pureftpd Configuring BIND Configuring Apache Configuring vlogger Configuring Apps vhost Configuring Database Configuring Bastille Firewall Updating ISPConfig ISPConfig Port [50443]: Create new ISPConfig SSL certificate (yes,no) [no]: Reconfigure Crontab? (yes,no) [yes]: Updating Crontab Restarting services ... Stopping MySQL database server: mysqld. Starting MySQL database server: mysqld .. Checking for tables which need an upgrade, are corrupt or were not closed cleanly.. Stopping Postfix Mail Transport Agent: postfix. Starting Postfix Mail Transport Agent: postfix. Stopping SASL Authentication Daemon: saslauthd. Starting SASL Authentication Daemon: saslauthd. Stopping amavisd: amavisd-new. Starting amavisd: amavisd-new. Stopping ClamAV daemon: clamd. Starting ClamAV daemon: clamd . Restarting IMAP/POP3 mail server: dovecot. Restarting web server: apache2 ... waiting . Restarting ftp server: Running: /usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql.conf -l pam -A -Y 1 -u 1000 -D -8 UTF-8 -H -E -b -O clf:/var/log/pure-ftpd/transfer.log -B Update finished.
C’est fini.