Installer un serveur dédié CentOS 7 chez Online

Logo CentOSDepuis quelques années, la société Online propose une gamme de serveurs dédiés à des prix extrêmement intéressants, notamment la Dedibox SC, qui vous permet de disposer d’un accès root sur votre propre machine à moins de dix euros par mois. Cet article décrit de manière succincte l’installation et la configuration de CentOS 7 sur une Dedibox de type SC ou Start LTS.

Note importante : l’article initialement publié en novembre 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.

Dedibox Online

Installation de CentOS

Dans un premier temps, il faut procéder au choix de la machine et du système d’exploitation.

  1. Se connecter à la console d’Online : https://console.online.net.
  2. Ouvrir le menu Serveur > Liste des serveurs.
  3. Sélectionner la machine > Administrer > Installer.
  4. Distributions serveur > CentOS 7.x 64bits > Installer CentOS.

Online propose un schéma de partitionnement par défaut, que nous allons modifier.

  1. Réduire la taille de la partition principale pour avoir un peu de marge.
  2. Augmenter la taille de la partition /boot : 500 Mo.
  3. La partition /boot sera formatée en ext2.
  4. Augmenter la taille de la partition d’échange en fonction de la RAM disponible.
  5. Remplir l’espace disponible pour la partition principale.

Voici ce que l’on obtient.

Partitionnement Dedibox

Sur une Dedibox Start LTS, on aura quelque chose comme ceci.

Partitionnement Dedibox RAID

L’écran subséquent permet de choisir le mot de passe root, de définir un utilisateur “commun mortel” et de choisir un mot de passe pour cet utilisateur. L’installateur impose une limite de 15 caractères alphanumériques. Le cas échéant, on peut choisir un mot de passe provisoire ici et définir quelque chose de plus robuste à la première connexion.

L’interface affiche ensuite un récapitulatif des paramètres réseau de la machine. On peut éventuellement noter ces paramètres pour les avoir sous la main.

  • Nom d’hôte
  • Adresse IP
  • Masque de sous-réseau
  • IP de la passerelle
  • DNS primaire et secondaire

Il ne reste plus qu’à cliquer sur Effacer l’intégralité de mes disques durs pour procéder à l’installation.

Connexion initiale

L’installation du système initial dure un peu plus d’une heure. La première connexion SSH montre qu’il y a déjà pas mal d’activité autour de notre serveur.

There were 87 failed login attempts since the last successful login.

On vérifie si tous les paquets du système initial sont bien à jour.

[root@sd-100246 ~]# yum check-update
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: centos.serverspace.co.uk
 * extras: centos.serverspace.co.uk
 * updates: mirror.econdc.com

Apparemment, l’installateur de chez Online s’est chargé d’effectuer la mise à jour initiale, ce qui semble logique.

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-7-server-online

Élaguer l’installation initiale

Avant d’installer quoi que ce soit, on va épurer le système installé par Online pour revenir au strict minimum, c’est-à-dire l’équivalent de ce que l’on obtient sur une machine locale lorsqu’on opte pour une installation minimale. Pour faciliter cette tâche, je fournis le script elaguer.sh à la racine du répertoire centos-7-server-online. Ce script se charge de supprimer tous les paquets qui ne font pas partie du système de base à proprement parler. Notons que l’opération d’élagage supprime près de 200 paquets. On passe de près de 500 paquets dans la configuration d’origine à un système minimal constitué de près de 300 paquets et occupant un peu plus d’un gigaoctet d’espace disque.

# cd centos-7-server-online
# ./elaguer.sh

Le script se sert de la liste de paquets centos-7-server-online/config/pkglists/minimal.txt qui a été établie auparavant moyennant la commande suivante.

# rpm -qa --queryformat '%{NAME}\n' | sort > minimal.txt

Lancer le script de post-installation

Le répertoire centos-7-server-online contient un script postinstall.sh. Lancer ce script.

# cd centos-7-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.

  • Activer la gestion des Delta RPM.
  • 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.
  • Activer SELinux en mode renforcé.
  • Configurer les dépôts de paquets officiels de manière prioritaire.
  • Configurer le dépôt de paquets tiers EPEL.
  • Installer une panoplie d’outils système.
  • Supprimer les paquets inutiles.

