Serveur Debian · 11 min read · Jan 25, 2026

Le Serveur Parfait - Debian 8.4 Jessie (Apache2, BIND, Dovecot, ISPConfig 3.1) - Page 2

10 Installer Apache2, PHP, FCGI, suExec, Pear, phpMyAdmin et mcrypt

Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear et mcrypt peuvent être installés comme suit :

apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libruby libapache2-mod-python php5-curl php5-intl php5-memcache php5-memcached php5-pspell php5-recode php5-sqlite php5-tidy php5-xmlrpc php5-xsl memcached libapache2-mod-passenger

Vous verrez les questions suivantes :

Serveur web à reconfigurer automatiquement : <- apache2  
Configurer la base de données pour phpmyadmin avec dbconfig-common ? <- oui  
Entrez le mot de passe de l'utilisateur administratif ? <- votremotdepasseadminmysql  
Entrez le mot de passe de l'application phpmyadmin ? <-  Appuyez simplement sur entrer

Ensuite, exécutez la commande suivante pour activer les modules Apache suexec, rewrite, ssl, actions et include (plus dav, dav_fs et auth_digest si vous souhaitez utiliser WebDAV) :

a2enmod suexec rewrite ssl actions include dav_fs dav auth_digest cgi headers

Pour s’assurer que le serveur ne peut pas être attaqué via la vulnérabilité HTTPOXY, nous allons désactiver l’en-tête HTTP_PROXY dans apache globalement en ajoutant le fichier de configuration /etc/apache2/conf-available/httpoxy.conf.

sudo nano /etc/apache2/conf-available/httpoxy.conf

Collez le contenu suivant dans le fichier :


    RequestHeader unset Proxy early

Et activez le module en exécutant :

a2enconf httpoxy  
service apache2 restart

10.1 Installer HHVM (HipHop Virtual Machine)

Dans cette étape, nous allons installer HHVM depuis son dépôt officiel Debian. Ajoutez le dépôt HHVM et importez la clé.

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449  
echo deb http://dl.hhvm.com/debian jessie main | sudo tee /etc/apt/sources.list.d/hhvm.list

Mettez à jour la liste des paquets :

sudo apt-get update

et installez HHVM :

sudo apt-get install hhvm

10.2 Installer SuPHP (optionnel, mais pas recommandé)

NOTE MISE À JOUR : SuPHP ne doit plus être installé, passez à l’étape 11

SuPHP n’est plus disponible pour Debian Jessie. Le mode suphp ne doit plus être utilisé dans ISPConfig car il existe de meilleurs modes PHP comme php-fpm et php-fcgi. Si vous avez vraiment besoin de suphp pour des raisons de compatibilité, suivez les étapes de ce chapitre pour le compiler manuellement. Mais nous ne recommandons pas son installation.

apt-get install apache2-dev build-essential autoconf automake libtool flex bison debhelper binutils
cd /usr/local/src  
wget http://suphp.org/download/suphp-0.7.2.tar.gz  
tar zxvf suphp-0.7.2.tar.gz  
wget -O suphp.patch https://lists.marsching.com/pipermail/suphp/attachments/20130520/74f3ac02/attachment.patch  
patch -Np1 -d suphp-0.7.2 < suphp.patch  
cd suphp-0.7.2  
autoreconf -if  
./configure --prefix=/usr/ --sysconfdir=/etc/suphp/ --with-apr=/usr/bin/apr-1-config --with-apache-user=www-data --with-setid-mode=owner --with-logfile=/var/log/suphp/suphp.log  
make  
make install  

Créez le répertoire de configuration suphp et le fichier suphp.conf :

mkdir /var/log/suphp  
mkdir /etc/suphp  
nano /etc/suphp/suphp.conf
[global]  
;Chemin vers le fichier journal  
logfile=/var/log/suphp/suphp.log  
  
;Niveau de journalisation  
loglevel=info  
  
;Utilisateur sous lequel Apache s'exécute  
webserver_user=www-data  
  
;Chemin que tous les scripts doivent respecter  
docroot=/var/www  
  
;Chemin vers chroot() avant d'exécuter le script  
;chroot=/mychroot  
  
; Options de sécurité  
allow_file_group_writeable=false  
allow_file_others_writeable=false  
allow_directory_group_writeable=false  
allow_directory_others_writeable=false  
  
;Vérifiez si le script est dans DOCUMENT_ROOT  
check_vhost_docroot=true  
  
;Envoyer des messages d'erreur mineurs au navigateur  
errors_to_browser=false  
  
;Variable d'environnement PATH  
env_path=/bin:/usr/bin  
  
;Umask à définir, spécifiez en notation octale  
umask=0022  
  
