Cette page décrit de manière succincte l’installation et la configuration de CentOS 6 sur un serveur de réseau local (Local Area Network). Pour plus de détails, lire la documentation officielle. CentOS 6 est officiellement supporté jusqu’au 30 novembre 2020. On choisira cette branche sur du matériel obsolète qui ne supporte pas un OS 64-bits. L’installateur de CentOS requiert au moins 632 Mo de RAM.
Note importante : l’article initialement publié en janvier 2017 a été entièrement revu et corrigé. La procédure de post-installation est maintenant bien plus simple, étant donné qu’elle est à peu près entièrement scriptée.
- Support d’installation
- Démarrage
- Réseau
- Partitionnement
- Choix des paquets
- Récupérer le script de post-installation
- Élaguer le système
- Lancer le script de post-installation
- Configurer le réseau
- Désactiver les services inutiles
- Créer un utilisateur
- Configurer le pare-feu
Support d’installation
Pour l’installation d’un serveur, on pourra choisir le CD minimal.
CentOS-6.9-i386-minimal.iso
Sur les machines dépourvues de lecteur optique, il faudra confectionner une clé USB d’installation. Depuis CentOS 6.5, l’image ISO est hybride et peut s’écrire directement sur une clé.
# dd if=CentOS-6.9-i386-minimal.iso of=/dev/sdX
Démarrage
Débrancher clés USB, disques externes et autres périphériques amovibles. Autrement l’installateur les proposera au formatage.
Depuis la version 6.0, l’installateur en mode texte est tronqué de quelques fonctionnalités essentielles comme le partitionnement personnalisé. Il faut donc utiliser l’installateur graphique proposé par défaut.
Réseau
Le réseau n’est pas activé par défaut, il faut donc songer à l’activer explicitement. Cliquer sur Configurer le réseau, sélectionner l’interface réseau que l’on souhaite configurer, cliquer sur Modifier et cocher la case Connecter automatiquement.
Partitionnement
Schéma de partitionnement :
- un disque RAID pour
/boot
, de 200 Mo, formaté enext2
- un disque RAID pour la partition
swap
, équivalent à la RAM disponible - un disque RAID pour la partition principale, formaté en
ext4
Choix des paquets
Si l’on installe à partir du DVD, opter pour la sélection Minimal.
Récupérer le script de post-installation
L’utilitaire git
ne fait pas partie d’une installation par défaut. Il va donc falloir l’installer.
# yum install git
Ensuite, récupérer le contenu de mon dépôt Github.
# cd # git clone https://github.com/kikinovak/centos-6-server-lan
Si l’on souhaite récupérer le dépôt en lecture/écriture, il faudra invoquer la commande comme ceci.
# git clone https://kikinovak@github.com/kikinovak/...
Élaguer le système
Dans certains cas, il est souhaitable d’élaguer une installation existante pour revenir à un système de base plus épuré. Pour ce faire, je fournis le script elaguer.sh
à la racine du répertoire centos-6-server-lan
. Ce script se charge de supprimer tous les paquets qui ne font pas partie du système de base à proprement parler, c’est-à-dire l’équivalent de ce que l’on obtient lorsqu’on effectue une installation minimale.
# cd centos-6-server-lan # ./elaguer.sh
Le script se sert de la liste de paquets centos-6-server-lan/config/pkglists/minimal.txt
qui a été établie auparavant moyennant la commande suivante.
# rpm -qa --queryformat '%{NAME}\n' | sort > minimal.txt
Afficher la vue d’ensemble sur les groupes de paquets.
# yum grouplist | less
Lancer le script de post-installation
Le répertoire centos-6-server-lan
contient un script postinstall.sh
. Lancer ce script.
# cd centos-6-server-lan # ./postinstall.sh
L’affichage du script est assez laconique. Pour en savoir un peu plus sur le détail et la progression des opérations, on peut ouvrir un deuxième terminal et afficher le fichier journal “à chaud”, comme ceci.
# tail -f /tmp/postinstall.log
Le script se charge automatiquement des opérations suivantes.
- Effectuer la mise à jour initiale du système.
- Désactiver l’IPv6.
- Personnaliser le shell Bash pour
root
et les utilisateurs. - Personnaliser la configuration de Vim.
- Définir l’anglais comme langue système.
- Configurer l’affichage de la console.
- Configurer les dépôts de paquets officiels de manière prioritaire.
- Configurer les dépôts de paquets tiers EPEL et ELRepo.
- Installer une panoplie d’outils système.
Configurer le réseau
Le répertoire centos-6-server-lan/config/network-scripts
contient quelques fichiers modèles pour la configuration réseau.
Dans l’exemple, l’interface eth0
se situe côté Internet.
# /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet ONBOOT=yes BOOTPROTO=static IPADDR=192.168.2.5 NETMASK=255.255.255.0
Côté réseau local, c’est l’interface eth1
.
# /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 TYPE=Ethernet ONBOOT=yes BOOTPROTO=static IPADDR=192.168.3.1 NETMASK=255.255.255.0
L’adresse IP de la passerelle ainsi que le nom d’hôte seront notés dans /etc/sysconfig/network
.
# /etc/sysconfig/network NETWORKING=yes HOSTNAME=amandine GATEWAY=192.168.2.1
Renseigner le ou les serveurs DNS.
# /etc/resolv.conf nameserver 192.168.2.1
Corriger la configuration du nom d’hôte.
# /etc/hosts 127.0.0.1 localhost.localdomain localhost 192.168.3.1 amandine.sandbox.lan amandine
Désactiver les services inutiles
Lancer l’interface de configuration des services au démarrage.
# ntsysv --level 2345
Désactiver quelques services inutiles selon la configuration.
ip6tables
kdump
lvm2-monitor
(si l’on n’utilise pas le LVM)postfix
Créer un utilisateur
Pour éviter les connexions en root
depuis l’extérieur sur un serveur, on peut créer un utilisateur non privilégié si cela n’a pas été fait durant l’installation.
# useradd -c "Microlinux" microlinux # passwd microlinux # usermod -a -G wheel microlinux
Configurer le pare-feu
Dans la configuration par défaut, iptables
est installé et le service correspondant est activé.
# rpm -q iptables iptables-1.4.7-16.el6.i686 # service iptables status ...
Sous CentOS, la meilleure solution consiste à éditer un simple script Bash pour iptables
, en enregistrant la configuration à la fin du script.
# /sbin/service iptables save
Le répertoire centos-6-server-lan/config/firewall
contient deux fichiers modèles pour la configuration du pare-feu.
firewall-gateway.sh
pour un serveur faisant office de passerellefirewall-standalone.sh
pour une machine standalone
Copier le script qui convient dans un endroit approprié en le renommant, par exemple /usr/local/sbin/firewall.sh
. Adapter le script à la configuration réseau de la machine et aux services que l’on compte héberger, puis.
# firewall.sh
Afficher la configuration du pare-feu.
# iptables -L -vn
Au redémarrage du serveur, les règles iptables
sont bien restaurées, mais le relais des paquets est désactivé. Pour l’activer par défaut, on peut éditer /etc/sysctl.conf
comme ceci.
# /etc/sysctl.conf # Controls IP packet forwarding net.ipv4.ip_forward = 1