Sélectionner une page
Contenu du cours
Systèmes d’Exploitation
Devenez autonome dans la gestion des environnements Linux et Windows Server. Vous apprendrez à administrer, automatiser et sécuriser les serveurs grâce à des outils et langages comme Bash, Systemd, PowerShell et Active Directory. Ce bloc développe les compétences essentielles à la maintenance et à la supervision des systèmes d’exploitation d’entreprise.
0/4
Réseaux et Télécommunications
Maîtrisez la conception, la configuration et le dépannage d’infrastructures réseau complexes. Ce module couvre les fondamentaux du modèle OSI, du subnetting, des VLAN, du routage et des services réseau (DNS, DHCP) à l’aide d’équipements professionnels (Cisco, HP). Vous apprendrez également à renforcer la sécurité et la performance des architectures réseau.
0/3
Virtualisation et Cloud
Développez une expertise en virtualisation et en Cloud Computing. Vous apprendrez à déployer des machines virtuelles avec VMware ou Proxmox, à orchestrer des conteneurs avec Docker et Kubernetes, et à utiliser les principaux Clouds publics (AWS, Azure). L’accent est mis sur l’automatisation via Terraform et Ansible pour une gestion d’infrastructure moderne et scalable.
0/4
Sécurité des Systèmes d’Information
Renforcez la résilience et la conformité des systèmes informatiques. Ce bloc vous forme au hardening des serveurs, à la configuration des pare-feu (iptables, pfSense), à la mise en place de VPN, ainsi qu’à la réalisation d’audits de sécurité. Vous serez capable d’anticiper, détecter et corriger les failles afin de protéger les infrastructures contre les cybermenaces.
0/3
DevOps et Automatisation
Intégrez les pratiques DevOps pour une gestion fluide du cycle de vie des applications. Vous apprendrez à utiliser Git, à mettre en place des pipelines CI/CD (avec Jenkins, GitLab CI), et à surveiller les systèmes via des outils d’observabilité comme Prometheus, Grafana et ELK. Ce bloc met l’accent sur l’efficacité, la collaboration et la proactivité dans la gestion IT.
0/2
Projet Final et Certification
Mettez en pratique l’ensemble des compétences acquises à travers un projet d’envergure. Vous concevrez, déploierez et documenterez une infrastructure hybride (On-Premise + Cloud), intégrant sécurité, réseau, virtualisation et DevOps. Ce projet constitue la synthèse du cursus et vous prépare directement à la certification RNCP de niveau 6 (Bac+3).
0/2
Administrateur SysOps & DevOps
À propos de la leçon

1 — Introduction à l’Administration Avancée

Ce module fait suite aux fondamentaux et couvre les aspects critiques de la gestion de systèmes Linux en environnement de production : la performance, la gestion des services, la journalisation et l’administration des paquets avancée. Maîtriser ces concepts est essentiel pour devenir un administrateur système compétent.

Rôle de l’Administrateur Avancé

L’administrateur avancé ne se contente plus de manipuler des fichiers ou de gérer des utilisateurs. Son rôle s’étend à :

  • L’optimisation des performances (CPU, I/O disque, mémoire).
  • La supervision et le dépannage proactif des services critiques.
  • La gestion des correctifs et des mises à jour complexes.
  • La sécurisation des communications et du système d’exploitation.

Environnement de Travail Recommandé

Pour suivre ce cours, il est crucial d’avoir un environnement serveur stable, de préférence une distribution LTS (Long Term Support) comme Ubuntu Server ou Rocky Linux (clone de RHEL). Toutes les commandes présentées sont universelles (Bash) ou spécifiques aux systèmes basés sur Debian/Red Hat (indiqué le cas échéant).

2 — Gestion des Services avec systemd

systemd est le système d’initialisation et le gestionnaire de services standard sur la majorité des distributions Linux modernes (successeur de SysVinit). Il est responsable du démarrage du système et de la gestion de tous les services (démons) en arrière-plan.

Concepts Clés de systemd

  • Unités (Units) : Fichiers de configuration décrivant une ressource (service, socket, montage, cible). Le type le plus courant est l’unité de service (extension .service).
  • Cibles (Targets) : Groupes d’unités utilisées pour atteindre un certain état (l’équivalent des « runlevels » de l’ancien système). Ex: multi-user.target.
  • Journalisation (Journal) : systemd collecte les journaux de tous les services via journalctl.

