Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Red Hat Enterprise Linux - CentOS
  3. Démarrage du système
Extrait - Red Hat Enterprise Linux - CentOS Mise en production et administration de serveurs (4e édition)
Extraits du livre
Red Hat Enterprise Linux - CentOS Mise en production et administration de serveurs (4e édition) Revenir à la page d'achat du livre

Démarrage du système

La séquence de démarrage

1. Pourquoi il faut la connaître

Pour d’autres systèmes, il n’est pas nécessaire de connaître la séquence de démarrage, qui reste relativement opaque. Pour Linux cependant, il est utile de connaître les différentes étapes de démarrage, depuis le moment où vous appuyez sur le bouton ON de la machine, jusqu’à l’apparition d’une invite de login, ou connexion. Que s’est-il passé entre-temps ?

Les raisons de se poser cette question sont de plusieurs ordres. D’abord, en tant qu’administrateur système, il peut être important d’avoir une vue d’ensemble du fonctionnement du système, afin d’en appréhender la philosophie.

Ensuite, pour obtenir une configuration fine de votre système, il vous faudra bien sûr intervenir sur des éléments de la vie du système en production, c’est-à-dire une fois qu’il est démarré. Cependant, tôt ou tard (relativement tôt en fait), vous serez amené à modifier aussi le démarrage de la machine.

Vous devrez adapter le système à l’utilisation requise. Par exemple, quels services voulez-vous lancer au démarrage ? Il faudra dans ce cas modifier des fichiers dans /etc/systemd/.

Peut-être voudrez-vous améliorer les performances de votre système ? Ou encore renforcer sa sécurité ? Dans ce cas, il faudra peut-être mettre un mot de passe au niveau du chargeur de démarrage, ou choisir le type de noyau utilisé à l’initialisation du système.

Au final, c’est aussi pour le dépannage qu’il faut connaître le processus de démarrage : pourquoi tel service ne se lance-t-il pas ?...

BIOS

Cette partie ne concerne pas directement Red Hat Enterprise Linux, mais elle intervient dans le démarrage de la machine, et donc dans l’administration de votre serveur.

Le BIOS (Basic Input/Output System, ou système élémentaire d’entrée/sortie) est un programme se trouvant dans une mémoire en lecture seule, dont le principal objectif est de fournir un accès aux différents éléments physiques de la machine. Il peut être utilisé par le système d’exploitation, mais on le connaît surtout pour son utilisation au démarrage de la machine.

Lorsque vous appuyez sur le bouton ON du serveur, le BIOS effectue un POST (Power-On Self Test, autotest d’allumage). La mémoire est vérifiée, les disques et autres composants sont déclarés, des diagnostics sont effectués.

Si tout va bien, le BIOS lance alors le système d’exploitation sur le périphérique d’amorçage, c’est-à-dire le périphérique qui va lancer le système d’exploitation. En général, il cherche d’abord sur le lecteur de disquette et de CD-ROM, puis sur le disque dur.

L’ordre des périphériques d’amorçage est configuré par l’administrateur dans l’interface du BIOS. Cette interface est accessible au démarrage, souvent en appuyant sur la touche [Suppr] ou sur une combinaison de touches.

Précisément, sur le périphérique d’amorçage, l’« amorce » que l’on recherche pour le lancement du système d’exploitation s’appelle un bootloader (ou chargeur de démarrage).

Le bootloader installé et utilisé par Red Hat Enterprise Linux s’appelle GRUB.

UEFI

L’UEFI, de plus en plus répandu sur les machines récentes, se pose en successeur du BIOS. L’UEFI apporte des fonctionnalités qui devenaient nécessaires, comme une interface haute résolution, le support intégré du réseau et la capacité d’accéder directement à la partition de boot, contrairement au BIOS qui doit passer par une zone spécifique et unique du disque dur, invisible de l’utilisateur.

La possibilité d’avoir plusieurs partitions de boot, directement accessibles depuis l’UEFI, sous-entend l’utilisaton de GPT. Cette capacité autorise une cohabitation facilité de différents systèmes d’exploitation sur le disque, et la sélection du système d’exploitation directement à partir de l’UEFI et non à partir du chargeur de démarrage (même si cela reste possible).