Peaufiner la configuration réseau

La prochaine étape consiste à mettre un peu plus d’ordre et de clarté dans les fichiers de configuration réseau. Le répertoire /etc/sysconfig/network-scripts contient un fichier ifcfg-eth0 que nous pouvons rendre plus lisible.

# /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=163.172.220.174
NETMASK=255.255.255.0

La passerelle sera définie dans /etc/sysconfig/network.

# /etc/sysconfig/network
GATEWAY=163.172.220.1

Les deux serveurs DNS seront renseignés dans /etc/resolv.conf.

# /etc/resolv.conf
nameserver 62.210.16.6
nameserver 62.210.16.7

Le fichier /etc/hosts ressemblera à ceci.

# /etc/hosts
127.0.0.1       localhost.localdomain localhost
163.172.220.174 sd-100246.dedibox.fr sd-100246

Quant à /etc/hostname, il est censé contenir le nom d’hôte pleinement qualifié, et c’est tout. Veillez à ne surtout pas ajouter de commentaires dans ce fichier, sous peine de provoquer toute une série d’erreurs bizarres.

sd-100246.dedibox.fr

Agrémenter la console pour l’utilisateur initial

Le répertoire /etc/skel contient le profil par défaut pour les utilisateurs. On va récupérer ce profil pour l’utilisateur créé lors de l’installation.

# su - microlinux
$ cp -v /etc/skel/.bash* .
‘/etc/skel/.bash_logout’ -> ‘./.bash_logout’
‘/etc/skel/.bash_profile’ -> ‘./.bash_profile’
‘/etc/skel/.bashrc’ -> ‘./.bashrc’
$ source ~/.bashrc
$ exit

Installer un pare-feu personnalisé

Depuis la version 7.0, CentOS gère le pare-feu avec firewalld, qui est au pare-feu ce que NetworkManager est au réseau. Une couche d’abstraction à la sauce Red Hat, et qui ne nous servira pas à grand-chose. On préférera une configuration traditionnelle avec iptables. Dans un premier temps, vérifier si les paquets iptables-* sont installés.

# rpm -qa | grep iptables
iptables-1.4.21-13.el7.x86_64
iptables-services-1.4.21-13.el7.x86_64

Activer le service correspondant.

# systemctl enable iptables
# systemctl start iptables

Sous CentOS, la meilleure solution consiste à éditer un simple script Bash pour iptables, en enregistrant la configuration à la fin du script.

# /usr/sbin/service iptables save

Copier le script centos-7-server-online/config/firewall/firewall.sh dans un endroit approprié, par exemple /usr/local/sbin. Adapter le script à la configuration réseau de la machine et aux services que l’on compte héberger.

# firewall.sh

Afficher la configuration du pare-feu.

# iptables -L -vn

Régler les problèmes relatifs à SELinux

Afficher les alertes SELinux.

# sealert -a /var/log/audit/audit.log
100% done
found 2 alerts in /var/log/audit/audit.log

J’obtiens deux alertes. Je m’occupe d’abord de celle qui me semble le plus facilement gérable.

SELinux is preventing audispd from open access on the file 
/etc/ld.so.cache.
*****  Plugin restorecon (94.8 confidence) suggests   ******
If you want to fix the label. 
/etc/ld.so.cache default label should be ld_so_cache_t.
Then you can run restorecon. 
Do
# /sbin/restorecon -v /etc/ld.so.cache

Le contexte de sécurité a l’air correct.

# ls -Z /etc/ld.so.cache 
-rw-r--r--. root root unconfined_u:object_r:ld_so_cache_t:s0 
/etc/ld.so.cache

Je restaure le contexte par défaut comme indiqué.

# restorecon -v /etc/ld.so.cache 

Je vérifie si ça règle le problème.

# echo > /var/log/audit/audit.log
# systemctl reboot && exit

Après redémarrage, je relance un audit.

# sealert -a /var/log/audit/audit.log 
100% done
found 0 alerts in /var/log/audit/audit.log

 

Ce contenu a été publié dans CentOS, Documentation Microlinux, avec comme mot(s)-clé(s) , . Vous pouvez le mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.