LAB02 : part 03 : RHEL7 : BACKEND01 : installation et configuration

De Pegasus45

Ce serveur aura :

  • autant d'instances Postfix que de serveurs d'application,
  • une instance Postfix dédiée à l'échange avec Dovecot,
  • Dovecot pour un accès en IMAP,
  • une base de données MariaDB pour le stockage des comptes de messagerie
  • ainsi que RoundCube pour un accès Webmail.

Le serveur est sous RHEL 7 (dernière version disponible, cad. 7.2 à la date d'écriture de ce chapitre), 64bits.


Préparation

IPv6 étant désactivé, Postfix n'arrive pas à démarrer. On va modifier la configuration par défaut de Postfix :

Command
cd /etc/postfix
cp main.cf main.cf_ori

Configuration File vi main.cf
#soft_bounce = no
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
inet_interfaces = localhost
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost
unknown_local_recipient_reject_code = 550
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
debug_peer_level = 2
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.10.1/samples
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES

On peut relancer Postfix

Command
systemctl restart postfix

On peut voir que Postfix est bien démarré :

Command
systemctl status postfix

● postfix.service - Postfix Mail Transport Agent
   Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2016-02-23 11:08:26 CET; 4s ago
  Process: 31065 ExecStop=/usr/sbin/postfix stop (code=exited, status=1/FAILURE)
  Process: 31533 ExecStart=/usr/sbin/postfix start (code=exited, status=0/SUCCESS)
  Process: 31531 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited, status=0/SUCCESS)
  Process: 31528 ExecStartPre=/usr/libexec/postfix/aliasesdb (code=exited, status=0/SUCCESS)
 Main PID: 31607 (master)
   CGroup: /system.slice/postfix.service
           ├─31607 /usr/libexec/postfix/master -w
           ├─31608 pickup -l -t unix -u
           ├─31609 qmgr -l -t unix -u
           ├─31676 /usr/libexec/postfix/master -w
           ├─31677 pickup -l -t unix -u
           └─31678 qmgr -l -t unix -u


Préparation de LVM

Chaque domaine de messagerie aura un espace disque dédié, géré par LVM. Un disque dur supplémentaire (SAN) doit être présent, qu'on suppose être /dev/sdc. On va créer un nouveau VG (Volume Group) et intégrer ce disque dans ce nouveau VG. On commence par créer une nouvelle partition sur la totalité du disque dur :

Command
fdisk /dev/sdc
Appuyer sur n pour créer une nouvelle partition
Appuyer sur p pour choisir le type « partition primaire »
Appuyer sur 1 pour choisir le numéro de partition
Appuyer sur <Entrée> pour indiquer le « premier cylindre »
Appuyer sur <Entrée> pour accepter la valeur indiquée pour le dernier cylindre
Appuyer sur t qui va permettre de modifier le type de partition
Saisir 8E pour le code Hexa correspondant à « Linux LVM »
Appuyer sur w pour sauvegarder et quitter l'outil

On ajoute cette nouvelle partition dans le système LVM :

Command
pvcreate /dev/sdc1

  Physical volume "/dev/sdc1" successfully created

On crée un nouveau VG qu'on va nommer vg_mail :

Command
vgcreate vg_mail /dev/sdc1

  Volume group "vg_mail" successfully created


Installation de MariaDB

Les comptes de messagerie ainsi que les données de RoundCube seront stockés dans des bases de données MariaDB. On va donc installer le serveur MariaDB :

Command
yum install mariadb-server


On le démarre et on exécute l'outil de configuration de base pour le sécuriser :

Command
systemctl start mariadb
systemctl enable mariadb

mysql_secure_installation

Enter current password for root (enter for none):
Set root password? [Y/n] Y
New password:           
Re-enter new password:           
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y


Création d'une base de données pour la messagerie

On va maintenant créer une base de données pour le stockage des comptes de messagerie. Pour cela, on se connecte à MariaDB et on exécute les 5 commandes SQL :

Command
mysql -u root -p

CREATE DATABASE mailserver;

GRANT SELECT,INSERT,UPDATE,DELETE ON mailserver.* TO 'mailuser'@'127.0.0.1' IDENTIFIED BY 'ChangeMe';

USE mailserver;

CREATE TABLE IF NOT EXISTS `virtual_domains` (
 `id` int(11) NOT NULL auto_increment,
 `name` varchar(50) NOT NULL,
 PRIMARY KEY (`id`)
 ) ENGINE=myISAM DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `virtual_users` (
 `id` int(11) NOT NULL auto_increment,
 `domain_id` int(11) NOT NULL,
 `email` varchar(100) NOT NULL,
 `password` varchar(150) NOT NULL,
 PRIMARY KEY (`id`),
 UNIQUE KEY `email` (`email`),
 FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
 ) ENGINE=myISAM DEFAULT CHARSET=utf8;