Commandes Essentielles de systemctl

La commande systemctl est l’outil principal pour interagir avec le gestionnaire de services.

Commande Action
systemctl status ssh Affiche l’état d’un service (actif, inactif, erreurs).
systemctl start apache2 Démarre le service immédiatement.
systemctl enable apache2 Active le service au démarrage (persistance).
systemctl disable apache2 Désactive le démarrage automatique.
systemctl restart network Arrête puis redémarre le service.
systemctl isolate multi-user.target Change l’état du système (ex: vers le mode console).

 

Créer une Unité de Service Personnalisée

Pour exécuter un script ou une application spécifique comme un service système, vous devez créer un fichier .service dans /etc/systemd/system/.

Exemple de fichier /etc/systemd/system/mon_app.service :

[Unit]
Description=Mon application de test
After=network.target

[Service]
ExecStart=/usr/local/bin/mon_script.sh
User=mon_utilisateur
Type=simple
Restart=on-failure

[Install]
WantedBy=multi-user.target

Après avoir créé ou modifié un fichier d’unité, vous devez recharger la configuration systemd :

sudo systemctl daemon-reload
sudo systemctl enable mon_app
sudo systemctl start mon_app

 

3 — Journalisation Avancée (Journalctl et Logs)

Savoir lire et analyser les journaux (logs) est la première étape du dépannage. systemd centralise tous les logs dans son propre système de journalisation, accessible via journalctl.

Journalctl : L’outil centralisé

Contrairement aux logs traditionnels dans /var/log (qui existent toujours), journalctl offre des options de filtrage puissantes.

Commande Description
journalctl Affiche tous les logs du système depuis le dernier démarrage.
journalctl -u apache2 Affiche les logs d’une unité spécifique (ex: Apache).
journalctl -f Suit les logs en temps réel (équivalent de tail -f).
journalctl --since "1 hour ago" Affiche les logs de la dernière heure.
journalctl -p err..crit Filtre par niveau de priorité (error et critical).

 

Gestion de la Rotation des Logs (Logrotate)

La rotation des logs empêche les fichiers de grossir indéfiniment. C’est le rôle de l’utilitaire Logrotate.

  • Les configurations globales sont dans /etc/logrotate.conf.
  • Les configurations spécifiques aux applications sont placées dans /etc/logrotate.d/.

Exemple de configuration simple pour un log applicatif :

/var/log/mon_app/app.log {
    daily              # Rotation journalière
    rotate 7           # Garder 7 anciennes copies
    compress           # Compresser les anciennes copies
    missingok          # Ne pas générer d'erreur si le fichier est manquant
    notifempty         # Ne pas effectuer la rotation si le fichier est vide
    create 0640 root adm # Créer un nouveau fichier avec ces permissions
}

4 — Gestion Avancée des Paquets (APT, DNF/YUM)

La gestion des paquets est la manière de déployer, mettre à jour et supprimer des logiciels de manière cohérente et sécurisée.

Distributions Basées sur Debian (APT/dpkg)

APT (Advanced Package Tool) est l’interface en ligne de commande utilisée sur Debian, Ubuntu, Mint, etc.

Commande Action
apt update Met à jour l’index des paquets disponibles (essentiel).
apt upgrade Installe les mises à jour des paquets existants.
apt full-upgrade Gère les changements de dépendances (parfois nécessaire).
apt search nano Recherche un paquet dans les dépôts.
apt install apache2 Installe un paquet et ses dépendances.
apt purge apache2 Désinstalle le paquet ET ses fichiers de configuration.

 

Distributions Basées sur Red Hat (DNF/YUM)

DNF (Dandified YUM) est le gestionnaire moderne utilisé par RHEL, Fedora, CentOS, et Rocky Linux.

# Mettre à jour l'index et les paquets (similaire à 'apt update && apt upgrade')
sudo dnf update

# Installer un paquet
sudo dnf install httpd

# Supprimer un paquet
sudo dnf remove httpd

Gérer les dépôts (Sources de Paquets)

Les dépôts sont des serveurs où les paquets sont stockés. Sous Debian, ils sont listés dans /etc/apt/sources.list et dans /etc/apt/sources.list.d/.

Ajouter un dépôt tiers (comme celui de Docker ou PostgreSQL) nécessite l’ajout de l’URL du dépôt et de la clé GPG (cryptographique) pour vérifier l’authenticité des paquets.

# Ajout de la clé GPG (Debian/Ubuntu)
wget -qO - https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# Ajout du dépôt Docker
echo 
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu 
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | 
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

 

5 — Gestion des Volumes et RAID

L’administration avancée implique la gestion des systèmes de fichiers, du stockage et des stratégies de redondance pour assurer la disponibilité des données.

Gestion des Volumes Logiques (LVM)

LVM (Logical Volume Manager) permet de créer des volumes de stockage flexibles qui peuvent être redimensionnés à chaud (sans redémarrage) et facilement déplacés entre des disques physiques.

  1. PV (Physical Volume) : Disque physique ou partition initialisé(e) pour LVM.
  2. VG (Volume Group) : Pool de stockage créé à partir d’un ou plusieurs PV.
  3. LV (Logical Volume) : Volume utilisable par le système (sur lequel on crée le système de fichiers, ex: Ext4).
# Créer un Volume Physique
sudo pvcreate /dev/sdb1

# Créer un Groupe de Volume
sudo vgcreate vg_data /dev/sdb1

# Créer un Volume Logique de 50G
sudo lvcreate -L 50G -n lv_web vg_data

# Formater et monter
sudo mkfs.ext4 /dev/vg_data/lv_web
sudo mount /dev/vg_data/lv_web /mnt/web_data

Redondance RAID (Software RAID)

RAID (Redundant Array of Independent Disks) permet d’utiliser plusieurs disques pour améliorer la performance (vitesse) ou la fiabilité (redondance). Linux gère le RAID de manière logicielle via l’outil mdadm.

Niveau RAID Description Disques Min.
RAID 0 Striping (Vitesse maximale, aucune tolérance aux pannes). 2
RAID 1 Mirroring (Redondance, la capacité est celle du plus petit disque). 2
RAID 5 Parité (Bon compromis vitesse/redondance, 1 disque de panne toléré). 3

 

6 — Supervision et Dépannage Réseau

Le dépannage réseau est une compétence clé. Il faut être capable de diagnostiquer les problèmes de connectivité, de latence et de résolution de noms (DNS).

Outils de diagnostic de base

Ces outils permettent de vérifier la connectivité de la couche IP jusqu’à la couche application.

Commande Fonction
ip a Affiche les adresses IP et l’état des interfaces (remplace ifconfig).
ip r Affiche la table de routage (Gateway et routes statiques).
ping Vérifie la connectivité de base (ICMP).
traceroute Trace le chemin des paquets jusqu’à la destination.
ss -tulpn Affiche les sockets d’écoute (ports ouverts) (remplace netstat).
dig / nslookup Diagnostique les requêtes de résolution DNS.

Firewall (Netfilter / iptables / UFW)

Netfilter est le framework du noyau pour la gestion des paquets. iptables ou nftables sont les commandes utilisées pour le configurer directement. Ubuntu utilise souvent UFW (Uncomplicated Firewall) comme interface simplifiée.

# Activer UFW
sudo ufw enable

# Autoriser le trafic SSH (port 22)
sudo ufw allow 22/tcp

# Autoriser le trafic Web (HTTP/HTTPS)
sudo ufw allow 'Apache Full'

# Vérifier l'état et les règles
sudo ufw status verbose

 

7 — Planification des Tâches et Sauvegardes

L’automatisation et la planification sont cruciales pour la maintenance d’un serveur.

Planification des Tâches avec Cron

Cron permet d’exécuter des commandes ou des scripts à intervalles réguliers. Chaque utilisateur a son propre fichier de planification appelé crontab.

# Éditer la crontab de l'utilisateur actuel
crontab -e

# Afficher le contenu de la crontab
crontab -l

Syntaxe Crontab (5 Champs)

Les cinq premiers champs définissent l’heure d’exécution :

m   h   dom   mon   dow   commande_a_executer
|   |   |     |     |     
|   |   |     |     +----- Jour de la semaine (0-7, 0 et 7 = Dimanche)
|   |   |     +------- Mois (1-12)
|   |   +--------- Jour du mois (1-31)
|   +----------- Heure (0-23)
+------------- Minute (0-59)

Exemple : Exécuter un script de sauvegarde tous les jours à 2h30 du matin :

30 2 * * * /usr/local/bin/backup.sh

Le caractère `*` signifie « toutes les valeurs possibles » pour ce champ.

Stratégies de Sauvegarde

Une sauvegarde efficace implique :

  • La compression et l’archivage (souvent avec tar).
  • Le transfert sécurisé (vers un autre serveur ou un stockage Cloud).
  • La vérification régulière de la restauration.

Commande d’archivage et de compression :

# Créer une archive tar compressée (c=create, z=gzip, v=verbose, f=file)
tar -czvf /backup/site_$(date +%Y%m%d).tar.gz /var/www/html

 

8 — Administration des Performances et du Monitoring

L’objectif de l’administration avancée est de maintenir le système stable et rapide. Le monitoring permet de détecter les goulots d’étranglement.

Analyse de la Performance CPU et RAM

Ces outils sont essentiels pour identifier les processus qui consomment trop de ressources :

  • htop : Outil interactif pour voir l’utilisation CPU, la RAM, et trier les processus par consommation.
  • top : Version classique et non interactive.
  • free -h : Affiche l’utilisation de la mémoire RAM et SWAP (en format lisible).

Analyse de la Performance Disque (I/O)

Si votre système semble lent même si le CPU est faible, le problème vient souvent des E/S (Entrées/Sorties) du disque.

  • iostat -x : Affiche les statistiques détaillées d’I/O pour les périphériques, y compris le pourcentage de temps où le périphérique est occupé (%util).
  • iotop : Affiche les processus qui consomment le plus de bande passante disque en temps réel (similaire à htop pour le disque).

Analyse de l’Espace Disque

Pour éviter une saturation de l’espace, vérifiez régulièrement :

# Espace disque utilisé (en gigaoctets)
df -h

# Taille d'un répertoire spécifique (du=disk usage)
du -sh /var/log

 

9 — TP Avancés (Mise en Production)

Ces exercices couvrent une chaîne de tâches typiques d’un SysAdmin : mise en service, monitoring et gestion des pannes.

TP 1 : Mise en place d’un service personnalisé

  1. Créer un script Bash simple /usr/local/bin/ping_google.sh qui fait un ping vers Google et envoie la sortie dans un fichier de log /tmp/ping.log.
  2. Créer une unité systemd /etc/systemd/system/ping_test.service pour exécuter ce script. Assurez-vous d’utiliser Type=simple et User=root (ou votre utilisateur).
  3. Activer et démarrer le service : sudo systemctl daemon-reload && sudo systemctl enable --now ping_test.
  4. Vérifier l’état du service et les logs : systemctl status ping_test et journalctl -u ping_test.

TP 2 : Création de Volume LVM et Montage

Simulez l’ajout d’un nouveau disque et son intégration au système via LVM pour créer un volume extensible.

  1. Utiliser un disque vierge ou une partition (ex: /dev/sdb) pour ce TP.
  2. Initialiser le disque : sudo pvcreate /dev/sdb.
  3. Créer le groupe de volume : sudo vgcreate vg_projets /dev/sdb.
  4. Créer un volume logique de 10 Go : sudo lvcreate -L 10G -n lv_data vg_projets.
  5. Formater le volume : sudo mkfs.ext4 /dev/vg_projets/lv_data.
  6. Créer le point de montage et monter le volume : sudo mkdir /mnt/projets && sudo mount /dev/vg_projets/lv_data /mnt/projets.

TP 3 : Audit de Sécurité et Automatisation

  1. Installer UFW : sudo apt install ufw (Debian/Ubuntu).
  2. Bloquer tout le trafic entrant par défaut : sudo ufw default deny incoming.
  3. Autoriser seulement le port SSH (22) : sudo ufw allow 22/tcp.
  4. Créer une tâche Cron pour exécuter une mise à jour d’index des paquets tous les dimanches à 3h00 du matin (sans installer de paquets, juste la mise à jour de la liste) : 0 3 * * 0 sudo apt update > /dev/null 2>&1.