Cours/Saison A5
Saison A59 modules

Saison A5. Linux

Cette saison introduit l'environnement GNU/Linux, système d'exploitation incontournable pour les serveurs, le Cloud et la sécurité. Elle se concentre sur la compréhension de son architecture, de son histoire, et sur la maîtrise fondamentale de l'administration système via l'interface en ligne de commande.


🖥️ A501. Introduction à GNU/Linux

Ce cours pose les bases de l'environnement Linux, de ses origines historiques (Unix, GNU) à son architecture actuelle (distributions, système de fichiers), en passant par la philosophie du logiciel libre.

  • Un peu d'Histoire : De Multics à Linux

    • Multics (1964) : Projet ambitieux (MIT, Bell Labs, GE) visant à créer un système en "temps partagé". Trop complexe et coûteux, il fut abandonné par les Bell Labs, mais a inspiré la suite.
    • Unix (1969) : Créé par Ken Thompson et Dennis Ritchie (inventeur du langage C) sur un PDP-7. Philosophie KISS (Keep It Simple, Stupid) : faire une seule chose, mais la faire bien. Il devient portable grâce à sa réécriture en C.
    • BSD (1977) : La Berkeley Software Distribution est une branche universitaire d'Unix, améliorée par Bill Joy (créateur de l'éditeur vi). Elle a donné naissance aux systèmes modernes comme FreeBSD ou macOS.
    • GNU (1983) : Richard Stallman lance le projet GNU (GNU's Not Unix) avec pour but de créer un système d'exploitation entièrement libre. Il crée les outils essentiels (compilateur GCC, éditeur Emacs, shell Bash) et la licence GPL, mais il manque le cœur du système : le noyau.
    • Minix (1987) : Système éducatif créé par Andrew Tanenbaum. C'est en l'utilisant que Linus Torvalds décidera de créer son propre noyau.
    • Linux (1991) : Linus Torvalds développe un noyau (kernel) monolithique. En le combinant avec les outils du projet GNU, le système d'exploitation complet GNU/Linux est né.
  • Les Distributions Linux

    • Définition : Linux est un noyau, pas un OS complet. Une distribution est un assemblage comprenant le noyau Linux, les outils GNU, un gestionnaire de paquets et souvent un environnement graphique.
    • Grandes Familles : Elles se distinguent principalement par leur gestionnaire de paquets :
      • Debian (et ses dérivés Ubuntu, Kali, Mint) : Utilise le format .deb et le gestionnaire apt. Très populaire et stable.
      • Red Hat (RHEL, Fedora, CentOS/Alma) : Utilise le format .rpm et le gestionnaire dnf/yum. Standard dans le monde de l'entreprise.
      • Slackware : La plus ancienne encore active, philosophie minimaliste.
      • Arch Linux : Modèle "Rolling release" (mise à jour continue), utilise pacman. Pour utilisateurs avancés.
      • Android : Utilise le noyau Linux mais pas les outils GNU (remplacés par des bibliothèques Java/Google).
  • Notions de Base

    • CLI (Ligne de Commande) : Interface privilégiée sous Linux pour sa puissance et sa rapidité d'administration. Le Shell (souvent Bash) interprète les commandes saisies dans le terminal.
    • Le Prompt : Invite de commande indiquant qui on est (user), où on est (machine/dossier) et le niveau de privilège ($ pour utilisateur, # pour root).
    • Système de Fichiers :
      • Arborescence unique : Tout commence à la racine /. Il n'y a pas de lettres de lecteur (C:, D:) comme sous Windows.
      • Tout est fichier : Documents, dossiers, mais aussi matériel (disque dur, souris), processus... tout est représenté sous forme de fichier.
      • Sensible à la casse : Fichier.txt et fichier.txt sont deux fichiers différents.
    • Dossiers Clés :
      • /home : Dossiers personnels des utilisateurs.
      • /root : Dossier personnel de l'administrateur.
      • /etc : Fichiers de configuration du système.
      • /bin & /usr/bin : Exécutables (programmes) essentiels.
      • /var : Données variables (logs, sites web, bases de données).
      • /tmp : Fichiers temporaires (vidé à chaque redémarrage).
  • Commandes Linux essentielles

    • sudo : Super User DO, permet d'exécuter une commande avec les droits d'administrateur (root).
    • apt : Advanced Packaging Tool, outil pour gérer les paquets (logiciels) : rechercher, mettre à jour, installer ou supprimer (ex: sudo apt update, sudo apt upgrade).
    • ls : LiSt, liste les fichiers et dossiers présents dans le répertoire courant.
    • cd : Change Directory, permet de changer de répertoire.
    • pwd : Print Working Directory, affiche le chemin absolu du dossier dans lequel vous vous trouvez.
    • man : MANual, affiche la documentation d'une commande (ex: man ls pour voir les options de liste).
    • mkdir : MaKe DIRectory, pour créer un dossier.
    • touch : Permet de créer un fichier vide.
    • rm : ReMove, pour supprimer un ou plusieurs fichiers.
    • mv : MoVe, pour déplacer ou renommer des fichiers/dossiers.
    • cat : Affiche le contenu d'un fichier dans la sortie standard (le terminal).

Challenge A501 : Installation d'une VM Linux sur VMware, et jeu Terminus Quest pour apprendre les commandes de base.

📚 Ressources :

Temps partagé https://fr.wikipedia.org/wiki/Temps_partag%C3%A9

Multitâche Préemptif https://fr.wikipedia.org/wiki/Multit%C3%A2che_pr%C3%A9emptif

Minix https://fr.wikipedia.org/wiki/Minix

Noyau OS https://fr.wikipedia.org/wiki/Noyau_de_syst%C3%A8me_d%27exploitation

Liste des distributions Linux https://upload.wikimedia.org/wikipedia/commons/9/96/Liste_des_distributions_Linux.svg

Cheatsheet Linux cmd cheatsheetlinux

Jeu Terminus https://luffah.xyz/bidules/Terminus/

Linus original mail

Retour en haut


🧱 A502. Composants d'un système GNU/Linux

Ce cours détaille l'anatomie d'un système Linux en passant en revue les différentes briques logicielles qui, assemblées autour du noyau, forment un système d'exploitation complet et fonctionnel.

  • Chargeur d'amorçage
  • Init : Gestionnaire de services
  • Drivers : Pilotes de périphériques
  • Shell
  • Gestionnaire de paquets
  • Éditeur de texte
  • Serveur graphique
  • Gestionnaire d'affichage
  • Gestionnaire de fenêtres
  • Environnement de bureau
  • Bibliothèques d'interface graphique
  • Explorateur de fichiers
  • Outil de configuration réseau
  • Serveur & sous-système audio

1. Les Fondations du Système (Bas niveau)

  • Le Chargeur d'amorçage (Bootloader) :

    • Rôle : C'est le tout premier logiciel lancé au démarrage de la machine (par le BIOS ou l'UEFI). Il permet de choisir sur quel système d'exploitation démarrer (si vous avez un dual-boot Windows/Linux) et charge le noyau en mémoire.
    • Exemple célèbre : GRUB (GRand Unified Bootloader).
  • Le Système d'Init (Gestionnaire de services) :

    • Rôle : Une fois le noyau chargé, init est le premier programme lancé (il porte le PID 1). Il est le "père" de tous les autres processus. Il est chargé de démarrer les services (réseau, son, cron, etc.).
    • Standard actuel : systemd. Bien que controversé pour sa complexité, il est aujourd'hui le standard sur la majorité des distributions. Il se gère avec la commande systemctl.
  • Pilotes de Périphériques (Drivers) :

    • Rôle : Permettent au système de communiquer avec le matériel. Sous Linux, ils sont généralement intégrés directement au noyau sous forme de modules chargés dynamiquement.

2. Les Outils d'Administration

  • Le Shell (Interpréteur de commandes) :

    • Rôle : C'est l'interface textuelle qui permet de dialoguer avec le système. Il interprète vos commandes et lance les programmes.
    • Les stars :
      • Bash : Le standard historique, présent presque partout.
      • Zsh : Très populaire et moderne (par défaut sur macOS), souvent utilisé avec des plugins pour l'autocomplétion.
  • Le Gestionnaire de Paquets :

    • Rôle : Il automatise l'installation, la mise à jour et la suppression des logiciels. Contrairement à Windows où l'on télécharge des .exe manuellement, ici on demande au gestionnaire de récupérer le logiciel et toutes ses dépendances (les bibliothèques nécessaires) depuis un dépôt sécurisé.
    • Exemples : apt (Debian/Ubuntu), dnf/rpm (Red Hat), pacman (Arch).
  • Éditeur de texte :

    • Rôle : Indispensable pour modifier les fichiers de configuration.
    • Les incontournables : Nano (simple pour débuter), Vim (puissant mais nécessite un apprentissage), Emacs.

3. L'Interface Graphique (La couche visible)

C'est là que Linux diffère le plus de Windows/macOS, car l'interface graphique est une "pile" de plusieurs logiciels distincts :

  • Serveur Graphique :

    • C'est la fondation qui permet de dessiner des fenêtres et de gérer la souris/clavier. C’est un composant technique, invisible pour l’utilisateur.
    • X11 (X.Org) : Le standard historique (depuis 1987), robuste mais vieillissant.
    • Wayland : Le remplaçant moderne, plus sécurisé et performant, mais qui nécessite que les applications soient adaptées.
  • Gestionnaire d'Affichage (Display Manager) :

    • C'est simplement votre écran de connexion (Login screen). Il lance le serveur graphique et vous demande votre mot de passe.
  • Gestionnaire de Fenêtres (Window Manager - WM) :

    • Il s'occupe uniquement de "décorer" et placer les fenêtres (bordures, réduction, déplacement). Il peut être utilisé seul (pour les configurations minimalistes comme i3 ou Openbox).
  • Environnement de Bureau (Desktop Environment - DE) :

    • C'est une suite complète qui inclut un Gestionnaire de Fenêtres + un Explorateur de fichiers + des applications (calculatrice, paramètres, terminal) + une barre des tâches. C'est ce qui donne l'apparence globale (le "look & feel").
    • Exemples :
      • GNOME : Moderne, épuré (utilisé par Ubuntu, Fedora).
      • KDE Plasma : Très personnalisable, ressemble un peu à Windows.
      • XFCE : Léger et performant pour les vieux PC.
  • Bibliothèques Graphiques :

    • Ce sont les "boîtes à outils" utilisées par les développeurs pour créer les boutons et menus. GTK est utilisé par GNOME, Qt est utilisé par KDE.

4. Les Outils Complémentaires

  • Bibliothèques d'interface graphique :

    • Rôle : Ce sont des ensembles de code (librairies) qui fournissent aux développeurs les "briques visuelles" prêtes à l'emploi (boutons, menus, fenêtres) pour créer des logiciels.
    • Les principales : GTK (utilisée par les environnements GNOME, XFCE, Mate) et Qt (utilisée par KDE Plasma, LXQt).
  • Explorateur de fichiers :

    • Rôle : L'équivalent de l'Explorateur Windows ou du Finder macOS, il permet de naviguer graphiquement dans l'arborescence.
    • Exemples Graphiques (GUI) : Nautilus (Gnome), Dolphin (KDE), Thunar (léger, souvent avec XFCE).
    • Exemples Ligne de commande (CLI) : Ranger ou Midnight Commander (pour naviguer efficacement dans les dossiers sans souris).
  • Outil de configuration réseau :

    • Rôle : Permet de gérer les interfaces réseau (IP statique, DHCP, DNS). La méthode varie beaucoup selon la distribution.
    • Exemple : Netplan est l'outil standard utilisé sur Ubuntu pour configurer le réseau via des fichiers YAML.
  • Serveur & sous-système audio :

    • Rôle : C'est la couche logicielle qui gère la carte son et permet à plusieurs applications de jouer du son en même temps (mixage).
    • Contexte : Bien que le support soit bref à ce sujet, on retient souvent PulseAudio (créé par le même auteur que systemd) ou plus récemment PipeWire comme standards actuels.

Challenge A502 : Jouer à VIM Adventures et VIM Tutor pour se familiariser avec VIM.

📚 Ressources :

Shebang https://fr.wikipedia.org/wiki/Shebang

Ajouter chemin au Path https://www.malekal.com/ajouter-chemin-path-linux/

Bootloaders https://wiki.archlinux.org/title/Arch_boot_process#Feature_comparison

X window System https://fr.wikipedia.org/wiki/X_Window_System

Le Display manager https://wiki.archlinux.org/title/Display_manager

Métaphore du Bureau https://fr.wikipedia.org/wiki/Environnement_de_bureau#M%C3%A9taphore_du_bureau

Qt https://www.d-booker.fr/content/43-qt-une-bibliotheque-dediee-au-developement-multiplate-forme

Netplan https://doc.ubuntu-fr.org/netplan

Son https://doc.ubuntu-fr.org/utilisateurs/darkjam/son

Learn VIM via Game https://vim-adventures.com/ ou vimtutor

Retour en haut


🔐 A503. Utilisateurs, Groupes, Permissions & Sudo

Ce cours aborde la gestion des comptes utilisateurs, l'organisation en groupes, et la sécurité du système de fichiers via les permissions. Il détaille également l'utilisation de sudo pour l'élévation de privilèges.

Gestion des Utilisateurs

Les utilisateurs sont identifiés par un UID (User ID) et un GID (Group ID) principal.

  • Fichiers de configuration :

    • /etc/passwd : Liste les comptes utilisateurs.
      • Format : user:x:UID:GID:Commentaire:/home/user:/bin/bash.
    • /etc/shadow : Stocke les mots de passe chiffrés et les règles d'expiration (accessible uniquement par root).
  • Commandes principales :

    • Créer : useradd
      • sudo useradd -m -s /bin/bash -c "Jean Dupont" jean.
      • -m : Crée le dossier personnel (/home/user).
      • -s : Définit le shell par défaut (ex: /bin/bash).
      • -c : Ajoute un commentaire (Nom complet, GECOS).
      • -u / -g : Imposer un UID ou un GID spécifique.
    • Modifier : usermod
      • sudo usermod -s /bin/zsh jean : Change le shell.
      • sudo usermod -l nouveau_nom ancien_nom : Renomme le compte.
      • sudo usermod -L jean / -U jean : Verrouille / Déverrouille le compte.
      • sudo usermod -d /home/new -m jean : Change le dossier home et déplace les fichiers existants.
    • Supprimer : userdel
      • sudo userdel -r jean : Supprime l'utilisateur et son dossier personnel (-r).
    • Mot de passe : passwd jean pour définir/changer le mot de passe.

Gestion des Groupes

Les groupes permettent de rassembler des utilisateurs pour simplifier la gestion des droits. Un utilisateur a un groupe primaire et peut avoir plusieurs groupes secondaires.

  • Fichier de configuration :

    • /etc/group : Liste les groupes et leurs membres secondaires.
  • Commandes principales :

    • Créer : groupadd
      • sudo groupadd reseau.
      • -g : Imposer un GID spécifique.
    • Supprimer : groupdel nom_groupe.
    • Gérer les membres :
      • sudo usermod -aG sudo,reseau jean : Ajoute (-a) l'utilisateur aux groupes secondaires (-G) spécifiés.
      • sudo gpasswd --delete jean reseau : Retire un utilisateur d'un groupe.
      • sudo usermod -g devops jean : Change le groupe primaire de l'utilisateur.
      • groups jean : Affiche dans quel groupes est l'utilisateur jean.

Permissions et Propriétaires

Chaque fichier/dossier appartient à un Propriétaire (u) et un Groupe propriétaire (g). Les permissions sont définies pour eux et pour les Autres (o).

  • Visualiser : ls -l affiche les permissions (ex: -rw-r--r--).

    • 1er caractère : Type (- fichier, d dossier, l lien).
    • Suivants : 3 blocs de droits rwx (User, Group, Others).
  • Signification des droits :

    • r (Read) : Lire le fichier / Lister le dossier.
    • w (Write) : Modifier le fichier / Créer ou supprimer dans le dossier.
    • x (Execute) : Exécuter le fichier (script/programme) / Traverser le dossier (indispensable pour y accéder).
  • Changer le propriétaire : chown (Change Owner)

    • sudo chown user:group fichier : Change le propriétaire et le groupe.
    • sudo chown -R user:group dossier/ : Applique récursivement au dossier et son contenu (-R).
  • Changer les permissions : chmod (Change Mode)

    • Méthode Symbolique (u/g/o + +/-/= + r/w/x) :
      • chmod u+x script.sh : Ajoute l'exécution pour le propriétaire.
      • chmod o-w file : Retire l'écriture aux autres.
    • Méthode Octale (r=4, w=2, x=1) :
      • 7 (4+2+1) : rwx (Lecture, écriture, exécution).

      • 6 (4+2) : rw- (Lecture, écriture).

      • 5 (4+1) : r-x (Lecture, exécution).

      • chmod 644 fichier : rw- (proprio), r-- (groupe), r-- (autres).

      • chmod 755 dossier : rwx (proprio), r-x (groupe), r-x (autres).

        octal


Sudo (SuperUser DO)

sudo permet à un utilisateur autorisé d'exécuter des commandes en tant qu'administrateur (root) ou un autre utilisateur, sans se connecter directement en root.

  • Configuration :

    • Fichier principal : /etc/sudoers.
    • Dossier pour ajouts : /etc/sudoers.d/.
    • Outil obligatoire : Toujours utiliser sudo visudo pour éditer la configuration (vérifie la syntaxe avant d'enregistrer pour éviter de casser le système).
  • Syntaxe d'une règle sudo : QUI OÙ=(EN_TANT_QUE) QUOI

    • Exemple : %sudo ALL=(ALL:ALL) ALL (Le groupe sudo peut tout faire, partout, en tant que n'importe qui).
    • Exemple ciblé : jean ALL=(root) /usr/bin/systemctl restart nginx (Jean peut seulement redémarrer Nginx en tant que root).
  • Commandes utiles :

    • sudo -l : Liste les droits sudo de l'utilisateur courant.
    • sudo -i ou sudo -s : Ouvre un shell root interactif (à éviter pour des tâches ponctuelles).

Challenge A503 : sur Rocky Linux, création d'utilisateur, droits et dossiers.

📚 Ressources :

Gestion des groupes sous Linux https://www.it-connect.fr/la-gestion-des-groupes-sous-linux/

Retour en haut


📦 A504. Gestion des Paquets, Compilation & Logs

Ce cours couvre la gestion du cycle de vie des logiciels sous Linux (installation via paquets ou compilation) ainsi que la surveillance du système (logs et ressources matérielles).

1. Gestion des Paquets

Un gestionnaire de paquets automatise l'installation, la mise à jour et la suppression de logiciels. Il gère les dépendances (bibliothèques nécessaires au fonctionnement d'un programme) et vérifie l'intégrité des fichiers via des dépôts officiels.

Il existe toujours une distinction entre l'outil bas niveau (gère le fichier paquet local) et l'outil haut niveau (gère les dépôts et les dépendances).

A. Debian / Ubuntu (et dérivés)
  • Outils : dpkg (bas niveau) et apt (haut niveau).
  • Fichiers de config : /etc/apt/sources.list.
ActionCommande apt (Recommandé)
Rafraîchir la liste des dépôtssudo apt update
Mettre à jour les paquetssudo apt upgrade
Installer un paquetsudo apt install <nom>
Désinstaller un paquetsudo apt remove <nom>
Rechercher un paquetsudo apt search <nom>
Installer un fichier .deb localsudo dpkg -i fichier.deb
B. Arch Linux / Manjaro
  • Outil : pacman (gère tout : synchro, install, cache).
  • Fichiers de config : /etc/pacman.conf.
ActionCommande pacman
Mettre à jour tout le systèmesudo pacman -Syu
Installer un paquetsudo pacman -S <nom>
Rechercher un paquetsudo pacman -Ss <nom>
Désinstaller (+ dépendances inutiles)sudo pacman -Rns <nom>
C. Red Hat / Fedora / CentOS
  • Outils : rpm (bas niveau) et dnf (haut niveau, remplace yum).
  • Fichiers de config : /etc/yum.repos.d/.
ActionCommande dnf
Vérifier les mises à joursudo dnf check-update
Mettre à jour le systèmesudo dnf upgrade
Installer un paquetsudo dnf install <nom>
Installer un fichier .rpm localsudo rpm -ivh fichier.rpm

2. Compiler un programme (Depuis les sources)

Parfois nécessaire pour avoir une version très récente, activer des options spécifiques ou être sûr que le programme n'a pas été altéré.

  • Prérequis : Il faut les outils de développement (compilateur gcc, make, etc.).
    • Debian/Ubuntu : sudo apt install build-essential.
    • RHEL : sudo dnf groupinstall "Development Tools".

Workflow classique (La trinité de la compilation) :

  1. Extraction : tar xf logiciel.tar.gz puis cd logiciel.
  2. Configuration : ./configure (Vérifie les prérequis et prépare la compilation. On peut ajouter --prefix=/usr/local pour choisir le dossier d'install).
  3. Compilation : make (Transforme le code source en binaire. Option -j$(nproc) pour aller plus vite).
  4. Installation : sudo make install (Copie les binaires dans le système).

3. Journaux du Système (Logs)

Les logs sont essentiels pour le dépannage. Ils sont soit centralisés par systemd (binaire), soit stockés dans des fichiers texte.

A. Fichiers logs classiques (/var/log/)

On les lit avec cat, less ou tail.

  • /var/log/syslog ou /var/log/messages : Logs généraux.
  • /var/log/auth.log : Logs d'authentification (sudo, ssh, login).
  • /var/log/dmesg : Messages du noyau au démarrage.
B. Journald (systemd)

Commande unique : journalctl.

  • journalctl -f : Suivre les logs en direct (équivalent à tail -f).
  • journalctl -xe : Voir les dernières erreurs détaillées.
  • journalctl -u ssh : Voir les logs d'un service précis (ici ssh).
  • journalctl -k : Messages du noyau (kernel).
  • journalctl --since "10 min ago" : Logs des 10 dernières minutes.

4. Périphériques, Hardware & Surveillance

Pour surveiller les ressources et identifier le matériel.

Surveillance des ressources
  • CPU / RAM : top ou htop (vue temps réel).
  • Mémoire : free -h (affiche la RAM libre/utilisée).
  • Disques :
    • df -h : Affiche l'espace disque occupé/libre (-h = human readable, lisible par l'homme en Go/Mo).
    • lsblk : Affiche l'arborescence des partitions.
Identification Matériel
  • lspci : Liste les périphériques PCI (cartes graphiques, réseau...).
  • lsusb : Liste les périphériques USB.
  • dmesg : Affiche les messages du noyau (très utile pour voir si un périphérique est détecté au branchement).
  • /dev/ : Dossier contenant les fichiers représentant le matériel (ex: /dev/sda pour un disque).

⌨️ Récapitulatif des commandes

Voici les commandes essentielles à retenir pour ce module :

  • Infos utilisateur & commandes

    • whoami : Affiche le nom de l'utilisateur courant.
    • which <commande> : Affiche le chemin complet de l'exécutable d'une commande (ex: which python).
    • man <commande> : Affiche le manuel d'utilisation.
  • Paquets

    • sudo apt update && sudo apt upgrade : Mettre à jour (Debian/Ubuntu).
    • sudo apt install <paquet> : Installer.
  • Disques & Fichiers

    • df -h : Espace disque libre (en format lisible).
    • lsblk : Liste des blocs/partitions.
  • Logs

    • tail -f /var/log/syslog : Suivre les logs en continu.
    • journalctl -xe : Debugger une erreur récente systemd.

Challenge A504 : Compiler un Binaire.

📚 Ressources :

Cheatsheet Linux https://cheatography.com/davechild/cheat-sheets/linux-command-line/

Retour en haut


🪔 A505. Atelier LAMP

Dans cet atelier, vous allez découvrir comment installer et configurer les différents logiciels nécessaire à la mise en place d'une stack LAMP. LAMP pour Linux, Apache, MySQL et PHP : ce sont les briques de bases nécessaires pour un serveur web hébergeant des applications web codées en PHP !

LAMP

Atelier A505 : Atelier mise en place d'une stack LAMP.

📚 Ressources :

Retour en haut


📁 A506. Atelier SAMBA

L'intéret d'utiliser un serveur Linux à la place d'un Windows Server avec Active Directory ? On économise le coût des licences ! Pas besoin de CAL pour nos postes/utilisateurs. Pour remplacer Active Directory sur GNU/Linux, il existe plusieurs solutions. L'une des plus populaires est le logiciel Samba.

SAMBA

Atelier A506 : Atelier mise en place de SAMBA (AD)

📚 Ressources :

Retour en haut


🐧 A507. Arch Linux

Ce cours introduit Arch Linux, une distribution indépendante connue pour sa philosophie minimaliste, son modèle de mise à jour continue (Rolling Release) et sa gestion de paquets communautaire (AUR). C'est le système idéal pour comprendre en profondeur le fonctionnement de Linux.

1. Philosophie & Concepts Clés

Contrairement à Debian (stabilité avant tout) ou Ubuntu (facilité d'utilisation), Arch Linux repose sur des principes différents :

  • KISS (Keep It Simple, Stupid) :

  • Le système est conçu pour être simple techniquement (pas de surcouche inutile, pas de patchs complexes), mais pas forcément simple à utiliser pour un débutant.

  • L'utilisateur a le contrôle total : rien n'est installé par défaut sans que vous l'ayez décidé.

  • Rolling Release (Publication Continue) :

  • Il n'y a pas de versions majeures (pas de "Arch 22.04" ou "Arch 11").

  • Vous installez le système une seule fois, et vous le mettez à jour continuellement. Vous aurez toujours la toute dernière version des logiciels (noyau, drivers, applications) quelques jours après leur sortie.

  • Avantage : Toujours à jour ("Bleeding Edge").

  • Inconvénient : Risque d'instabilité si une mise à jour casse une configuration (nécessite de lire les news du site officiel).

  • DIY (Do It Yourself) :

  • Après l'installation, vous vous retrouvez avec un écran noir et un curseur clignotant. C'est à vous d'installer l'interface graphique, le son, le réseau, etc..

2. Gestion des Paquets : Pacman & AUR

Arch Linux utilise un gestionnaire de paquets très rapide et une communauté immense.

  • Pacman (Package Manager) :

  • C'est l'équivalent de apt ou dnf. Il gère les dépôts officiels (Core, Extra).

  • Il utilise des fichiers binaires .pkg.tar.zst.

  • AUR (Arch User Repository) :

  • C'est la grande force d'Arch. Si un logiciel n'est pas dans les dépôts officiels (ex: Google Chrome, Spotify, ou un petit outil obscur), il est à 99% dans AUR.

  • C'est un dépôt communautaire contenant des scripts (PKGBUILD) qui téléchargent les sources et compilent le logiciel pour vous.

  • Pour l'utiliser facilement, on installe un "AUR Helper" comme yay ou paru (non installés par défaut).

3. Anatomie de l'Installation

L'installation classique se fait en ligne de commande. Voici les étapes logiques :

  1. Clavier & Réseau : Mettre le clavier en FR (loadkeys fr) et vérifier la connexion internet (indispensable car l'installateur télécharge tout en direct).
  2. Partitionnement : Utiliser cfdisk ou fdisk pour créer les partitions (EFI, Root, Swap).
  3. Formatage & Montage :
  • Formater les partitions (mkfs.ext4, mkswap).
  • Monter la partition Root dans /mnt (le système temporaire).
  1. Installation du système de base : La commande magique est pacstrap.
  • Exemple : pacstrap /mnt base linux linux-firmware vim.
  1. Configuration du système (Chroot) :
  • Générer le fichier fstab (genfstab).
  • Entrer dans le nouveau système (arch-chroot /mnt) pour devenir "root" à l'intérieur de votre nouvelle installation.
  • Configurer la langue, l'heure, le nom de la machine et le mot de passe root.
  1. Bootloader : Installer et configurer GRUB pour que le PC puisse démarrer.

Note : Il existe désormais un script officiel nommé archinstall qui automatise tout cela via des menus, mais savoir le faire à la main est un excellent exercice pédagogique.

⌨️ Commandes Essentielles (Pacman)

Voici les équivalences pour vous repérer par rapport à Debian/Ubuntu :

ActionCommande Arch (pacman)Équivalent Debian (apt)
Mettre à jour tout le systèmesudo pacman -Syuapt update && apt upgrade
Installer un paquetsudo pacman -S <nom>apt install <nom>
Chercher un paquetpacman -Ss <mot>apt search <mot>
Supprimer un paquetsudo pacman -Rs <nom>apt autoremove <nom>
Nettoyer le cachesudo pacman -Scapt clean

Challenge A507 : Installation et test d'Arch Linux.

📚 Ressources :

Retour en haut


📞 A508. Introduction à la VoIP et Asterisk

Ce cours marque la transition de la téléphonie traditionnelle vers la téléphonie moderne sur IP. Il aborde l'évolution des réseaux, les protocoles de communication et la mise en place d'un standard téléphonique logiciel (IPBX) avec Asterisk.

1. L'Évolution des Réseaux Téléphoniques

Avant la VoIP, la téléphonie reposait sur la commutation de circuits (une ligne physique est réservée entre deux interlocuteurs pendant toute la durée de l'appel).

  • RTC (Réseau Téléphonique Commuté) :

    • Aussi appelé PSTN (Public Switched Telephone Network).
    • C'est le réseau analogique historique (la prise en T murale).
    • Technologie : Commutation de circuits.
    • Inconvénient : Coûteux, peu flexible, une ligne = un appel.
  • RNIS (Réseau Numérique à Intégration de Services) :

    • Aussi appelé ISDN (Integrated Services Digital Network) ou Numéris en France.
    • C'est une évolution du RTC permettant de transporter de la voix et des données en numérique sur les lignes téléphoniques classiques.
    • Avantage : Qualité supérieure, plusieurs appels simultanés sur une même ligne physique (canaux B).
  • VoIP (Voice over IP) :

    • C'est la technologie actuelle. La voix est numérisée, compressée et découpée en paquets de données (comme pour un email ou une page web).
    • Elle transite par le réseau Internet ou un réseau local (LAN).
    • Avantages : Réduction des coûts (pas de câblage téléphonique dédié), mobilité, intégration avec l'informatique.

2. PABX vs IPBX

C'est le cœur du système téléphonique d'une entreprise (le standard).

  • PABX (Private Automatic Branch Exchange) :

    • L'ancien standard téléphonique "physique".
    • Gère les lignes internes et l'accès au réseau public (RTC/RNIS).
    • Nécessite souvent un câblage téléphonique séparé du réseau informatique.
  • IPBX (Internet Protocol Private Branch Exchange) :

    • C'est la version moderne, souvent logicielle (comme Asterisk).
    • Il gère les téléphones IP via le réseau informatique existant (câbles Ethernet RJ45).
    • Il offre des fonctionnalités avancées : messagerie unifiée, conférences, serveur vocal interactif (IVR) .

3. Les Protocoles VoIP

Pour téléphoner sur Internet, on a besoin de deux choses : un protocole pour établir la connexion (signalisation) et un protocole pour transporter la voix.

  • SIP (Session Initiation Protocol) :

    • C'est le standard mondial (RFC 3261) pour la signalisation.
    • Rôle : Il ne transporte pas la voix ! Il sert à initier (faire sonner), modifier (mettre en attente) et terminer (raccrocher) les sessions multimédia .
    • Fonctionnement : Architecture Client-Serveur (similaire au HTTP du web).
  • Autres protocoles :

    • RTP (Real-time Transport Protocol) : C'est lui qui transporte réellement la voix (le flux audio) une fois que SIP a établi la connexion.
    • IAX (Inter-Asterisk eXchange) : Protocole spécifique à Asterisk, plus efficace pour relier deux serveurs Asterisk entre eux.
    • H.323 : Ancien standard, plus complexe, aujourd'hui supplanté par SIP.

4. Architecture Technique et Qualité

Pour qu'un appel VoIP fonctionne correctement, le protocole SIP ne suffit pas. Il faut une infrastructure matérielle et une gestion fine du réseau.

  • Composants SIP :

    • User Agent (UA) : Le téléphone (physique ou logiciel) utilisé par le client.
    • Proxy SIP : Serveur qui achemine les requêtes d'un utilisateur à l'autre (le "facteur").
    • Registrar : Serveur de base de données qui note où se trouve chaque utilisateur (son adresse IP) quand il s'enregistre.
    • Gateway (Passerelle) : L'équipement indispensable pour sortir vers le réseau classique (appeler un fixe ou un mobile via le RTC).
  • Numérisation et Codecs :

    • Le Codec (Coder-Decoder) transforme la voix analogique en données numériques compressées.
    • G.711 : Qualité standard (HD), aucune compression, consomme 64 kbps.
    • G.729 : Forte compression, qualité légèrement dégradée, idéal pour petits débits (8 kbps).
  • Qualité de Service (QoS) :

    • La VoIP est du temps réel : on ne peut pas mettre la voix en "pause" le temps que le réseau charge. Il faut configurer la QoS sur les routeurs pour prioriser la voix sur les téléchargements.
    • Les 4 critères vitaux :
      • Bande passante : Le débit doit être suffisant.
      • Latence : Le délai doit être faible (< 150ms) pour éviter l'effet "écho".
      • Gigue (Jitter) : La variation du délai (le pire ennemi de la VoIP).
      • Perte de paquets : Entraîne des coupures de son (hachures).

5. Zoom sur Asterisk

Asterisk est la solution de référence pour créer son propre IPBX.

  • Définition : C'est une plateforme Open Source (créée en 1999 par Mark Spencer) qui transforme un ordinateur en serveur de communication complet .

  • Fonctionnalités : Il agit comme un PBX, une passerelle VoIP, un serveur de conférence et un serveur vocal (IVR) .

Architecture et Dialplan L'intelligence d'Asterisk réside dans son Dialplan (Plan de numérotation). C'est le cerveau qui décide "qui appelle qui" et "que faire quand ça sonne" .

  • Fichier de configuration : Le dialplan se configure dans le fichier /etc/asterisk/extensions.conf.

  • Structure d'une règle (Dialplan) : Une règle se compose de 4 éléments :

    • Contexte ([internal]) : Groupe logique (ex: appels internes vs appels externes).
    • Extension (100) : Le numéro appelé.
    • Priorité (1, 2, n) : L'ordre d'exécution des étapes.
    • Application (Dial, Answer) : L'action à effectuer.
  • Exemple de syntaxe :

    [internal] ; Nom du contexte

    exten => 100,1,Answer() ; Étape 1 : Si on appelle le 100, Asterisk décroche

    exten => 100,2,Playback(hello-world) ; Étape 2 : Il joue le son "hello-world"

    exten => 100,3,Hangup() ; Étape 3 : Il raccroche

Terminologie importante :

  • Softphone : Logiciel installé sur PC ou Smartphone qui simule un téléphone (ex: Zoiper, Linphone).
  • Trunk SIP : Le "tuyau" qui relie votre IPBX Asterisk au monde extérieur (via un opérateur VoIP) pour passer des appels sur les fixes/mobiles.

Challenge A508 : Installer et configurer un serveur Asterisk.

📚 Ressources :

Retour en haut


☎️ A509. Atelier Asterisk

IPBX Asterisk sur Debian 13

Challenge A509 : Atelier Installer et configurer un serveur Asterisk sur proxmox, fonctionnel via app VOIP du smartphone.

📚 Ressources :

https://berenger-benam.over-blog.com/2023/06/mise-en-place-de-la-telephonie-sur-ip-avec-asterisk-pjsip.html

Retour en haut