exit

Remarque : Pensez à mettre un mot de passe plus compliqué pour le compte mailuser.


Activation du mode PostMulti

On va créer une instance dédiée pour la réception de tous les mails transformés. Ces mails seront transmis à Dovecot pour le stockage. Ces mails transformés viendront d'autant d'instances Postfix que de serveurs d'application. Il faudra donc créer autant d'instances sur ce même serveur. Chacune recevra les mails venant du serveur qp-ari-relay01. On va commencer par activer le mode PostMulti :

Command
postmulti -e init

Les lignes suivantes devront être présentes dans la configuration de Postfix :

Command
cat /etc/postfix/main.cf

[...]
multi_instance_wrapper = ${command_directory}/postmulti -p --
multi_instance_enable = yes


Création d'une instance Postfix-Dovecot

On va créer une instance dédiée pour les échanges Postfix-Dovecot :

Command
postmulti -I postfix-dovecot -e create

Une erreur apparaît car il a créé une nouvelle instance par défaut qui cherche toujours à utiliser IPv6. On va la corriger un peu plus tard.

Les répertoires suivants ont été automatiquement créés :

Command
ll -d /etc/postfix-dovecot
ll -d /var/spool/postfix-dovecot
ll -d /var/lib/postfix-dovecot

A cause de l'erreur précédente, le propriétaire du dernier répertoire n'est pas correcte. On va le corriger :

Command
chown postfix.root /var/lib/postfix-dovecot


Configuration de l'instance Postfix-Dovecot

Il est temps de la configurer. En supprimant toutes les lignes en commentaire, le fichier devrait ressembler à ceci :

Command
cd /etc/postfix-dovecot
cp main.cf main.cf_ori

Configuration File vi /etc/postfix-dovecot/main.cf
#soft_bounce = no
queue_directory = /var/spool/postfix-dovecot
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix-dovecot
mail_owner = postfix
inet_interfaces = localhost
inet_protocols = ipv4
mydestination =
unknown_local_recipient_reject_code = 550
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
debug_peer_level = 2
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.10.1/samples
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
enable_long_queue_ids = yes

smtpd_banner = ESMTP Postfix-Dovecot
virtual_mailbox_domains = mysql:/etc/postfix-dovecot/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps    = mysql:/etc/postfix-dovecot/mysql-virtual-mailbox-maps.cf

master_service_disable =
authorized_submit_users =
multi_instance_name = postfix-dovecot

Remarque: Cette instance devra écouter sur un port accessible uniquement localement (inet_interfaces = localhost).

On crée les 2 fichiers mysql-virtual-mailbox-*.cf :

Configuration File vi /etc/postfix-dovecot/mysql-virtual-mailbox-domains.cf
user = mailuser
password = ChangeMe
hosts = 127.0.0.1
dbname = mailserver
query = SELECT 1 FROM virtual_domains WHERE name='%s'

Configuration File vi /etc/postfix-dovecot/mysql-virtual-mailbox-maps.cf
user = mailuser
password = ChangeMe
hosts = 127.0.0.1
dbname = mailserver
query = SELECT 1 FROM virtual_users WHERE email='%s'

Remarque : Pensez à mettre le même mot de passe que vous avez défini lors de la création du compte mailuser.

On modifie les droits sur ces fichiers :

Command
chgrp postfix /etc/postfix-dovecot/mysql-*.cf
chmod u=rw,g=r,o= /etc/postfix-dovecot/mysql-*.cf

Cette instance écoutera sur le port 25000 :

Command
cp /etc/postfix-dovecot/master.cf /etc/postfix-dovecot/master.cf_ori

Configuration File vi /etc/postfix-dovecot/master.cf
25000      inet  n       -       n       -       -       smtpd
#smtp      inet  n       -       n       -       -       smtpd

On peut maintenant activer cette instance :

Command
postmulti -i postfix-dovecot -e enable

Après activation, la ligne suivante a été modifiée comme ceci :

Command
cat /etc/postfix-dovecot/main.cf

[...]
multi_instance_enable = yes

De même, on peut le voir avec la commande suivante :

Command
postmulti -l

-                   -               y         /etc/postfix
postfix-dovecot     -               y         /etc/postfix-dovecot

On peut maintenant relancer Postfix :

