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. Debian GNU/Linux - Services réseau
  3. Services réseau
Extrait - Debian GNU/Linux - Services réseau (DHCP, DNS, Apache, CUPS, NFS, Samba, Puppet, Nagios...) (Nouvelle édition)
Extraits du livre
Debian GNU/Linux - Services réseau (DHCP, DNS, Apache, CUPS, NFS, Samba, Puppet, Nagios...) (Nouvelle édition) Revenir à la page d'achat du livre

Administration du système d’exploitation Debian

Systèmes de fichiers

Les systèmes de fichiers permettent de stocker et d’organiser les données sur une mémoire non volatile afin de les enregistrer de façon permanente, ce qui permet de les retrouver après une mise hors tension de l’appareil.

1. Le partitionnement

Avant de créer votre système de fichiers, il convient de partitionner votre support de stockage, ce qui permettra plus de flexibilité ou de sécurité en fonction de vos besoins.

Les informations des partitions se trouvent dans le MBR pour les disques de moins de 2 téraoctets, ou dans le GPT (GUID Partition Table) pour les disques durs supérieurs à 2 téraoctets. Le GPT peut aussi être utilisé pour les disques de moins de 2 téraoctets.

Pour le partitionnement en MBR, on utilisera l’outil fdisk afin d’avoir un outil interactif.

Concernant le partitionnement GPT, l’outil interactif sera gdisk.

Il est également possible de créer des schémas de partition automatique en ligne de commande grâce à l’outil sfdisk, ce qui est très pratique lorsqu’on a besoin de créer des systèmes de partition à la volée, dans un script par exemple.

a. Repérer les partitions

Sous Linux, il existe une nomenclature bien spécifique pour désigner les partitions :

L’adressage d’une partition aura ce type de nomenclature : /dev/sda1.

Le répertoire /dev est dédié au périphérique (device en anglais), ensuite il faut décomposer sda1 :

Le ’s’ correspond à serial, pour accès en série.

Le ’d’ à disk, pour disque dur.

Et la troisième lettre, ici le ’a’ désigne l’ordre dans lequel le BIOS trouve les disques durs, donc ici le ’a’ correspond au premier disque et enfin le 1 est la première partition de ce disque.

Donc l’entrée /dev/sdc2 sera la deuxième partition du troisième disque dur.

Pour obtenir cette liste, il suffit de taper dans un terminal :


#cat /proc/partitions
 


major minor  #blocks  name 
 
   8        0  117220824 sda 
   8        1   83667968 sda1 
   8        2      ...

Gestion des utilisateurs

1. Gestion locale des utilisateurs

La gestion maîtrisée des comptes utilisateurs et des groupes constitue une tâche essentielle d’administration. Elle influe en effet sur la cohérence et la sécurité du système tant au niveau local qu’au niveau d’une collaboration de plusieurs machines sur le réseau.

Lors de l’installation ou de la configuration de la plupart des services réseau, il sera nécessaire de créer des comptes et des groupes dédiés afin que ces programmes ne s’exécutent pas sous l’identité root.

Voyons ici la manière de gérer les utilisateurs depuis une seule machine.

a. Le fichier /etc/passwd

Ce fichier doit être accessible en lecture pour tout le monde, car beaucoup de commandes ont besoin de pouvoir le lire. Chaque ligne du fichier décrit un compte utilisateur. Elle est constituée de sept champs séparés par le caractère : (deux points).


nom:mop:uid:gid:commentaire:répertoire:shell
 
  • nom

    Il est conseillé d’utiliser uniquement des lettres minuscules et des chiffres pour le constituer.

  • mop

    Le fichier sécurisé /etc/shadow (accessible en lecture uniquement par le compte root) est utilisé aujourd’hui pour stocker les informations concernant le mot de passe. Ce champ historique ne donne plus aujourd’hui d’informations pertinentes et contient le caractère x.

  • uid

    Il s’agit du numéro interne associé au nom de l’utilisateur (User IDentification). Par convention, les petits numéros (sur la plupart des distributions, ce sont les numéros en dessous de 100) sont réservés aux comptes prédéfinis du système.

  • gid

    Il s’agit du numéro interne associé au groupe principal de l’utilisateur (Group IDentification). Ce numéro désigne une entrée dans le fichier /etc/group.

  • commentaire

    Ce champ peut contenir un commentaire associé à l’utilisateur. Il peut également être vide.

  • répertoire

    Il s’agit du nom complet du répertoire de connexion. Les répertoires /home ou encore /export/home accueillent le plus souvent ces répertoires de connexion qui portent d’habitude assez naturellement le nom de l’utilisateur....