; UID minimum  
min_uid=100  
  
; GID minimum  
min_gid=100  
  
[handlers]  
;Gestionnaire pour les scripts php  
x-httpd-suphp="php:/usr/bin/php-cgi"  
  
;Gestionnaire pour les scripts CGI  
x-suphp-cgi=execute:!self  
umask=0022

Ensuite, nous allons ajouter un fichier de configuration pour charger le module suphp dans apache :

echo "LoadModule suphp_module /usr/lib/apache2/modules/mod_suphp.so" > /etc/apache2/mods-available/suphp.load

Et ensuite ouvrez /etc/apache2/mods-available/suphp.conf…

nano /etc/apache2/mods-available/suphp.conf

… et ajoutez le contenu suivant :


        AddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml
        suPHP_AddHandler application/x-httpd-suphp

    
        suPHP_Engine on
    

    # Par défaut, désactiver suPHP pour les applications web packagées debian car les fichiers
    # sont possédés par root et ne peuvent pas être exécutés par suPHP à cause de min_uid.
    
        suPHP_Engine off
    

# # Utiliser un fichier de configuration php spécifique (un répertoire contenant un php.ini)
#       suPHP_ConfigPath /etc/php5/cgi/suphp/
# # Indique à mod_suphp de NE PAS gérer les requêtes avec le type .
#       suPHP_RemoveHandler 

Activez le module suphp dans apache :

a2enmod suphp

Redémarrez Apache ensuite :

service apache2 restart

11 Installer Let’s Encrypt

ISPConfig 3.1 a le support pour l’autorité de certification SSL gratuite Let’s Encrypt. La fonction Let’s Encrypt vous permet de créer des certificats SSL gratuits pour votre site web depuis ISPConfig.

Maintenant, nous allons ajouter le support pour Let’s Encrypt.

mkdir /opt/certbot  
cd /opt/certbot  
wget https://dl.eff.org/certbot-auto  
chmod a+x ./certbot-auto

Maintenant, exécutez la commande certboot-auto qui téléchargera et installera le logiciel et ses dépendances.

./certbot-auto

La commande vous dira alors que “aucun nom n’a été trouvé dans vos fichiers de configuration” et demande si elle doit continuer, veuillez choisir “non” ici car les certificats seront créés par ISPConfig.

12 Installer PHP-FPM et XCache

XCache est un cache d’opcode PHP gratuit et open source pour mettre en cache et optimiser le code intermédiaire PHP. Il est similaire à d’autres caches d’opcode PHP, tels que eAccelerator et APC. Il est fortement recommandé d’en avoir un installé pour accélérer vos pages PHP.

12.1 PHP-FPM (recommandé)

À partir d’ISPConfig 3.0.5, il existe un mode PHP supplémentaire que vous pouvez sélectionner pour une utilisation avec Apache : PHP-FPM.

Pour utiliser PHP-FPM avec Apache, nous avons besoin du module mod_fastcgi d’Apache (veuillez ne pas le confondre avec mod_fcgid - ils sont très similaires, mais vous ne pouvez pas utiliser PHP-FPM avec mod_fcgid). Nous pouvons installer PHP-FPM et mod_fastcgi comme suit :

apt-get install libapache2-mod-fastcgi php5-fpm

Assurez-vous d’activer le module et de redémarrer Apache :

a2enmod actions fastcgi alias  
service apache2 restart

12.2 Installer XCache

XCache peut être installé comme suit :

apt-get install php5-xcache

Maintenant, redémarrez Apache :

service apache2 restart

13 Installer Mailman

ISPConfig vous permet de gérer (créer/modifier/supprimer) des listes de diffusion Mailman. Si vous souhaitez utiliser cette fonctionnalité, installez Mailman comme suit :

apt-get install mailman

Sélectionnez au moins une langue, par exemple :

Langues à prendre en charge : <-- en (Anglais)  
 Liste de sites manquante <-- Ok

Avant de pouvoir démarrer Mailman, une première liste de diffusion appelée mailman doit être créée :

newlist mailman
root@server1:~# newlist mailman  
Entrez l'email de la personne gérant la liste : <-- adresse email de l'admin, par exemple [email protected]  
Mot de passe initial de mailman : <-- mot de passe admin pour la liste mailman  
Pour terminer la création de votre liste de diffusion, vous devez éditer votre fichier /etc/aliases (ou équivalent) en ajoutant les lignes suivantes, et éventuellement en exécutant le programme `newaliases` :  
   