L’autre atout majeur amené avec l’UEFI est le secure boot, dont l’objectif est de déjouer l’installation d’un rootkit par un pirate, en installant un noyau contenant des failles de sécurité à la place du noyau légitime.

Le secure boot (démarrage sécurisé) demande ainsi le lancement d’un noyau signé avec une clé privée autorisée. L’UEFI contient un jeu de clés publiques officielles correspondantes. Lorsque cette fonctionnalité est activée, un noyau non signé ne peut être exécuté.

Il est bien entendu que seuls les éditeurs officiels de systèmes d’exploitation possèdent cette clé privée. Ainsi, tous les noyaux officiels fournis par Red Hat sont signés, et vous n’avez rien à faire en tant qu’administrateur, sinon qu’à activer le...

Chargeur de démarrage GRUB

1. Présentation

Beaucoup de bootloaders ne sont en général qu’un morceau de code se trouvant au début du disque dur d’amorçage, servant à lancer directement le système d’exploitation unique installé sur le système. Pour cette raison, ils ne sont souvent pas remarqués par l’utilisateur.

GRUB, quant à lui, permet de sélectionner au démarrage un des systèmes d’exploitation présents sur le disque dur. S’il s’agit de Linux, il permet également de choisir le noyau à démarrer, voire même de lui passer des options.

Par exemple, GRUB pourrait présenter les choix suivants :

  • Red Hat Linux

  • Red Hat Linux en mode maintenance (option passée au noyau)

  • Red Hat Linux SMP (choix d’un autre noyau avec support multiprocesseur)

  • Microsoft Windows 7 (choix d’un autre système d’exploitation)

Ainsi, GRUB (GRand Unified Bootloader, chargeur de démarrage unifié) ne se limite pas à un système d’exploitation en particulier, même s’il est le plus souvent installé par des systèmes Linux comme Red Hat Enterprise Linux.

GRUB présente beaucoup d’autres avantages, parmi lesquels la possibilité de pouvoir modifier les options de démarrage du système.

Il en existe deux versions :

  • GRUB 0.9x : première version de GRUB, installée sur RHEL 5/6, appelée également GRUB Legacy (GRUB héritage).

  • GRUB 2 : réécriture, à partir de RHEL 7.

2. GRUB Legacy

Level 1 et Master Boot Record

Le MBR, ou Zone Amorce en français, est le premier secteur du disque dur, d’une taille de 512 octets. Il contient principalement le bootloader de niveau 1 de GRUB et la table de partitions du disque....

Lancement du noyau et du processus père

1. Rôle du noyau (kernel)

Une fois le système d’exploitation choisi, s’il s’agit d’un système Linux, le chargeur de démarrage lance le noyau, qui prend la suite des opérations de démarrage.

Comme son nom l’indique, le noyau est l’élément essentiel du système d’exploitation. Son rôle est de faire l’interface entre le matériel, la machine, et le logiciel, c’est-à-dire les composants logiciels du système d’exploitation comme le shell (pour le contrôle de la machine) et les différents programmes exécutés.

En tant qu’interface, le noyau fournit une couche d’abstraction aux logiciels. En effet, les logiciels ne savent pas gérer directement la mémoire, le processeur et les supports de stockage. C’est donc à lui de fournir des branchements « universels » aux logiciels pour accéder aux ressources physiques. Bien sûr, grâce au noyau, les logiciels peuvent également communiquer entre eux.

Ainsi, le noyau est un ensemble de mécanismes gérant :

  • des fonctions :

  • la gestion des systèmes des fichiers,

  • la gestion des processus (des logiciels),

  • les fonctions réseau : mise en œuvre de IPv4 et IPv6, pare-feu, etc.

  • etc.

Ces fonctions peuvent faire partie intégrante du noyau, ou être ajoutées dynamiquement en chargeant des modules d’extension.

  • des accès aux composants matériels par l’intermédiaire de pilotes :

  • supports de stockage (disques durs SATA/SCSI, USB, etc.),

  • interfaces réseau,

  • carte son,

  • etc.

Les pilotes standards font partie intégrante du noyau (par exemple le support du SATA), ou peuvent être chargés.

Le chargeur de démarrage place...

Lancement du système

1. Avec /sbin/init (RHEL 5 et 6)

a. Démarrage général