Démarrage et arrêt du système

1. Chargement du système, activation du noyau

Le disque d’un matériel de type PC peut accueillir simultanément plusieurs systèmes d’exploitation. Un ordinateur personnel peut, par exemple, souvent comporter une partition Windows contiguë à une partition Linux. Un seul système à la fois sera actif grâce à un programme de chargement placé dans le premier secteur du disque (MBR : Master Boot Record).

Ce programme de chargement permet de choisir le système d’exploitation ou, par défaut, choisit de lui-même celui de la partition active. Ensuite, le chargement effectif a lieu grâce aux secteurs de boot de la partition elle-même.

Historiquement la plupart des distributions Linux proposaient le programme LILO (LInux LOader) comme outil de chargement.

Les distributions récentes, dont Debian, privilégient un programme baptisé GRUB (GRand Unified Bootloader) dont le fichier de configuration se nomme /boot/grub/grub.cfg.

Exemple d’une partie du fichier d’un ordinateur personnel


#cat /boot/grub/grub.cfg 
 
menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu 
--class os $menuentry_id_option 'gnulinux-simple-0bdc6be0-5256-4706-9366
-aae20ea45690' { 
        load_video 
        insmod gzio 
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi 
        insmod part_msdos 
        insmod ext2 
        set root='hd0,msdos1' 
        if [ x$feature_platform_search_hint = xy ]; then 
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 
--hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  0bdc6be0-5256-4706
-9366-aae20ea45690 
        else 
          search --no-floppy --fs-uuid --set=root 0bdc6be0-5256-4706-9366
-aae20ea45690 
        fi 
        echo    'Chargement de Linux 4.9.0-3-amd64...' 
        linux   /boot/vmlinuz-4.9.0-3-amd64 root=UUID=0bdc6be0-5256-4706
-9366-aae20ea45690 ro  quiet 
      ...

Planificateur des tâches

Il est possible de planifier le lancement de certains programmes à des dates et heures données. Pour ce faire, le démon cron examine des requêtes constituées par les utilisateurs à l’aide de la commande crontab.

Beaucoup de traitements de maintenance (sauvegardes, surveillance de l’espace disque, collecte d’informations...) peuvent ainsi être automatisés en utilisant de préférence les heures les moins chargées du système.

Le planificateur de tâches permet donc de programmer des tâches répétitives.

1. Fonctionnement de cron

cron est un daemon lancé au démarrage du système.

Il n’est utilisable que par les administrateurs.

a. Manière cyclique

C’est la méthode la plus simple. La structure cron offre quatre dossiers pour des temporalités différentes afin d’exécuter les scripts contenus dans ces dossiers :

/etc/cron.hourly : exécutions des scripts toutes les heures.

/etc/cron.daily : exécutions des scripts tous les jours.

/etc/cron.weekly : exécutions des scripts toutes les semaines.

/etc/cron.monthly : exécutions des scripts tous les mois.

Chaque script sera exécuté s’il possède bien les droits d’exécution.

Par exemple, si toutes les heures on souhaite vider le répertoire /root/tampon, on crée le script /etc/cron.hourly/efface_tampon.sh contenant les instructions suivantes :


