Linux : administration système
Ce cours prolonge Linux : premiers pas. Le premier cours apprenait à se servir d'un serveur : se repérer, lire un journal, régler une permission, piloter un service. Celui-ci apprend à en avoir la charge : le faire démarrer, le maintenir à jour pendant des années, le réparer quand il ne répond plus, le protéger, et pouvoir le reconstruire s'il disparaît. Il s'adresse aux personnes qui deviennent responsables de machines Linux : administrateurs et administratrices système, profils DevOps, SRE, développeurs qui exploitent leurs propres serveurs.
L'approche
On retrouve Signalements, l'API de signalement d'incidents de voirie. Elle a grandi : elle tourne désormais sur deux instances Ubuntu 24.04 chez Scaleway, sig-app-1 et sig-app-2, reliées par un réseau privé à une base PostgreSQL managée, sig-db. Une troisième machine, sig-outils, sous Debian 13, exécute les tâches de fond : export nocturne pour la mairie, réception des journaux, sauvegardes. La personne qui administrait ces serveurs quitte l'équipe, et c'est à vous de reprendre le flambeau.
Le cours suit l'ordre dans lequel les problèmes se posent : d'abord savoir ce que l'on a entre les mains, puis comprendre comment la machine démarre et la garder à jour, puis la configurer (disques, réseau, heure, tâches), et enfin la protéger et pouvoir la reconstruire. Chaque leçon descend jusqu'au mécanisme, parce que c'est lui qui permet de diagnostiquer ce qu'aucune documentation n'a prévu.
Les exemples visent Ubuntu 24.04 LTS et Debian 13, les différences entre les deux sont signalées. Les équivalents sur la famille Red Hat (RHEL, AlmaLinux, Rocky Linux) sont indiqués quand ils diffèrent vraiment.
Ce qu'il faut
- Avoir suivi Linux : premiers pas, ou en maîtriser le contenu : shell, permissions, processus, systemd et journal, paquets.
- Pour la leçon sur le réseau, les notions du cours Le modèle TCP/IP : adresse, masque, route, port.
- Deux machines virtuelles jetables (une Ubuntu 24.04, une Debian 13), locales ou chez un fournisseur de cloud, avec un accès console. Plusieurs leçons consistent à casser le démarrage pour apprendre à le réparer : jamais sur une machine qui compte.
Les leçons
Prendre en charge
Démarrer et maintenir
- Le démarrage, du firmware à systemd
- Le noyau : modules et paramètres
- Mettre à jour le noyau et la distribution
- Dépanner un serveur qui ne démarre plus
Configurer
- Disques et systèmes de fichiers au quotidien
- Configurer le réseau d'un serveur
- Le pare-feu de l'hôte
- L'heure et sa synchronisation
- Planifier des tâches : cron et minuteurs
- Borner les ressources : limites et cgroups
- Les journaux d'un parc de serveurs
Protéger et reconstruire
- Authentification : PAM, NSS et annuaires
- Durcir un serveur
- Tracer et contrôler l'intégrité : auditd et AIDE
- Sauvegarder et restaurer un serveur
Pour valider : le quiz (niveau 100) et le lab (niveau 200).
Plan du cours
- Prendre en charge un serveur
200 Compagnon
Hériter de machines que l'on n'a pas installées : une méthode d'état des lieux en lecture seule (identité, virtualisation et métadonnées Scaleway, matériel, services et ports, comptes et accès, ce qui a été installé ou modifié à la main, tâches planifiées, mises à jour, disque, erreurs récentes), puis une fiche de serveur, un journal des changements et un script d'inventaire en Bash. - Le démarrage, du firmware à systemd
200 Compagnon
Ce qui se passe entre la mise sous tension et l'invite de connexion d'un serveur : firmware BIOS ou UEFI et partition ESP, Secure Boot et shim, GRUB et sa configuration générée, ligne de commande du noyau, initramfs, cibles systemd et mesure du démarrage avec systemd-analyze, cloud-init au premier démarrage d'une instance Scaleway, et arrêt propre. - Le noyau : modules et paramètres
200 Compagnon
Régler le noyau d'un serveur sans le recompiler : modules chargés à la demande par udev ou au démarrage, listes noires et options, paramètres à chaud dans /proc/sys et leur persistance par sysctl.d, sysfs, tampon du noyau et dmesg, noyau « teinté », et les messages d'OOM ou de matériel défaillant qu'il faut savoir reconnaître. - Mettre à jour le noyau et la distribution
300 Expert
Passer des mises à jour quotidiennes à une politique de mise à jour d'un parc : noyaux installés et méta-paquets, ce qu'APT garde et retire, needrestart, redémarrages coordonnés de sig-app-1 et sig-app-2 derrière le répartiteur, Livepatch et kpatch, noyaux GA et HWE, changement de version majeure avec do-release-upgrade et selon les notes de publication de Debian 13, instantané et plan de retour, et le choix de reconstruire plutôt que migrer. - Dépanner un serveur qui ne démarre plus
300 Expert
Remettre en route une machine qui ne répond plus après un redémarrage : situer la panne dans la chaîne de démarrage, passer par la console série et le menu GRUB, démarrer en mode rescue ou emergency, utiliser le mode de secours Scaleway et un chroot, puis réparer les pannes classiques (fstab, initramfs, GRUB, noyau, disque plein, compte root verrouillé, service bloquant) à partir de leurs messages exacts. - Disques et systèmes de fichiers au quotidien
200 Compagnon
Ajouter un volume Block Storage Scaleway à un serveur et l'exploiter pendant des années : périphériques bloc et identifiants stables, partition GPT, mkfs.ext4 et ses réservations, options de montage, /etc/fstab lu champ par champ, nofail et unités .mount générées par systemd, agrandissement à chaud, surveillance de l'espace et des inodes, swap, TRIM, démontage d'un système de fichiers occupé et /tmp en tmpfs sur Debian 13. - Configurer le réseau d'un serveur
200 Compagnon
Savoir qui configure le réseau d'une machine (netplan, systemd-networkd, ifupdown, NetworkManager, cloud-init), lire son état avec ip, networkctl et resolvectl, ajouter l'interface du réseau privé Scaleway, une route et un nom d'hôte durables, comprendre la résolution de noms de bout en bout, et modifier tout cela à distance sans se couper l'accès. - Le pare-feu de l'hôte
200 Compagnon
Filtrer le trafic au plus près des services : Netfilter et ses crochets, le suivi de connexion, iptables et nftables, ufw sur Ubuntu et nftables natif sur Debian, ICMP et ICMPv6 à ne jamais bloquer, groupes de sécurité Scaleway contre pare-feu de l'instance, Docker qui contourne ufw, journalisation, filtrage en sortie, et la méthode pour modifier un pare-feu à distance sans se couper l'accès. - L'heure et sa synchronisation
200 Compagnon
Pourquoi un serveur à l'heure fausse casse TLS, les jetons, la corrélation des journaux et les tâches planifiées : horloge matérielle et horloge système, horloges réelle et monotone, UTC et fuseaux, protocole NTP, strates, ajustement progressif ou saut, systemd-timesyncd et chrony sur Ubuntu 24.04 et Debian 13, serveur de temps interne pour le réseau privé de Signalements, NTS, lecture de chronyc tracking et sources, secondes intercalaires et surveillance du décalage. - Planifier des tâches : cron et minuteurs
200 Compagnon
Faire tourner l'export nocturne et la purge de Signalements sans que personne n'y pense, et savoir quand ils échouent : syntaxe de cron et ses pièges, crontabs utilisateur et système, run-parts, environnement minimal, anacron, puis minuteurs systemd (OnCalendar, Persistent, RandomizedDelaySec, systemd-run), comparaison argumentée, chevauchements, codes de sortie, OnFailure et surveillance par signal de vie, sans oublier le changement d'heure. - Borner les ressources : limites et cgroups
300 Expert
Empêcher une tâche gourmande de faire tomber le reste d'un serveur : limites par processus (ulimit, prlimit, limits.conf et pourquoi il ne s'applique pas aux services), groupes de contrôle v2 et tranches systemd, MemoryHigh, MemoryMax, CPUWeight, CPUQuota, IOWeight et TasksMax, OOM killer global, OOM d'un cgroup et systemd-oomd, et lecture de memory.events, cpu.stat et /proc/pressure. - Les journaux d'un parc de serveurs
200 Compagnon
Faire des journaux un outil d'exploitation plutôt qu'un fichier qui remplit le disque : configurer journald par drop-in (stockage, plafonds, rétention, limitation de débit), exploiter ses sorties structurées, écrire dans le journal depuis un script, envoyer les journaux de sig-app-1 et sig-app-2 vers sig-outils avec rsyslog sur TCP et TLS sans en perdre pendant une panne, maîtriser logrotate, et fixer une durée de conservation compatible avec les recommandations de la CNIL. - Authentification : PAM, NSS et annuaires
200 Compagnon
Comprendre ce qui décide réellement qu'une personne peut ouvrir une session sur un serveur Linux : les piles PAM et leurs quatre types, la syntaxe des contrôles et des sauts, pam-auth-update, le verrouillage après échecs avec pam_faillock, la robustesse des mots de passe selon l'ANSSI, le hachage yescrypt et l'expiration, puis le passage à un annuaire central avec SSSD pour ne plus gérer les départs machine par machine. - Durcir un serveur
200 Compagnon
Réduire ce qu'un attaquant peut faire sur une machine, avant et après une première intrusion : choisir un référentiel (guide ANSSI BP-028, CIS), mesurer avec Lynis, retirer les services inutiles, restreindre SSH, régler les paramètres du noyau un par un, monter les répertoires temporaires sans exécution, bloquer les modules superflus, lire AppArmor, confiner l'unité systemd de Signalements, et documenter chaque écart. - Tracer et contrôler l'intégrité : auditd et AIDE
300 Expert
Savoir qui a fait quoi sur un serveur, et prouver ce qui a changé : le sous-système d'audit du noyau, auditd et ses règles persistantes, l'identité de connexion qui survit à sudo, la lecture d'un événement brut, ausearch et aureport, le compromis entre traçabilité et disponibilité, l'envoi des traces hors de la machine, le scellement des fichiers avec AIDE, dpkg --verify et l'enregistrement des sessions sudo. - Sauvegarder et restaurer un serveur
200 Compagnon
Décider quoi sauvegarder sur un serveur que l'on sait reconstruire, fixer la perte de données et la durée d'interruption admissibles, copier avec rsync et tar, sauvegarder avec restic vers Object Storage Scaleway avec chiffrement, déduplication et rétention, protéger les copies contre un rançongiciel, automatiser par un minuteur, et surtout prouver que la restauration fonctionne en reconstruisant sig-app-2.