Attention : cette partie couvre une fonctionnalité de RHEL maintenant obsolète. Cependant, nous la développons dans cet ouvrage, moins pour la culture générale, qui reste intéressante, que parce que certaines des commandes expliquées ci-après existent toujours sur les versions récentes de RHEL, pour une compatibilité historique. L’utilisateur ne sera donc pas surpris de rencontrer la commande service par exemple, même s’il est absolument déconseillé de l’utiliser.

Le premier processus lancé par le noyau est /sbin/init. Comme son nom l’indique, c’est le programme initial qui va lancer tous les autres programmes, suivant un ordre bien déterminé. En tant que programme initial, son numéro de processus est le 1, et il est le père (ou le grand-père, indirectement) de tous les autres processus qui tourneront ensuite sur la machine.

/sbin/init lance successivement plusieurs scripts de démarrage. La première partie de ces scripts définit la configuration générale du système. La deuxième partie concerne des scripts qui sont lancés en fonction du niveau d’exécution de la machine, ce dont nous parlons plus en détail après.

L’ensemble de ces scripts de démarrage se trouve dans le répertoire /etc/rc.d/.

Le premier script lancé par /sbin/init est /etc/rc.d/rc.sysinit qui configure plusieurs éléments, par exemple :

  • montage dans le système de fichiers des environnements virtuels processeur (/proc) et périphériques système (/sys) ;

  • chargement des pilotes d’accès aux périphériques externes sous forme de modules complémentaires...

Éteindre le système

L’extinction du système s’effectue avec la commande /sbin/shutdown. Les deux utilisations principales de shutdown sont :

  • Éteindre la machine :

shutdown -h now 
  • L’option -h signifie halt : la machine est éteinte après l’arrêt du système d’exploitation.

  • now : il est possible de préciser l’heure d’extinction. now signifie que le système doit s’arrêter maintenant.

  • Il est possible d’utiliser la commande halt.

  • Redémarrer la machine :

shutdown -r now 
  • L’option -r signifie reboot : la machine est redémarrée après l’extinction du système d’exploitation.

  • Il est possible d’utiliser la commande reboot.

  • Programmer une extinction ou un redémarrage : précisez simplement l’heure ou le délai (précédé d’un +).

Pour effectuer un redémarrage à 07:05 (précisez l’heure au format 24h) :

shutdown -r 07:05 

Pour éteindre la machine dans 10 minutes :

shutdown +10 

Pour annuler un shutdown, utilisez l’option -c (cancel, abandonner) :

shutdown -c 

L’extinction du système d’exploitation doit bien sûr être réalisée proprement. En plus d’éteindre les services, l’extinction du système démonte les partitions, garantissant qu’aucune donnée n’est corrompue.

Sous RHEL, lorsque la commande shutdown est tapée, le système fait un poweroff par défaut : la machine est éteinte.

Notions de cryptographie

La cryptographie est la discipline consistant à renforcer la sécurité informatique à l’aide des mathématiques. Elle fait appel à plusieurs principes qui sont utilisés à de nombreux endroits sur un système d’exploitation : pour l’authentification des utilisateurs bien sûr, mais aussi pour l’authentification machine, pour les VPN, pour la vérification des logiciels, pour le démarrage du système (UEFI), etc. :

  • La cryptographie symétrique, ou chiffrement à clé secrète partagée.

  • La cryptographie asymétrique, ou chiffrement à clé publique/privée.

  • Le hachage, ou fingerprinting (empreinte digitale).

  • La signature.

  • Les certificats.

  • La validation par tiers de confiance.

Ces principes visent à atteindre les objectifs suivants :

  • Confidentialité : cacher les données, les chiffrer.

  • Authenticité : vérifier qu’une personne est celle qu’elle prétend être (et donc qu’elle est habilitée à voir les données).

  • Intégrité : vérifier que les données n’ont pas été modifiées.

Cryptographie symétrique

La cryptographie symétrique est la forme la plus connue. Elle consiste à utiliser la même clé pour chiffrer et déchiffrer des données. Le chiffrement de manière générale fait appel à deux éléments : un algorithme de chiffrement et une clé de chiffrement.

L’algorithme est la formule mathématique utilisée pour obtenir un message codé (chiffré) à partir d’un message en clair. L’objectif de l’algorithme est d’être robuste, c’est-à-dire qu’il ne doit présenter...