## liste de diffusion mailman  
mailman:              "|/var/lib/mailman/mail/mailman post mailman"  
mailman-admin:        "|/var/lib/mailman/mail/mailman admin mailman"  
mailman-bounces:      "|/var/lib/mailman/mail/mailman bounces mailman"  
mailman-confirm:      "|/var/lib/mailman/mail/mailman confirm mailman"  
mailman-join:         "|/var/lib/mailman/mail/mailman join mailman"  
mailman-leave:        "|/var/lib/mailman/mail/mailman leave mailman"  
mailman-owner:        "|/var/lib/mailman/mail/mailman owner mailman"  
mailman-request:      "|/var/lib/mailman/mail/mailman request mailman"  
mailman-subscribe:    "|/var/lib/mailman/mail/mailman subscribe mailman"  
mailman-unsubscribe:  "|/var/lib/mailman/mail/mailman unsubscribe mailman"  
   
Appuyez sur entrer pour notifier le propriétaire de mailman... <-- ENTRER  
   
root@server1:~#

Ouvrez ensuite /etc/aliases…

nano /etc/aliases

… et ajoutez les lignes suivantes :

[...]  
## liste de diffusion mailman  
mailman:              "|/var/lib/mailman/mail/mailman post mailman"  
mailman-admin:        "|/var/lib/mailman/mail/mailman admin mailman"  
mailman-bounces:      "|/var/lib/mailman/mail/mailman bounces mailman"  
mailman-confirm:      "|/var/lib/mailman/mail/mailman confirm mailman"  
mailman-join:         "|/var/lib/mailman/mail/mailman join mailman"  
mailman-leave:        "|/var/lib/mailman/mail/mailman leave mailman"  
mailman-owner:        "|/var/lib/mailman/mail/mailman owner mailman"  
mailman-request:      "|/var/lib/mailman/mail/mailman request mailman"  
mailman-subscribe:    "|/var/lib/mailman/mail/mailman subscribe mailman"  
mailman-unsubscribe:  "|/var/lib/mailman/mail/mailman unsubscribe mailman"

Exécutez :

newaliases

et redémarrez Postfix :

service postfix restart

Enfin, nous devons activer la configuration Apache de Mailman :

ln -s /etc/mailman/apache.conf /etc/apache2/conf-enabled/mailman.conf

Cela définit l’alias /cgi-bin/mailman/ pour tous les hôtes virtuels Apache, ce qui signifie que vous pouvez accéder à l’interface d’administration de Mailman pour une liste à http://server1.example.com/cgi-bin/mailman/admin/, et la page web pour les utilisateurs d’une liste de diffusion peut être trouvée à http://server1.example.com/cgi-bin/mailman/listinfo/.

Sous http://server1.example.com/pipermail, vous pouvez trouver les archives de la liste de diffusion.

Redémarrez Apache ensuite :

service apache2 restart

Puis démarrez le démon Mailman :

service mailman start

14 Installer PureFTPd et Quota

PureFTPd et quota peuvent être installés avec la commande suivante :

apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool

Éditez le fichier /etc/default/pure-ftpd-common…

nano /etc/default/pure-ftpd-common

… et assurez-vous que le mode de démarrage est défini sur standalone et définissez VIRTUALCHROOT=true :

[...]  
STANDALONE_OR_INETD=standalone  
[...]  
VIRTUALCHROOT=true  
[...]  

Maintenant, nous configurons PureFTPd pour permettre les sessions FTP et TLS. FTP est un protocole très peu sécurisé car tous les mots de passe et toutes les données sont transférés en texte clair. En utilisant TLS, toute la communication peut être chiffrée, rendant ainsi FTP beaucoup plus sécurisé.

Si vous souhaitez autoriser les sessions FTP et TLS, exécutez

echo 1 > /etc/pure-ftpd/conf/TLS

Pour utiliser TLS, nous devons créer un certificat SSL. Je le crée dans /etc/ssl/private/, donc je crée d’abord ce répertoire :

mkdir -p /etc/ssl/private/

Ensuite, nous pouvons générer le certificat SSL comme suit :

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Nom du pays (code à 2 lettres) [AU]: <-- Entrez le nom de votre pays (par exemple, "DE").  
Nom de l'état ou de la province (nom complet) [Some-State]: <-- Entrez le nom de votre état ou province.  
Nom de la localité (par exemple, ville) []: <-- Entrez votre ville.  
Nom de l'organisation (par exemple, entreprise) [Internet Widgits Pty Ltd]: <-- Entrez le nom de votre organisation (par exemple, le nom de votre entreprise).  
Nom de l'unité organisationnelle (par exemple, section) []: <-- Entrez le nom de votre unité organisationnelle (par exemple, "Département IT").  
Nom commun (par exemple, VOTRE nom) []: <-- Entrez le nom de domaine entièrement qualifié du système (par exemple, "server1.example.com").  
Adresse e-mail []: <-- Entrez votre adresse e-mail.

