Serveur Web · 8 min read · Sep 23, 2025
Le serveur parfait CentOS 7.3 avec Apache, Postfix, Dovecot, Pure-FTPD, BIND et ISPConfig 3.1
Ce tutoriel montre l’installation d’ISPConfig 3.1 sur un serveur CentOS 7.3 (64 bits). ISPConfig est un panneau de contrôle d’hébergement web qui vous permet de configurer les services suivants via un navigateur web : serveur web Apache, serveur de messagerie Postfix, MySQL, serveur de noms BIND, PureFTPd, SpamAssassin, ClamAV, Mailman, et bien d’autres.
1 Exigences
Pour installer un tel système, vous aurez besoin des éléments suivants :
- Un système serveur minimal CentOS 7.3. Cela peut être un serveur installé à partir de zéro comme décrit dans notre tutoriel sur le serveur minimal CentOS 7.3 ou un serveur virtuel ou serveur dédié d’une société d’hébergement qui a une configuration minimale CentOS 7.3 installée.
- Une connexion Internet rapide.
2 Remarque préliminaire
Dans ce tutoriel, j’utilise le nom d’hôte server1.example.com avec l’adresse IP 192.168.1.100 et la passerelle 192.168.1.1. Ces paramètres peuvent différer pour vous, donc vous devez les remplacer là où cela est approprié.
Veuillez noter que HHVM et XMPP ne sont pas encore pris en charge dans ISPConfig pour la plateforme CentOS. Si vous souhaitez gérer un serveur de chat XMPP depuis ISPConfig ou utiliser HHVM (Hip Hop Virtual Machine) dans un site web ISPConfig, veuillez utiliser Debian 8 ou Ubuntu 16.04 comme système d’exploitation serveur au lieu de CentOS 7.3.
3 Préparer le serveur
Définir la disposition du clavier
Dans le cas où la disposition du clavier du serveur ne correspond pas à votre clavier, vous pouvez passer à la bonne disposition de clavier (dans mon cas “de” pour une disposition de clavier allemand) avec la commande localectl :
localectl set-keymap dePour obtenir une liste de toutes les dispositions de clavier disponibles, exécutez :
localectl list-keymapsJe veux installer ISPConfig à la fin de ce tutoriel, ISPConfig est livré avec le script de pare-feu Bastille que j’utiliserai comme pare-feu, donc je désactive le pare-feu CentOS par défaut maintenant. Bien sûr, vous êtes libre de laisser le pare-feu CentOS activé et de le configurer selon vos besoins (mais dans ce cas, vous ne devriez pas utiliser d’autre pare-feu par la suite car cela interférera très probablement avec le pare-feu CentOS).
Exécutez…
yum -y install net-tools
systemctl stop firewalld.service
systemctl disable firewalld.servicepour arrêter et désactiver le pare-feu CentOS. Il est normal que vous rencontriez des erreurs ici, cela indique simplement que le pare-feu n’était pas installé.
Ensuite, vous devriez vérifier que le pare-feu a vraiment été désactivé. Pour ce faire, exécutez la commande :
iptables -LLa sortie devrait ressembler à ceci :
[root@server1 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destinationChain FORWARD (policy ACCEPT)
target prot opt source destinationChain OUTPUT (policy ACCEPT)
target prot opt source destinationOu utilisez la commande firewall-cmd :
firewall-cmd --state[root@server1 ~]# firewall-cmd --state
not running
[root@server1 ~]#Maintenant, je vais installer l’éditeur de configuration réseau et l’éditeur basé sur le shell “nano” que j’utiliserai dans les étapes suivantes pour modifier les fichiers de configuration :
yum -y install nano wget NetworkManager-tuiSi vous n’avez pas configuré votre carte réseau pendant l’installation, vous pouvez le faire maintenant. Exécutez…
nmtui… et allez à Modifier une connexion :

Sélectionnez votre interface réseau :

Ensuite, remplissez vos détails réseau - désactivez DHCP et remplissez une adresse IP statique, un masque de sous-réseau, votre passerelle, et un ou deux serveurs de noms, puis appuyez sur Ok :

Ensuite, sélectionnez OK pour confirmer les modifications que vous avez apportées dans les paramètres réseau

et Quitter pour fermer l’outil de configuration réseau nmtui.

Vous devriez exécuter
ifconfigmaintenant pour vérifier si l’installateur a bien obtenu votre adresse IP :
[root@server1 ~]# ifconfig
ens33: flags=4163 mtu 1500
inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::20c:29ff:fecd:cc52 prefixlen 64 scopeid 0x20
ether 00:0c:29:cd:cc:52 txqueuelen 1000 (Ethernet)
RX packets 55621 bytes 79601094 (75.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 28115 bytes 2608239 (2.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 0 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 Si votre carte réseau n’apparaît pas là, alors elle ne sera pas activée au démarrage, dans ce cas, ouvrez le fichier /etc/sysconfig/network-scripts/ifcfg-eth0
nano /etc/sysconfig/network-scripts/ifcfg-ens33et définissez ONBOOT sur yes :
[...]
ONBOOT=yes
[...] et redémarrez le serveur.
Vérifiez votre /etc/resolv.conf s’il liste tous les serveurs de noms que vous avez précédemment configurés :
cat /etc/resolv.confSi des serveurs de noms manquent, exécutez
nmtuiet ajoutez à nouveau les serveurs de noms manquants.
Maintenant, passons à la configuration…
Ajustement de /etc/hosts et /etc/hostname
Ensuite, nous allons éditer /etc/hosts. Faites-le ressembler à ceci :
nano /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.1.100 server1.example.com server1
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6Définissez le nom d’hôte dans le fichier /etc/hostname. Le fichier doit contenir le nom de domaine complètement qualifié (par exemple, server1.example.com dans mon cas) et pas seulement le nom court comme “server1”. Ouvrez le fichier avec l’éditeur nano :
nano /etc/hostnameEt définissez le nom d’hôte dans le fichier.
server1.example.comEnregistrez le fichier et quittez nano.
Désactiver SELinux
SELinux est une extension de sécurité de CentOS qui devrait fournir une sécurité étendue. À mon avis, vous n’en avez pas besoin pour configurer un système sécurisé, et cela cause généralement plus de problèmes que d’avantages (pensez-y après avoir passé une semaine à résoudre des problèmes parce qu’un service ne fonctionnait pas comme prévu, et ensuite vous découvrez que tout allait bien, seul SELinux causait le problème). Par conséquent, je le désactive (c’est un must si vous souhaitez installer ISPConfig plus tard).
Éditez /etc/selinux/config et définissez SELINUX=disabled :
nano /etc/selinux/config# Ce fichier contrôle l'état de SELinux sur le système.
# SELINUX= peut prendre l'une de ces trois valeurs :
# enforcing - La politique de sécurité SELinux est appliquée.
# permissive - SELinux imprime des avertissements au lieu d'appliquer.
# disabled - Aucune politique SELinux n'est chargée.
SELINUX=disabled
# SELINUXTYPE= peut prendre l'une de ces deux valeurs :
# targeted - Les processus ciblés sont protégés,
# mls - Protection de sécurité multi-niveau.
SELINUXTYPE=targetedEnsuite, nous devons redémarrer le système :
reboot4 Activer des dépôts supplémentaires et installer des logiciels
Tout d’abord, nous importons les clés GPG pour les paquets logiciels :
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*Ensuite, nous activons le dépôt EPEL sur notre système CentOS car beaucoup des paquets que nous allons installer au cours de ce tutoriel ne sont pas disponibles dans le dépôt officiel CentOS 7 :
yum -y install epel-releaseyum -y install yum-prioritiesÉditez /etc/yum.repos.d/epel.repo…
nano /etc/yum.repos.d/epel.repo… et ajoutez la ligne priority=10 à la section [epel] :
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
[...]Ensuite, nous mettons à jour nos paquets existants sur le système :
yum -y updateMaintenant, nous installons quelques paquets logiciels qui sont nécessaires plus tard :
yum -y groupinstall 'Development Tools'5 Quota
(Si vous avez choisi un schéma de partitionnement différent de celui que j’ai fait, vous devez ajuster ce chapitre afin que le quota s’applique aux partitions où vous en avez besoin.)
Pour installer le quota, nous exécutons cette commande :
yum -y install quotaMaintenant, nous vérifions si le quota est déjà activé pour le système de fichiers où le site web (/var/www) et les données maildir (var/vmail) sont stockés. Dans cet exemple, j’ai une grande partition racine, donc je cherche ‘ / ‘ :
mount | grep ' / '[root@server1 ~]# mount | grep ' / '
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,noquota)
[root@server1 ~]#Si vous avez une partition /var séparée, utilisez :
mount | grep ' /var 'à la place. Si la ligne contient le mot “ noquota “, alors procédez avec les étapes suivantes pour activer le quota.
Activation du quota sur la partition / (racine)
Normalement, vous activeriez le quota dans le fichier /etc/fstab, mais si le système de fichiers est le système de fichiers racine “/“, alors le quota doit être activé par un paramètre de démarrage du noyau Linux.
Éditez le fichier de configuration grub :
nano /etc/default/grubcherchez la ligne qui commence par GRUB_CMDLINE_LINUX et ajoutez rootflags=uquota,gquota aux paramètres de ligne de commande afin que la ligne résultante ressemble à ceci :
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet rootflags=uquota,gquota"et appliquez les modifications en exécutant la commande suivante.
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg_bak
grub2-mkconfig -o /boot/grub2/grub.cfget redémarrez le serveur.
rebootMaintenant, vérifiez si le quota est activé :
mount | grep ' / '[root@server1 ~]# mount | grep ' / '
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,usrquota,grpquota)
[root@server1 ~]#Lorsque le quota est actif, nous pouvons voir “ usrquota,grpquota “ dans la liste des options de montage.
Activation du quota sur une partition /var séparée
Si vous avez une partition /var séparée, alors éditez /etc/fstab et ajoutez ,uquota,gquota à la partition / ( /dev/mapper/centos-var) :
nano /etc/fstab
#
# /etc/fstab
# Créé par anaconda le dim 21 sep 2014 16:33:45
#
# Les systèmes de fichiers accessibles, par référence, sont maintenus sous '/dev/disk'
# Voir les pages de manuel fstab(5), findfs(8), mount(8) et/ou blkid(8) pour plus d'infos
#
/dev/mapper/centos-root / xfs defaults 1 1
/dev/mapper/centos-var /var xfs defaults,uquota,gquota 1 2
UUID=9ac06939-7e43-4efd-957a-486775edd7b4 /boot xfs defaults 1 3
/dev/mapper/centos-swap swap swap defaults 0 0Ensuite, exécutez
mount -o remount /varquotacheck -avugm
quotaon -avugpour activer le quota. Lorsque vous obtenez une erreur indiquant qu’il n’y a pas de partition avec quota activé, redémarrez le serveur avant de continuer.
6 Installer Apache, MySQL, phpMyAdmin
Nous pouvons installer les paquets nécessaires avec une seule commande :
yum -y install ntp httpd mod_ssl mariadb-server php php-mysql php-mbstring phpmyadminPour s’assurer que le serveur ne peut pas être attaqué par la vulnérabilité HTTPOXY, nous allons désactiver l’en-tête HTTP_PROXY dans apache globalement.
Ajoutez la règle d’en-tête apache à la fin du fichier httpd.conf :
echo "RequestHeader unset Proxy early" >> /etc/httpd/conf/httpd.confEt redémarrez httpd pour appliquer le changement de configuration.
service httpd restart Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.