LINUX:RoundCubeMail


retour au menu de concernant la messagerie


But

C'est un interface Web (WUI) permettant de consulter, d'envoyer et de gérer nos messages électroniques.

Nous nous placerons dans le contexte restreint de notre service de messagerie privée.


Architecture

Pour pouvoir utiliser cette application, il faut disposer de diverses pièces. Dans notre approche simple, tous ces composants seront concentrés dans la même machine mais il est parfaitement possible de les disperser sur diverses machines y compris celles se trouvant sur internet.

Voici le schéma adopté:



On y observe divers postes:

  • Au centre l'application RoundCubeMail
  • qui est une application gérée par le service Web Apache via les ports TCP 80 (HTTP) ou 443 (HTTPS).
  • Cette application a besoin d'un service de base de données MariaDB, compatible Mysql pour y stocker ses propres informations via le port TCP 3306.
  • Comme cette application a pour but de consulter les messages électroniques, elle doit avoir accès au PostOffice en utilisant le service Dovecot via les ports TCP 143 (IMAP) ou 993 (IMAPS).
  • Elle doit pouvoir envoyer des messages électroniques en utilisant le service Postfix via les ports TCP 25 (SMTP), 587 (submission) ou 465 (SMTPS).
  • L'application est accessible en utilisant tout explorateur Internet tel Firefox à partir de votre PC par exemple.

Notons que nous avons utilisé des services courants mais d'autres peuvent être utilisés.


Installation

Il faut installer le logiciel par la commande suivante:

dnf install roundcubemail


Configuration d'Apache

L'installation procure un fichier de configuration Tout fait "/etc/httpd/conf.d/roundcubemail.conf".

Il est nécessaire de modifier ce fichier sinon l'application ne sera accessible qu'à partir de la machine hébergeant le service Apache.

Le bloc suivant s'y retrouve à deux endroits pour notre version d'Apache de version 2.4:


   <IfModule mod_authz_core.c>
       # Apache 2.4
       Require local
   </IfModule>

La première occurrence concerne directement l'utilisation de l'application RoundCubeMail dans le bloc:


<Directory /usr/share/roundcubemail/>
 ...
</Directory>

La seconde est nécessaire lors de la phase d'installation. Ce bloc pourra être remis dans son état d'origine dès la configuration terminée pour une question évidente de sécurité. A l'extrême, ce répertoire pourra être éliminé.


<Directory /usr/share/roundcubemail/installer/>
 ...
</Directory>


On remplace ces directives par:


   <IfModule mod_authz_core.c>
       # Apache 2.4
       Require all denied
       Require local
       Require ip 192.168.1
   </IfModule>

qui ajoute une ligne pour donner accès aux machines de notre réseau local "192.168.1.0/24".


Si vous avez plusieurs versions de PHP actives sous Apache, n'oubliez pas de faire référence à la bonne version comme expliqué dans l'article Coexistence de plusieurs versions de PHP. RoundCubeMail supporte la version 8.1 de PHP.


Pour rendre actif cette configuration, il faut redémarrer le service Apache:

systemctl restart httpd.service


Configuration de MariaDB

Avant d'aborder la configuration de l'application RoundCubeMail, il faut créer l'utilisateur et le schéma dans la base de données MariaDB. Nous exposons une méthode sous forme de script mais on peut utiliser des interfaces Web pour le faire interactivement tels PHPMyAdmin ou Adminer.


Création du schéma

Pour créer le schéma dans la base de données Mysql, nous nous basons sur les informations suivantes:

  • Nom du schéma: dbroundcube
  • Mot de passe de l'utilisateur root (à adapter): ZZZZZZZZ

Ces paramètres peuvent être adaptés à votre guise.


Ensuite il nous faut 2 fichiers.

Le premier fichier que l'on nomme "schema.sql", sert à créer le schéma vide:


DROP SCHEMA IF EXISTS dbroundcube ;
CREATE SCHEMA dbroundcube ;


Le second fichier que l'on nomme "import.bat", va créer ce schéma:


#!/bin/bash
dbuser=root
dbpw=ZZZZZZZZ
mysql --user=$dbuser --password=$dbpw < schema.sql

Donnez les droits d'exécution au script Bash:

chmod 700 import.bat

et exécutez le:

./import.bat


Création de l'utilisateur

