Contenu

Serveur mail (Debian 6.6) 4/5 : 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

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

1
# vi /etc/apache2/httpd.conf

Le fichier est vide. On y ajoute la ligne suivante :

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
# /etc/init.d/apache2 restart

Activation du SSL dans Postfix et Dovecot

Afin d’activer le prise en charge de SSL dans Dovecot, nous devons l’activer en modifiant une variable dans le fichier de configuration de Dovecot. Pour cela, on édite le fichier de configuration via la commande suivante :

1
# vi /etc/dovecot/dovecot.conf

On décommente la ligne 95 comme suit :

1
ssl = yes

Nous devons décommenter et modifier le chemin des certificats SSL aux lignes 100 et 101 comme suit :

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

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

1
# /etc/init.d/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
0 128 *:imaps *:* users:(("dovecot",10416,7),("imap-login",10425,5))
0 128 *:pop3s *:* users:(("dovecot",10416,9),("pop3-login",10424,5))

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 17 à 20 comme ci-dessous :

1
2
3
4
smtps inet n - - - - smtpd
-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
# /etc/init.d/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
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
# /etc/init.d/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/
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 484 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 httpd 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éé :