Un serveur parfait sous CentOS 7.4 avec Apache, Postfix, Dovecot, Pure-FTPD, BIND et ISPConfig 3.1
Installer votre serveur sous CentOS 7.4 et et ISPConfig 3.1
Ce tutoriel montre l’installation de ISPConfig 3.1 sur n serveur CentOS 7.4 (64Bit). ISPConfig est une interface de gestion de serveur qui vous permet de configurer les services suivants depuis un navigateur : le serveur web Apache ou Nginx, le serveur mail Postfix, MySQL, le serveur de nom BIND PureFTPd, SpamAssassin, ClamAV, Mailman et bien d'autres encore.
1. Pré-requis
Installer votre serveur
Pour installer un tel système vous avez besoin des éléments suivants :
- Un système de serveur Centos 7.4 minimum. Cela peut être un serveur installé depuis un scratch comme cela est décrit dans notre tutoriel sur Centos 7, ou un serveur virtuel ou un serveur racine d’une autre entité qui a installé au minimum la version Centos 7.4.
- Une connexion internet haut-débit
2. Note préliminaire
Dans ce tutoriel j’utilise comme nom d’hôte server1.example.com avec l’adresse IP 192.168.0.100 et la passerelle réseau 192.168.0.1. Ces paramètres seront différents vous concernant et vous devrez donc les remplacer par les vôtres.
Merci de noter que HHVM et XMPP ne sont pas encore pris en charge dans ISPConfig pour la plateforme CentOS. Si vous voulez administrer un serveur de Chat XMPP à partir de ISPConfig ou utiliser HHVM (Hip Hop Virtual Machine) dans un site web ISPConfig, alors merci d’utiliser Debian ou Ubuntu 16.04 comme serveur OS à la place de CentOS 7.4.
3. Preparez le serveur
Définissez la configuration du clavier
Dans l’éventualité où la configuration du clavier du serveur n’est pas compatible avec votre clavier, vous pouvez migrer vers le bon clavier (dans mon cas "de" pour une configuration de clavier en allemand), avec la commande localectl:
localectl set-keymap de
Pour obtenir la liste de toutes les claviers possibles, exécutez:
localectl list-keymaps
Je veux installer ISPConfig à la fin de ce tutoriel, ISPConfig est livré avec le pare feu Bastille que je vais donc utiliser. En conséquence je déscative le pare feu par défaut de CentOS maintenant.. Bien sûr, vous êtes libre de laisser le pare feu CentOS et de le configure selon vos besoins (mais ensuite vous ne pourrez plus utiliser ultérieurement tout autre pare feu car cela risquerait d’interférer probablement avec celui de CentOS).
Exécutez...
yum -y install net-tools
systemctl stop firewalld.service
systemctl disable firewalld.service
pour arrêter et désactiver CentOS. Cela est normal quand vous avez des erreurs à ce niveau, cela veut juste dire que le pare feu n’a pas été installé.
Vous devez alors verifier que le pare feu a réellement été désactivé. Pour faire cela, exécutez la commande :
iptables -L
Le résultat 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 ~]#
Maintenant je vais installer l’éditeur de configuration de réseau "nano" que je vais utilizer dans les prochaines étapes pour éditer les dossiers de configuration :
yum -y install nano wget NetworkManager-tui
Si vous n’aviez pas configuré votre carte réseau pendant l’installation, vous pouvez le faire maintenant. Exécutez...
nmtui
... et allez à Edit a connection:
Sélectionnez votre interface réseau :
Puis complétez les détails de votre réseau - désactivez DHCP et complétez le dans une adresse IP statique, un netmask, votre passerelle, et un ou deux noms de serveurs, et ensuite choisissez Ok:
Ensuite sélectionnez OK pour confirmer les changements effectués dans les sélections de réseau.
Et sélectionnez Quit pour fermer l’outil de configuration de réseau nmtui.
Vous devrez executer
ifconfig
maintenant pour verifier que l’installateur détient bien votre adresse IP :
[root@localhost ~]# ifconfig
ens33: flags=4163 mtu 1500
inet 192.168.0.100 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::20c:29ff:fe1a:3d8e prefixlen 64 scopeid 0x20
ether 00:0c:29:1a:3d:8e txqueuelen 1000 (Ethernet)
RX packets 184972 bytes 256696909 (244.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 62983 bytes 7236189 (6.9 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 1 (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
[root@localhost ~]#
Si votre carte réseau n’apparaît pas ici, alors c’est qu’elle n’a pas été activée, ouvrez le fichier /etc/sysconfig/network-scripts/ifcfg-eth0
nano /etc/sysconfig/network-scripts/ifcfg-ens33
et sélectionnez ONBOOT avec oui (yes):
[...]
ONBOOT=yes
[...]
Et redémarrez le serveur.
Vérifiez que votre /etc/resolv.conf indique bien tous les noms de serveur que vous aviez préalablement configurés :
cat /etc/resolv.conf
Si des noms de serveurs sont manquants, exécutez
nmtui
et ajoutez à nouveau les noms de serveurs manquants.
Maintenant en route pour la configuration...
Ajustements/etc/hôtes et /etc/nom d’hôte
Ensuite, on va éditer /etc/hosts. Faites en sorte que cela ressemble à 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
Définissez le nom d’hôte dans le fichier /etc/hostname. Le fichier doit contenir la totalité du nom de domaine retenu (e.g. server1.example.com dans mon cas) et pas uniquement le nom raccourci comme "server1". Ouvrez le fichier avec l’éditeur nano :
nano /etc/hostname
et définissez le nom d’hôte dans votre fichier.
server1.example.com
Enregistrez le fichier et sortrez de nano
Désactivez SELinux
SELinux est une extension de sécurité CentOS qui doit fournir une sécurité étendue. A mon avis, vous n’avez pas besoin de configure un système sécurisé, car cela cause généralement plus de problems que d’avantages (pensez à cela après avoir passé une semaine à rechercher les erreurs pare que certains services n’auront pas fonctionnés comme attendu et alors vous trouverez que finalement tout était ok, c’est seulement SELinus qui causait le problème). En consequence, je le désactive (ceci est obligatoire si vous voulez installer plus tard ISPConfig).
Editez /etc/selinux/config and set SELINUX=disabled:
nano /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
Après, vous devez redémarrer le système :
reboot
4.Activez des répertoires additionnels et certains logiciels
En premier, on importe les clés GPG pour les packs de logiciels :
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
Ensuite on active le répertoire EPEL dans notre système CentOS car beaucoup de packs que nous allons installer durant le processus ne sont pas valables dans le répertoire CentOS 7:
yum -y install epel-release
yum -y install yum-priorities
Editez /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, on actualise les packs existants sur le système :
yum -y update
Maintenant on installe certains packs de logiciels dont on aura besoin plus tard :
yum -y groupinstall 'Development Tools'
5. Quota
(Si vous avez choisi un schéma de division différent du mien, vous devez ajuster ce chapitre de telle sorte que Quota applique ces séparations là où vous en avez besoin)
Pour installer Quota, on execute cette commande :
yum -y install quota
A présent on vérifie que Quota est déjà actif pour le système de fichiers où sont stockés le site web (/var/www) et la base maildir (var/vmail). Dans l’exemple sélectionné, j’ai une grosse division racine, c’est pourquoi 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 séparation distincte /var, alors utilisez :
mount | grep ' /var '
à la place. Si la ligne contient le mot "noquota", alors suivez les étapes suivantes pour activer Quota.
Activez Quota sur la séparation / (root)
Normalement vous devez activer Quota dans le fichier /etc/fstab, mais si le système de fichier est le système racine "/", alors Quota doit être activé par un paramètre de démarrage de Linux Kernel.
Editez le fichier de configuration Grub :
nano /etc/default/grub
recherchez le fichier de la ligne qui commence par GRUB_CMDLINE_LINUX et ajoutez rootflags=uquota,gquota aux paramètres de la ligne de commande, afin que le résultat apparaisse comme ceci :
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet rootflags=uquota,gquota"
Et appliquez les changement 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 verifiez que Quota est activé :
mount | grep ' / '
[root@server1 ~]# mount | grep ' / '
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,usrquota,grpquota)
[root@server1 ~]#
Quand Quota est actif, on peut voir "usrquota,grpquota" dans la liste d’option de support.
Activez Quota Enabling sur une séparation /var
Si vous avez une séparation /var distincte, alors éditez /etc/fstab et ajouteze,uquota,gquota à la / division (/dev/mapper/centos-var):
nano /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sun Sep 21 16:33:45 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/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 Quota. Quand vous avez une erreur indiquant qu’il n’y a pas de division avec Quota actif, alors redémarrez le serveur avant de commencer.
6. Installez Apache, MySQL, phpMyAdmin
On peut installer les packs nécessaires avec une seule commande :
yum -y install ntp httpd mod_ssl mariadb-server php php-mysql php-mbstring phpmyadmin
Pour s’assurer que le serveur ne pourra pas être attaqué au travers de la fragilité de HTTPOXY, on va désactiver le header HTTP_PROXY dans tout Apache.
Ajoutez la règle du header Apache a la fin du fichier httpd.conf :
echo "RequestHeader unset Proxy early" >> /etc/httpd/conf/httpd.conf
et redémarrez httpd pour appliquer la configuration modifiée.
service httpd restart
Il y a 0 commentaire(s) pour cette article
Laisser un commentaire
Nous apprécions tout commentaire posté dans l'article du blog et nous nous y prêteront attention tout particulièrement.