Contenu

Serveur mail (Debian 7.6) 4/6 : Installation et configuration de Roundcube

Afin de procéder à l’installation de Roundcube nous devons installer Apache avec le support de SSL. Pour cela, nous allons taper la commande suivante :

1
# apt-get install apache2

Avant de modifier le fichier de configuration, nous allons le sauvegarder via la commande suivante :

1
# cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.ori

Nous allons modifier la configuration d’Apache. Pour cela nous allons créer le fichier « apache2.conf » via la commande suivante :

1
# vi /etc/apache2/apache2.conf

On ajoute la ligne suivante à la fin du fichier :

1
ServerName localhost

Nous allons installer le serveur MySQL, ainsi que les dépendances nécessaires via les commandes suivantes :

1
2
# apt-get install php5 php5-mcrypt php5-intl
# apt-get install mysql-server

Maintenant nous pouvons lancer l’outil de configuration MySQL pour supprimer les utilisateurs anonymes, supprimer les bases de tests et désactiver la possibilité pour « root » de se connecter à distance via la commande :

1
2
3
4
5
6
7
# /usr/bin/mysql_secure_installation
Enter current password for root (enter for none) : Entrer le mot de passe défini lors de l’installation
Set root password? [Y/n] n
Remove anonymous users? [Y/n] Taper sur la touche Entrer
Disallow root login remotely? [Y/n] Taper sur la touche Entrer
Remove test database and access to it? [Y/n] Taper sur la touche Entrer
Reload privilege tables now? [Y/n] Taper sur la touche Entrer

Nous allons installer les modules pour se connecter à MySQL par l’intermédiaire de script PHP, via la commande suivante :

1
# apt-get install php5-mysql

Nous allons créer l’utilisateur ainsi que la base donnée en ligne de commande. Pour cela nous allons nous connecter au serveur MySQL via la commande suivante :

1
# mysql -u root -p

Nous allons créer une base de données « roundcubemail » via la commande suivante :

1
mysql> CREATE DATABASE IF NOT EXISTS `roundcubemail`;

Nous allons donner tous les droits à l’utilisateur « roundcubemail » sur la base de donnée « roundcubemail » via les commandes suivantes :

1
2
3
mysql> GRANT ALL PRIVILEGES ON `roundcubemail` . * TO 'roundcubemail'@'localhost' IDENTIFIED BY 'MySecretPassword';
mysql> flush privileges;
mysql> quit

Afin de pouvoir récupérer les sources d’installation de Roundcube, nous devons installer « curl ». Pour cela, nous allons taper la commande suivante :

1
# apt-get install curl

Nous allons récupérer les fichiers d’installation de Roundcube via la commande suivante :

1
# curl -L "http://sourceforge.net/projects/roundcubemail/files/latest/download?source=files" > /tmp/roundcube-latest.tar.gz

Nous allons décompresser l’archive contenant les fichiers d’installation de Roundcube dans le répertoire « /var/www/html » via la commande suivante :

1
# tar -xvzf /tmp/roundcube-latest.tar.gz -C /var/www/

Nous allons renommer le répertoire « roundcubemail-* » en « roundcubemail », puis lui appliquer les bons droits via les commandes suivantes :

1
2
3
4
# mv /var/www/roundcubemail-* /var/www/roundcubemail
# chown root:www-data -R /var/www/roundcubemail/
# chown www-data: -R /var/www/roundcubemail/temp/
# chown www-data: -R /var/www/roundcubemail/logs/

Nous allons récupérer le fichier mime.types nécessaire au bon fonctionnement de Roundcube, puis lui appliquer les bons droits via les commandes suivantes :

1
2
# curl http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types > /var/www/roundcubemail/mime.types
# chown root:www-data /var/www/roundcubemail/mime.types

Nous devons activer le module « SSL » pour Apache. Pour cela, nous allons taper la commande suivante :

1
# a2enmod ssl

On créé le fichier de configuration du VirtualHost :

1
# vi /etc/apache2/sites-available/roundcubemail.conf