# !/bin/bash 
rm -rf /root/tampon/*
 

ayant pour propriétaire root avec les droits d’exécution....

La gestion des modules

Les modules sont faits pour prendre en charge des périphériques par le noyau pouvant être chargé ou enlevé suivant les besoins. Cet aspect modulaire offre une grande flexibilité et une optimisation du noyau pour ne pas le surcharger, ce qui permet d’économiser de la mémoire, du temps processeur et offre une plus grande compatibilité avec les composants informatiques.

L’avantage principal étant de pouvoir ajouter un module dynamiquement sans avoir besoin de recompiler le noyau Linux ni de redémarrer le système pour que le composant soit pris en charge.

Les modules sont donc comme des pilotes (drivers) pour assurer la compatibilité matérielle avec le noyau Linux.

1. Afficher la liste des modules

Pour visualiser les modules chargés dans le système, utilisez la simple commande lsmod :


#lsmod 
Module                  Size  Used by 
vfat                   20480  0 
fat                    69632  1 vfat 
ext4                  585728  1 
crc16                  16384  1 ext4 
crc32c_generic         16384  2 
fscrypto  ...

Configuration du réseau

1. Format des adresses IP

Des adresses logiques doivent être associées à chaque interface réseau (host). Si une machine est dotée, par exemple, de deux cartes réseau, il faudra attribuer une adresse à chacune des deux interfaces.

a. Adresses IPv6

Au début des années 1990, la croissance rapide du réseau internet a fait entrevoir l’arrivée de divers problèmes ou besoins. L’IETF (Internet Engineering Task Force) a alors démarré l’élaboration d’une nouvelle version du protocole IP, baptisée IPv6 ou IPng (next generation).

Actuellement, avec une transition très progressive, on peut dire qu’il y a un peu d’IPv6 dans un monde IPv4. Les adresses IPv6 sont codées sur 128 bits. Elles sont exprimées sous la forme de huit valeurs hexadécimales séparées par le caractère ":". L’adresse peut être déduite de l’adresse physique et peut ainsi être attribuée de façon quasi permanente en autoconfiguration. Il est prévu des adresses spéciales de compatibilité avec IPv4 sous la forme "::FFFF:n1.n2.n3.n4" (la notation "::" remplace ici une suite contiguë de champs à zéro).

b. Adresses IPv4

Les adresses IPv4 sont des adresses logiques codées sur 32 bits. Elles sont exprimées sous la forme de quatre valeurs décimales n1.n2.n3.n4 où chaque nombre représente la valeur d’un octet [0,255].


ADRESSE IP = ADRESSE RÉSEAU + ADRESSE HÔTE
 

Deux hôtes ayant la même adresse de réseau communiqueront directement. Dans le cas contraire, une activité de routage sera nécessaire.

Les premiers bits (poids fort) de la partie adresse réseau déterminent une classe d’adresses. Les concepteurs ont choisi trois classes principales : A, B, C.

D’autre part, compte tenu de certaines adresses particulières ou réservées, l’intervalle complet [0,255] n’est pas toujours utilisable pour chacun des quatre octets.

  • Classe A

    Si le premier bit du premier octet est à 0, la partie adresse réseau correspond alors au premier octet. Cet octet peut prendre toute valeur dans l’intervalle [1,126], car les adresses...

L’interface graphique

Une interface graphique se compose de trois éléments principaux bien distincts afin de mieux régir l’interface utilisateur qui sera géré par l’environnement de bureau.

Le système doit avoir un serveur graphique ; un gestionnaire de session et également un environnement de bureau.

Voici comment ils interagissent :

images/ei02-07.png

1. Serveur graphique

Le serveur graphique est l’élément central pour émuler le matériel, c’est lui qui interagira directement avec le pilote graphique pour tirer profit des capacités de la carte vidéo. C’est une partie non visible pour l’utilisateur.

Il existe deux principaux serveurs graphiques sous Debian 9 : Xorg et Wayland. 

a. Xorg

Xorg est un serveur graphique basé sur le protocole X11.

Il est utilisé sur Debian depuis la version 4 (Etch).

Il fournit les composants pour utiliser le serveur graphique sur une station de travail individuelle. Il fournit les bibliothèques graphiques, un serveur graphique, un ensemble de polices et un groupe de clients et d’utilitaires graphiques de base.

b. Wayland

Wayland est un protocole et un gestionnaire de fenêtre permettant de remplacer le serveur graphique Xorg.

Il offre aux applications une mémoire tampon pour effectuer leur rendu graphique afin d’être plus performant, et ne plus se baser sur le protocole...

Analyses des messages système

Le système Debian enregistre des informations sur les traitements automatiques qu’il exécute, les interactions avec les utilisateurs, les changements de statut, les alertes de sécurité et bien plus.

Il utilise des journaux que l’on appelle fichiers de log, qui centralisent toutes ces informations.

Repérons d’abord notre matériel vu par le système, ce qui nous permettra de mieux comprendre les messages système, pour ensuite utiliser des commandes de diagnostic si nécessaire.

1. Identifier son matériel

Chaque matériel possède un identifiant particulier différent du nom commercial, qui est utilisé par le système pour le désigner dans ces journaux.

Commençons par voir la version Debian :

#cat /etc/debian_version  
9.1
 

Et le noyau Linux utilisé :

#uname -r  
4.9.0-3-amd64
 

Une commande globale, peut lister l’ensemble du matériel que le système reconnaît, sans être exhaustive, qui permet d’avoir rapidement l’information d’un matériel spécifique. On utilise la commande dmidecode :

#dmidecode  
... 
Handle 0x1106, DMI type 17, 27 bytes 
Memory Device 
        Array Handle: 0x1000 
        Error Information Handle: No Error 
        Total Width: 72 bits 
        Data Width: 64 bits  
        Size: 4096 MB  
        Form Factor: FB-DIMM 
        Set: None 
        Locator: DIMM 7         
        Bank Locator: Not Specified  
        Type: DDR2 FB-DIMM  
        Type Detail: Synchronous 
        Speed: 667 MHz 
        Manufacturer: 802C7FB3802C 
        Serial Number: E059B734 
        Asset Tag: 080939 
        Part Number: 36HTF51272F667E1D4 
...
 

Ici les informations sur une barrette mémoire.

a. Le processeur

Les informations du processeur sont directement accessibles dans le répertoire /proc :

#cat /proc/cpuinfo  
... 
processor      ...

Gestion des programmes Debian

1. Terminologie

Les termes paquet logiciel ou paquetage sont des traductions du terme anglo-saxon package et font référence à un ensemble de fichiers rassemblés en une seule archive cohérente et aisément manipulable.

Dans les autres distributions Linux, la commande rpm (Red Hat Package Manager) s’est imposée comme standard de fait. Sous Debian, la gestion des paquets logiciels est plus élaborée, ce qui constitue un atout important de cette distribution.

Debian prévoit trois sortes de paquets logiciels et, par conséquent, trois sections d’archives différentes dans le cadre de leur distribution :

  • main (archive principale) : il s’agit des paquets qui répondent entièrement aux principes du contrat social et de la charte Debian.

  • contrib (contributions) : il s’agit des paquets qui ne répondent pas entièrement aux principes Debian, mais qui peuvent néanmoins être distribués librement. 

  • non free (non libre) : il s’agit de logiciels libres qui ne fonctionnent pas sans certains éléments non libres.

Les paquets binaires sont des fichiers d’extension .deb alors que l’extension .deb-src désigne les paquets source.

Sans rentrer dans les détails dans le cadre de notre ouvrage, nous saurons qu’un paquet Debian ne se contente pas d’être une simple archive de fichiers. Il intègre d’autres informations, principalement de dépendances, conflits ou suggestions par rapport à d’autres paquets. Il fournit également des scripts associés aux différentes étapes de la vie du paquet (installation, suppression, mise à jour).

Le format d’un paquet binaire est conçu pour pouvoir être exploité par les commandes Unix classiques ar, tar et gzip.

Le paquet source est la pierre angulaire de la méthodologie Debian. Tous les paquets binaires proviennent d’un paquet source. Les développeurs Debian travaillent au niveau du paquet source en maîtrisant les conséquences sur les paquets binaires générés.

2. La commande dpkg

La commande dpkg est la commande de bas niveau pour manipuler les paquets logiciels. Elle permet de les installer et d’examiner leur contenu. Cependant, ce programme...

Quiz : Connaissez-vous les bases techniques de Debian ?

  • Quel est l’utilitaire pour partitionner des disques durs de plus de 2 téraoctets :

  • sfdisk

  • gdisk

  • fdisk

  • Quel type de RAID permet la plus grande sécurité ?

  • RAID 0

  • RAID 1

  • RAID 5

  • Dans quels fichiers sont les utilisateurs locaux ?

  • /etc/shadow

  • /etc/passwd

  • /etc/group

  • À quoi sert la commande sudo ?

  • Annuler la commande précédente

  • Effacer un utilisateur

  • Octroyer des droits supplémentaires à un utilisateur

  • Quel est le niveau d’exécution pour redémarrer Linux ?

  • Niveau 0

  • Niveau 2

  • Niveau 6

  • Comment activer un service :

  • systemctl enable service

  • service enable

  • start service

  • Quelle commande permet de voir les modules chargés ?

  • listmod

  • lsmod

  • catmod

  • Que fait la commande ip addr ?

  • Liste les adresses IP de la machine

  • Demande une adresse IP au serveur DHCP

  • Teste la connexion internet

  • Comment connaître le détail de votre processeur ?

  • cat /proc/cpuinfo

  • uname -r

  • uptime