Installer un webmail (Roundcube) sur Ubuntu Server
21 Nov 2009Un de mes précédents billets présentait l’installation d’un serveur de mails sur Ubuntu Server. Une fois installé, il était possible d’accéder à son courrier grâce à un client de messagerie.
Il peut-être pratique, en plus de cela, d’accéder à ses mails par un webmail de n’importe où (notamment au travail, où il ne sera pas filtré comme celui de gmail ou de yahoo, puisque c’est un webmail perso).
Je profite de la réinstallation à neuf de mon serveur pour présenter l’installation de Roundcube, un webmail assez moderne, à installer sur LAMP (avec accès HTTPS) sur Ubuntu Server.
Voici ce que ça donne une fois installé :
Je partirai du principe que le webmail est sur la même machine que le serveur
SMTP et que le répertoire ~/Maildir
(contenant les mails), et qu’il sera le
seul site hébergé en HTTPS sur le serveur.
Téléchargement
Tout d’abord, il faut télécharger l’archive sur le site de Roundcube (la version complète), et l’extraire dans un répertoire :
tar xzf roundcubemail-0.3.1.tar.gz
Il est plus pratique de le renommer :
mv roundcubemail-0.3.1 mail
Ensuite, il faut donner les droits au serveur d’écrire dans les répertoires
temp
et logs
:
sudo chmod -R 777 mail/temp mail/logs
Enfin, faire un lien du répertoire d’installation de Roundcube (par exemple
~/mail
) dans /var/www
.
sudo ln -s ~/mail/ /var/www
Préparation de la base de données
Il faut créer une base de données qui sera utilisée par Roundcube, avec son propre utilisateur. Pour cela, démarrer mysql en tant qu’administrateur (le login et le mot de passe choisi lors de la configuration de mysql) :
$ mysql -uroot -p
Enter password:
Ensuite, créer une base de données :
mysql> CREATE DATABASE mail;
Query OK, 1 row affected (0,00 sec)
Puis un utilisateur mysql (par exemple mailuser
/unmotdepasse
) :
mysql> GRANT ALL PRIVILEGES ON mail.* TO mailuser@localhost
-> IDENTIFIED BY 'unmotdepasse';
Query OK, 0 rows affected (0,00 sec)
Voilà, la base de données est prête à accueillir Roundcube.
Configuration d’Apache
Tout d’abord, il faut activer le mod ssl
d’apache :
sudo a2enmod ssl
Et renseigner le champ date.timezone
de php.ini
:
sudo vi /etc/php5/apache2/php.ini
Remplacer la ligne :
;date.timezone =
par :
date.timezone = 'Europe/Paris'
Ensuite, il faut créer un VirtualHost qui décrit à Apache le site qu’il doit héberger (le nom du site sur lequel il répond en http, quels répertoires doivent être accessibles, etc.).
Voici un modèle (qui correspond à mon VirtualHost), qui permet :
- d’afficher le site contenu dans
/var/www/mail
lorsqu’une requête arrive sur le port 443 (https
), c’est-à-dire quand je tapehttps://mail.rom1v.com
dans un navigateur ; - d’interdire l’accès aux répertoires
config
,temp
etlogs
; - de rediriger automatiquement
http://mail.rom1v.com
vershttps://mail.rom1v.com
.
Ce fichier, une fois adapté à votre serveur, est à écrire dans
/etc/apache2/sites-available/
(dans un fichier nommé comme votre site par
exemple, mail.rom1v.com
pour moi).
Il faut ensuite l’activer :
sudo a2ensite mail.rom1v.com
Et recharger Apache :
sudo /etc/init.d/apache2 reload
Configuration de Roundcube
Il ne reste plus qu’à aller sur http://votreserveur/installer
avec un
navigateur pour configurer Roundcube.
Bien sûr, lors de la première connexion, Firefox vous alerte car il ne connaît pas votre certificat SSL (qui est auto-signé), il suffit de lui indiquer que vous faites confiance à ce site (puisque c’est le vôtre) en ajoutant une exception.
L’étape 1 (Check environment) doit bien se passer (à part quelques modules optionnels que vous n’avez pas, ce n’est pas grave).
Pour l’étape 2 (Create config) :
- Choisir un
product_name
: le titre des pages souhaité ; - Activer
ip_check
; - Désactiver
enable_spellcheck
(sinon tous vos mails seront envoyés à Google) ; - Renseigner les données pour l’accès à la base de données (que nous avons créée tout à l’heure) ;
- Dans la partie IMAP, renseigner uniquement
default_host
à la valeurlocalhost
; - Laissez par défaut le reste de la partie IMAP et la partie SMTP (vu que les mails sont sur la même machine).
Lors de la validation, deux fichiers sont générés. Il faut les télécharger et
les placer dans le répertoire config/
(ce n’est pas très pratique
d’ailleurs, lorsqu’on accède au serveur par ssh, devoir télécharger les
fichiers localement pour les renvoyer au serveur est un peu tordu).
L’étape 3 (Test config) permet de tester que tout est OK. Il faut cliquer sur Initialize database.
Une fois ces étapes effectuées, rendez-vous sur l’adresse du webmail, vérifiez
que ça fonctionne (avec votre login système et votre mot de passe). Si tout est
ok, supprimez le répertoire installer/
:
rm -rf /var/www/mail/installer
Modifier les préférences
Une fois connecté, il est possible de changer les préférences utilisateur. Je vous laisse découvrir les options par vous-même, mais certaines sont importantes.
Tout d’abord, dans l’onglet identités, renseignez votre adresse mail (par
défaut c’est login@localhost
, ce qui posera des problèmes à ceux qui voudront
vous répondre).
Ensuite, activez les options qui concernent la suppression d’un message sur un compte IMAP dans Préférences du serveur de l’onglet Préférences :
- Mettre le drapeau de suppression au lieu de supprimer (sinon vous ne pourrez pas supprimer de messages) ;
- Ne pas montrer les messages supprimés (sinon vous les verrez encore en barré).
Conclusion
Bravo. Vous avez maintenant un serveur mail perso avec un accès webmail sur HTTPS en plus de votre accès IMAP/TLS. Vous gagnez 1 point de liberté et 1 point de confort.
Ne serait-il pas intéressant de faire une Autorité de Certification sur ton serveur qui pourrait créer des certificats pour le HTTPS, SMTPS, IMAPS, etc … ?
Ainsi, tu n’aurais qu’à importer le certificat de ta CA et tu n’aurais plus de problème de certificats non-reconnus.