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
.
NameVirtualHost *:443
<VirtualHost *:80>
ServerName mail.rom1v.com
Redirect / https://mail.rom1v.com/
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /var/www/mail
ServerName mail.rom1v.com
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
<Directory /var/www/mail/>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
<Directory /var/www/mail/config>
Options -FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/mail/temp>
Options -FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/mail/logs>
Options -FollowSymLinks
AllowOverride None
Order allow,deny
Deny from all
</Directory>
ErrorLog /var/log/apache2/mail_error.log
CustomLog /var/log/apache2/mail_access.log combined
</VirtualHost>
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.
:) Je vais aussi commenter la partie certificat, mais d’un point de vue plus pratique : prend un certificat publique chez StartSSL.
Certificat gratuit pour 1 domaine.
J’ai d’ailleur un article à ce sujet qui traine son mon blog : http://simtris.free.fr/blog/?p=314
Pour continuer dans l’idée du commentaire précédent et atteindre le nirvana du chiffrement. Tu dois pouvoir coupler ça avec une authorité de certification.
Effectivement, avoir une autorité de certification pourrait être intéressant (plus pour apprendre à la mettre en place que pour l’utiliser d’ailleurs, car avoir une exception à rajouter dans firefox, ça ne coûte pas plus cher que de rajouter l’autorité de certification).
Je verrai peut-être ça un jour :-)
Et pour les plus paresseux il y a
apt-get install roundcube
…Tout à fait d’accord, c’est surtout pour apprendre à la mettre en place et/ou pour bien comprendre comment ça marche. Mais d’un autre coté, si tes certificats servent à quelqu’un d’autre qu’a toi, ils n’ont pas à se demander « ce certificat vient bien de chez ®om ? », ils sauront qu’il vient de chez toi puisqu’il auront le certificat de ta CA. Bon après, sinon c’est vrai que pour ce que ça apporte …
heu….alors tout ceci m’aide bcp hein car ayant moi aussi un serveur mail perso je m’intéresse vachement au sujet.
Donc moi j’ai zarafa en tant que serveur mail. L’avantage, c’est que ca permet de synchroniser mail, calendrier et taches avec un mobile !
Mais vu que j’aime bien tester un peu d’autre solution, j’aimerais savoir, avec ta solution, faut utiliser funambol non ? (le serveur funambol) et ca synchroniserait alors que les mails, et pas les taches et pas le calendrier ?
Honnêtement, je n’en ai aucune idée. Je ne synchronise pas de tâches ni de calendrier. C’est possible d’ailleurs avec evolution de se synchroniser sur un calendrier (auto-hébergé) ?
Intéressant, moi qui cherchait à faire ceci. Cependant, j’ai un souci au test de la configuration de Roundcube. Pas moyen de se connecter avec le protocole IMAP. L’envoi de mail marche mais le login sur le webmail ne fonctionne pas à cause de ça. J’ai bien mis ‘localhost’ en tant que ‘default_host’ et le port IMAP est ouvert au niveau de ma configuration du firewall. Une idée ?
Bonjour ou bonsoir à toi!
Ce simple commentaire pour te remercier pour toutes ces informations/tuto que tu nous offres gracieusement. Tu prends du temps, et c’est tout à ton honneur, car peu de gens sont visiblement capable d’en faire autant dans le monde où nous vivons aujourd’hui…
Enfin bref, merci pour ce que tu apportes aux lecteurs de passage ici, et bonne continuation à toi ! (-;
[…] La configuration de postfix présentée dans mon premier billet limitait (dans un but de sécurité) l’envoi d’un mail à une personne distante qu’à partir du réseau local (ou une liste de réseaux prédéfinis). Cela est parfait lorsqu’on envoie toujours les mails de chez soi, avec au besoin la possibilité d’envoyer un mail de n’importe où grâce au webmail. […]
J’aime beaucoup tes articles Rom :)
Concernant Roundcube, est-ce lui qui conserve les mails que tu envoies (pas ceux que tu reçois qui sont je pense dans le Maildir de ton user, grâce à dovecot) ?
Si oui, tu sais où ils sonts ? En base ? Si je me connecte d’une autre façon à mon mail, je ne vois pas ce que j’ai envoyé je suppose :S
Existe-t-il une façon de les stocker à la manière de ce que permet IMAP pour les messages reçus ou est-ce que je rêve ?
J’espère que tu auras des éléments de réponse sur tout ça ;) Bravo encore pour tes sujets.
Les mails envoyés (et les brouillons) sont des dossiers “comme les autres” dans Maildir (
.Sent
et.Drafts
par exemple), et dans chacun des clients, tu les spécifies dans les préférences.Ainsi, quand tu envoies un message, que ça soit à partir du webmail, du client lourd ou du téléphone portable, tu y a accès de n’importe où, vu que ces dossiers sont sur le serveur.
Sinon effectivement ça serait un peu galère pour récupérer ses éléments envoyés.
Je ne trouvais pas ces répertoires, je savais pourtant qu’ils devaient commencer par un point et donc être cachés : je suis distrait :)
En tout cas, je comprends mieux grâce à toi. Roundcube permet donc l’équivalent d’un maildirmake, j’adore.
Ta série d’article sur la question est très sympa, j’ai bientôt finit de copier/coller sur mon serveur !
A bientôt.
[…] l’auto-hébergement des mails : Hébergez vos mails sur Ubuntu Server (et libérez-vous) Installer un webmail (RoundCube) sur Ubuntu Server Ajouter l’authentification SMTP sur un serveur mail Trier ses mails directement sur le serveur […]
[…] minimum vital, mais vous pouvez trouver des fonctionnalités à mettre en place (un webmail tel que RoundCube, un anti-spam, le tri des mails sur le serveur, une authentification […]
Bonjour,
Merci pour ce tuto très clair et concis.
J’ai malgré tout une petite question. Pourquoi, lorsque je supprime un message via roundcube, celui-ci n’est pas effacé du dossier
~/Maildir/cur
?Parce que par défaut, lors d’une suppression dans un dossier IMAP, Roundcube (comme beaucoup de clients) marque le mail comme supprimé, mais ne le supprime pas (ça permet de le récupérer).
Pour changer ce comportement, dans Préférences > Préférences du serveur, tu peux décocher la case “Mettre le drapeau de suppression au lieu de supprimer”.
Pour nettoyer (supprimer les mails “marqués comme supprimés”), je le fais à partir d’evolution : Dossiers > Nettoyer (Ctrl+E).
Ok merci vraiment pour ton tuto qui me permet de réaliser un travail tres exigens.
Mais j’ai un probleme je n’arrive pas a me connecter sur webmail a partir du navigateur c-a-d que je n’arrive pas a m’authentifier c’est vrailent embarrassant pour moi.
Si tu peux m’aider a surmonter cet obstacle.
[…] voici deux : - Zimbra (oui, le nouveau webmail de Free !) propriétaire (VMWare) - RoundCube, dont un tuto sur Rom’s […]
[…] Partie webmail roundcube : Installer un webmail (RoundCube) sur Ubuntu Server […]
[…] vital, mais vous pouvez trouver des fonctionnalités à mettre en place (un webmail tel que RoundCube, un anti-spam, le tri des mails sur le serveur, une authentification […]
Je n’arrive pas à me connecter sur mon roundcube
http://Monip/webmail fonctionne bien, on me demande un login et mot de passe
Je remplis
En haut au milieu je vois le message “Chargement…” pendant quelques secondes, ensuite “Erreur d’authentification”
Dans mon var/www/webmail/logs/errors j’ai ceci :
Merci de votre aide :)
Clikti
[…] RoundCube, dont un tuto sur Rom’s […]
Ca marche nickel sur Ubuntu 12.04 LTS.
Merci pour le walkthrough
Les commentaires sont fermés.