GNU/Linux >> Tutoriels Linux >  >> Linux

Comment gérer les boîtes aux lettres avec RoundCube sur CentOS 7

Roundcube est l'une des solutions open source les plus connues pour gérer un service de messagerie fiable et personnalisable via un service Web.

Dans ce tutoriel, vous trouverez toutes les informations pour installer et gérer un service de messagerie Web avec Roundcube sur CentOS 7. Comme il est basé sur PHP, Roundcube nécessite l'installation d'un serveur Web tel que NGINX ou Apache et s'appuie sur une base de données de type MySQL telle que MariaDB.

Tout d'abord, connectez-vous à votre serveur via une connexion SSH. Si vous ne l'avez pas encore fait, en suivant notre guide, il est recommandé de vous connecter en toute sécurité avec SSH. Dans le cas d'un serveur local, passez à l'étape suivante et ouvrez le terminal de votre serveur.

Installation de NGINX et PHP

Poursuivez en installant une instance de NGINX prenant en charge PHP et MySQL :

$ sudo yum install nginx php php-fpm php-mcrypt php-cli php-gd php-curl php-xml php-mysql php-mbstring php-pspell php-imagick 

À la fin de l'installation de tous les packages, démarrez NGINX et activez son démarrage automatique sur le système :

$ sudo systemctl start nginx$ sudo systemctl enable nginx

L'utilisation de Roundcube nécessite la variation de deux paramètres au sein du fichier de configuration PHP présent dans /etc/php.ini :

# Impostazione della nostra timezone

date.timezone = "Europe/Rome"
cgi.fix_pathinfo=0

Enregistrer le fichier que vous venez de modifier, démarrer et activer le service PHP-FPM :

$ sudo systemctl start php-fpm$ sudo systemctl enable php-fpm 

Installation de MariaDB

Pour fonctionner correctement, Roundcube a besoin de la base de données MariaDB, qui peut être installée avec la commande suivante :

$ sudo yum install mariadb-server

Une fois l'installation terminée, démarrez le service :

$ sudo systemctl start mariadb

$ sudo systemctl enable mariadb

Procédez à la sécurité de MariaDB en exécutant un script inclus dans MariaDB pour augmenter la sécurité et limiter l'accès à vos bases de données :

Démarrez le script utilitaire fourni par MariaDb "mysql_secure_installation" et répondez à toutes les questions :

$ sudo mysql_secure_installation

Tout d'abord, il vous sera demandé si vous souhaitez activer le système de validation de mot de passe. Si vous activez ce système, lorsque vous définissez un mot de passe pour un utilisateur, il sera évalué. Si le mot de passe ne respecte pas les exigences minimales de sécurité, il est rejeté avec un message d'erreur.

Ensuite, il vous sera demandé si vous souhaitez changer le mot de passe root en un de vos préférences. Si vous activez le système de validation du mot de passe, vous devrez entrer un mot de passe qui respecte les critères de sécurité.

Il est recommandé de suivre certaines bonnes pratiques pour créer un mot de passe sécurisé. Cela inclut :

  • L'utilisation des majuscules et des minuscules

  • L'utilisation de lettres et de chiffres

  • L'utilisation de caractères non alphanumériques comme @ # $% ˆ & !

  • L'utilisation de mots de passe autres que ceux utilisés précédemment

Enfin, choisissez de supprimer les utilisateurs anonymes, de tester les bases de données et de désactiver la connexion à distance avec l'utilisateur root. Pour un niveau de sécurité adéquat, il est recommandé de confirmer tous ces changements.

A ce stade, confirmez la mise à jour du tableau affiché pour appliquer les nouveaux critères de sécurité.

Enter current password for root (enter for none):

OK, successfully used password, moving on...
                Setting the root password ensures that nobody can log into MariaDB

root user without the proper authorisation.
                Set root password? [Y/n] Y

New password:

Re-enter new password:

Password updated successfully!

Reloading privilege tables..

 ... Success!
                Remove anonymous users? [Y/n] Y

 ... Success!
                Normally, root should only be allowed to connect from 'localhost'.  This

ensures that someone cannot guess at the root password from the network.
                Disallow root login remotely? [Y/n] Y

 ... Success!
                Remove test database and access to it? [Y/n] Y

 - Dropping test database...

 ... Success!

 - Removing privileges on test database...

 ... Success!
                Reload privilege tables now? [Y/n] Y

 ... Success!
                Cleaning up...
                All done!  If you've completed all of the above steps, your MariaDB

installation should now be secure.
                Thanks for using MariaDB!

Après avoir redémarré le service, une base de données pour Roundcube et un nouvel utilisateur pour celle-ci (en changeant le mot de passe) peuvent être créés :

$ mysql -u root -p

MariaDB [(none)]> CREATE DATABASE roundcubemail /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;

MariaDB [(none)]> CREATE USER 'roundcube'@'localhost' IDENTIFIED BY 'mf0c3mhx';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON roundcubemail.* TO 'roundcube'@'localhost';

MariaDB [(none)]> FLUSH PRIVILEGES;

MariaDB [(none)]> exit

Installation du cube rond

