Serveur Debian · 8 min read · Dec 18, 2025

Le Serveur Parfait - Debian 9 (Stretch) avec Apache, BIND, Dovecot, PureFTPD et 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 -y install apache2 apache2-doc apache2-utils libapache2-mod-php php7.0 php7.0-common php7.0-gd php7.0-mysql php7.0-imap phpmyadmin php7.0-cli php7.0-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear php7.0-mcrypt mcrypt imagemagick libruby libapache2-mod-python php7.0-curl php7.0-intl php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl memcached php-memcache php-imagick php-gettext php7.0-zip php7.0-mbstring memcached libapache2-mod-passenger php7.0-soap

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'application phpmyadmin ? <-  Juste appuyer 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 garantir 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.

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)

Il n’y a pas encore de paquets HHVM disponibles pour Debian 9. HHVM est un mode PHP optionnel, donc votre serveur fonctionnera sans, vous ne pouvez simplement pas utiliser le mode PHP HHVM pour les sites web.

10.2 SuPHP

SuPHP n’est plus disponible pour Debian 9, les fonctions SuPHP sont obsolètes et seront également supprimées d’ISPConfig. Utilisez les modes PHP disponibles PHP-FPM ou PHP-FCGI avec suexec au lieu de SuPHP.

11 Installer Let’s Encrypt

ISPConfig 3.1 prend en charge 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.

Nous allons maintenant ajouter le support pour Let’s Encrypt.

cd /usr/local/bin  
wget https://dl.eff.org/certbot-auto  
chmod a+x certbot-auto  
./certbot-auto --install-only

Aucune étape supplémentaire n’est requise après l’installation de LE. Les certificats SSL du site web sont créés par ISPConfig lorsque vous ajoutez les sites web.

12 Installer PHP-FPM

Pour utiliser PHP-FPM avec Apache, nous avons besoin du module mod_proxy_fcgi d’Apache, qui est installé par défaut et doit juste être activé. Nous pouvons installer PHP-FPM comme suit :

apt-get -y install php7.0-fpm

Assurez-vous d’activer les modules et de redémarrer Apache :

a2enmod actions proxy_fcgi alias  
service apache2 restart

12.2 Installer le cache d’opcodes PHP (optionnel)

Opcache est un cache d’opcodes PHP gratuit pour mettre en cache et optimiser le code intermédiaire PHP. APCu est un module de compatibilité qui fournit des fonctions compatibles APC pour Opcache, utilisé par de nombreux systèmes de mise en cache CMS. Il est recommandé d’avoir ces extensions PHP installées pour accélérer vos pages PHP.

APCu peut être installé comme suit :

apt-get -y install php7.0-opcache php-apcu

Redémarrez maintenant 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... <-- ENTER  
   
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 vhosts 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

Créez le fichier dhparam pour pure-ftpd :

openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048

É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, "FR").  
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 statiques sur le système de fichiers.  
#  
# Utilisez 'blkid' pour imprimer l'identifiant universel unique 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=f539c5cb-624f-4c27-a149-1446a251a453 / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1  
# swap était sur /dev/sda5 pendant l'installation  
UUID=8d3194e7-edb5-4492-937d-d066b4994baf 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 chrooter les utilisateurs SSH. Il peut être installé comme suit :

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

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

cd ..  
dpkg -i jailkit_2.20-1_*.deb  
rm -rf jailkit-2.20*

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

Et ajoutez la configuration suivante :

[pure-ftpd]  
enabled = true  
port = ftp  
filter = pure-ftpd  
logpath = /var/log/syslog  
maxretry = 3  
  
[dovecot]  
enabled = true  
filter = dovecot  
logpath = /var/log/mail.log  
maxretry = 5  
  
[postfix-sasl]  
enabled = true  
port = smtp  
filter = postfix-sasl  
logpath = /var/log/mail.log  
maxretry = 3

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.