Command
systemctl restart postfix

On doit voir que la nouvelle instance écoute sur le port 25000 et uniquement localement :

Command
ss -lnt

LISTEN      0      100   127.0.0.1:25000         *:*
LISTEN      0      100   127.0.0.1:25            *:*


Installation et configuration de Dovecot

On installe maintenant Dovecot et on l'active au démarrage :

Command
yum install dovecot dovecot-mysql
systemctl enable dovecot

Dovecot va être exécuter sous le compte vmail. Nous allons donc le créer :

Command
groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /srv/vmail -m
chown -R vmail.vmail /srv/vmail

Et on modifie les 8 fichiers suivants comme indiqué ci-dessous :

Command
cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf_ori

Configuration File vi /etc/dovecot/dovecot.conf
protocols = imap

Configuration File vi /etc/dovecot/conf.d/10-auth.conf
auth_mechanisms = plain login

#!include auth-system.conf.ext
!include auth-sql.conf.ext

Configuration File vi /etc/dovecot/conf.d/auth-sql.conf.ext
passdb {
  driver = sql

  # Path for SQL configuration file, see example-config/dovecot-sql.conf.ext
  args = /etc/dovecot/dovecot-sql.conf.ext
}

#userdb {
#  driver = sql
#  args = /etc/dovecot/dovecot-sql.conf.ext
#}
userdb {
  driver = static
  args = uid=vmail gid=vmail home=/srv/vmail/%d/%n
}

Configuration File vi /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:/srv/vmail/%d/%n/Maildir:LAYOUT=fs
mail_uid = 5000
mail_gid = 5000

Configuration File vi /etc/dovecot/conf.d/10-master.conf
service auth {
  unix_listener auth-userdb {
    mode = 0666
    user = vmail
    #group =
  }
  
  # Postfix smtp-auth
  unix_listener /var/spool/postfix-dovecot/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }
}

Configuration File vi /etc/dovecot/conf.d/10-ssl.conf
ssl = yes
ssl_cert = </etc/dovecot/cert_mailserver.pem
ssl_key = </etc/dovecot/key_mailserver.pem

Si on n'utilise pas de certificat officiel, on générera une paire de certificats auto-signés :

Command
openssl req -new -x509 -days 3650 -nodes -newkey rsa:2048 -out /etc/dovecot/cert_mailserver.pem -keyout /etc/dovecot/key_mailserver.pem

Configuration File vi /etc/dovecot/conf.d/15-lda.conf
postmaster_address = root_hn@perso.lan

Configuration File vi /etc/dovecot/dovecot-sql.conf.ext
driver = mysql
connect = host=127.0.0.1 dbname=mailserver user=mailuser password=ChangeMe
default_pass_scheme = MD5
password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';

Remarque : mettre le même mot de passe que lors de la création du compte mailuser

Configuration File vi /etc/dovecot/conf.d/10-logging.conf
log_path = /var/log/dovecot/dovecot.log
info_log_path = /var/log/dovecot/dovecot-info.log
debug_log_path = /var/log/dovecot/dovecot-debug.log

Et on n'oublie pas de créer le répertoire :

Command
mkdir /var/log/dovecot

On modifie les droits sur ces fichiers et on relance Dovecot :

Command
chown root:root /etc/dovecot/dovecot-sql.conf.ext
chmod go= /etc/dovecot/dovecot-sql.conf.ext
systemctl restart dovecot

Maintenant, on doit indiquer à Postfix d'envoyer les mails reçus à Dovecot :

Configuration File vi /etc/postfix-dovecot/main.cf
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1

Configuration File vi /etc/postfix-dovecot/master.cf
dovecot   unix  -       n       n       -       -       pipe
    flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -d ${recipient}

25000      inet  n       -       n       -       -       smtpd
#smtp      inet  n       -       n       -       -       smtpd

On relance Postfix :

Command
systemctl restart postfix

Il reste à configurer la rotation des logs Dovecot en créant ce nouveau fichier :