Nous allons y copier les lignes suivantes :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:80>
      ServerName www.mon-domaine.fr
      Redirect permanent / https://www.mon-domaine.fr/
</VirtualHost>

<VirtualHost *:443>
      SSLEngine on
      SSLCertificateFile /etc/ssl/certs/mon-domaine.fr.crt
      SSLCertificateKeyFile /etc/ssl/private/mon-domaine.fr.key
      ServerName www.mon-domaine.fr
      DocumentRoot /var/www/roundcubemail/
      <Directory /var/www/roundcubemail/>
            Options -Indexes
            AllowOverride All
      </Directory>
      <Directory /var/www/roundcubemail/bin/>
            Order Allow,Deny
            Deny from All
      </Directory>
      <Directory /var/www/roundcubemail/config/>
            Order Deny,Allow
            Deny from All
      </Directory>
      <Directory /var/www/roundcubemail/plugins/enigma/home/>
           Order Allow,Deny
           Deny from All
      </Directory>
      <Directory /var/www/roundcubemail/temp/>
           Order Deny,Allow
           Deny from All
      </Directory>
      <Directory /var/www/roundcubemail/logs/>
           Order Deny,Allow
           Deny from All
      </Directory>
      ErrorLog /var/log/apache2/roundcubemail/error.log
      LogLevel warn
      CustomLog /var/log/apache2/roundcubemail/access.log combined
      ServerSignature Off
</VirtualHost>

On vérifie qu’il n’a pas d’erreur dans notre fichier de configuration du virtualhost Apache que nous venons de créer via commande suivante :

1
# apachectl -t

Nous allons créer les tables nécessaires au fonctionnement de Roundcube via le script présent d’ans l’archive que nous avons décompressé :

1
# mysql -u roundcubemail -pMySecretPassword roundcubemail < /var/www/roundcubemail/SQL/mysql.initial.sql

Avant de modifier le fichier de configuration, nous allons le sauvegarder via la commande suivante :

1
# cp /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini.ori

Nous allons éditer le fichier de configuration de PHP pour paramétrer le bon fuseau horaire dans PHP via la commande suivante :

1
# vi /etc/php5/apache2/php.ini

On décommette et on modifie la ligne 952 comme suit :

1
date.timezone = Europe/Paris

Maintenant que le virtualhost est configuré, nous devons l’activer dans Apache. Pour cela on tape la commande suivante :

1
# a2ensite roundcubemail.conf

Nous allons créer le répertoire qui contiendra les fichiers de log de Roundcube via la commande suivante :

1
# mkdir /var/log/apache2/roundcubemail

Nous allons redémarrer Apache pour prendre en compte les modifications, via la commande suivante :

1
# service apache2 restart

Activation du SSL dans Postfix et Dovecot

Afin d’activer le prise en charge de SSL dans Dovecot, nous allons éditer le fichier « 10-ssl.conf », via la commande suivante :

1
# vi /etc/dovecot/conf.d/10-ssl.conf

Nous allons décommenter la ligne 6 et la modifier comme suit :

1
ssl = yes

Nous allons modifier le chemin des certificats SSL aux lignes 12 et 13 comme suit :

1
2
ssl_cert = </etc/ssl/certs/mon-domaine.fr.crt
ssl_key = </etc/ssl/private/mon-domaine.fr.key

Nous allons redémarrer Dovecot pour prendre en compte les modifications via la commande suivante :

1
# service dovecot restart

Nous allons vérifier que les protocoles POP3S et IMAPS sont bien actifs dans Dovecot, via la commande suivante :

1
ss -tpl | grep -E 'imaps|pop3s'

Voilà ce que doit retourner la commande :

1
2
3
4
LISTEN 0 100 :::imaps :::* users:(("dovecot",11192,25))
LISTEN 0 100 *:imaps *:* users:(("dovecot",11192,25))
LISTEN 0 100 :::pop3s :::* users:(("dovecot",11192,19))
LISTEN 0 100 *:pop3s *:* users:(("dovecot",11192,19))

Maintenant que SSL est activer dans Dovecot, nous allons l’activer dans Postfix, pour cela nous allons éditer le fichier de configuration de Postfix « main.cf », via la commande suivante :