Pour télécharger la dernière version de Roundcube, vous aurez besoin de wget. S'il n'est pas installé sur votre système, faites-le avec la commande suivante :

$ sudo yum install wget

Sinon, continuez en téléchargeant et en extrayant le package depuis github :

$ wget -c https://github.com/roundcube/roundcubemail/releases/download/1.3.7/roundcubemail-1.3.7-complete.tar.gz

$ tar xzf roundcubemail-1.3.7-complete.tar.gz

Ensuite, déplacez tout dans le répertoire NGINX :

$ sudo mv roundcubemail-1.3.7 /var/www/html/roundcubemail

$ sudo cd /var/www/html/roundcubemail/

Le package Roundcube contient un fichier sql qui doit être importé dans la base de données nouvellement créée avec la structure requise :

$ mysql -u root -p roundcubemail < SQL/mysql.initial.sql

Pendant le processus d'importation, il vous sera demandé le mot de passe root de la base de données saisi lors de l'installation de MariaDB.

Une fois la configuration de la base de données terminée, "préparez le serveur virtuel NGINX pour le domaine mail.domain.com. Tout d'abord, assurez-vous que le propriétaire du dossier html est NGINX :

$ sudo chown -R nginx:nginx /var/www/html/roundcubemail

Créez et modifiez maintenant le fichier d'hôte virtuel/etc/nginx/conf.d/mail.example.com.conf comme suit :

server {

        listen 80;

        server_name mail.domain.com;
                 

        root /var/www/html/roundcubemail;

        index  index.php index.html;
                 

        #i# Logging

        access_log /var/log/nginx/mail.domain.com_access_log;

        error_log   /var/log/nginx/mail.domain.com_error_log;
                 

        location / {

                try_files $uri $uri/ /index.php?q=$uri&$args;

        }
                 

        location ~ ^/(README.md|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {

                deny all;

        }
                 

        location ~ ^/(config|temp|logs)/ {

                deny all;

        }
                 

        location ~ /\. {

                deny all;

                access_log off;

                log_not_found off;

        }
                 

        location ~ \.php$ {

                include /etc/nginx/fastcgi_params;

                #fastcgi_pass 127.0.0.1:9000;

                fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;

                fastcgi_index index.php;

                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        }

}

Avant d'enregistrer toutes les modifications, n'oubliez pas de remplacer le domaine "domain.com" par votre domaine.

En cas d'erreurs de permissions, modifiez la configuration PHP-FPM présente dans /etc/php-fpm.d/www.conf en changeant ces paramètres :

user = nginx

group = nginx

listen = /var/run/php-fpm/php-fpm.sock

listen.owner = nginx

listen.group = nginx

listen.mode = 0660

Assurez-vous également que le propriétaire du répertoire "session" PHP est bien NGINX :

$ sudo chown -R nginx:nginx /var/lib/php/session/

À ce stade, Roundcube est prêt à être configuré à partir de l'interface Web.

Configuration de Roundcube via l'interface Web

Pour continuer l'installation, via un navigateur web allez sur :http://mail.domain.com/installer/

Dans cette première phase, le programme d'installation de Roundcube affiche un résumé des exigences pour faire fonctionner correctement le système. Cliquez sur le bouton "SUIVANT" pour continuer.

Dans cette deuxième phase, une série de paramètres de fonctionnement doivent être saisis. Laissez tout inchangé sauf le product_name où o entrez votre nom de domaine ou un surnom de votre choix.

Changer les données d'accès au serveur sql avec celles renseignées lors de la phase d'installation est important. Une fois terminé, cliquez sur "SUIVANT" pour continuer.

Une fois la deuxième phase terminée, testez les paramètres IMAP/SMTP de votre serveur pour vérifier que Roundcube est capable d'envoyer/recevoir des mails.

Une fois terminé, supprimez tous les fichiers nécessaires à l'installation présents dans le dossier /var/www/html/roundcubemail/installer en lançant la commande :

$ sudo rm -rf /var/www/html/roundcubemail/installer

Si vous souhaitez modifier ou changer les paramètres saisis lors de la phase de configuration, la modification du fichier dans le répertoire /var/www/html/roundcubemail/config/config.inc.php est toujours possible.

Accéder à la messagerie Web

Notre instance Roudcube est prête à être utilisée à l'URL http://mail.domain.com/ . Ensuite, connectez-vous en utilisant les informations de connexion d'une boîte aux lettres configurée avec Dovecot.


Linux
  1. Comment gérer le mot de passe du compte sous Linux

  2. Comment installer Roundcube Webmail sur CentOS 8

  3. Comment remplacer MySQL par MariaDB sur CentOS 6

  4. Comment installer MySQL sur CentOS 7.x ?

  5. Comment vérifier le mot de passe avec Linux?

Comment installer l'outil dotProject dans CentOS 7

Comment configurer MariaDB Galera Cluster avec HAproxy sur CentOS 7

Comment gérer les packages sur CentOS avec YUM

Comment gérer les mots de passe Linux avec la commande pass

Comment configurer la réplication MariaDB Master-Slave sur CentOS 7

Comment gérer les bases de données dans MariaDB sur Ubuntu 18.04