Pour créer de l'utilisateur MySql qui permettra à l'application RoundCubeMail, nous nous basons sur les informations suivantes:

  • Nom du schéma: dbroundcube
  • Nom d'utilisateur: userroundcube
  • Mot de passe de l'utilisateur userroundcube (à adapter): TTTTTTTT
  • Mot de passe de l'utilisateur root (à adapter): ZZZZZZZZ

Ces paramètres peuvent être adaptés à votre guise.

On ne donne accès à cet utilisateur à la base de données qu'à ce schéma dbroundcube à partir seulement de la machine hôte, locale.


Pour y arriver, on crée 4 fichiers.

Le premier fichier que l'on nomme "dropuser.sql", sert à effacer un utilisateur préexistant:


drop user 'userroundcube'@'localhost' ;
drop user 'userroundcube'@'127.0.0.1' ;
drop user 'userroundcube'@'::1' ;


Le second que l'on nomme "createuser.sql", permet de créer l'utilisateur:


create user 'userroundcube'@'localhost'      identified by 'TTTTTTTT' ;
create user 'userroundcube'@'127.0.0.1'      identified by 'TTTTTTTT' ;
create user 'userroundcube'@'::1'            identified by 'TTTTTTTT' ;


Le troisième que l'on nomme "grant.sql", va donner tous les droits sur ce schéma:


grant all privileges on dbroundcube.* to 'userroundcube'@'localhost';
grant all privileges on dbroundcube.* to 'userroundcube'@'127.0.0.1';
grant all privileges on dbroundcube.* to 'userroundcube'@'::1';


Enfin le dernier que l'on nomme "user.bat", va mettre en oeuvre cet ensemble:


#!/bin/bash 
dbuser=root
dbpw=ZZZZZZZZ
mysql --user=$dbuser --password=$dbpw  < dropuser.sql
mysql --user=$dbuser --password=$dbpw  < createuser.sql
mysql --user=$dbuser --password=$dbpw  < grant.sql

Donnez les droits d'exécution au script Bash:

chmod 700 user.bat

et exécutez le:

./user.bat


Configuration de RoundCubeMail par WUI

La configuration des paramètres de l'application RoundCubeMail peut se faire via l'interface Web. Il faut lancer lancer l'Url suivante: http://servermail.home.dom/roundcubemail/installer . Le nom de la machine est à adapter selon votre cas. Le nom repris correspond à celui que l'on trouve sur le schéma.


Vérification des dépendances

Le premier écran vérifie que tous les paquets dépendants sont bien installés. Si ce n'est pas le cas, résolvez ces cas.


 


Configuration des options

On clique ensuite sur le second onglet "Create config" ou sur le bouton "NEXT" situé en bas de l'écran.

L'écran , qui apparaît, permet de remplir la majorité des options importantes. Les plus importantes sont à déduire des configurations des services MariaDB, Postfix et Dovecot.


 


Sauvegarde de la configuration

En bas de cet écran, dès que les zones sont remplies, cliquez sue le bouton "UPDATE CONFIG". Apparaît alors le contenu du fichier de configuration. Ce contenu est à placer dans le nouveau fichier "/etc/roundcubemail/config.inc.php". Attention, ce fichier doit être accessible par l'utilisateur du service "httpd.service": "apache":

chown root:apache /etc/roundcubemail/config.inc.php
chmod 640 /etc/roundcubemail/config.inc.php

Dès que ce fichier est présent, tout nouvel accès à l'Url http://servermail.home.dom/roundcubemail/installer devient interdit par défaut si par mégarde, on abandonne l'écran. Ceci peut être évité si dans le fichier de configuration que l'on vient de créer, la ligne suivante est ajoutée:


$config['enable_installer'] = true;

En production, cette ligne doit être éliminée.


 


Initialisation du contenu du schéma

On clique ensuite sur le second onglet "Test config" ou sur le bouton "CONTINUE" situé plus bas dans l'écran.

On passe alors à l'étape finale. En premier lieu, on remarque que le shéma dans la base de données n'est pas initialisé. On appuie sur le bouton "Initialize database".


 


Test de messagerie

L'écran se rafraichit. Le schéma est maintenant actif.

La partie "Test SMTP config" permet de tester l'envoi de message et la partie "Test IMAP config" permet de tester l'accès à notre boîte à messages électroniques.


 


Mais à ce stade, vous rencontrerez divers problèmes. Nous allons affiner cette configuration brute.




retour au menu de concernant la messagerie