1
# vi /etc/postfix/main.cf

On ajoute les lignes suivantes à la fin du fichiers :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_tls_security_options = $smtpd_sasl_security_options
smtpd_sasl_local_domain = $mydomain
broken_sasl_auth_clients = yes

smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/ssl/certs/mon-domaine.fr.crt
smtpd_tls_key_file = /etc/ssl/private/mon-domaine.fr.key

smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

Nous allons éditer le fichier « master.cf » via la commande suivante :

1
# vi +/smtps /etc/postfix/master.cf

On dé-commente les lignes 22 à 26 comme ci-dessous :

1
2
3
4
5
smtps inet n - - - - smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

Nous allons redémarrer Postfix pour prendre en compte les modifications via la commande suivante :

1
# service postfix restart

Nous allons vérifier que le protocole SMTPS sont bien actifs dans Postfix, via la commande suivante :

1
ss -tnpl | grep 465

Voilà ce que doit retourner la commande :

1
LISTEN 0 100 *:465 *:* users:(("master",10586,16))

Nous allons modifier la configuration du daemon « saslauth », pour qu’il se lance au démarrage et configurer la méthode d’authentification. Pour cela, nous allons éditer le fichier « saslauthd » via la commande suivante :

1
# vi /etc/default/saslauthd

On modifie la valeur de la variable « START » (ligne 7) à « yes » comme ci-dessous :

1
START=yes

Nous allons créer un fichier smtpd.conf via la commande suivante :

1
# vi /etc/postfix/sasl/smtpd.conf

On y inscrit les lignes suivantes :

1
2
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN

On démarre le daemon saslauthd via la commande suivante :

1
# service saslauthd start

Afin de pouvoir accéder à votre site via l’url https://www.mon-domaine.fr, il faut ajouter une ligne au fichier « /etc/hosts ». Pour cela on édite le fichier via la commande suivante :

1
# vi /etc/hosts

Puis ajouter la ligne suivante :

1
xxx.xxx.xxx.xxx www.mon-domaine.fr

Maintenant nous pouvons lancer la configuration de Roundcube. Pour cela on lance un navigateur et on se connecte à l’adresse https://www.mon-domaine.fr/installer/
On clique sur « Next »
On rempli les champs comme suit :

  • Database name : roundcubemail
  • Database user name : roundcubemail
  • Database password : MySecretPassword
  • default_host : ssl://localhost
  • default_port : 993
  • sent_mbox : Envoyés
  • trash_mbox : Corbeille
  • drafts_mbox : Brouillons
  • junk_mbox : Spams
  • smtp_server : ssl://localhost
  • smtp_port : 465
  • Cocher Use the current IMAP username and password for SMTP authentification
  • language : fr_FR
  • Cocher preview_plane if preview plane is enabled
  • Compose HTML formatted messages : always
  • Cliquer sur « Create config »

Nous allons créer le fichier de configuration de Roundcube via la commande suivante :

1
# vi /var/www/roundcubemail/config/config.inc.php

On copie le contenu de la fenêtre dans le fichier comme indiquer dans la fenêtre. On édite le fichier /var/www/roundcube/config/defaults.inc.php via la commande suivante :

1
# vi /var/www/roundcubemail/config/defaults.inc.php

On modifie la ligne 497 comme suit :

1
$config['mime_types'] = '/var/www/roundcubemail/mime.types';

On clique sur « Continue ». Nous allons maintenant vérifier le bon fonctionnement du serveur SMTP en entrant les information suivantes dans les cases prévu :

Nous allons maintenant vérifier le bon fonctionnement du serveur SMTP en entrant les information suivantes dans les cases prévu :

Nous allons redémarrer le serveur Apache pour prendre en compte les modifications, via la commande suivante :

1
# service apache2 restart

Maintenant, notre serveur mail ainsi que son interface web sont opérationnel. Nous pouvons nous connecter à l’adresse http://www.mon-domaine.fr/ ou https://www.mon-domaine.fr/ (si connexion SSL activée) avec l’utilisateur précédemment créé :