Serveur Parfait · 5 min read · Dec 02, 2025

Étendre le Serveur Parfait - Debian Squeeze [ISPConfig 3] - Page 2

3. ROUNDCUBE

Suivant les instructions ci-dessus, vous pouvez installer roundcube via apt-get. Cependant, en suivant une autre logique (si vous avez le temps et le courage), vous pouvez installer roundcube dans son propre sous-domaine, manuellement.

Dans “Serveur Parfait ….” vous installez généralement Squirrelmai. Cependant, si vous ne le voulez pas, vous pouvez le supprimer :

apt-get remove squirrelmail

et supprimer le fichier /etc/apache2/conf.d/squirrelmail.conf :

rm /etc/apache2/conf.d/squirrelmail.conf

OU si vous le voulez, éditez le fichier /etc/apache2/conf.d/squirrelmail.conf et changez l’alias en quelque chose comme ‘webmail1’.

Installez roundcube. (Vous DEVEZ avoir le mot de passe de l’administrateur mysql avant de continuer – Laissez dbconfig-common configurer la base de données. On vous posera quelques questions sur le mot de passe de l’administrateur de la base de données et le mot de passe du nouvel utilisateur qui sera créé pour roundcube. Répondez à ces questions et continuez :

apt-get install roundcube roundcube-mysql

Exemples de réponses :
“Configurer la base de données pour roundcube avec dbconfig-common ?” …. Répondez Oui
“Type de base de données à utiliser par roundcube : …Répondez mysql
“Mot de passe de l’utilisateur administratif de la base de données :” … Répondez votre-mot-de-passe-admin-DB
“Mot de passe de l’application MySQL pour roundcube :” … Répondez le-mot-de-passe-que-vous-voulez-donner-à-l’utilisateur-roundcube
“Confirmation du mot de passe :”… Répondez le-mot-de-passe-que-vous-voulez-donner-à-l’utilisateur-roundcube

Si quelque chose ne va pas, vous pouvez toujours exécuter :

dpkg-reconfigure roundcube-core

Pour plus d’informations, veuillez consulter ce post.

Pour que tout le monde puisse accéder à son webmail (sous son nom de domaine), vous devez créer ou éditer le fichier /etc/apache2/conf.d/roundcube afin de définir l’alias sur ‘webmail’. Si vous voulez SSL, vous devez inclure les deux dernières directives (IfModule mod_rewrite.c) pour que apache redirige TOUJOURS vers votre installation SSL d’ISPConfig.

nano /etc/apache2/conf.d/roundcube
# Ces alias ne fonctionnent pas correctement avec plusieurs hôtes sur votre serveur apache  
# Décommentez-les pour les utiliser ou adaptez-les à votre configuration  
#    Alias /roundcube/program/js/tiny_mce/ /usr/share/tinymce/www/  
    Alias /roundcube /var/lib/roundcube  
    Alias /webmail /var/lib/roundcube  
  
# Accès aux fichiers tinymce  
  
      Options Indexes MultiViews FollowSymLinks  
      AllowOverride None  
      Order allow,deny  
      allow from all  
  
  
  
  Options +FollowSymLinks  
  # Ceci est nécessaire pour analyser /var/lib/roundcube/.htaccess. Voir son  
  # contenu avant de définir AllowOverride sur None.  
  AllowOverride All  
  order allow,deny  
  allow from all  
  
  
# Protection des répertoires de base :  
  
        Options -FollowSymLinks  
        AllowOverride None  
  
  
  
        Options -FollowSymLinks  
        AllowOverride None  
        Order allow,deny  
        Deny from all  
  
  
  
        Options -FollowSymLinks  
        AllowOverride None  
        Order allow,deny  
        Deny from all  
  
  
  
    
      
      RewriteEngine on  
      RewriteCond %{HTTPS} !^on$ [NC]  
      RewriteRule . https://%{HTTP_HOST}:50443%{REQUEST_URI}  [L]  
      
    
  
  
  
    
      
      RewriteEngine on  
      RewriteCond %{HTTPS} !^on$ [NC]  
      RewriteRule . https://%{HTTP_HOST}:50443%{REQUEST_URI}  [L]  
      
    
  
  
  
# Pour ISPConfig 3.0.5.1 et supérieur, ajoutez également ce qui suit  
  
  
AddType application/x-httpd-php .php  
php_flag magic_quotes_gpc Off  
php_flag track_vars On  
php_admin_flag allow_url_fopen Off  
php_value include_path .:/usr/share/php:/usr/share/pear  
php_admin_value upload_tmp_dir /var/lib/roundcube/temp  
php_admin_value open_basedir /usr/share/php:/usr/lib/roundcube:/etc/roundcube:/usr/share/roundcube:/var/lib/roundcube:/var/log/roundcube  
php_flag register_globals off  
   

Éditez /var/lib/roundcube/config/main.inc.php :

nano /var/lib/roundcube/config/main.inc.php

et RÉGLEZ certaines variables dans le fichier (si c’est la première fois que vous éditez le fichier, les lignes sont 60 et 66) :

auto_create_user = TRUE;  
$rcmail_config['default_host'] = 'localhost';

Si vous allez installer le plugin suivant (le logger qui aide fail2ban), vous devez étendre la liste des plugins dans le même fichier. Si le seul plugin est celui qui sera installé juste après, vous devez éditer la ligne (42) comme ci-dessous :

$rcmail_config['plugins'] = array('fail2ban'); 

Installez le plugin logger de roundcube depuis http://mattrude.com/projects/roundcube-fail2ban-plugin/.

Fondamentalement, vous devez télécharger le fichier (fail2ban.php) et le coller dans le dossier fail2ban dans le dossier des plugins de roundcube. Enfin, vous devez avoir ce fichier : /usr/share/roundcube/plugins/fail2ban/fail2ban.php. Exécutez :

cd /usr/share/roundcube/plugins/
wget –no-check-certificate http://github.com/downloads/mattrude/rc-plugin-fail2ban/roundcube-fail2ban-plugin.1.0.tgz
tar -xvzf roundcube-fail2ban-plugin.1.0.tgz
touch /var/log/roundcube/userlogins
chown www-data:www-data /var/log/roundcube/userlogins

Ce plugin mettra à jour le fichier journal à chaque tentative de connexion échouée : /var/log/roundcube/userlogins

N’oubliez pas d’éditer le lien pour le webmail dans ISPConfig (Système -> Configuration de l’interface -> (onglet) Mail) et de le définir sur /webmail. Enfin, redémarrez apache.

/etc/init.d/apache2 restart

Vous pouvez maintenant accéder au webmail à http://www.example.com/webmail

4. FAIL2BAN

Étendez le fichier jail.local que falko suggère dans Le Serveur Parfait - Debian Squeeze (Debian 6.0) Avec BIND & Courier [ISPConfig 3] : /etc/fail2ban/jail.local

nano /etc/fail2ban/jail.local

Vous devez ajouter ou éditer ce qui suit :

[roundcube]  
enabled  = true  
port     = http,50443  
filter   = roundcube  
logpath  = /var/log/roundcube/userlogins  
maxretry = 5  
  
[webmin-auth]  
enabled = true  
port    = 50000  
filter  = webmin-auth  
logpath  = /var/log/auth.log  
maxretry = 3   
  
[ssh]  
enabled = true  
port    = 50022  
filter  = sshd  
logpath  = /var/log/auth.log  
maxretry = 6

Le port 50443 dans roundcube n’est nécessaire que si vous avez activé la redirection vers https (voir au début de ce tutoriel).
Le port 50000 dans webmin-auth est le port modifié (voir au début de ce tutoriel).
Le port 50022 dans ssh est le port modifié (voir les sections suivantes de ce tutoriel).

Enfin (et très important), n’oubliez pas de créer le fichier roundcube.conf /etc/fail2ban/filter.d/roundcube.conf.

nano /etc/fail2ban/filter.d/roundcube.conf

avec le contenu suivant :

[Definition]
failregex = FAILED login for .*. from 
ignoreregex =

Heureusement, les filtres webmin-auth et ssh sont déjà faits pour nous par le fail2ban lui-même. Redémarrez fail2ban :

/etc/init.d/fail2ban restart

Si quelqu’un ajoute beaucoup de prisons dans fail2ban, alors certaines d’entre elles peuvent ne pas démarrer (erreurs dans /var/log/fail2ban.log mais pas dans la sortie !!!). Vérifiez par vous-même en exécutant :

iptables -L -n 

Malheureusement, la solution est un peu un hack… mais au moins c’est une solution :

Dans le fichier /usr/bin/fail2ban-client à la ligne 145, vous devez insérer time.sleep(0.1) ou time.sleep(0.05) :

nano /usr/bin/fail2ban-client

Avant le changement, le fichier ressemble à ceci :

[...]  
 def __processCmd(self, cmd, showRet = True):  
                beautifier = Beautifier()  
                for c in cmd:  
                        beautifier.setInputCmd(c)  
                        try:  
[...]  

Et après, le fichier ressemble à ceci :

[...]  
 def __processCmd(self, cmd, showRet = True):  
                beautifier = Beautifier()  
                for c in cmd:  
                        time.sleep(0.05)  
                        beautifier.setInputCmd(c)  
                        try:  
[...]  

Redémarrez à nouveau fail2ban :

/etc/init.d/fail2ban restart

Vous pouvez vérifier que toutes les prisons sont actives avec la commande :

iptables -L -n 
Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.