Changez les permissions du certificat SSL :

chmod 600 /etc/ssl/private/pure-ftpd.pem

Puis redémarrez PureFTPd :

service pure-ftpd-mysql restart

Éditez /etc/fstab. Le mien ressemble à ceci (j’ai ajouté,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 à la partition avec le point de montage /) :

nano /etc/fstab
# /etc/fstab: informations sur le système de fichiers statique.  
#  
# Utilisez 'blkid' pour imprimer l'identifiant unique universel pour un  
# appareil ; cela peut être utilisé avec UUID= comme un moyen plus robuste de nommer des appareils  
# qui fonctionne même si des disques sont ajoutés et retirés. Voir fstab(5).  
#  
#        
# / était sur /dev/sda1 pendant l'installation  
UUID=3dc3b58d-97e5-497b-8254-a913fdfc5408 / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1  
# swap était sur /dev/sda5 pendant l'installation  
UUID=36bf486e-8f76-492d-89af-5a8eb3ce8a02 none swap sw 0 0  
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0

Pour activer le quota, exécutez ces commandes :

mount -o remount /
quotacheck -avugm  
quotaon -avug

15 Installer le Serveur DNS BIND

BIND peut être installé comme suit :

apt-get install bind9 dnsutils

Si votre serveur est une machine virtuelle, il est fortement recommandé d’installer le démon haveged pour obtenir une plus grande entropie pour la signature DNSSEC. Vous pouvez installer haveged sur des serveurs non virtuels également, cela ne devrait pas nuire.

apt-get install haveged

Une explication sur ce sujet peut être trouvée ici.

16 Installer Webalizer et AWStats

Webalizer et AWStats peuvent être installés comme suit :

apt-get install webalizer awstats geoip-database libclass-dbi-mysql-perl libtimedate-perl

Ouvrez ensuite /etc/cron.d/awstats…

nano /etc/cron.d/awstats

… et commentez tout dans ce fichier :

#MAILTO=root

#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh

# Générer des rapports statiques :
#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh

17 Installer Jailkit

Jailkit est nécessaire uniquement si vous souhaitez chroot les utilisateurs SSH. Il peut être installé comme suit (important : Jailkit doit être installé avant ISPConfig - il ne peut pas être installé après !) :

apt-get install build-essential autoconf automake libtool flex bison debhelper binutils
cd /tmp  
wget http://olivier.sessink.nl/jailkit/jailkit-2.19.tar.gz  
tar xvfz jailkit-2.19.tar.gz  
cd jailkit-2.19  
./debian/rules binary

Vous pouvez maintenant installer le paquet Jailkit.deb comme suit :

cd ..  
dpkg -i jailkit_2.19-1_*.deb  
rm -rf jailkit-2.19*

18 Installer fail2ban et le Pare-feu UFW

C’est optionnel mais recommandé, car le moniteur ISPConfig essaie d’afficher le journal :

apt-get install fail2ban

Pour faire en sorte que fail2ban surveille PureFTPd et Dovecot, créez le fichier /etc/fail2ban/jail.local :

nano /etc/fail2ban/jail.local
[pureftpd]
enabled  = true
port     = ftp
filter   = pureftpd
logpath  = /var/log/syslog
maxretry = 3

[dovecot-pop3imap]
enabled = true
filter = dovecot-pop3imap
action = iptables-multiport[name=dovecot-pop3imap, port="pop3,pop3s,imap,imaps", protocol=tcp]
logpath = /var/log/mail.log
maxretry = 5

[postfix-sasl]
enabled  = true
port     = smtp
filter   = postfix-sasl
logpath  = /var/log/mail.log
maxretry = 3

Ensuite, créez les deux fichiers de filtre suivants :

nano /etc/fail2ban/filter.d/pureftpd.conf
[Definition]
failregex = .*pure-ftpd: \(.*@\) \[WARNING\] Authentication failed for user.*
ignoreregex =
nano /etc/fail2ban/filter.d/dovecot-pop3imap.conf
[Definition]
failregex = (?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed|Aborted login \(\d+ authentication attempts).*rip=(?P\S*),.*
ignoreregex =

Ensuite, pour ajouter la ligne ignoreregex dans le fichier de filtre postfix-sasl, exécutez :

echo "ignoreregex =" >> /etc/fail2ban/filter.d/postfix-sasl.conf

Redémarrez fail2ban ensuite :

service fail2ban restart

Pour installer le pare-feu UFW, exécutez cette commande apt :

apt-get install ufw
Share: X/Twitter LinkedIn

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

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