Configuration File vi /etc/logrotate.d/dovecot
/var/log/dovecot/*.log {
    daily
    rotate 65
    missingok
    notifempty
    sharedscripts
    delaycompress
    postrotate
        systemctl restart dovecot
    endscript
}


Installation du modèle de script Python

On installe le script suivant qui servira de modèle. Pour chaque instance Postfix qui sera créée pour chaque serveur d'application, il faudra dupliquer ce modèle.

Command
mkdir -p /appli/dispatch-smtp
chmod 755 /appli
chmod 750 /appli/dispatch-smtp
chown vmail.postfix /appli/dispatch-smtp

Configuration File vi /appli/dispatch-smtp/traitement.py
#!/usr/bin/python
# -*- coding: utf-8 -*-

import MySQLdb as mdb
import sys
import smtplib

##########################
# A MODIFIER POUR CHAQUE #
# SERVEUR D'APPLICATION  #
##########################
domaineID = X
domaineNom = "domaine-XXXX.lan"
passwdBAL = "XXXXXXX"


##############################
# NE PAS MODIFIER CI-DESSOUS #
##############################
mailRecipient=sys.argv[1]
mailSender=sys.argv[2]
serveurSMTP = '127.0.0.1'
serveurPORT = 25000
serveurSQL = '127.0.0.1'
userSQL = "mailuser"
passwdSQL = "ChangeMe"
dbSQL = "mailserver"


def sendMail(message):
   mailserver = smtplib.SMTP(serveurSMTP, serveurPORT)
   mailserver.ehlo()
   destination = "%s@%s" % (mailRecipient,domaineNom)
   mailserver.sendmail(mailSender, destination, message)
   mailserver.quit()

try:
   con = mdb.connect(serveurSQL, userSQL, passwdSQL, dbSQL) 
   cur = con.cursor()

   sqlSelect = "SELECT 1 FROM virtual_users WHERE email='%s@%s'" % (mailRecipient,domaineNom)
   cur.execute(sqlSelect)
   row = cur.fetchone()
   if not row:
      sqlInsert = "INSERT INTO virtual_users (domain_id, email, password) VALUES (%d, '%s@%s', MD5('%s'))" % (domaineID,mailRecipient,domaineNom,passwdBAL)
      cur.execute(sqlInsert)
      con.commit()
except mdb.Error, e:
   print "MySQL Error: %s" % str(e)
   sys.exit(1)

data = sys.stdin.readlines()
message = ""
for line in data:
   message += line
sendMail(message)

Remarque : mettre le même mot de passe que lors de la création du compte mailuser

On le rend exécutable :

Command
chmod 755 /appli/dispatch-smtp/traitement.py

Important : il faut installer la dépendance suivante pour que le script puisse fonctionner :

Command
yum install MySQL-python


Installations de RoundCube

Installation du dépôt FEDORA EPEL

Le paquet RoundCube se trouve sur le dépôt « Fedora EPEL ». Pour accéder à ce dépôt, il faut installer le paquet suivant :

Command
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

Installation de Apache et RoundCube

On installe maintenant Apache et la gestion SSL ainsi que RoundCube :

Command
yum install httpd mod_ssl php-mysql roundcubemail
systemctl enable httpd


Configuration de Apache

L'accès à RoundCube se fera en HTTPS.

Si on n'utilise pas un certificat officiel, on peut générer une paire de certificats auto-signés :

Command
mkdir /etc/httpd/certs

openssl req -new -x509 -days 3650 -nodes -newkey rsa:2048 -out /etc/httpd/certs/cert_roundcube.pem -keyout /etc/httpd/certs/key_roundcube.pem

chmod 400 /etc/httpd/certs/*

On configure maintenant la partie SSL :

Command
mv /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf_ori

Configuration File vi /etc/httpd/conf.d/ssl.conf
Listen 443 https
SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog
SSLSessionCache         shmcb:/run/httpd/sslcache(512000)
SSLSessionCacheTimeout  300
SSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin

<VirtualHost _default_:443>
        ServerName qp-ari-backend01.ariel.hp.in.phm.education.gouv.fr:443

        ErrorLog logs/ssl_error_log
        TransferLog logs/ssl_access_log
        LogLevel warn

        SSLEngine on
        SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
        SSLCipherSuite  ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
        SSLHonorCipherOrder     on
        SSLCompression          off

        # HSTS (mod_headers is required) (15768000 seconds = 6 months)
        Header always set Strict-Transport-Security "max-age=15768000"

        SSLCertificateFile      /etc/httpd/certs/cert_roundcube.pem
        SSLCertificateKeyFile   /etc/httpd/certs/key_roundcube.pem

        <Files ~ "\.(cgi|shtml|phtml|php3?)$">
            SSLOptions +StdEnvVars
        </Files>
        <Directory "/var/www/cgi-bin">
            SSLOptions +StdEnvVars
        </Directory>

        CustomLog logs/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

        RewriteEngine  on
        RewriteRule    "^/$" "/roundcubemail/" [R]
</VirtualHost>


On désactive le port 80, on affecte un nom à ServerName, on désactive l'affichage de certains informations sur les pages d'erreurs (version Apache, version OS, nom vhost) :

Configuration File vi /etc/httpd/conf/httpd.conf
(à ajouter)
ServerTokens Prod
ServerSignature Off

(à modifier)
#Listen 80
ServerName <fqdn_serveur>

Avant de pouvoir utiliser RoundCube, il faut le configurer. Mais pour cela, il faut autoriser l'accès au module « Installer » depuis n'importe quelle IP (vu qu'on va s'y connecter à distance depuis notre poste), uniquement pendant le temps de la configuration :

Configuration File vi /etc/httpd/conf.d/roundcubemail.conf
#
# Round Cube Webmail is a browser-based multilingual IMAP client
#

Alias /roundcubemail /usr/share/roundcubemail

# Define who can access the Webmail
# You can enlarge permissions once configured

<Directory /usr/share/roundcubemail/>
    <IfModule mod_authz_core.c>
        # Apache 2.4
        Require local
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        # Apache 2.2
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
        Allow from ::1
    </IfModule>
</Directory>

# Define who can access the installer
# keep this secured once configured

<Directory /usr/share/roundcubemail/installer/>
    <IfModule mod_authz_core.c>
        # Apache 2.4
        Require local
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        # Apache 2.2
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
        Allow from ::1
    </IfModule>
</Directory>

# Those directories should not be viewed by Web clients.
<Directory /usr/share/roundcubemail/bin/>
    Order Allow,Deny
    Deny from all
</Directory>
<Directory /usr/share/roundcubemail/plugins/enigma/home/>
    Order Allow,Deny
    Deny from all
</Directory>


Il faut aussi définir un timezone à PHP :

Configuration File vi /etc/php.ini
date.timezone = Europe/Paris

Maintenant, on peut relancer Apache :

Command
systemctl restart httpd


Création d'une base de données pour RoundCube

RoundCube a besoin d'une base de données pour fonctionner. On va donc créer une base de données ainsi qu'un compte de connexion :

Command
mysql -u root -p

CREATE DATABASE roundcubemail;

GRANT ALL PRIVILEGES ON roundcubemail.* TO 'roundcube'@'127.0.0.1' IDENTIFIED BY 'ChangeMe2';

Remarque : mettre un mot de passe compliqué pour ce compte.


Configuration de RoundCube

Maintenant, on peut se connecter au module de configuration de RoundCube : https://qp-ari-backend01.ariel.hp.in.phm.education.gouv.fr/roundcubemail/installer/

Sur le premier écran, il faut vérifier que : MySQL: OK date.timezone: OK On clique sur le bouton Next

Sur le 2e écran, il faut modifier les champs suivants : Database setup MySQL: Database type 127.0.0.1: Database server roundcubemail: Database name roundcube: Database user name ChangeMe2: Database password

IMAP Settings IMAP host: localhost auto_create_user: coché

SMTP Settings smtp_server: <bidon pour que les mails ne partent pas dans la nature>

Display settings & user prefs language: fr_FR

On clique sur le bouton « CREATE CONFIG » et on copie la configuration présent à l'écran dans le fichier : /etc/roundcubemail/config.inc.php

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

Ensuite, on clique sur le bouton « CONTINUE ».

Sur le 3e écran, on clique sur le bouton « Initialize database » pour qu'il crée les tables dans la base. Un fois terminée, la configuration est terminée. Afin d'éviter que n'importe qui puisse relancer ce module de configuration, il faut obligatoirement faire les 2 manipulations suivantes :

Configuration File vi /etc/roundcubemail/config.inc.php
[…]
# Ajouter la ligne suivante à la fin du fichier
$config['enable_installer'] = false;

Configuration File vi /etc/httpd/conf.d/roundcubemail.conf
<Directory /usr/share/roundcubemail/installer/>
    <IfModule mod_authz_core.c>
        # Apache 2.4
        Require local
    </IfModule>
    <IfModule !mod_authz_core.c>
        # Apache 2.2
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
        Allow from ::1
    </IfModule>
</Directory>

Et on relance Apache pour prendre en compte ces modifications :

Command
systemctl restart httpd

On va également apporter une modification dans Apache afin de rediriger les connexions sans URL vers la page de RoundCube :

Configuration File vi /etc/httpd/conf.d/ssl.conf
<VirtualHost _default_:443>
[...]
        RewriteEngine  on
        RewriteRule    "^/$" "/roundcubemail/" [R]
</VirtualHost>

Command
mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf_ori
systemctl restart httpd



Listes des articles associés: