Serveur CentOS · 8 min read · Sep 22, 2025

Le Serveur Parfait – CentOS 7 (Apache2, Dovecot, ISPConfig 3)

Ce tutoriel montre comment préparer un serveur CentOS 7 x86_64 pour l’installation d’ISPConfig 3 et comment installer ISPConfig 3. ISPConfig 3 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. Depuis la version 3.0.4, ISPConfig prend en charge le serveur web nginx en plus d’Apache ; ce tutoriel couvre la configuration d’un serveur qui utilise Apache, pas nginx.

Manuel ISPConfig 3

Pour apprendre à utiliser ISPConfig 3, je vous recommande fortement de télécharger le Manuel ISPConfig 3.

Sur plus de 300 pages, il couvre le concept derrière ISPConfig (administrateur, revendeurs, clients), explique comment installer et mettre à jour ISPConfig 3, inclut une référence pour tous les formulaires et champs de formulaire dans ISPConfig avec des exemples d’entrées valides, et fournit des tutoriels pour les tâches les plus courantes dans ISPConfig 3. Il explique également comment rendre votre serveur plus sécurisé et comprend une section de dépannage à la fin.

1 Exigences

Pour installer un tel système, vous aurez besoin des éléments suivants :

  • Un système serveur minimal CentOS 7. Cela peut être un serveur installé à partir de zéro comme décrit dans notre tutoriel sur le serveur minimal CentOS 7 ou un serveur virtuel ou serveur dédié d’une société d’hébergement qui a un minimum d’installation CentOS 7.
  • 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.254. Ces paramètres peuvent différer pour vous, donc vous devez les remplacer là où cela est approprié.

3 Définir la disposition du clavier

L’installateur CentOS 7 actuel a un bug, donc vous pourriez vous retrouver avec une disposition de clavier différente dans le shell de celle sélectionnée lors de l’installation. Si vous rencontrez ce bug, 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 de

Pour obtenir une liste de toutes les dispositions de clavier disponibles, exécutez :

localectl list-keymaps

Je veux installer ISPConfig à la fin de ce tutoriel qui vient avec son propre pare-feu. C’est pourquoi je désactive maintenant le pare-feu par défaut de CentOS. Bien sûr, vous êtes libre de le laisser 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 probablement avec le pare-feu de CentOS).

Exécutez…

systemctl stop firewalld.service  
systemctl disable firewalld.service

Maintenant, je vais installer quelques outils réseau de base et un éditeur basé sur le shell dont nous avons besoin dans les étapes suivantes :

yum -y install nano wget net-tools NetworkManager-tui

Si 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

ifconfig

maintenant pour vérifier si l’installateur a correctement 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 n’est pas activée au démarrage. Dans ce cas, ouvrez le fichier /etc/sysconfig/network-scripts/ifcfg-eth0

nano /etc/sysconfig/network-scripts/ifcfg-ens33

et 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.conf

Si des serveurs de noms manquent, exécutez

nmtui

et ajoutez à nouveau les serveurs de noms manquants.

Maintenant, passons à la configuration…

4 Ajuster /etc/hosts

Ensuite, nous éditons /etc/hosts. Faites-le ressembler à ceci :

nano /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4  
192.168.1.100   server1.example.com     server1  
  
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

5 Configurer le Pare-feu

(Vous pouvez sauter ce chapitre si vous avez déjà désactivé le pare-feu à la fin de l’installation du système de base.)

Je veux installer ISPConfig à la fin de ce tutoriel qui vient avec son propre pare-feu. C’est pourquoi je désactive maintenant le pare-feu par défaut de CentOS. Bien sûr, vous êtes libre de le laisser 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 probablement avec le pare-feu de CentOS).

Exécutez

systemctl stop firewalld.service  
systemctl disable firewalld.service

et désactivez le pare-feu.

Pour vérifier que le pare-feu a vraiment été désactivé, vous pouvez exécuter

iptable -L

ensuite. La sortie devrait ressembler à ceci :

[root@server1 ~]# iptables -L  
Chain INPUT (policy ACCEPT)  
target prot opt source destination
Chain FORWARD (policy ACCEPT)  
target prot opt source destination
Chain OUTPUT (policy ACCEPT)  
target prot opt source destination

Ou utilisez la commande firewall-cmd :

firewall-cmd --state
[root@server1 ~]# firewall-cmd --state  
not running  
[root@server1 ~]#

6 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 voulez 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=targeted

Ensuite, nous devons redémarrer le système :

reboot

7 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 de CentOS 7 :

rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
yum -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=Paquets supplémentaires pour 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 update

Maintenant, nous installons quelques paquets logiciels qui sont nécessaires plus tard :

yum -y groupinstall 'Development Tools'

8 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 quota

Maintenant, 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.

Activer le 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/grub

cherchez 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="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos/root crashkernel=auto  vconsole.keymap=us 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.cfg

et redémarrez le serveur.

reboot

Maintenant, 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.

Activer le 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 sept 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 0

Ensuite, exécutez

mount -o remount /var
quotacheck -avugm  
quotaon -avug

pour activer le quota.

9 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 phpmyadmin
Share: X/Twitter LinkedIn

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

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