Base de Commandes

Divers Commandes Importantes BASE DE CONNAISSANCES

Page racine du dépôt pour accéder rapidement aux commandes d'administration, aux scénarios courants et aux grands domaines d'exploitation sans perdre le contenu documentaire complet.

CouvertureLinux, Windows, Cisco, PowerShell, réseau, sécurité, virtualisation, cloud, automatisation et bases de données.
UsageAccès rapide aux scénarios d'urgence, aux commandes de diagnostic et aux sections d'administration les plus utiles.
StructureEntrée native du nouveau modèle avec conservation intégrale des blocs documentaires d'origine.

Lecture rapide

Cette base regroupe les commandes et scénarios les plus utiles pour diagnostiquer, réparer, administrer et exploiter des environnements systèmes, réseaux et cloud, sans perdre le détail du corpus source.

Pour l'urgencePartir des scénarios courants, lancer un filtre, puis descendre vers la section métier concernée.
Pour la révisionUtiliser la navigation par familles pour parcourir progressivement Linux, Windows, réseau, sécurité et automatisation.
Pour l'exploitationCombiner recherche, filtres rapides et mode urgence pour réduire immédiatement le volume à ce qui est pertinent.
Mode Urgence
Recherche instantanée sur les commandes, scénarios et workflows.
Filtrer par :

Commandes Importantes BASE DE CONNAISSANCES

🔧 Workflows de Diagnostic Rapide

  1. ✅ Vérifier les interfaces réseau
  2. ✅ Tester la connectivité Internet
  3. ✅ Vérifier le DNS
  4. ✅ Vérifier les services
  5. ✅ Vérifier l’espace disque

📊 Flux de Diagnostic Réseau

  [Problème réseau] 
       ↓
  [ip a] → Interfaces OK ? → Non → [Vérifier câbles/cartes]
       ↓ Oui
  [ping 8.8.8.8] → Internet OK ? → Non → [ip route show]
       ↓ Oui
  [nslookup] → DNS OK ? → Non → [cat /etc/resolv.conf]
       ↓ Oui
  [Problème applicatif]
      

🚨 Scénarios d'Urgence

🌐

Réseau Complètement HS

URGENT RISQUE FAIBLE DIAGNOSTIC
🎯 Symptômes : Pas d'accès Internet, impossible de ping les gateways
⚠️ Causes probables : Carte réseau, câble, configuration IP, firewall
🔧 Temps estimé : 5-15 minutes
🔒

SSH Bloqué / Refusé

URGENT RISQUE MOYEN SÉCURITÉ
🎯 Symptômes : "Connection refused", timeout sur le port 22
⚠️ Causes probables : Service SSH down, firewall, changement de port
🔧 Temps estimé : 3-10 minutes

Linux

Routage sous Linux

RISQUE MOYEN CONFIGURATION RÉSEAU ⏱️ 2 secondes
# Ajouter une route
ip route add (IP address de destination)/(mask) via (IP local capable d'aller vers le réseau de destination)

# Ajouter une route par défaut
ip route add default via <address-passerelle>

# Rendre une route permanente (Debian/Ubuntu)
echo "192.168.10.0/24 via 192.168.60.5 dev eth0" | sudo tee -a /etc/network/interfaces

# Vérifier la table de routage
ip route show

# Ajouter une adresse IP permanente
ip address add 192.168.1.2/24 dev eth0 sur l'interface concerné dans /etc/network/interfaces
up ip address add 192.168.1.2/24 dev eth0 sur l'interface concerné
🎯 Quand utiliser : Quand une machine ne peut pas joindre un réseau spécifique
⚠️ Attention : Les routes ajoutées avec ip route sont temporaires (redémarrage)
✅ Test de succès : La commande `ip route show` affiche la nouvelle route
🚨 Scénario : Machine ne pouvant pas accéder à un sous-réseau spécifique

Configuration d'interface sous Linux

RISQUE MOYEN CONFIGURATION RÉSEAU ⏱️ 5 secondes
# Lister les interfaces
ip link show, ip a

# Activer une interface
ip link set <interface> up

# Configurer une adresse IP
ip address add <IP>/<masque> dev <interface>

# Vérifier l'adresse IP
ip address show <interface>
🎯 Quand utiliser : Configuration manuelle d'une interface réseau
⚠️ Attention : Les changements sont temporaires (redémarrage)
✅ Test de succès : `ip a` montre l'interface avec la bonne IP
🚨 Scénario : Interface sans adresse IP ou configuration incorrecte

NAT sous Linux

RISQUE MOYEN CONFIGURATION RÉSEAU ⏱️ 10 secondes
# Désactiver NAT temporairement
iptables -t nat -F POSTROUTING

# Activer NAT
iptables -t nat -A POSTROUTING -s <Network+Mask> -o <Interface> -j MASQUERADE

# Activer le forwarding IP
sysctl -w net.ipv4.ip_forward=1
# Permanent: Edit /etc/sysctl.conf and set net.ipv4.ip_forward=1.

# Vérifier le NAT
sudo iptables -t nat -L POSTROUTING -v -n --line-numbers
iptables -t nat -L -n -v

# Vérifier le port forwarding
cat /proc/sys/net/ipv4/ip_forward

# Afficher les paquets NAT en temps réel
watch -n 1 'sudo iptables -t nat -L POSTROUTING -v -n'
🎯 Quand utiliser : Configuration d'un routeur Linux ou partage de connexion
⚠️ Attention : Vérifier que le forwarding IP est activé (valeur 1)
✅ Test de succès : Les machines du réseau interne peuvent accéder à Internet
🚨 Scénario : Mise en place d'un firewall/router Linux

Alternative (for Static IPs): Use SNAT

iptables -t nat -A POSTROUTING -s 30.30.30.0/30 -o pnet0 -j SNAT --to-source [PUBLIC_IP]

NAT pour protocoles spécifiques

RISQUE MOYEN CONFIGURATION RÉSEAU ⏱️ 5 secondes
# Autoriser les paquets RIP (destination)
iptables -t nat -A POSTROUTING -p udp --dport 520 -j ACCEPT

# Autoriser les paquets RIP (source)
iptables -t nat -A POSTROUTING -p udp --sport 520 -j ACCEPT

# Autoriser tous les paquets
iptables -A FORWARD -i pnet0 -j ACCEPT
iptables -A FORWARD -o pnet0 -j ACCEPT
🎯 Quand utiliser : Configuration avancée du NAT pour protocoles spécifiques
⚠️ Attention : Bien spécifier les ports et protocoles
✅ Test de succès : Les paquets RIP traversent le NAT
🚨 Scénario : Routage dynamique RIP à travers un firewall Linux

Common Pitfalls:

  • Interface name typo: Ensure pnet0 exists (ip a or ifconfig)
  • Missing kernel support: Verify NAT is supported (lsmod | grep iptable_nat)
  • Firewall conflicts: Check if other rules block traffic (iptables -L)

Traceroute

RISQUE FAIBLE DIAGNOSTIC RÉSEAU ⏱️ 30 secondes
# Envoyer seulement 3 paquets par saut
traceroute 8.8.8.8 probe 3

# Trouver le PID du traceroute
show processes | include traceroute

# Terminer le processus
kill <PID>
🎯 Quand utiliser : Identifier où se situe une panne réseau
🔍 Interprétation : Le dernier saut répondant indique le point de rupture
✅ Résultat : Visualisation complète du chemin réseau
🚨 Scénario : "Je peux ping certaines IP mais pas d'autres"

Traitement de fichiers sous Linux

RISQUE MOYEN CONFIGURATION MAINTENANCE ⏱️ 2 secondes
# Ajouter un commentaire à la première ligne
sed -i '1i # Commentaire' /etc/hosts

# Ajouter un texte à la première ligne
sed -i '1iTexteà insérer' /etc/hosts

# Créer un fichier avec 2 lignes
echo -e "Ligne 1\nLigne 3" > fichier.txt

# Ajouter une ligne en position 2
sed -i '2iLigne 2 (ajoutée)' fichier.txt

# Supprimer la deuxième ligne
sed -i '2d' fichier.txt

# Supprimer un texte spécifique
sed -i '/texte à supprimer/d' fichier.txt

# Supprimer un bloc de lignes
sed -i '2,4d' fichier.txt

# Édition interactive avec ed
ed -s fichier.txt < tmp
echo "Nouvelle ligne 2" >> tmp
tail -n +2 fichier.txt >> tmp
mv tmp fichier.txt
🎯 Quand utiliser : Modification rapide de fichiers de configuration
⚠️ Attention : Toujours sauvegarder avant modification avec sed -i
✅ Test de succès : Vérifier le contenu du fichier après modification
🚨 Scénario : Correction rapide de configuration sans éditeur

Maintenance système sous Linux

RISQUE MOYEN MAINTENANCE PRODUCTION ⏱️ 5 minutes
# Moderniser les dépôts apt
apt modernize-sources

# Reconfigurer GRUB
sudo update-grub

# Nettoyer le système
sudo apt autoremove --purge

# Régénérer initramfs
sudo update-initramfs -u -k all

# Corriger les dépendances
sudo apt install -f

# Vérifier l'espace disque
df -h /boot
🎯 Quand utiliser : Maintenance périodique du système
⚠️ Attention : Certaines commandes peuvent nécessiter un redémarrage
✅ Résultat : Système nettoyé et optimisé
🚨 Scénario : Maintenance mensuelle ou après mises à jour

Intégration Active Directory

RISQUE MOYEN CONFIGURATION SÉCURITÉ ⏱️ 5 minutes
# Joindre un domaine AD
sudo apt install realmd sssd adcli samba-common krb5-user packagekit
sudo realm join --user=Administrateur MONDOMAINE.LOCAL

# Supprimer une machine du domaine AD
sudo realm leave --remove=/home/[username] [domain.name]
🎯 Quand utiliser : Intégration d'un serveur Linux dans un domaine Windows
⚠️ Pré-requis : Accès réseau au contrôleur de domaine
✅ Test de succès : Connexion avec compte de domaine réussi
🚨 Scénario : "Intégration d'un serveur Linux dans l'AD d'entreprise"

Scanner Virtuel sous Linux

RISQUE FAIBLE DIAGNOSTIC MAINTENANCE ⏱️ 10 secondes
# Utiliser un scanneur virtuel
scanimage -d "net:<IP_Scanner>:test:0" --format=png > fake-scan.png

# Vérifier les périphériques disponibles
scanimage -L
🎯 Quand utiliser : Test de connectivité avec scanners réseau
🔍 Utilisation : Vérifier que SANE détecte correctement le scanner
✅ Test de succès : scanimage -L liste le scanner réseau
🚨 Scénario : "Le scanner réseau n'est pas détecté"

Diagnostic Réseau Linux

RISQUE FAIBLE DIAGNOSTIC RÉSEAU URGENT ⏱️ 30 secondes
# Vérification des interfaces réseau
ip a
ip -br addr show

# Vérification de la table de routage
ip route show
ip route get 8.8.8.8

# Test de connectivité de base
ping 192.168.10.1
ping 8.8.8.8
ping google.com

# Test DNS
nslookup google.com
nslookup 0.debian.pool.ntp.org

# Traceroute
traceroute -n 8.8.8.8

# Statistiques des interfaces
ip -s link show

# Connexions réseau actives
ss -tulpn

# Tables ARP
ip neigh show

# Informations matérielles réseau
lshw -class network 2>/dev/null | head -20

# Pilotes réseau
ethtool -i enp0s10 2>/dev/null

# Bandwidth par interface
cat /proc/net/dev

# Qualité du signal Wi-Fi (si applicable)
iwconfig 2>/dev/null | grep -i quality

# Latence réseau
ping -c 3 8.8.8.8

# Script de diagnostic rapide
#!/bin/bash
echo "=== DIAGNOSTIC RÉSEAU RAPIDE ==="
ip -br addr show
ip route show
ping -c 2 8.8.8.8
🎯 Quand utiliser : Premier diagnostic en cas de problème réseau
🔍 Méthodologie : Suivre l'ordre des commandes du haut vers le bas
✅ Résultat : Identification précise du point de rupture
🚨 Scénario : "Le réseau ne marche plus" - diagnostic complet

Diagnostic Firewall Local

RISQUE FAIBLE DIAGNOSTIC SÉCURITÉ ⏱️ 5 secondes
# Vérifier les règles iptables
sudo iptables -L -n -v
sudo iptables -S

# Vérifier nftables
sudo nft list ruleset

# Désactivation temporaire du firewall
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo nft flush ruleset

# Test après désactivation firewall
ping -c 3 8.8.8.8

# Règles firewall
sudo iptables -L 2>/dev/null | head -20

# Ports ouverts
sudo netstat -tulpn 2>/dev/null | head -20

# Services réseau écoutants
sudo ss -tulpn | grep LISTEN
🎯 Quand utiliser : Quand une connexion réseau est bloquée inexplicablement
🔍 Méthodologie : Désactiver temporairement le firewall pour tester
⚠️ Attention : Ne pas laisser le firewall désactivé en production !
🚨 Scénario : "Une application ne peut pas se connecter au réseau"

Gestion NetworkManager

RISQUE MOYEN CONFIGURATION RÉSEAU ⏱️ 15 secondes
# État des connexions NetworkManager
nmcli connection show
nmcli device status

# Vérification détaillée d'une connexion
nmcli connection show "Connexion Ethernet 1"
nmcli connection show enp0s10

# Modification configuration DNS
sudo nmcli connection modify "Connexion Ethernet 1" ipv4.dns "8.8.8.8,1.1.1.1"
sudo nmcli connection modify "Connexion Ethernet 1" ipv4.ignore-auto-dns yes
sudo nmcli connection modify "Connexion Ethernet 1" ipv4.dns-search ""

# Redémarrage connexion
sudo nmcli connection down "Connexion Ethernet 1"
sudo nmcli connection up "Connexion Ethernet 1"

# Suppression et recréation de profil
sudo nmcli connection delete "Connexion Ethernet 1"
sudo nmcli connection add type ethernet ifname enp0s10 con-name enp0s10 \
ipv4.method auto \
ipv4.dns "8.8.8.8,1.1.1.1" \
ipv4.ignore-auto-dns yes \
ipv4.dns-search "" \
connection.autoconnect yes

# Activer la nouvelle connexion
sudo nmcli connection up enp0s10

# Forcer la reconnaissance de l'interface
sudo nmcli device connect enp0s10

# Redémarrer NetworkManager (si nécessaire)
sudo systemctl restart NetworkManager
🎯 Quand utiliser : Problèmes de configuration réseau persistants
🔍 Résolution : Supprimer et recréer la connexion corrompue
✅ Test de succès : Connexion réseau stable avec DNS fonctionnel
🚨 Scénario : "Problèmes DNS récurrents ou connexion instable"

Configuration Manuelle Interfaces (sans NetworkManager)

RISQUE MOYEN CONFIGURATION RÉSEAU ⏱️ 2 minutes
# Arrêt NetworkManager
sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager

# Installation ifupdown
sudo apt update
sudo apt install ifupdown

# Configuration /etc/network/interfaces
sudo nano /etc/network/interfaces

# Contenu fichier interfaces :
source /etc/network/interfaces.d/*

# Interface loopback
auto lo
iface lo inet loopback

# Interface ethernet en DHCP
auto enp0s10
iface enp0s10 inet dhcp

# OU configuration statique
# auto enp0s10
# iface enp0s10 inet static
#     address 192.168.10.4/24
#     gateway 192.168.10.1
#     dns-nameservers 8.8.8.8 1.1.1.1

# Configuration DNS manuelle
sudo nano /etc/resolv.conf

# Contenu resolv.conf :
nameserver 8.8.8.8
nameserver 1.1.1.1
options timeout:2 attempts:1

# Rendre resolv.conf immuable
sudo chattr +i /etc/resolv.conf

# Activation service networking
sudo systemctl enable networking
sudo systemctl restart networking

# Gestion manuelle interface
sudo ifdown enp0s10
sudo ifup enp0s10
🎯 Quand utiliser : Serveurs nécessitant une configuration réseau statique fiable
⚠️ Attention : NetworkManager ne gère plus la configuration
✅ Avantage : Configuration stable et prévisible
🚨 Scénario : "Serveur en production nécessitant IP fixe stable"

Résolution Problèmes Spécifiques

RISQUE MOYEN DIAGNOSTIC RÉSEAU ⏱️ 30 secondes
# Suppression route APIPA problématique
sudo ip route del 169.254.0.0/16 dev enp0s10

# Nettoyage interface en cas de conflit
sudo ip link set enp0s10 down
sudo ip addr flush dev enp0s10
sudo ip route flush dev enp0s10

# Renouvellement DHCP
sudo dhclient -r enp0s10
sudo dhclient enp0s10

# Configuration IP manuelle temporaire
sudo ip addr add 192.168.10.20/24 dev enp0s10
sudo ip route add default via 192.168.10.1

# Supprimer une IP secondaire
sudo ip addr del 192.168.30.8/24 dev enp0s10

# Appliquer Netplan
sudo netplan generate && sudo netplan apply

# Configurer IP fixe avec NetworkManager
sudo nmcli connection modify 'enp0s10' ipv4.method manual ipv4.addresses 192.168.30.6/24 ipv4.gateway 192.168.30.1 ipv4.dns '8.8.8.8,8.8.4.4'

# Configurer IP fixe avec Netplan
sudo cat > /etc/netplan/01-network.yaml << 'EOF'
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s10:
      dhcp4: false
      addresses: [192.168.30.6/24]
      gateway4: 192.168.30.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
EOF

# Script de correction IP double
#!/bin/bash
INTERFACE=${1:-enp0s10}
MAIN_IP=${2:-192.168.30.6}
sudo ip addr flush dev $INTERFACE
sudo ip addr add $MAIN_IP/24 dev $INTERFACE
sudo systemctl restart systemd-networkd
🎯 Quand utiliser : Problèmes réseau complexes ou configurations corrompues
🔍 Diagnostic : Commencer par `ip a` pour voir l'état actuel
⚠️ Attention : Certaines commandes peuvent couper la connexion temporairement
🚨 Scénario : "Interface avec multiples IP ou configuration réseau corrompue"

Réinitialisation Complète

RISQUE MOYEN MAINTENANCE RÉSEAU ⏱️ 2 minutes
# Arrêt complet services réseau
sudo systemctl stop NetworkManager
sudo systemctl stop networking
sudo systemctl stop systemd-networkd

# Nettoyer les configurations existantes
sudo rm -rf /var/lib/NetworkManager/*

# Nettoyer l'interface manuellement
sudo ip link set enp0s10 down
sudo ip addr flush dev enp0s10
sudo ip route flush dev enp0s10

# Redémarrer les services
sudo systemctl start NetworkManager
sudo systemctl enable NetworkManager

# Laisser NetworkManager détecter automatiquement
sudo nmcli device connect enp0s10

# Configuration DNS manuelle
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
echo "nameserver 1.1.1.1" | sudo tee -a /etc/resolv.conf

# Rendre le DNS permanent
sudo chattr +i /etc/resolv.conf
# Pour débloquer plus tard : sudo chattr -i /etc/resolv.conf
🎯 Quand utiliser : Quand rien d'autre ne fonctionne - dernier recours
⚠️ Impact : Perte temporaire de connectivité réseau
✅ Résultat : Configuration réseau complètement réinitialisée
🚨 Scénario : "Problèmes réseau persistants après toutes les tentatives"

Diagnostic Avancé

RISQUE FAIBLE DIAGNOSTIC RÉSEAU ⏱️ 5 minutes
# Capture paquets sortants
sudo tcpdump -i enp0s10 host 192.168.10.4

# Vérification processus réseau
ps aux | grep -E "(dhclient|NetworkManager)"

# Logs système
sudo journalctl -u NetworkManager -f
sudo journalctl -u networking -f

# Vérification fichiers configuration
ls -la /etc/network/interfaces.d/
cat /etc/resolv.conf

# Traceroute pour voir où ça bloque
traceroute -n 8.8.8.8

# Vérifier les processus réseau
ss -tuln

# Vérifier les logs système
sudo journalctl -u NetworkManager -f

# Vérifier les logs du noyau
dmesg | grep -i network

# Test HTTP/HTTPS
curl -I http://google.com
curl -I https://google.com

# Test connectivité intermédiaire
ping 192.168.10.1  # Switch L3
ping 192.168.1.1   # pfSense

# Vérification tables ARP
arp -n

# Test ports spécifiques
nc -vz 192.168.10.1 22
nc -vz 192.168.1.1 443

# Baux DHCP
cat /var/lib/dhcp/dhclient.*.leases 2>/dev/null | grep "fixed-address" | head -5

# Vérifier la configuration Netplan
cat /etc/netplan/*.yaml 2>/dev/null

# Serveurs DNS utilisés
systemd-resolve --status 2>/dev/null

# Interfaces virtuelles
ip link show type bridge 2>/dev/null

# VLANs
ip link show | grep "@"

# Sauvegarder configuration réseau
sudo cp /etc/netplan/*.yaml ~/backup_network/ 2>/dev/null || true
sudo cp /etc/network/interfaces ~/backup_network/ 2>/dev/null || true
sudo nmcli connection show > ~/backup_network/nmcli_connections.txt 2>/dev/null || true

# Réseaux Docker
docker network ls 2>/dev/null | head -10
🎯 Quand utiliser : Diagnostic approfondi de problèmes complexes
🔍 Méthodologie : Analyser couche par couche (physique → application)
✅ Résultat : Identification précise de l'origine du problème
🚨 Scénario : "Problème réseau intermittent ou complexe nécessitant analyse approfondie"

Vérification réseau sous Linux

RISQUE FAIBLE DIAGNOSTIC RÉSEAU ⏱️ 10 secondes
# Vérifier un port distant
nc -vz IP_DU_SERVEUR 631

# Connecter des conteneurs Docker à un bridge
docker network connect bridge guacamole
docker network connect bridge guacamole_db
docker network connect bridge guacd
🎯 Quand utiliser : Vérification de connectivité vers des services spécifiques
🔍 Utilisation : Tester si un port est accessible depuis la machine
✅ Test de succès : "Connection succeeded" ou "succeeded"
🚨 Scénario : "Un service ne répond pas sur le réseau"

Partages réseau sous Linux

Montage de partage NFS

RISQUE MOYEN CONFIGURATION RÉSEAU ⏱️ 1 minute
# Installer les paquets NFS
sudo apt install nfs-common

# Vérifier les partages disponibles sur le serveur
showmount -e <IP Serveur NFS>

# Créer un point de montage sur la machine locale
mkdir -p /mnt/truenas_backup

# Monter le partage
mount -t nfs 192.168.100.10:/mnt/tank/vmbackups /mnt/truenas_backup

# Vérifier le montage
df -h
mount | grep nfs

# Tester l'accès
ls /mnt/truenas_backup

# Monter automatiquement au démarrage
nano /etc/fstab
# Ajouter: 192.168.100.10:/mnt/tank/vmbackups  /mnt/truenas_backup  nfs  rw,soft,nolock  0  0

# Démonter le partage local
umount /mnt/truenas_backup

# Alternative avec autofs
sudo apt install autofs
# Éditer /etc/auto.master: /mnt/truenas  /etc/auto.truenas  --timeout=60
# Créer /etc/auto.truenas: backup  -fstype=nfs,rw,soft,nolock  192.168.100.10:/mnt/tank/vmbackups
sudo systemctl restart autofs
ls /mnt/truenas/backup
🎯 Quand utiliser : Accès à des partages NFS (TrueNAS, serveurs Linux)
⚠️ Pré-requis : Serveur NFS accessible et partage configuré
✅ Test de succès : `df -h` montre le partage monté
🚨 Scénario : "Accès à un partage TrueNAS depuis un serveur Linux"

Montage de partage SMB

RISQUE MOYEN CONFIGURATION RÉSEAU ⏱️ 30 secondes
# Connecter au serveur SMB et afficher les partages
smbclient -L <IP Serveur SMB> -U <Utilisateur d'accès SMB Partage>

# Monter un partage SMB
sudo mount -t cifs -o username=<Nom Utilisateur>,password=<Mot de passe utilisateur>,vers=3.0,uid=$(id -u),gid=$(id -g),nosharesock //IP_Serveur_SMB/Nom_Partage /mnt/truenas_storage
🎯 Quand utiliser : Accès à des partages Windows ou SMB
⚠️ Sécurité : Éviter de mettre le mot de passe en clair dans les scripts
✅ Test de succès : Accès en lecture/écriture au partage monté
🚨 Scénario : "Accès à un partage Windows depuis Linux"

SSH et SFTP sous Linux

Gestion des clés SSH

RISQUE FAIBLE MAINTENANCE SÉCURITÉ ⏱️ 10 secondes
# Supprimer une clé du known_hosts
ssh-keygen -f '/root/.ssh/known_hosts' -R 'IP_Host'

# Générer une nouvelle clé SSH
ssh-keygen -t rsa -b 4096
🎯 Quand utiliser : Problèmes de connexion SSH dûs à des changements d'hôtes
⚠️ Attention : Supprime l'entrée pour l'hôte spécifié de known_hosts
✅ Résultat : Résolution des erreurs "Host key verification failed"
🚨 Scénario : "Erreur Host key changed lors de la connexion SSH"

Serveur SFTP

RISQUE MOYEN CONFIGURATION SÉCURITÉ ⏱️ 5 minutes
# Installation du serveur SFTP sur Debian
sudo apt update 
sudo apt install vsftpd
sudo systemctl enable vsftpd
sudo systemctl start vsftpd

# Configuration de base
sudo nano /etc/vsftpd.conf
# Ajouter:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
user_sub_token=$USER
local_root=/home/$USER/ftp
pasv_min_port=40000
pasv_max_port=50000

# Créer un utilisateur et les répertoires
sudo adduser ftpuser
mkdir -p /home/ftpuser/ftp/files
chmod 550 /home/ftpuser/ftp
sudo systemctl restart vsftpd

# Tester la connexion FTP
ftp adresse_ip_serveur
🎯 Quand utiliser : Mise en place d'un serveur de transfert de fichiers sécurisé
⚠️ Sécurité : Configurer correctement les permissions et le chroot
✅ Test de succès : Connexion FTP réussie depuis un client
🚨 Scénario : "Mise en place d'un serveur de fichiers accessible par FTP"

Windows

Routage sous Windows (Permanent)

RISQUE MOYEN CONFIGURATION RÉSEAU ⏱️ 3 secondes
# Ajouter une route permanente
route add -p (IP addres de destination) MASK (ex:255.255.255.0) (IP local capable d'aller vers le réseau de destination)

# Afficher la table de routage
route print

# Supprimer une route
route delete (IP destination)
🎯 Quand utiliser : Accès à des sous-réseaux spécifiques depuis Windows
⚠️ Attention : L'option -p rend la route permanente (redémarrage)
✅ Test de succès : La route apparaît dans `route print`
🚨 Scénario : "Windows ne peut pas joindre un réseau VLAN spécifique"

NAT sous Windows

RISQUE MOYEN CONFIGURATION RÉSEAU ⏱️ 1 minute
# Activer le routage IP
Set-NetIPInterface -InterfaceAlias "Ethernet" -Forwarding Enabled

# Configurer le NAT pour un réseau
New-NetNat -Name "SwitchAccess" -InternalIPInterfaceAddressPrefix "192.168.10.0/24"

# Vérifier le NAT
Get-NetNat
get-NetNatStaticMappingetFirewallRule -DisplayName "Allow_Linux_Subnet" -RemoteAddress 192.168.60.4 -Action Allow
Get-NetNatTransitionConfiguration

# Proxy SSH via Windows
ssh -J user@<IP_Windows> user@<IP_Machine_Adminstrée>

# Tester l'accès SSH
Test-NetConnection 10.10.2.2 -Port 22
🎯 Quand utiliser : Configuration d'un serveur Windows comme routeur
⚠️ Pré-requis : Rôle "Routing" installé sur Windows Server
✅ Test de succès : Machines du réseau interne accèdent à Internet
🚨 Scénario : "Mise en place d'un routeur Windows pour un lab"

Réparation réseau Windows

RISQUE FAIBLE DIAGNOSTIC RÉSEAU ⏱️ 30 secondes
# Réparer la pile OSI - problème de connexion internet
netsh int ip reset              # Réinitialiser les interfaces réseau
netsh winsock reset             # Réinitialiser Windows Sockets
ipconfig /release               # Libérer l'adresse IP 
ipconfig /renew                 # Redemander l'adresse IP

# Trouver l'identifiant du client
ipconfig /all                   # Regarder "ID physique" ou "Adresse physique"
🎯 Quand utiliser : Problèmes réseau inexplicables sous Windows
🔍 Effet : Réinitialise complètement la stack réseau Windows
⚠️ Attention : Nécessite un redémarrage pour être totalement efficace
🚨 Scénario : "Windows ne se connecte plus au réseau sans raison apparente"

Partages réseau sous Windows

Montage de partage NFS

RISQUE MOYEN CONFIGURATION RÉSEAU ⏱️ 2 minutes
# Activer le client NFS sous Windows
# Sur Windows 10/11 Pro/Enterprise :
# - Ouvrez "Paramètres" → "Applications" → "Fonctionnalités facultatives"
# - Cherchez "Services pour NFS" et installez "Client pour NFS"

# Monter le partage NFS via l'invite de commandes (admin)
mount -o anon 192.168.100.10:/mnt/tank/vmbackups Z:

# Options avancées avec authentification
mount -o user=mon_user,password=mon_mdp 192.168.100.10:/mnt/tank/vmbackups Z:

# Démonter
umount Z:
🎯 Quand utiliser : Accès à des partages NFS depuis Windows
⚠️ Pré-requis : Fonctionnalité "Client pour NFS" installée
✅ Test de succès : Le lecteur Z: montre le contenu du partage
🚨 Scénario : "Accès à un partage TrueNAS depuis Windows"

Cisco

RIP Cisco

RISQUE MOYEN CONFIGURATION RÉSEAU ⏱️ 2 secondes
# Afficher les routes RIP
show ip route rip

# Afficher les voisins RIP
show ip rip neighbors

# Désactiver RIP sur toutes les interfaces sauf celles nécessaires
passive-interface default

# Activer RIP sur une interface spécifique
int <Interface>
no passive-interface

# Debug RIP
debug ip rip

# Afficher la configuration RIP
show run | section router rip

# Effacer la table de routage
clear ip route *

# Afficher la base de données RIP
show ip rip database

# Modifier la métrique RIP
int <Interface>
ip rip metric 1

# Désactiver RIP sur une interface
int <Interface>
no ip rip send

# Forcer les broadcasts RIP v2
int <Interface>
ip rip v2-broadcast

# Désactiver le debug
undebug all
🎯 Quand utiliser : Diagnostic et configuration du protocole RIP
🔍 Monitoring : `show ip route rip` pour voir les routes apprises
⚠️ Attention : Debug RIP peut générer beaucoup de logs en production
🚨 Scénario : "Les routes RIP ne sont pas propagées correctement"

Multicast Cisco

RISQUE MOYEN CONFIGURATION RÉSEAU ⏱️ 10 secondes
# Activer le multicast
configure terminal => ip multicast-routing

# Activer PIM
int <Interface>
ip pim sparse-mode

# Utiliser IGMPv2
ip igmp version 2

# Afficher la table multicast
show ip mroute

# Lister les groupes joints
show ip igmp groups

# Debug IGMP
debug ip igmp

# Lister les interfaces PIM-actives
show ip pim interface

# Vérifier la RPF
show ip rpf 224.0.0.9

# Partager les réseaux locaux connectés
redistribute connected
🎯 Quand utiliser : Configuration de multicast pour vidéo/audio
🔍 Vérification : `show ip mroute` pour voir les états multicast
⚠️ Complexité : Protocol avancé nécessitant bonne compréhension
🚨 Scénario : "Mise en place de diffusion vidéo multicast"

Configuration SFTP Cisco

RISQUE MOYEN CONFIGURATION SÉCURITÉ ⏱️ 2 minutes
# Limiter l'accès SSH à une IP spécifique
access-list 10 permit 192.168.1.100
line vty 0 4
 access-class 10 in
exit

# Configurer SFTP
ip ssh server algorithm sftp
ip scp server enable

# Lister les répertoires disponibles
dir flash:
dir usbflash0:
dir nvram:

# Commandes SFTP
sftp admin@<IP>
sftp> ls
sftp> cd flash:
sftp> get running-config
sftp> put mon_fichier.txt
🎯 Quand utiliser : Transfert sécurisé de fichiers vers/depuis un équipement Cisco
⚠️ Sécurité : Restreindre l'accès SSH aux IP autorisées
✅ Avantage : Alternative sécurisée à TFTP
🚨 Scénario : "Sauvegarde sécurisée de la configuration d'un switch Cisco"

Configuration DHCP Cisco

RISQUE MOYEN CONFIGURATION RÉSEAU ⏱️ 3 minutes
# Exclure les adresses qui ne doivent pas être distribuées
ip dhcp excluded-address <IP Début> <IP FIN>

# Réserver une adresse IP pour un hôte précis
ip dhcp pool HOST-PC1
host 192.168.10.50 255.255.255.0
client-identifier 0100.1A2B.3C4D.5E  # 01 + MAC address
client-name PC-SERVEUR
default-router 192.168.10.1
dns-server 8.8.8.8 10.10.1.2
domain-name home.lab

# Alternative avec MAC address directement
ip dhcp pool HOST-PC2
hardware-address aaaa.bbbb.cccc
client-name PC-SERVEUR
default-router 192.168.1.1
dns-server 8.8.8.8 8.8.4.4

# Gestion des pools DHCP
clear ip dhcp binding 192.168.x.x        # Supprimer une adresse attribuée
show ip dhcp pool                        # Afficher les adresses attribuées
show ip source binding                   # Afficher les bindings statiques
🎯 Quand utiliser : Configuration d'un serveur DHCP sur routeur Cisco
⚠️ Format important : client-identifier nécessite "01" + MAC en hexa
✅ Test de succès : Client reçoit l'IP réservée
🚨 Scénario : "Réservation d'IP pour serveurs dans un réseau"

Format important pour client-identifier :

  • Préfixe "01" pour le type Ethernet
  • MAC address en format groupe de 4 chiffres hexa
  • Exemple : MAC aa:bb:cc:dd:ee:ff → 01aabb.ccddee.ff

Configuration SNMP Cisco

RISQUE MOYEN CONFIGURATION MONITORING ⏱️ 1 minute
# Activation SNMP sur Cisco IOS
enable
configure terminal
snmp-server community public RO
snmp-server community private RW
snmp-server host [IP-du-manager] traps version 2c public
snmp-server enable traps
exit
write memory
🎯 Quand utiliser : Configuration du monitoring SNMP pour GLPI/Zabbix
🔍 Vérification : Test SNMP depuis le serveur de monitoring
⚠️ Sécurité : Changer les communautés public/private en production
🚨 Scénario : "Intégration d'un switch Cisco dans GLPI"

Tables MAC et ARP Cisco

RISQUE FAIBLE DIAGNOSTIC RÉSEAU ⏱️ 5 secondes
# Tables ARP
show ip arp                              # Afficher la table ARP complète
show ip arp interface vlan 10           # Filtrer par interface
show ip arp <IP>                        # Rechercher une IP spécifique

# Tables MAC
show mac address-table                   # Afficher toutes les MAC addresses apprises
show mac address-table dynamic           # Afficher les MAC addresses en temps réel
show mac address-table interface gigabitethernet 1/0/5   # Filtrer par interface
show mac address-table vlan 10           # Filtrer par VLAN
show mac address-table address aaaa.bbbb.cccc   # Rechercher une MAC spécifique

# Gestion des entrées
clear mac address-table dynamic interface gigabitethernet 1/0/5   # Vider une entrée MAC

# Monitoring
show interfaces counters                 # Voir les compteurs par interface
show mac address-table dynamic | include Gi1/0/5   # Monitoring en temps réel
🎯 Quand utiliser : Diagnostic de connectivité réseau au niveau switch
🔍 Utilisation : Identifier sur quel port une machine est connectée
✅ Résultat : Localisation précise des équipements sur le réseau
🚨 Scénario : "Trouver sur quel port est connectée une machine spécifique"

Commandes Cisco diverses

RISQUE FAIBLE DIAGNOSTIC RÉSEAU ⏱️ 10 secondes
# Afficher les interfaces VLAN
show ip int bri | include vlan

# Afficher les détails des VLANs
show vlan brief

# Afficher la table ARP
show arp

# Afficher les listes d'accès
show access-lists

# Vérifier la connectivité physique
show cdp neighbors

# Filtrer la table ARP
show arp | inculde <IP>

# Afficher le switch root
show spanning-tree root

# Afficher une route spécifique
show ip route 224.0.0.0/24

# Configurer un tunnel
int Tunnel0
tunnel source <Interface>
tunnel destination <IP de l'autre équipement ou Tunnel sur l'autre> 
keepalive
ip address <IP> <MASK>
no ip split-horizon
ip rip advertise <Network>
no shut
🎯 Quand utiliser : Commandes générales pour diagnostic et configuration
🔍 Utilisation : Vérification rapide de l'état des interfaces et VLANs
✅ Résultat : Vue d'ensemble de l'état du switch/routeur
🚨 Scénario : "Diagnostic général d'un équipement Cisco"

PowerShell

Administration Windows Server avec PowerShell

1. Installation et configuration initiale

RISQUE MOYEN CONFIGURATION PRODUCTION ⏱️ 10 minutes
# Vérifier la version de Windows
Get-ComputerInfo | Select-Object WindowsProductName, WindowsVersion, OsHardwareAbstractionLayer

# Activer le rôle de serveur (ex: AD DS)
Install-WindowsFeature AD-Domain-Services -IncludeManagementTools

# Configurer un nouveau contrôleur de domaine
Install-ADDSForest -DomainName "corp.example.com" -DomainNetbiosName "CORP" -InstallDns

# Redémarrer après installation
Restart-Computer -Force
🎯 Quand utiliser : Installation initiale d'un serveur Windows
⚠️ Attention : Redémarrage nécessaire après installation AD DS
✅ Test de succès : Serveur rejoint le domaine et services démarrés
🚨 Scénario : "Mise en place d'un nouveau contrôleur de domaine"

2. Gestion des utilisateurs et groupes AD

RISQUE MOYEN CONFIGURATION SÉCURITÉ ⏱️ 2 minutes
# Créer un nouvel utilisateur
New-ADUser -Name "Jean Dupont" -GivenName "Jean" -Surname "Dupont" `
            -SamAccountName "jdupont" -UserPrincipalName "jdupont@corp.example.com" `
            -Path "OU=Utilisateurs,DC=corp,DC=example,DC=com" -AccountPassword (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force) `
            -Enabled $true

# Modifier un utilisateur
Set-ADUser -Identity jdupont -Office "Paris" -Department "IT" -Title "Administrateur Système"

# Créer un groupe et ajouter des membres
New-ADGroup -Name "Admins IT" -GroupScope Global -Path "OU=Groupes,DC=corp,DC=example,DC=com"
Add-ADGroupMember -Identity "Admins IT" -Members jdupont

# Lister tous les utilisateurs d'une OU
Get-ADUser -Filter * -SearchBase "OU=Utilisateurs,DC=corp,DC=example,DC=com" | Select Name,SamAccountName
🎯 Quand utiliser : Gestion automatisée des utilisateurs Active Directory
⚠️ Sécurité : Éviter les mots de passe en clair dans les scripts
✅ Avantage : Automatisation de la création de comptes en masse
🚨 Scénario : "Création de 50 comptes utilisateurs pour un nouveau service"

3. Gestion des stratégies de groupe (GPO)

RISQUE MOYEN CONFIGURATION SÉCURITÉ ⏱️ 5 minutes
# Créer une nouvelle GPO
New-GPO -Name "Verrouillage Station" -Comment "Stratégie de sécurité de base"

# Lier une GPO à une OU
New-GPLink -Name "Verrouillage Station" -Target "OU=Utilisateurs,DC=corp,DC=example,DC=com"

# Modifier une GPO
Set-GPRegistryValue -Name "Verrouillage Station" -Key "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System" `
                    -ValueName "DisableTaskMgr" -Type DWord -Value 1

# Forcer la mise à jour des GPO sur un client
Invoke-GPUpdate -Computer "CLIENT01" -Force
🎯 Quand utiliser : Automatisation de la gestion des GPO
⚠️ Test : Toujours tester les GPO sur un OU de test d'abord
✅ Avantage : Déploiement cohérent des politiques de sécurité
🚨 Scénario : "Déploiement de politiques de sécurité sur tous les postes"

4. Gestion du stockage

RISQUE MOYEN CONFIGURATION MAINTENANCE ⏱️ 3 minutes
# Lister les disques disponibles
Get-Disk

# Initialiser un nouveau disque
Initialize-Disk -Number 1 -PartitionStyle GPT

# Créer une partition
New-Partition -DiskNumber 1 -UseMaximumSize -DriveLetter D

# Formater le volume
Format-Volume -DriveLetter D -FileSystem NTFS -NewFileSystemLabel "Données" -Confirm:$false

# Configurer un quota de disque
New-FsrmQuota -Path "D:\Partage" -Size 5GB -Description "Limite 5GB par utilisateur"
🎯 Quand utiliser : Gestion des disques et partitions Windows
⚠️ Attention : Le formatage efface toutes les données
✅ Avantage : Automatisation de l'ajout de stockage
🚨 Scénario : "Ajout d'un nouveau disque à un serveur de fichiers"

5. Surveillance et maintenance

RISQUE FAIBLE DIAGNOSTIC MONITORING ⏱️ 30 secondes
# Vérifier l'espace disque
Get-Volume | Select DriveLetter,FileSystemLabel,SizeRemaining,Size

# Analyser les événements système
Get-EventLog -LogName System -Newest 50 | Where-Object {$_.EntryType -eq "Error"}

# Planifier une tâche
$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-File D:\scripts\cleanup.ps1"
$trigger = New-ScheduledTaskTrigger -Daily -At 2am
Register-ScheduledTask -TaskName "Nettoyage nocturne" -Action $action -Trigger $trigger -User "SYSTEM"

# Vérifier les services critiques
Get-Service | Where-Object {$_.Status -ne "Running" -and $_.StartType -eq "Automatic"}
🎯 Quand utiliser : Monitoring quotidien des serveurs Windows
🔍 Routine : À exécuter régulièrement pour la maintenance proactive
✅ Avantage : Détection précoce des problèmes
🚨 Scénario : "Vérification quotidienne de l'état des serveurs"

Administration DHCP et DNS sous Windows Server

1. Installation des rôles DHCP et DNS

RISQUE MOYEN CONFIGURATION PRODUCTION ⏱️ 5 minutes
# Installer les rôles DHCP et DNS
Install-WindowsFeature DHCP,DNS -IncludeManagementTools

# Configurer le serveur DHCP après installation
Add-DhcpServerInDC -DnsName "dc1.corp.example.com" -IPAddress 192.168.1.1

# Redémarrer si nécessaire
Restart-Computer -Force
🎯 Quand utiliser : Installation des services réseau sur Windows Server
⚠️ Attention : Redémarrage possible après installation
✅ Test de succès : Services DHCP et DNS démarrés et fonctionnels
🚨 Scénario : "Mise en place d'un serveur avec services réseau"

2. Configuration DHCP de base

RISQUE MOYEN CONFIGURATION RÉSEAU ⏱️ 3 minutes
# Créer une étendue DHCP
Add-DhcpServerv4Scope -Name "Réseau Principal" `
                      -StartRange 192.168.1.100 -EndRange 192.168.1.200 `
                      -SubnetMask 255.255.255.0 -State Active

# Configurer les options de l'étendue
Set-DhcpServerv4OptionValue -ScopeId 192.168.1.0 `
                           -DnsServer 192.168.1.1, 192.168.1.2 `
                           -Router 192.168.1.1 `
                           -DnsDomain "corp.example.com"

# Activer les adresses MAC réservées
Add-DhcpServerv4Reservation -ScopeId 192.168.1.0 `
                           -IPAddress 192.168.1.50 `
                           -ClientId "01-23-45-67-89-AB" `
                           -Description "Serveur d'impression"

# Configurer les plages d'exclusion
Add-DhcpServerv4ExclusionRange -ScopeId 192.168.1.0 `
                              -StartRange 192.168.1.1 `
                              -EndRange 192.168.1.15
🎯 Quand utiliser : Configuration initiale d'un serveur DHCP
⚠️ Planification : Bien définir les plages d'IP avant configuration
✅ Test de succès : Client reçoit une IP de la plage configurée
🚨 Scénario : "Mise en service d'un nouveau serveur DHCP"

3. Gestion avancée DHCP

RISQUE MOYEN MAINTENANCE RÉSEAU ⏱️ 2 minutes
# Afficher toutes les étendues DHCP
Get-DhcpServerv4Scope

# Afficher les baux actifs
Get-DhcpServerv4Lease -ScopeId 192.168.1.0

# Supprimer un bail spécifique
Remove-DhcpServerv4Lease -IPAddress 192.168.1.105

# Sauvegarder la configuration DHCP
Backup-DhcpServer -Path "C:\DHCP_Backup\" -Force

# Restaurer la configuration DHCP
Restore-DhcpServer -Path "C:\DHCP_Backup\" -Force

# Migrer un serveur DHCP
Export-DhcpServer -File "C:\DHCP_Export.xml" -Leases
Import-DhcpServer -File "C:\DHCP_Export.xml" -Leases
🎯 Quand utiliser : Maintenance et gestion courante du DHCP
🔍 Routine : Sauvegarder régulièrement la configuration
✅ Bonne pratique : Avoir des sauvegardes avant modifications
🚨 Scénario : "Migration d'un serveur DHCP vers un nouveau serveur"

4. Configuration DNS de base

RISQUE MOYEN CONFIGURATION RÉSEAU ⏱️ 5 minutes
# Créer une zone DNS principale
Add-DnsServerPrimaryZone -Name "corp.example.com" `
                        -ZoneFile "corp.example.com.dns" `
                        -DynamicUpdate Secure

# Créer une zone DNS inverse
Add-DnsServerPrimaryZone -NetworkId "192.168.1.0/24" `
                        -ZoneFile "1.168.192.in-addr.arpa.dns"

# Ajouter un enregistrement A
Add-DnsServerResourceRecordA -Name "serveur1" `
                           -ZoneName "corp.example.com" `
                           -IPv4Address "192.168.1.10" `
                           -CreatePtr

# Ajouter un enregistrement CNAME
Add-DnsServerResourceRecordCName -Name "www" `
                               -HostNameAlias "serveur1.corp.example.com" `
                               -ZoneName "corp.example.com"

# Ajouter un enregistrement MX
Add-DnsServerResourceRecordMX -Preference 10 `
                             -Name "@" `
                             -MailExchange "mail.corp.example.com" `
                             -ZoneName "corp.example.com"
🎯 Quand utiliser : Configuration initiale d'un serveur DNS
⚠️ Planification : Bien structurer la zone DNS avant création
✅ Test de succès : Résolution DNS fonctionnelle pour les enregistrements
🚨 Scénario : "Mise en place d'un serveur DNS interne d'entreprise"

5. Gestion avancée DNS

RISQUE MOYEN MAINTENANCE RÉSEAU ⏱️ 3 minutes
# Activer le nettoyage automatique
Set-DnsServerScavenging -ScavengingState $true `
                       -RefreshInterval 7.00:00:00 `
                       -NoRefreshInterval 7.00:00:00 `
                       -ApplyOnAllZones

# Forcer le nettoyage immédiat
Start-DnsServerScavenging -Force

# Configurer le transfert de zone
Set-DnsServerForwarder -IPAddress "8.8.8.8","8.8.4.4" -PassThru

# Configurer la réplication DNS entre contrôleurs de domaine
Set-DnsServerDirectoryPartition -Name "DomainDnsZones.corp.example.com" `
                               -ReplicationScope "Domain"

# Exporter la configuration DNS
Export-DnsServerZone -Name "corp.example.com" -FileName "C:\DNS_Backup\corp.example.com.dns"

# Importer une zone DNS
Import-DnsServerZone -Name "corp.example.com" -FileName "C:\DNS_Backup\corp.example.com.dns"
🎯 Quand utiliser : Maintenance et optimisation du serveur DNS
🔍 Important : Le nettoyage automatique prévient la pollution DNS
✅ Bonne pratique : Sauvegarder les zones avant modifications majeures
🚨 Scénario : "Nettoyage d'une zone DNS polluée par des enregistrements obsolètes"

6. Surveillance et dépannage

RISQUE FAIBLE DIAGNOSTIC MONITORING ⏱️ 1 minute
# Vérifier l'état du service DHCP
Get-Service -Name DHCPServer | Select-Object Name,Status,StartType

# Analyser les événements DHCP
Get-EventLog -LogName "System" -Source "DHCPServer" -Newest 50

# Tester la résolution DNS
Resolve-DnsName -Name "serveur1.corp.example.com" -Type A

# Effectuer une requête DNS détaillée
nslookup
> server 192.168.1.1
> set type=MX
> corp.example.com
> exit

# Vérifier la réplication DNS
Repadmin /showrepl
Repadmin /syncall /AdeP

# Capturer le trafic DHCP/DNS
netsh trace start scenario=NetConnection capture=yes tracefile=C:\traces\network.etl
netsh trace stop
🎯 Quand utiliser : Diagnostic de problèmes DHCP/DNS
🔍 Méthodologie : Vérifier services → logs → résolution → réplication
✅ Résultat : Identification précise de l'origine du problème
🚨 Scénario : "Les clients ne reçoivent pas d'IP ou ne résolvent pas les noms"

7. Sécurité DHCP et DNS

RISQUE MOYEN CONFIGURATION SÉCURITÉ ⏱️ 2 minutes
# Configurer les options de sécurité DHCP
Set-DhcpServerv4DnsSetting -DynamicUpdates "Always" `
                          -DeleteDnsRRonLeaseExpiry $true `
                          -UpdateDnsRRForOlderClients $true

# Activer DNSSEC pour une zone
Set-DnsServerZoneSigning -Name "corp.example.com" -Sign

# Configurer le filtrage DNS
Add-DnsServerQueryResolutionPolicy -Name "BlockMaliciousDomains" `
                                 -Action DENY `
                                 -FQDN "EQ,*.malicious.com" `
                                 -PassThru

# Restreindre les mises à jour DNS dynamiques
Set-DnsServerPrimaryZone -Name "corp.example.com" `
                        -DynamicUpdate Secure
🎯 Quand utiliser : Renforcement de la sécurité des services réseau
⚠️ Test : Tester soigneusement avant déploiement en production
✅ Avantage : Protection contre les attaques et abus
🚨 Scénario : "Sécurisation des services DHCP/DNS contre les attaques"

8. Scripts utiles

RISQUE FAIBLE MAINTENANCE MONITORING ⏱️ 1 minute
# Script pour vérifier les baux DHCP expirés
$ExpiredLeases = Get-DhcpServerv4Lease -ScopeId 192.168.1.0 | Where-Object {$_.LeaseExpiryTime -lt (Get-Date)}
$ExpiredLeases | Export-Csv -Path "C:\Reports\ExpiredLeases.csv" -NoTypeInformation

# Script pour auditer les enregistrements DNS
$DNSRecords = Get-DnsServerResourceRecord -ZoneName "corp.example.com" -RRType "A"
$DNSRecords | Select-Object HostName,RecordType,Timestamp | Out-GridView

# Script pour migrer des plages DHCP
$OldScope = Get-DhcpServerv4Scope -ScopeId 192.168.0.0
Add-DhcpServerv4Scope -Name $OldScope.Name `
                     -StartRange 192.168.1.100 `
                     -EndRange 192.168.1.200 `
                     -SubnetMask $OldScope.SubnetMask
Get-DhcpServerv4OptionValue -ScopeId $OldScope.ScopeId | ForEach-Object {
    Set-DhcpServerv4OptionValue -ScopeId 192.168.1.0 -OptionId $_.OptionId -Value $_.Value
}
🎯 Quand utiliser : Automatisation des tâches de maintenance courantes
🔍 Utilisation : Planifier l'exécution régulière de ces scripts
✅ Avantage : Gain de temps et cohérence des opérations
🚨 Scénario : "Audit mensuel des services réseau"

Administration Linux Server

1. Gestion des utilisateurs et groupes

RISQUE MOYEN CONFIGURATION SÉCURITÉ ⏱️ 2 minutes
# Créer un nouvel utilisateur
sudo useradd -m -s /bin/bash jdupont
sudo passwd jdupont

# Modifier un utilisateur
sudo usermod -aG sudo jdupont  # Ajouter aux sudoers
sudo usermod -d /new/home/jdupont jdupont  # Changer le répertoire home

# Créer un groupe
sudo groupadd admins_it

# Ajouter un utilisateur à un groupe
sudo usermod -aG admins_it jdupont

# Lister tous les utilisateurs
cut -d: -f1 /etc/passwd

# Vérifier les sudoers
sudo grep -Po '^sudo.+:\K.*$' /etc/group

# Trouver l'identifiant du client (MAC address)
ip link show                    # Regarder "link/ether"
cat /sys/class/net/eth0/address
🎯 Quand utiliser : Gestion des comptes utilisateurs sur serveur Linux
⚠️ Sécurité : Vérifier les privilèges accordés aux utilisateurs
✅ Bonne pratique : Utiliser des groupes pour la gestion des permissions
🚨 Scénario : "Création de comptes pour une nouvelle équipe"

2. Gestion des permissions

RISQUE MOYEN CONFIGURATION SÉCURITÉ ⏱️ 10 secondes
# Changer le propriétaire d'un fichier
sudo chown jdupont:admins_it /chemin/du/fichier

# Changer les permissions (chmod en octal)
sudo chmod 750 /chemin/du/fichier  # rwx pour owner, r-x pour group, --- pour others

# Changer les permissions (chmod symbolique)
sudo chmod u=rwx,g=rx,o= /chemin/du/fichier

# Définir le bit SUID
sudo chmod u+s /chemin/du/fichier

# Définir le sticky bit sur un répertoire
sudo chmod +t /chemin/du/repertoire
🎯 Quand utiliser : Configuration des permissions de fichiers et répertoires
⚠️ Sécurité : SUID peut être dangereux si mal utilisé
✅ Bonne pratique : Principe du moindre privilège
🚨 Scénario : "Sécurisation d'un répertoire partagé entre utilisateurs"

3. Gestion des paquets

RISQUE MOYEN MAINTENANCE PRODUCTION ⏱️ 5 minutes
# Debian/Ubuntu
sudo apt update && sudo apt upgrade  # Mettre à jour tous les paquets
sudo apt install apache2            # Installer un paquet
sudo apt remove apache2             # Désinstaller un paquet
sudo apt autoremove                 # Nettoyer les paquets inutiles

# RHEL/CentOS
sudo yum update                     # Mettre à jour tous les paquets
sudo yum install httpd              # Installer un paquet
sudo yum remove httpd               # Désinstaller un paquet
sudo yum clean all                  # Nettoyer le cache
🎯 Quand utiliser : Maintenance des paquets logiciels
⚠️ Production : Tester les mises à jour en environnement de test d'abord
✅ Routine : Mettre à jour régulièrement pour la sécurité
🚨 Scénario : "Mise à jour de sécurité mensuelle des serveurs"

4. Gestion des services

RISQUE MOYEN MAINTENANCE PRODUCTION ⏱️ 10 secondes
# Systemd (récent)
sudo systemctl start apache2        # Démarrer un service
sudo systemctl stop apache2         # Arrêter un service
sudo systemctl restart apache2      # Redémarrer un service
sudo systemctl enable apache2       # Activer au démarrage
sudo systemctl status apache2       # Vérifier l'état

# SysVinit (ancien)
sudo service apache2 start          # Démarrer un service
sudo service apache2 stop           # Arrêter un service
sudo service apache2 restart        # Redémarrer un service
sudo update-rc.d apache2 defaults   # Activer au démarrage
🎯 Quand utiliser : Gestion des services système
🔍 Diagnostic : `systemctl status` pour voir les erreurs
✅ Bonne pratique : Tester le service après redémarrage
🚨 Scénario : "Redémarrage d'un service après modification de configuration"

5. Surveillance et maintenance

RISQUE FAIBLE DIAGNOSTIC MONITORING ⏱️ 30 secondes
# Espace disque
df -h                              # Afficher l'espace disque
du -sh /chemin                     # Taille d'un répertoire

# Mémoire
free -m                            # Utilisation mémoire
top                                # Moniteur d'activité
htop                               # Version améliorée de top

# Processus
ps aux                             # Lister tous les processus
pstree                             # Arbre des processus
kill -9 PID                        # Tuer un processus

# Journaux système
sudo journalctl -xe                # Afficher les logs systemd
sudo tail -f /var/log/syslog       # Suivre les logs en temps réel
sudo grep "error" /var/log/syslog  # Filtrer les erreurs
🎯 Quand utiliser : Surveillance quotidienne de l'état du système
🔍 Routine : Vérifier régulièrement espace disque et mémoire
✅ Alertes : Configurer des alertes pour espace disque critique
🚨 Scénario : "Investigation de problèmes de performance"

6. Sécurité et réseau

RISQUE MOYEN CONFIGURATION SÉCURITÉ ⏱️ 5 minutes
# Pare-feu (UFW - Ubuntu)
sudo ufw enable                    # Activer le pare-feu
sudo ufw allow 22/tcp              # Autoriser le port SSH
sudo ufw deny 23/tcp               # Bloquer le port Telnet
sudo ufw status verbose            # Vérifier les règles

# Pare-feu (firewalld - RHEL/CentOS)
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload

# SSH
sudo ssh-keygen -t rsa -b 4096     # Générer une paire de clés
sudo nano /etc/ssh/sshd_config     # Configurer le serveur SSH
sudo systemctl restart sshd        # Redémarrer SSH après modification

# Analyse de sécurité
sudo lynis audit system            # Audit de sécurité
sudo chkrootkit                   # Vérifier les rootkits
sudo rkhunter --checkall          # Analyse complète du système
🎯 Quand utiliser : Renforcement de la sécurité du serveur
⚠️ Test : Tester les règles firewall avant déploiement
✅ Bonne pratique : Désactiver l'authentification par mot de passe SSH
🚨 Scénario : "Sécurisation d'un nouveau serveur exposé sur Internet"

7. Sauvegarde et restauration

RISQUE FAIBLE MAINTENANCE PRODUCTION ⏱️ Variable
# Sauvegarde avec tar
sudo tar -czvf backup-$(date +%F).tar.gz /dossier/a/sauvegarder

# Sauvegarde incrémentielle avec rsync
sudo rsync -av --delete --link-dest=/previous/backup /source /destination/backup-$(date +%F)

# Sauvegarde MySQL
sudo mysqldump -u root -p --all-databases > full_backup.sql

# Sauvegarde PostgreSQL
sudo pg_dumpall -U postgres > full_backup.sql

# Planifier des sauvegardes avec cron
(crontab -l 2>/dev/null; echo "0 2 * * * /chemin/vers/script_backup.sh") | crontab -
🎯 Quand utiliser : Mise en place de stratégies de sauvegarde
⚠️ Important : Tester régulièrement la restauration des sauvegardes
✅ Stratégie : Règle 3-2-1 (3 copies, 2 supports, 1 hors-site)
🚨 Scénario : "Mise en place d'un plan de sauvegarde automatisé"

8. Scripting avancé

RISQUE MOYEN CONFIGURATION AUTOMATISATION ⏱️ 1 minute
#!/bin/bash
# Exemple de script de surveillance

# Variables
THRESHOLD=90
EMAIL="admin@example.com"

# Vérification espace disque
DISK_USAGE=$(df / | awk '{print $5}' | tail -1 | cut -d'%' -f1)

if [ $DISK_USAGE -gt $THRESHOLD ]; then
    echo "Alerte : Espace disque critique sur $(hostname)" | mail -s "Alerte disque" $EMAIL
fi

# Vérification mémoire
MEM_FREE=$(free -m | awk '/Mem:/ {print $4}')
if [ $MEM_FREE -lt 100 ]; then
    echo "Alerte : Mémoire faible sur $(hostname)" | mail -s "Alerte mémoire" $EMAIL
fi
🎯 Quand utiliser : Automatisation des tâches d'administration
⚠️ Test : Tester les scripts en environnement de test d'abord
✅ Avantage : Gain de temps et réduction d'erreurs humaines
🚨 Scénario : "Création de scripts de monitoring personnalisés"

9. Administration GLPI

RISQUE MOYEN CONFIGURATION MONITORING ⏱️ 10 minutes
# Vérification configuration base de données GLPI
cat /var/www/html/glpi/config/config_db.php

# Ou avec un format plus lisible
grep -E "(dbhost|dbuser|dbpassword|dbdefault)" /var/www/html/glpi/config/config_db.php

# Version détaillée
php -r '
    include "/var/www/html/glpi/config/config_db.php";
    echo "Hôte: " . $DB->dbhost . "\n";
    echo "Base: " . $DB->dbdefault . "\n";
    echo "Utilisateur: " . $DB->dbuser . "\n";
    echo "Mot de passe: " . $DB->dbpassword . "\n";
'

# Connexion MySQL et exploration
mysql -u root -p -e "SHOW DATABASES;"
mysql -u root -p -e "USE glpi_db; SHOW TABLES;"

# Voir les utilisateurs MySQL
mysql -u root -p -e "SELECT user, host FROM mysql.user;"

# Voir les privilèges de l'utilisateur GLPI
mysql -u root -p -e "SHOW GRANTS FOR 'glpi_admin'@'localhost';"

# Console GLPI
cd /var/www/html/glpi
php bin/console glpi:system:status
php bin/console glpi:database:check

# Donner droits super-admin
mysql -u glpi_admin -p'34PenetrationTest' -h localhost glpi_db -e "
UPDATE glpi_profiles_users 
SET profiles_id = 4 
WHERE users_id = (SELECT id FROM glpi_users WHERE name = 'glpi_admin');"

# Si l'utilisateur n'a aucun profil, l'ajouter :
mysql -u glpi_admin -p'34PenetrationTest' -h localhost glpi_db -e "
INSERT INTO glpi_profiles_users (users_id, profiles_id, entities_id, is_recursive, is_dynamic) 
VALUES (
  (SELECT id FROM glpi_users WHERE name = 'glpi_admin'), 
  4, 0, 1, 0
);"

# Vérification :
mysql -u glpi_admin -p'34PenetrationTest' -h localhost glpi_db -e "
SELECT u.name, p.name as profile 
FROM glpi_users u 
JOIN glpi_profiles_users pu ON u.id = pu.users_id 
JOIN glpi_profiles p ON pu.profiles_id = p.id 
WHERE u.name = 'glpi_admin';"

# Chercher les fichiers de configuration
sudo find / -name "config_db.php" 2>/dev/null

# Commandes MySQL GLPI
mysql -u root -p glpi_db << 'EOF'
-- Désactiver vérification versions
UPDATE glpi_configs SET value = '0' WHERE name = 'founded_new_version';
UPDATE glpi_configs SET value = '0' WHERE name = 'checkversion';

-- Réactiver vérification versions
UPDATE glpi_configs SET value = '1' WHERE name = 'checkversion';
UPDATE glpi_configs SET value = '' WHERE name = 'founded_new_version';

-- Vérification configuration
SELECT name, value FROM glpi_configs WHERE name IN ('founded_new_version', 'checkversion');

-- Créer configuration manquante
INSERT INTO glpi_configs (name, value, context) 
VALUES ('checkversion', '1', 'core')
ON DUPLICATE KEY UPDATE value = '1';
EOF

# Fuseaux horaires GLPI
# Activation fuseaux horaires
cd /var/www/html/glpi
php bin/console database:enable_timezones

# Vérification
php bin/console database:check_timezones

# Configuration MySQL pour fuseaux horaires
mysql -u root -p << 'EOF'
GRANT SELECT ON mysql.time_zone_name TO 'glpi_admin'@'localhost';
GRANT SELECT ON mysql.time_zone TO 'glpi_admin'@'localhost';
GRANT SELECT ON mysql.time_zone_leap_second TO 'glpi_admin'@'localhost';
GRANT SELECT ON mysql.time_zone_transition TO 'glpi_admin'@'localhost';
GRANT SELECT ON mysql.time_zone_transition_type TO 'glpi_admin'@'localhost';
FLUSH PRIVILEGES;
EOF

# Chargement données fuseaux horaires
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

# Agent GLPI Windows
# Arrêt service GLPI Agent (Windows)
echo "# Sur Windows (CMD admin) :"
echo "net stop 'GLPI Agent'"
echo "timeout /t 30"
echo "net start 'GLPI Agent'"

# Configuration agent GLPI (fichier agent.cfg)
cat > "C:\Program Files\GLPI-Agent\agent.cfg" << 'EOF'
# Désactiver scans réseau
modules = inventory,deploy,collect
no-task = netdiscovery,netinventory

[netdiscovery]
enabled = 0

[netinventory]
enabled = 0

[network]
delay = 0
no-task = 1
EOF

# Réinitialisation GLPI
# Réinitialisation via console
cd /var/www/html/glpi
php bin/console glpi:system:clear_cache
php bin/console glpi:database:configure \
    --db-host=localhost \
    --db-name=glpi_db \
    --db-user=glpi_admin \
    --db-password=34PenetrationTest \
    --reconfigure

# Réinstallation sans perte données
php bin/console glpi:database:install \
    --db-host=localhost \
    --db-name=glpi_db \
    --db-user=glpi_admin \
    --db-password=34PenetrationTest \
    --force

# Sauvegardes GLPI
# Sauvegarde base données
BACKUP_DIR="/root/glpi_backup_$(date +%Y%m%d_%H%M%S)"
mkdir -p $BACKUP_DIR
mysqldump -u root -p glpi_db > "$BACKUP_DIR/glpi_db_complete.sql"
mysqldump -u root -p --no-create-info glpi_db > "$BACKUP_DIR/glpi_db_data_only.sql"
mysqldump -u root -p --no-data glpi_db > "$BACKUP_DIR/glpi_db_structure_only.sql"

# Sauvegarde fichiers configuration
cp /var/www/html/glpi/config/config_db.php "$BACKUP_DIR/"
cp /var/www/html/glpi/config/local_define.php "$BACKUP_DIR/" 2>/dev/null || true

# Sauvegarde fichiers GLPI
tar -czf "$BACKUP_DIR/glpi_files.tar.gz" -C /var/www/html/glpi/files . 2>/dev/null || true

# Vérifications GLPI
# Statut services
systemctl status snmpd
systemctl status apache2
systemctl status mysql

# Test GLPI
curl -I http://localhost/glpi
php bin/console glpi:system:status

# Logs
tail -f /var/log/syslog | grep snmp
tail -f /var/log/apache2/error.log
🎯 Quand utiliser : Administration et dépannage de GLPI
⚠️ Sauvegarde : Toujours sauvegarder avant modifications
✅ Monitoring : Vérifier régulièrement l'état des services
🚨 Scénario : "Problèmes d'accès ou de performance avec GLPI"

Réseau

Commandes Réseau PowerShell (Windows)

1. Configuration réseau de base

RISQUE MOYEN CONFIGURATION RÉSEAU ⏱️ 1 minute
# Lister toutes les interfaces réseau
Get-NetAdapter | Select Name, InterfaceDescription, Status

# Activer/Désactiver une interface
Enable-NetAdapter -Name "Ethernet" -Confirm:$false
Disable-NetAdapter -Name "Wi-Fi" -Confirm:$false

# Configurer une adresse IP statique
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 192.168.1.100 `
                -PrefixLength 24 -DefaultGateway 192.168.1.1

# Configurer les serveurs DNS
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" `
                        -ServerAddresses ("8.8.8.8", "8.8.4.4")
🎯 Quand utiliser : Configuration réseau sous Windows via PowerShell
⚠️ Test : Vérifier la connectivité après modifications
✅ Avantage : Automatisation possible via scripts
🚨 Scénario : "Configuration automatisée de postes Windows"

2. Diagnostic réseau

RISQUE FAIBLE DIAGNOSTIC RÉSEAU ⏱️ 30 secondes
# Test de connectivité
Test-NetConnection -ComputerName google.com -Port 80

# Traceroute amélioré
Test-NetConnection -ComputerName google.com -TraceRoute

# Analyse des ports ouverts
Get-NetTCPConnection -State Listen | Sort-Object LocalPort | Format-Table

# Vérifier la configuration IP détaillée
Get-NetIPConfiguration -Detailed

# Capturer des paquets (nécessite Npcap)
# Installer d'abord : choco install npcap
New-NetEventSession -Name "CaptureSession" -CaptureMode SaveToFile -LocalFilePath "C:\capture.etl"
Add-NetEventPacketCaptureProvider -SessionName "CaptureSession"
Start-NetEventSession -Name "CaptureSession"
Stop-NetEventSession -Name "CaptureSession"
🎯 Quand utiliser : Diagnostic réseau avancé sous Windows
🔍 Puissant : Alternative aux outils traditionnels
✅ Intégration : Parfait pour l'automatisation
🚨 Scénario : "Diagnostic complet de connectivité Windows"

3. Pare-feu avancé

RISQUE MOYEN CONFIGURATION SÉCURITÉ ⏱️ 2 minutes
# Lister toutes les règles
Get-NetFirewallRule | Where-Object {$_.Enabled -eq "True"} | Format-Table Name,DisplayName

# Créer une nouvelle règle
New-NetFirewallRule -Name "AllowWeb" -DisplayName "HTTP/HTTPS Access" `
                   -Direction Inbound -Protocol TCP -LocalPort 80,443 `
                   -Action Allow

# Bloquer une plage IP
New-NetFirewallRule -Name "BlockMalicious" -DisplayName "Block Malicious IPs" `
                   -Direction Inbound -RemoteAddress 192.168.100.0/24 `
                   -Action Block
🎯 Quand utiliser : Gestion avancée du firewall Windows
⚠️ Précision : Les règles sont très granulaires
✅ Automatisation : Déploiement de politiques de sécurité
🚨 Scénario : "Ouverture spécifique de ports pour une application"

4. Routage avancé

RISQUE MOYEN CONFIGURATION RÉSEAU ⏱️ 3 minutes
# Afficher la table de routage
Get-NetRoute -AddressFamily IPv4 | Format-Table

# Ajouter une route statique
New-NetRoute -DestinationPrefix "10.0.0.0/24" -InterfaceAlias "Ethernet" `
             -NextHop 192.168.1.1 -RouteMetric 100

# Configurer le NAT (exige le rôle RRAS)
Install-WindowsFeature RemoteAccess -IncludeManagementTools
Install-RemoteAccess -VpnType RoutingOnly
Add-NetNatStaticMapping -NatName "CorpNAT" -Protocol TCP -ExternalIPAddress 203.0.113.25 `
                       -InternalIPAddress 192.168.1.50 -InternalPort 3389 -ExternalPort 3389
🎯 Quand utiliser : Configuration de routage avancé sous Windows
⚠️ Complexité : NAT nécessite rôle RRAS installé
✅ Puissance : Gestion complète du routage Windows
🚨 Scénario : "Configuration d'un serveur Windows comme routeur"

5. VPN et connectivité distante

RISQUE MOYEN CONFIGURATION SÉCURITÉ ⏱️ 2 minutes
# Configurer un VPN (PowerShell 5.1+)
Add-VpnConnection -Name "CorporateVPN" -ServerAddress "vpn.corp.example.com" `
                 -TunnelType L2tp -L2tpPsk "SharedSecret123" -Force -RememberCredential

# Se connecter à un VPN
rasdial "CorporateVPN" username password

# Vérifier les connexions VPN
Get-VpnConnection
🎯 Quand utiliser : Configuration automatisée de connexions VPN
⚠️ Sécurité : Protéger les secrets de configuration
✅ Déploiement : Automatisation du déploiement VPN
🚨 Scénario : "Déploiement de configuration VPN sur un parc"

Commandes Réseau Linux (CLI)

1. Configuration réseau de base

RISQUE MOYEN CONFIGURATION RÉSEAU ⏱️ 2 minutes
# Lister les interfaces
ip link show
nmcli device status

# Activer/Désactiver une interface
sudo ip link set eth0 up
sudo ip link set eth0 down

# Configurer une adresse IP temporaire
sudo ip addr add 192.168.1.100/24 dev eth0

# Configurer une adresse IP permanente (Ubuntu/Debian)
sudo nano /etc/netplan/01-netcfg.yaml
# Exemple de configuration:
network:
  version: 2
  ethernets:
    eth0:
      addresses: [192.168.1.100/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
sudo netplan apply

# Vérification des interfaces
ip a
ip -br addr show
ip link show

# Tables de routage
ip route show
ip route get 8.8.8.8
🎯 Quand utiliser : Configuration réseau sous Linux
🔍 Méthodes : Plusieurs approches selon la distribution
✅ Permanent : Netplan pour configurations durables
🚨 Scénario : "Configuration d'un serveur Linux avec IP fixe"

2. Diagnostic réseau

RISQUE FAIBLE DIAGNOSTIC RÉSEAU ⏱️ 1 minute
# Test de connectivité
ping -c 4 google.com
ping6 -c 4 ipv6.google.com

# Traceroute (installer avec: sudo apt install traceroute)
traceroute -n google.com

# Vérifier les ports ouverts
ss -tulnp
netstat -tulnp  # Alternative

# Analyse des paquets
sudo tcpdump -i eth0 -n 'port 80'
sudo tshark -i eth0 -f "tcp port 22"  # Version avancée (Wireshark CLI)

# Test de débit (installer speedtest-cli)
speedtest-cli --bytes

# Connexions réseau actives
ss -tulpn
netstat -tulpn
🎯 Quand utiliser : Diagnostic complet réseau sous Linux
🔍 Outils : Large gamme d'outils disponibles
✅ Puissance : Analyse très détaillée possible
🚨 Scénario : "Investigation de problèmes de connectivité complexes"

3. Monitoring SNMP

RISQUE MOYEN CONFIGURATION MONITORING ⏱️ 5 minutes
# Installation SNMP sur Linux
sudo apt-get update
sudo apt-get install snmpd snmp

# Configuration SNMPD
sudo cat > /etc/snmp/snmpd.conf << 'EOF'
agentAddress udp:161
rocommunity public 0.0.0.0/0
rwcommunity private 0.0.0.0/0
sysLocation "EVE-NG Lab"
sysContact "admin@eve-ng.net"
EOF

# Redémarrage service SNMP
sudo systemctl restart snmpd
sudo systemctl enable snmpd

# Test SNMP
snmpwalk -v2c -c public localhost system
snmpwalk -v2c -c public [IP-EVE-NG] system

# Configuration SNMP détaillée pour GLPI
sudo cat > /etc/snmp/snmpd.conf << 'EOF'
# EVE-NG SNMP Minimal Config
agentAddress udp:161

# Communities avec restrictions réseau
rocommunity public 127.0.0.1
rocommunity public 192.168.0.0/16
rocommunity public 10.0.0.0/8

# Informations système
sysLocation "EVE-NG Lab"
sysContact "admin@eve-ng.net"
sysName "eve-ng"

# Options de sécurité
com2sec notConfigUser  default       public
group   notConfigGroup v1           notConfigUser
group   notConfigGroup v2c           notConfigUser
view    systemview    included   .1.3.6.1.2.1.1
view    systemview    included   .1.3.6.1.2.1.25.1.1
access  notConfigGroup ""      any       noauth    exact  systemview none none
EOF

# Purge SNMP
# Arrêt service
sudo systemctl stop snmpd

# Réinitialisation configuration
sudo rm -f /etc/snmp/snmpd.conf

# Nouvelle configuration propre
sudo cat > /etc/snmp/snmpd.conf << 'EOF'
# SNMPd minimal configuration for EVE-NG
rocommunity public 127.0.0.1
rocommunity public 192.168.0.0/16
sysLocation "EVE-NG Laboratory"
sysContact "admin@eve-ng.net"
EOF

# Redémarrage
sudo systemctl start snmpd

# Diagnostic réseau SNMP
# Test connectivité
ping -c 3 192.168.30.6
telnet 192.168.30.6 161

# Vérification ports ouverts
netstat -tulpn | grep 161
ss -tulpn | grep 161

# Test firewall
sudo ufw status
sudo ufw allow from 192.168.30.0/24 to any port 161
🎯 Quand utiliser : Configuration du monitoring SNMP
⚠️ Sécurité : Restreindre les communautés par réseau
✅ Intégration : Compatible GLPI, Zabbix, etc.
🚨 Scénario : "Mise en place du monitoring SNMP pour GLPI"

4. Gestion NetworkManager

RISQUE MOYEN CONFIGURATION RÉSEAU ⏱️ 2 minutes
# État des connexions NetworkManager
nmcli connection show
nmcli device status

# Vérification détaillée d'une connexion
nmcli connection show "Connexion Ethernet 1"
nmcli connection show enp0s10

# Modification configuration DNS
sudo nmcli connection modify "Connexion Ethernet 1" ipv4.dns "8.8.8.8,1.1.1.1"
sudo nmcli connection modify "Connexion Ethernet 1" ipv4.ignore-auto-dns yes

# Redémarrage connexion
sudo nmcli connection down "Connexion Ethernet 1"
sudo nmcli connection up "Connexion Ethernet 1"

# Suppression et recréation de profil
sudo nmcli connection delete "Connexion Ethernet 1"
sudo nmcli connection add type ethernet ifname enp0s10 con-name enp0s10 \
    ipv4.method auto \
    ipv4.ignore-auto-dns yes \
    ipv4.dns "8.8.8.8,1.1.1.1"
🎯 Quand utiliser : Gestion réseau moderne sous Linux
🔍 Avantage : Interface cohérente across distributions
✅ Scriptable : Parfait pour l'automatisation
🚨 Scénario : "Correction de problèmes DNS persistants"

5. Pare-feu avancé (iptables/nftables)

RISQUE MOYEN CONFIGURATION SÉCURITÉ ⏱️ 3 minutes
# Lister les règles iptables
sudo iptables -L -v -n --line-numbers
sudo iptables -S

# Autoriser le trafic HTTP/HTTPS
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# Bloquer une IP
sudo iptables -A INPUT -s 192.168.100.23 -j DROP

# Sauvegarder les règles (Debian/Ubuntu)
sudo iptables-save > /etc/iptables.rules

# Désactivation temporaire du firewall
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo nft flush ruleset

# nftables (nouvelle génération)
sudo nft add table inet filter
sudo nft add chain inet filter input { type filter hook input priority 0 \; }
sudo nft add rule inet filter input tcp dport 22 accept

# Vérification nftables
sudo nft list ruleset
🎯 Quand utiliser : Configuration avancée du firewall Linux
⚠️ Test : Toujours tester les règles avant sauvegarde
✅ Transition : nftables est le successeur d'iptables
🚨 Scénario : "Sécurisation d'un serveur exposé sur Internet"

6. Routage avancé

RISQUE MOYEN CONFIGURATION RÉSEAU ⏱️ 2 minutes
# Afficher la table de routage
ip route show
route -n  # Alternative

# Ajouter une route statique
sudo ip route add 10.0.0.0/24 via 192.168.1.1 dev eth0

# Configurer le NAT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo sysctl -w net.ipv4.ip_forward=1

# Configurer le NAT permanent
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
🎯 Quand utiliser : Configuration de routage sous Linux
⚠️ Forwarding : N'oubliez pas d'activer ip_forward
✅ Performance : Linux excelle comme routeur
🚨 Scénario : "Mise en place d'un routeur Linux pour un lab"

7. VPN et tunnels

RISQUE MOYEN CONFIGURATION SÉCURITÉ ⏱️ 5 minutes
# OpenVPN (client)
sudo openvpn --config client.ovpn

# WireGuard (client)
sudo wg-quick up wg0

# Créer un tunnel SSH
ssh -N -L 8080:localhost:80 user@remote-server
ssh -N -R 2222:localhost:22 user@remote-server  # Reverse tunnel

# Tunnel GRE (entre deux serveurs)
sudo ip tunnel add gre1 mode gre remote 203.0.113.2 local 198.51.100.1 ttl 255
sudo ip link set gre1 up
sudo ip addr add 10.0.0.1/30 dev gre1
🎯 Quand utiliser : Configuration de tunnels et VPN
🔍 Flexibilité : Large choix de solutions
✅ Sécurité : Chiffrement des communications
🚨 Scénario : "Connexion sécurisée entre deux sites"

8. Outils réseau avancés

RISQUE FAIBLE DIAGNOSTIC RÉSEAU ⏱️ 2 minutes
# Analyse de bande passante (nload)
sudo nload eth0

# Monitorer les connexions (iftop)
sudo iftop -i eth0

# Scanner réseau (nmap)
sudo nmap -sS -p 1-1024 192.168.1.0/24

# Benchmark HTTP (httperf)
httperf --server example.com --port 80 --uri / --num-conn 100

# Test de résilience (mtr)
mtr -n --report google.com
🎯 Quand utiliser : Diagnostic réseau avancé
🔍 Spécialisé : Chaque outil a sa spécialité
✅ Performance : Analyse détaillée des performances
🚨 Scénario : "Investigation de problèmes de performance réseau"

9. Analyse de paquets avec TShark

RISQUE FAIBLE DIAGNOSTIC RÉSEAU ⏱️ 3 minutes
# Installation
sudo apt install tshark                       # Sur Debian/Ubuntu

# Capture en direct
tshark -D                                     # Lister les interfaces disponibles
tshark -i eth0                                # Capturer sur une interface spécifique
tshark -i eth0 -w capture.pcap                # Capturer et enregistrer dans un fichier
tshark -i eth0 -Y "http"                      # Filtrer le trafic (HTTP seulement)
tshark -i eth0 -c 100                         # Capturer seulement 100 paquets
tshark -i eth0 -f "port 80" -Y "http.request" # Afficher en temps réel avec filtrage

# Analyse de fichiers de capture
tshark -r capture.pcap                        # Lire un fichier .pcap
tshark -r capture.pcap -Y "dns"               # Filtrer les paquets (DNS seulement)
tshark -r capture.pcap -qz io,phs             # Afficher les statistiques
🎯 Quand utiliser : Analyse approfondie du trafic réseau
🔍 Puissance : Version CLI de Wireshark
✅ Scriptable : Parfait pour l'automatisation
🚨 Scénario : "Debug de problèmes de communication réseau"

10. Scripts réseau utiles

RISQUE FAIBLE MAINTENANCE MONITORING ⏱️ 1 minute
#!/bin/bash
# Script de surveillance réseau
INTERFACE="eth0"
MAX_UTIL=90

# Vérifier l'utilisation de la bande passante
CURRENT_RX=$(ifconfig $INTERFACE | grep "RX packets" | awk '{print $5}')
CURRENT_TX=$(ifconfig $INTERFACE | grep "TX packets" | awk '{print $5}')
sleep 1
NEW_RX=$(ifconfig $INTERFACE | grep "RX packets" | awk '{print $5}')
NEW_TX=$(ifconfig $INTERFACE | grep "TX packets" | awk '{print $5}')

RX_UTIL=$(( ($NEW_RX - $CURRENT_RX) / 1024 ))
TX_UTIL=$(( ($NEW_TX - $CURRENT_TX) / 1024 ))

if [ $RX_UTIL -gt $MAX_UTIL ] || [ $TX_UTIL -gt $MAX_UTIL ]; then
    echo "Alerte: Utilisation élevée du réseau - RX: ${RX_UTIL}KB/s TX: ${TX_UTIL}KB/s" | mail -s "Alerte réseau" admin@example.com
fi
🎯 Quand utiliser : Surveillance automatisée du réseau
🔍 Customisation : Adaptable aux besoins spécifiques
✅ Proactif : Détection précoce des problèmes
🚨 Scénario : "Monitoring de l'utilisation réseau d'un serveur critique"

pfSense

Gestion du firewall pfSense

RISQUE MOYEN CONFIGURATION SÉCURITÉ ⏱️ 30 secondes
# Gestion du firewall
pftcl -d && pfctl -e

# Vérifier les règles firewall pour le port RIP
pfctl -sr | grep 520

# Redémarrer le service RIP
/etc/rc.d/ripd restart

# Gestion de l'historique
history
fc -l
history | grep rip
cat ~/.history

# Configurer l'historique persistant
echo 'export HISTFILE=~/.persistent_history' >> ~/.shrc
echo 'export HISTSIZE=10000' >> ~/.shrc
touch ~/.persistent_history

# Raccourcis historiques
!!  # Répète la dernière commande
!ssh  # Rappelle la dernière commande commençant par ssh

# Gestion des règles pfSense
nano /etc/pf.conf
# Ajouter avant les règles de blocage:
pass in quick proto udp from any to any port = 520  # Autoriser RIP

# Recharger les règles
pfctl -f /etc/pf.conf
🎯 Quand utiliser : Administration avancée de pfSense en CLI
⚠️ Attention : Modifications directes du fichier pf.conf
✅ Avantage : Contrôle granulaire du firewall
🚨 Scénario : "Debug de règles firewall complexes"

Serveur Web Apache

1. Installation de base

RISQUE MOYEN CONFIGURATION WEB ⏱️ 2 minutes
# Installer Apache
sudo apt update && sudo apt upgrade -y
sudo apt install apache2 -y
sudo systemctl enable --now apache2

# Vérifier le statut
sudo systemctl status apache2
🎯 Quand utiliser : Installation d'un serveur web Apache
⚠️ Sécurité : Mettre à jour avant installation
✅ Test : Vérifier que le service démarre correctement
🚨 Scénario : "Mise en place d'un nouveau serveur web"

2. Structure des fichiers

RISQUE FAIBLE CONFIGURATION WEB ⏱️ 1 minute
# Créer un nouveau site
sudo mkdir -p /var/www/monsite/html
sudo chown -R www-data:www-data /var/www/monsite
sudo chmod -R 755 /var/www/monsite
🎯 Quand utiliser : Préparation de l'arborescence d'un site
⚠️ Permissions : Important pour la sécurité
✅ Organisation : Structure claire pour multiples sites
🚨 Scénario : "Création d'un nouvel hôte virtuel"

3. Configuration VirtualHost

RISQUE MOYEN CONFIGURATION WEB ⏱️ 3 minutes
# Exemple de configuration
<VirtualHost *:80>
    ServerName monsite.local
    ServerAlias www.monsite.local
    DocumentRoot /var/www/monsite/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    
    <Directory /var/www/monsite/html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

# Activer le site
sudo a2ensite monsite.conf
sudo systemctl reload apache2
🎯 Quand utiliser : Configuration d'hôtes virtuels Apache
⚠️ Test : Vérifier la syntaxe avant activation
✅ Sécurité : Options -Indexes pour cacher l'arborescence
🚨 Scénario : "Hébergement de multiple sites sur un serveur"

4. Configuration PHP

RISQUE MOYEN CONFIGURATION WEB ⏱️ 2 minutes
# Installer PHP
sudo apt install php libapache2-mod-php php-mysql -y
sudo systemctl restart apache2

# Tester PHP
echo "" | sudo tee /var/www/monsite/html/info.php
🎯 Quand utiliser : Ajout du support PHP à Apache
⚠️ Sécurité : Retirer phpinfo() en production
✅ Test : Vérifier que PHP est interprété correctement
🚨 Scénario : "Mise en place d'une application PHP"

5. Sécurisation

RISQUE MOYEN CONFIGURATION SÉCURITÉ ⏱️ 5 minutes
# Activer le module security
sudo a2enmod security2
sudo systemctl restart apache2

# Configurer SSL avec Let's Encrypt
sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d monsite.local -d www.monsite.local
sudo certbot renew --dry-run
🎯 Quand utiliser : Renforcement de la sécurité Apache
⚠️ Certificats : Let's Encrypt nécessite un nom de domaine valide
✅ Automatisation : Renouvellement automatique des certificats
🚨 Scénario : "Sécurisation d'un site web avec HTTPS"

Résumé des Commandes Clés

  • Installer Apache: sudo apt install apache2 -y
  • Activer un site: sudo a2ensite nom.conf
  • Désactiver le site par défaut: sudo a2dissite 000-default.conf
  • Tester la configuration: sudo apache2ctl configtest
  • Redémarrer Apache: sudo systemctl restart apache2
  • Vérifier les logs: sudo tail -f /var/log/apache2/error.log

Gestion des Périphériques Externes

1. Windows (PowerShell) - Imprimantes

RISQUE MOYEN CONFIGURATION PÉRIPHÉRIQUES ⏱️ 2 minutes
# Lister toutes les imprimantes
Get-Printer | Format-Table Name, DriverName, PortName, Shared, Published

# Ajouter une imprimante locale
Add-Printer -Name "HP_LaserJet" -DriverName "HP LaserJet P3015 Series PCL6" -PortName "USB001"

# Ajouter une imprimante réseau
Add-Printer -ConnectionName "\\print-server\HP_Color_LaserJet"

# Configurer une imprimante partagée
Set-Printer -Name "HP_LaserJet" -Shared $true -ShareName "HP_LaserJet_Shared" -Published $true

# Supprimer une imprimante
Remove-Printer -Name "Old_Printer"

# Gérer les travaux d'impression
Get-PrintJob -PrinterName "HP_LaserJet" | Where-Object {$_.JobStatus -eq "Error"} | Remove-PrintJob
Restart-PrintJob -PrinterName "HP_LaserJet" -ID 5

# Installer un pilote d'imprimante
pnputil.exe -i -a "C:\Drivers\HP\*.inf"
🎯 Quand utiliser : Gestion des imprimantes sous Windows
⚠️ Pilotes : S'assurer d'avoir les bons pilotes
✅ Automatisation : Déploiement massif possible
🚨 Scénario : "Déploiement d'imprimantes sur un parc Windows"

2. Windows (PowerShell) - Périphériques USB et autres

RISQUE MOYEN CONFIGURATION PÉRIPHÉRIQUES ⏱️ 1 minute
# Lister tous les périphériques connectés
Get-PnpDevice | Where-Object {$_.Present} | Format-Table FriendlyName, Status, InstanceId

# Désactiver un périphérique USB
Disable-PnpDevice -InstanceId "USB\VID_0781&PID_5583\AA0123456789" -Confirm:$false

# Activer un périphérique
Enable-PnpDevice -InstanceId "USB\VID_0781&PID_5583\AA0123456789" -Confirm:$false

# Gérer les moniteurs
# (Nécessite l'installation de DisplaySwitch.exe via Windows SDK)
DisplaySwitch.exe /internal  # Utiliser uniquement l'écran intégré
DisplaySwitch.exe /external  # Utiliser uniquement l'écran externe
DisplaySwitch.exe /extend    # Étendre l'affichage
DisplaySwitch.exe /clone     # Dupliquer l'affichage

# Gérer les périphériques audio
Get-AudioDevice -List | Where-Object {$_.Type -eq "Playback"} | Format-Table Name, ID
Set-AudioDevice -ID "{0.0.0.00000000}.{a12b3c4d-5e67-8f90-1234-567890abcdef}"
🎯 Quand utiliser : Gestion des périphériques Windows
⚠️ Hardware : Manipulation directe du matériel
✅ Dépannage : Résolution de conflits matériels
🚨 Scénario : "Désactivation d'un périphérique USB problématique"

3. Windows (PowerShell) - Scanners

RISQUE MOYEN CONFIGURATION PÉRIPHÉRIQUES ⏱️ 3 minutes
# Lister les scanners disponibles (nécessite WIA)
$deviceManager = New-Object -ComObject WIA.DeviceManager
$deviceManager.DeviceInfos | Where-Object {$_.Type -eq 1} | Select-Object Properties

# Scanner un document (script avancé)
$device = $deviceManager.DeviceInfos.Item(1).Connect()
$scanner = $device.Items.Item(1)
$image = $scanner.Transfer()
$image.SaveFile("C:\Scans\document_$(Get-Date -Format 'yyyyMMddHHmmss').jpg")
🎯 Quand utiliser : Gestion des scanners sous Windows
⚠️ Compatibilité : WIA peut ne pas supporter tous les scanners
✅ Automatisation : Numérisation automatisée possible
🚨 Scénario : "Numérisation automatisée de documents"

4. Linux (CLI) - Imprimantes

RISQUE MOYEN CONFIGURATION PÉRIPHÉRIQUES ⏱️ 3 minutes
# Lister les imprimantes
lpstat -p -d

# Installer une imprimante CUPS (Common Unix Printing System)
sudo lpadmin -p HP_LaserJet -E -v socket://192.168.1.10 -m drv:///HP/hp-laserjet.ppd.gz

# Définir l'imprimante par défaut
sudo lpoptions -d HP_LaserJet

# Soumettre un travail d'impression
lpr -P HP_LaserJet document.pdf

# Annuler un travail d'impression
lprm -P HP_LaserJet 15

# Gérer les files d'attente
lpq -P HP_LaserJet

# Configurer une imprimante réseau Samba
sudo lpadmin -p "Office_Printer" -E -v "smb://user:password@print-server/HP_Color" -m everywhere
🎯 Quand utiliser : Gestion des imprimantes sous Linux
⚠️ CUPS : Service CUPS doit être installé et démarré
✅ Réseau : Support des imprimantes réseau étendu
🚨 Scénario : "Configuration d'une imprimante réseau sous Linux"

5. Linux (CLI) - Périphériques USB et autres

RISQUE MOYEN CONFIGURATION PÉRIPHÉRIQUES ⏱️ 1 minute
# Lister tous les périphériques USB
lsusb
lsusb -v  # Version détaillée

# Identifier un périphérique spécifique
udevadm info -a -n /dev/sdb | grep -i "idVendor\|idProduct"

# Monter un périphérique USB
sudo mkdir /mnt/usbdrive
sudo mount /dev/sdb1 /mnt/usbdrive -o uid=1000,gid=1000

# Démontrer un périphérique USB
sudo umount /mnt/usbdrive

# Gérer les moniteurs avec xrandr
xrandr  # Lister les affichages disponibles
xrandr --output HDMI-1 --auto --right-of eDP-1  # Configurer multi-écrans
xrandr --output HDMI-1 --off  # Désactiver un écran

# Configurer les périphériques audio
pactl list short sinks  # Lister les périphériques de sortie
pactl set-default-sink alsa_output.pci-0000_00_1b.0.analog-stereo  # Définir la sortie par défaut
🎯 Quand utiliser : Gestion des périphériques sous Linux
⚠️ Permissions : Attention aux droits sur les périphériques
✅ Contrôle : Contrôle granulaire du matériel
🚨 Scénario : "Configuration d'un setup multi-écrans"

6. Linux (CLI) - Scanners

RISQUE MOYEN CONFIGURATION PÉRIPHÉRIQUES ⏱️ 2 minutes
# Installer SANE (Scanner Access Now Easy)
sudo apt install sane sane-utils xsane

# Lister les scanners disponibles
scanimage -L

# Scanner un document (format PNG)
scanimage --format=png --output-file scan.png --resolution 300dpi --mode Color

# Scanner en PDF (nécessite imagemagick)
scanimage --format=tiff --resolution 300dpi | convert - scan.pdf

# Configurer un scanner réseau
sudo nano /etc/sane.d/net.conf
# Ajouter l'adresse IP du serveur de scanner: 192.168.1.20
🎯 Quand utiliser : Gestion des scanners sous Linux
⚠️ Compatibilité : Vérifier la compatibilité SANE du scanner
✅ Qualité : Contrôle précis des paramètres de scan
🚨 Scénario : "Configuration d'un scanner réseau sous Linux"

7. Scripts avancés

RISQUE MOYEN AUTOMATISATION PÉRIPHÉRIQUES ⏱️ 2 minutes
#!/bin/bash
# Script Linux de surveillance USB
while true; do
    USB_DEVICES=$(lsusb | wc -l)
    if [ $USB_DEVICES -gt 2 ]; then
        echo "Alerte : Nouveau périphérique USB détecté $(date)" >> /var/log/usb_monitor.log
        lsusb >> /var/log/usb_monitor.log
    fi
    sleep 5
done

<#
# Script PowerShell pour déployer des imprimantes
$Printers = Import-Csv "C:\deploy\printers.csv"
foreach ($printer in $Printers) {
    if ($printer.Type -eq "Network") {
        Add-Printer -ConnectionName $printer.Path
    } else {
        Add-Printer -Name $printer.Name -DriverName $printer.Driver -PortName $printer.Port
    }
    if ($printer.Shared -eq $true) {
        Set-Printer -Name $printer.Name -Shared $true -ShareName $printer.ShareName
    }
}
#>
🎯 Quand utiliser : Automatisation de la gestion des périphériques
⚠️ Sécurité : Surveillance USB peut être intrusive
✅ Efficacité : Déploiement massif automatisé
🚨 Scénario : "Déploiement automatisé d'imprimantes sur un parc"

8. Dépannage

RISQUE FAIBLE DIAGNOSTIC PÉRIPHÉRIQUES ⏱️ 2 minutes
# Windows - Vérifier les erreurs de périphérique
Get-WinEvent -LogName System | Where-Object {$_.ProviderName -match "USB|Print"} | 
    Select-Object TimeCreated, Message | Format-Table -AutoSize

# Linux - Journal des périphériques
sudo journalctl -b | grep -i "usb\|print\|scanner"
sudo dmesg | grep -i "new device"

# Réinitialiser le sous-système USB (Linux)
echo 0 | sudo tee /sys/bus/usb/devices/usb1/authorized
echo 1 | sudo tee /sys/bus/usb/devices/usb1/authorized

# Réinstaller un pilote (Windows)
pnputil.exe /delete-driver oem0.inf /uninstall
pnputil.exe /add-driver "C:\Drivers\new_driver.inf" /install
🎯 Quand utiliser : Diagnostic de problèmes matériels
⚠️ Hardware : Manipulation directe du matériel
✅ Résolution : Méthodes pour résoudre les conflits
🚨 Scénario : "Périphérique USB non reconnu"

Tcpdump - Capture de paquets

RISQUE FAIBLE DIAGNOSTIC RÉSEAU ⏱️ 30 secondes
# Capturer les paquets UDP RIP
tcpdump -i any or <Interface> port 250(ou autres selon la situation) -vv -n

# Capturer les paquets avec une adresse IP spécifique
tcpdump -i eth0 -nn 'host 224.0.0.9'

# Vérifier le trafic NAT
sudo tcpdump -i <interface_host_local> host NAT <IP_WINDOWS>
🎯 Quand utiliser : Analyse avancée du trafic réseau
⚠️ Pré-requis : Droits root/sudo nécessaires
✅ Avantages : Analyse en temps réel, filtrage puissant
🚨 Scénario : "Debug de problèmes réseau complexes"

Ping Avancé

RISQUE FAIBLE DIAGNOSTIC RÉSEAU ⏱️ 5 secondes
# Ping depuis une IP source spécifique
ping -S <IP source> -c 3 <IP Destination>
🎯 Quand utiliser : Test de connectivité depuis une IP spécifique
⚠️ Interface : L'IP source doit être configurée sur une interface
✅ Avantages : Test de routage spécifique
🚨 Scénario : "Vérification du routage depuis un sous-réseau spécifique"

Table de routage

RISQUE FAIBLE DIAGNOSTIC RÉSEAU ⏱️ 2 secondes
# Afficher la table de routage (Linux et Windows)
netstat -rn
🎯 Quand utiliser : Consultation rapide de la table de routage
⚠️ Alternative : Sur Linux moderne, préférer `ip route`
✅ Compatibilité : Fonctionne sur Linux et Windows
🚨 Scénario : "Vérification rapide des routes sur n'importe quel système"

Analyse des logs sous Linux

RISQUE FAIBLE DIAGNOSTIC MAINTENANCE ⏱️ 10 secondes
# Afficher les logs RIP
grep RIP /var/log/system.log

# Afficher les logs RIP en temps réel
tail -f /var/log/system.log | grep ripd

# Vérifier le service RIP
ps aux | grep ripd
🎯 Quand utiliser : Diagnostic des services et protocoles réseau
⚠️ Fichiers : Les chemins de logs peuvent varier selon la distribution
✅ Avantages : Debug précis des problèmes de services
🚨 Scénario : "Problèmes avec le protocole RIP"

Virtualisation

1. KVM/QEMU

RISQUE MOYEN CONFIGURATION VIRTUALISATION ⏱️ 5 minutes
# Installer KVM sur Ubuntu
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager

# Vérifier que la virtualisation est activée
kvm-ok
🎯 Quand utiliser : Mise en place de virtualisation KVM
⚠️ Pré-requis : Support VT-x/AMD-V dans le CPU
✅ Performance : Virtualisation native performante
🚨 Scénario : "Création d'un serveur de virtualisation Linux"

Note : Après installation, ajoutez votre utilisateur au groupe libvirt :

sudo usermod -aG libvirt $USER

2. VMware ESXi

RISQUE MOYEN CONFIGURATION VIRTUALISATION ⏱️ 2 minutes
# Connexion et informations de base
ssh root@adresse_ip_esxi                       # Se connecter à ESXi via SSH
vmware -v                                      # Afficher la version d'ESXi
esxcli system hostname get                     # Afficher les informations sur l'hôte
esxcli system version get 

# Gestion des VMs
vim-cmd vmsvc/getallvms                       # Lister toutes les VMs
vim-cmd vmsvc/power.on XX                     # Démarrer une VM (remplacez `XX` par l'ID de la VM)
vim-cmd vmsvc/power.off XX                    # Arrêter une VM
vim-cmd vmsvc/power.reset XX                  # Redémarrer une VM
vim-cmd vmsvc/power.getstate XX               # Voir l'état d'une VM

# Gestion du stockage
esxcli storage filesystem list                # Lister les datastores
df -h                                         # Voir l'espace disque disponible
ls -lh /vmfs/volumes/                         # Lister les volumes

# Transfert de fichiers
scp <Repertoire_source_fichier> root@<IP-Machine-ESXI>:/Volumes-Reprtoire_Destionation_Machine-ESXI
# Exemple: scp debian.iso root@192.168.100.10:/vmfs/volumes/ISO/

# Gestion réseau
esxcli network nic list                       # Lister les interfaces réseau
esxcli network vswitch standard list          # Voir les vSwitches
vmkping google.com                            # Tester la connectivité réseau

# Administration système
reboot                                        # Redémarrer l'hôte
poweroff                                      # Éteindre l'hôte
🎯 Quand utiliser : Administration d'un hyperviseur ESXi
⚠️ Production : ESXi est un hyperviseur enterprise
✅ Performance : Optimisé pour la virtualisation
🚨 Scénario : "Gestion d'une infrastructure VMware"

Sauvegarde et Restauration

1. Bases de données

RISQUE FAIBLE MAINTENANCE SAUVEGARDE ⏱️ Variable
# MySQL dump complet
mysqldump -u root -p --all-databases > backup_complet_$(date +%Y%m%d).sql

# Sauvegarde d'une base spécifique
mysqldump -u root -p ma_base_de_donnees > backup_ma_base_$(date +%Y%m%d).sql

# Sauvegarde PostgreSQL complète
sudo pg_dumpall -U postgres > postgres_backup_$(date +%Y%m%d).sql

# Sauvegarde d'une base PostgreSQL spécifique
pg_dump -U postgres ma_base > postgres_ma_base_$(date +%Y%m%d).sql

# Compression immédiate
mysqldump -u root -p --all-databases | gzip > backup_$(date +%Y%m%d).sql.gz

# Sauvegarde avec timestamp
mysqldump -u root -p --all-databases > backup_$(date +"%Y%m%d_%H%M%S").sql
🎯 Quand utiliser : Sauvegarde des bases de données critiques
⚠️ Taille : Les sauvegardes complètes peuvent être volumineuses
✅ Test : Toujours tester la restauration des sauvegardes
🚨 Scénario : "Sauvegarde avant mise à jour majeure de base de données"

2. Sauvegarde avec tar

RISQUE FAIBLE MAINTENANCE SAUVEGARDE ⏱️ Variable
# Sauvegarde avec tar
sudo tar -czvf backup-$(date +%F).tar.gz /dossier/a/sauvegarder

# Sauvegarde avec exclusion de fichiers
tar -czvf backup-$(date +%F).tar.gz --exclude='*.tmp' --exclude='cache/*' /dossier

# Sauvegarde incrémentielle basée sur la date
tar -czvf backup-$(date +%Y%m%d).tar.gz /dossier/important

# Liste le contenu d'une archive
tar -tzf backup-2023-12-01.tar.gz

# Extraction d'archive
tar -xzvf backup-2023-12-01.tar.gz -C /dossier/restauration
🎯 Quand utiliser : Sauvegarde d'arborescences de fichiers
⚠️ Compression : L'option -z compresse avec gzip
✅ Avantages : Préservation des permissions, compression
🚨 Scénario : "Sauvegarde de la configuration système"

3. Sauvegarde incrémentielle avec rsync

RISQUE FAIBLE MAINTENANCE SAUVEGARDE ⏱️ Rapide
# Sauvegarde incrémentielle avec liens durs
sudo rsync -av --delete --link-dest=/previous/backup /source /destination/backup-$(date +%F)

# Sauvegarde simple
rsync -av /source/ /destination/backup-$(date +%Y%m%d)/

# Sauvegarde avec exclusion
rsync -av --exclude='*.tmp' --exclude='cache/' /source/ /destination/

# Sauvegarde via SSH
rsync -av -e ssh /dossier/local/ utilisateur@serveur:/dossier/backup/

# Synchronisation bidirectionnelle
rsync -av /source/ /destination/ --update
🎯 Quand utiliser : Sauvegardes fréquentes et efficaces
⚠️ Suppression : --delete peut être dangereux
✅ Avantages : Seuls les fichiers modifiés sont copiés
🚨 Scénario : "Sauvegarde quotidienne des données utilisateurs"

4. Automatisation des sauvegardes

RISQUE MOYEN AUTOMATISATION SAUVEGARDE ⏱️ 5 minutes
# Planifier des sauvegardes avec cron
(crontab -l 2>/dev/null; echo "0 2 * * * /chemin/vers/script_backup.sh") | crontab -

# Exemple de crontab
# Tous les jours à 2h du matin
0 2 * * * /root/scripts/backup_daily.sh

# Tous les dimanches à 3h
0 3 * * 0 /root/scripts/backup_weekly.sh

# Tous les 1er du mois à 4h
0 4 1 * * /root/scripts/backup_monthly.sh

# Script de sauvegarde automatique exemple
#!/bin/bash
BACKUP_DIR="/backup/$(date +%Y%m%d)"
mkdir -p $BACKUP_DIR
mysqldump -u root -p --all-databases > $BACKUP_DIR/mysql_backup.sql
tar -czf $BACKUP_DIR/config_backup.tar.gz /etc/
🎯 Quand utiliser : Mise en place de sauvegardes automatisées
⚠️ Sécurité : Stocker les mots de passe de manière sécurisée
✅ Avantages : Sauvegardes régulières sans intervention
🚨 Scénario : "Mise en place d'une stratégie de sauvegarde automatique"

5. Stratégies de sauvegarde

RISQUE FAIBLE PLANIFICATION SAUVEGARDE ⏱️ Planification
# Règle 3-2-1
# 3 copies des données
# 2 supports différents
# 1 copie hors-site

# Script de rotation des sauvegardes
#!/bin/bash
BACKUP_DIR="/backup"
# Supprimer les sauvegardes de plus de 30 jours
find $BACKUP_DIR -name "backup_*" -mtime +30 -delete

# Vérification intégrité des sauvegardes
md5sum backup_file.tar.gz > backup_file.tar.gz.md5
md5sum -c backup_file.tar.gz.md5

# Sauvegarde différentielle exemple
tar -czf backup_full_$(date +%Y%m%d).tar.gz /data
tar -czf backup_diff_$(date +%Y%m%d).tar.gz -N "2023-12-01" /data
🎯 Quand utiliser : Planification d'une stratégie de sauvegarde robuste
⚠️ Test : Tester régulièrement la restauration
✅ Bonne pratique : Règle 3-2-1 pour la résilience
🚨 Scénario : "Élaboration d'un plan de reprise d'activité"

⚠️ ATTENTION CRITIQUE : Stockez toujours les sauvegardes dans un emplacement sécurisé et chiffré. Testez régulièrement les restaurations !

💾 Workflow de Sauvegarde Recommandé

  1. 1. Sauvegarder les bases de données critiques
  2. 2. Archiver les configurations système
  3. 3. Synchroniser les données utilisateurs
  4. 4. Automatiser les sauvegardes récurrentes
  5. 5. Implémenter une stratégie 3-2-1

Monitoring

1. Outils de base

RISQUE FAIBLE DIAGNOSTIC MONITORING ⏱️ 30 secondes
# Vérification de l'état du système (Linux)
top
htop
glances  # Version améliorée avec plus de métriques

# Surveillance des disques
iotop -o  # Affiche les E/S disque en temps réel
iftop     # Surveillance du trafic réseau

# Installer NetData (monitoring complet)
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
🎯 Quand utiliser : Monitoring basique des systèmes
🔍 Temps réel : Outils pour surveillance immédiate
✅ Visuel : NetData offre une interface web complète
🚨 Scénario : "Diagnostic rapide de performance système"

2. Solutions professionnelles

RISQUE MOYEN CONFIGURATION MONITORING ⏱️ 15 minutes
# Prometheus (collecte de métriques)
# Installation:
wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz
tar xvfz prometheus-*.tar.gz
cd prometheus-*
./prometheus --config.file=prometheus.yml

# Grafana (visualisation)
sudo apt-get install -y grafana
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
🎯 Quand utiliser : Mise en place de monitoring d'entreprise
⚠️ Complexité : Solution avancée nécessitant configuration
✅ Puissance : Monitoring scalable et personnalisable
🚨 Scénario : "Monitoring d'une infrastructure complète"

3. Alerting

RISQUE MOYEN CONFIGURATION MONITORING ⏱️ 5 minutes
# Configurer Alertmanager avec Prometheus
global:
  resolve_timeout: 5m
route:
  group_by: ['alertname']
  receiver: 'email-notifications'
receivers:
- name: 'email-notifications'
  email_configs:
  - to: 'admin@example.com'
    from: 'alertmanager@example.com'
    smarthost: 'smtp.example.com:587'
    auth_username: 'user'
    auth_password: 'password'
🎯 Quand utiliser : Configuration d'alertes de monitoring
⚠️ Testing : Tester les alertes avant déploiement
✅ Proactif : Détection précoce des problèmes
🚨 Scénario : "Mise en place d'alertes pour services critiques"

Sécurité

1. Audit et analyse

RISQUE FAIBLE DIAGNOSTIC SÉCURITÉ ⏱️ 10 minutes
# Scan de vulnérabilités avec OpenVAS
sudo apt install openvas
sudo gvm-setup
sudo gvm-start

# Analyse avec Lynis (audit de sécurité)
sudo lynis audit system

# Vérification des ports ouverts
nmap -sS -p- -T4 192.168.1.1  # Scan TCP SYN
nmap -sU -p- -T4 192.168.1.1  # Scan UDP
🎯 Quand utiliser : Audit de sécurité des systèmes
⚠️ Autorisation : S'assurer d'avoir l'autorisation de scanner
✅ Complet : Analyse approfondie des vulnérabilités
🚨 Scénario : "Audit de sécurité périodique"

2. Hardening

RISQUE MOYEN CONFIGURATION SÉCURITÉ ⏱️ 15 minutes
# CIS Benchmark (Windows)
Install-Module -Name CISBenchmark -Force
Get-CISBenchmark -Level 1 | Invoke-CISBenchmark

# Hardening Linux avec Bastille
sudo apt install bastille
sudo bastille -c

# Désactivation des services inutiles (Linux)
sudo systemctl list-unit-files --state=enabled
sudo systemctl disable [service_name]
🎯 Quand utiliser : Renforcement de la sécurité des systèmes
⚠️ Test : Tester en environnement de test d'abord
✅ Conformité : Respect des standards de sécurité
🚨 Scénario : "Sécurisation d'un serveur exposé sur Internet"

3. Forensic

RISQUE FAIBLE DIAGNOSTIC SÉCURITÉ ⏱️ 5 minutes
# Analyse des processus suspects
ps aux | grep -E '(crypt|miner|attack)'

# Recherche de fichiers modifiés récemment
find / -type f -mtime -1 -print

# Capture de trafic suspect
tcpdump -i eth0 -w capture.pcap 'port not 22 and port not 80 and port not 443'
🎯 Quand utiliser : Investigation d'incidents de sécurité
⚠️ Preuve : Conserver la chaîne de preuve
✅ Analyse : Méthodologie d'investigation
🚨 Scénario : "Investigation d'une possible intrusion"

Containers

1. Docker

RISQUE MOYEN CONFIGURATION CONTAINERS ⏱️ 2 minutes
# Gestion des containers
docker ps -a                          # Lister tous les containers
docker stats                          # Statistiques en temps réel
docker inspect [container_id]         # Détails d'un container

# Gestion des images
docker images                         # Lister les images
docker image prune                    # Nettoyer les images inutilisées

# Réseau Docker
docker network ls                     # Lister les réseaux
docker network inspect bridge         # Inspecter un réseau

# Installation de Neko Navigateur avec Docker
docker run -d \
  --name neko \                               # Nom du projet dans docker
  -e NEKO_PASSWORD=34PenetrationTest \        # Mot de passe utilisateur Neko
  -e NEKO_PASSWORD_ADMIN=34PenetrationTest \  # Mot de passe Admin
  -p 8090:8080 \                           # Port d'accès à neko
  -p 52000-52100:52000-52100/udp \
  --shm-size=2gb \
  --cap-add=SYS_ADMIN \
  --device /dev/snd \
  --security-opt seccomp=unconfined \
  --rm \
  m1k1o/neko:firefox                       # Démarrer neko avec le navigateur firefox
🎯 Quand utiliser : Gestion de containers Docker
⚠️ Sécurité : Attention aux privilèges accordés
✅ Isolation : Environnements séparés et contrôlés
🚨 Scénario : "Déploiement d'applications conteneurisées"

2. Docker Compose

RISQUE MOYEN CONFIGURATION CONTAINERS ⏱️ 3 minutes
# Déployer une stack
docker-compose -f stack.yml up -d

# Surveiller les logs
docker-compose logs -f --tail=100

# Scale de services
docker-compose up -d --scale web=3 --scale worker=5
🎯 Quand utiliser : Orchestration d'applications multi-conteneurs
⚠️ Dépendances : Gère automatiquement les dépendances
✅ Simplicité : Déploiement cohérent et reproductible
🚨 Scénario : "Déploiement d'une application avec base de données"

3. Kubernetes

RISQUE MOYEN CONFIGURATION CONTAINERS ⏱️ 5 minutes
# Commandes kubectl de base
kubectl get pods -A                   # Lister tous les pods
kubectl describe node [node_name]     # Détails d'un noeud
kubectl logs [pod_name]               # Voir les logs d'un pod

# Surveillance
kubectl top nodes                     # Utilisation ressources des noeuds
kubectl top pods                      # Utilisation ressources des pods

# Déploiement
kubectl apply -f deployment.yml       # Déployer une configuration
kubectl rollout status deployment/[deployment_name]
🎯 Quand utiliser : Orchestration de containers en production
⚠️ Complexité : Courbe d'apprentissage importante
✅ Scalabilité : Gestion automatique de la charge
🚨 Scénario : "Orchestration d'applications microservices"

Bonnes pratiques Docker :

  • Utiliser des images officielles et vérifiées
  • Limiter les privilèges des containers (--cap-drop)
  • Scanner régulièrement les images avec Docker Bench Security

Cloud & Infrastructure as Code

1. AWS CLI

RISQUE MOYEN CONFIGURATION CLOUD ⏱️ 5 minutes
# Configuration AWS CLI
aws configure
aws configure set region eu-west-1

# Gestion EC2
aws ec2 describe-instances
aws ec2 start-instances --instance-ids i-1234567890abcdef0
aws ec2 create-image --instance-id i-1234567890abcdef0 --name "Backup-$(date +%Y%m%d)"

# Gestion S3
aws s3 ls
aws s3 cp fichier.txt s3://mon-bucket/
aws s3 sync ./local-folder s3://mon-bucket/backup/

# Gestion IAM
aws iam list-users
aws iam create-user --user-name new-user
aws iam attach-user-policy --user-name new-user --policy-arn arn:aws:iam::aws:policy/AdministratorAccess

# CloudFormation
aws cloudformation create-stack --stack-name my-stack --template-body file://template.yaml
aws cloudformation describe-stacks --stack-name my-stack
🎯 Quand utiliser : Gestion d'infrastructure AWS
⚠️ Coût : Surveiller l'utilisation pour éviter les surprises
✅ Automatisation : Gestion complète via CLI
🚨 Scénario : "Gestion d'une infrastructure cloud AWS"

2. Azure CLI

RISQUE MOYEN CONFIGURATION CLOUD ⏱️ 5 minutes
# Connexion Azure
az login
az account list --output table

# Gestion VM
az vm list --output table
az vm start --name MyVM --resource-group MyResourceGroup
az vm create --resource-group MyRG --name MyVM --image UbuntuLTS --admin-username azureuser

# Gestion Stockage
az storage account list --resource-group MyRG
az storage blob upload --account-name mystorage --container-name mycontainer --name blob.txt --file ./blob.txt

# Azure Resource Manager
az group create --name MyRG --location "West Europe"
az deployment group create --resource-group MyRG --template-file template.json
🎯 Quand utiliser : Gestion d'infrastructure Azure
⚠️ Abonnement : Vérifier le contexte d'abonnement
✅ Cohérence : Interface unifiée pour tous les services
🚨 Scénario : "Déploiement d'infrastructure sur Azure"

3. Terraform

RISQUE MOYEN CONFIGURATION CLOUD ⏱️ 10 minutes
# Initialisation
terraform init
terraform init -upgrade

# Planification
terraform plan -out plan.tfplan
terraform plan -var "instance_type=t3.medium"

# Application
terraform apply
terraform apply -auto-approve
terraform apply plan.tfplan

# État et inspection
terraform state list
terraform state show aws_instance.web
terraform output

# Destruction contrôlée
terraform plan -destroy
terraform destroy -target=aws_instance.web

# Workspaces
terraform workspace new dev
terraform workspace select prod
terraform workspace list
🎯 Quand utiliser : Infrastructure as Code multi-cloud
⚠️ État : Gérer soigneusement le state file
✅ Reproductibilité : Environnements identiques et versionnés
🚨 Scénario : "Déploiement d'infrastructure reproductible"

Automatisation & Orchestration

1. Ansible

RISQUE MOYEN CONFIGURATION AUTOMATISATION ⏱️ 5 minutes
# Test de connexion
ansible all -m ping -i inventory.ini

# Playbook simple
ansible-playbook -i inventory.ini playbook.yml
ansible-playbook playbook.yml --limit webservers
ansible-playbook playbook.yml --tags "nginx,ssl"

# Ad-hoc commands
ansible webservers -m apt -a "name=nginx state=latest" -b
ansible dbservers -m systemd -a "name=mysql state=started" -b
ansible all -m copy -a "src=config.txt dest=/etc/backup/"

# Vault pour secrets
ansible-vault create secret.yml
ansible-vault edit secret.yml
ansible-playbook playbook.yml --ask-vault-pass

# Galaxy roles
ansible-galaxy role install geerlingguy.nginx
ansible-galaxy collection install community.general
🎯 Quand utiliser : Automatisation de configuration
⚠️ Idempotence : Les playbooks doivent être idempotents
✅ Agentless : Aucun agent à installer sur les cibles
🚨 Scénario : "Configuration automatisée d'un parc de serveurs"

2. Jenkins & CI/CD

RISQUE MOYEN CONFIGURATION AUTOMATISATION ⏱️ 10 minutes
# Pipeline Jenkins déclaratif
pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh 'mvn clean compile'
            }
        }
        stage('Test') {
            steps {
                sh 'mvn test'
            }
        }
        stage('Deploy') {
            steps {
                sh 'ansible-playbook deploy.yml'
            }
        }
    }
}

# Scripts Groovy pour administration
println(Jenkins.instance.pluginManager.plugins)
Jenkins.instance.nodes.each { node ->
    println("${node.displayName}: ${node.computer.online}")
}
🎯 Quand utiliser : Mise en place de pipelines CI/CD
⚠️ Complexité : Courbe d'apprentissage pour les pipelines
✅ Automatisation : Intégration et déploiement continus
🚨 Scénario : "Mise en place d'un pipeline de déploiement"

3. API & Webhooks

RISQUE MOYEN CONFIGURATION AUTOMATISATION ⏱️ 3 minutes
# Curl pour tests API
curl -X GET "https://api.example.com/v1/servers" -H "Authorization: Bearer $TOKEN"
curl -X POST "https://api.example.com/v1/deploy" -H "Content-Type: application/json" -d '{"version":"1.2.3"}'

# Webhook avec Python Flask
from flask import Flask, request
import subprocess

app = Flask(__name__)

@app.route('/webhook/deploy', methods=['POST'])
def deploy_webhook():
    if request.headers.get('X-GitHub-Event') == 'push':
        subprocess.run(['/opt/scripts/deploy.sh'])
        return 'Deployment triggered', 200
    return 'Ignored', 202
🎯 Quand utiliser : Intégration et automatisation via APIs
⚠️ Sécurité : Authentifier et autoriser les appels API
✅ Flexibilité : Intégration avec écosystème étendu
🚨 Scénario : "Automatisation via webhooks Git"

Bases de Données Avancées

1. PostgreSQL Avancé

RISQUE MOYEN CONFIGURATION BASE DE DONNÉES ⏱️ 5 minutes
# Maintenance et performances
VACUUM (VERBOSE, ANALYZE) table_name;
REINDEX DATABASE database_name;
ANALYZE table_name;

# Surveillance avancée
SELECT * FROM pg_stat_activity WHERE state = 'active';
SELECT schemaname, tablename, n_dead_tup FROM pg_stat_all_tables ORDER BY n_dead_tup DESC;

# Backup avancé
pg_basebackup -D /backup/primary -h primary-host -U replicator -P -v
pg_dump -Fc database_name > backup.dump  # Format custom compressé

# Réplication
SELECT * FROM pg_replication_slots;
SELECT client_addr, state, sync_state FROM pg_stat_replication;

# Partitioning
CREATE TABLE measurement (
    city_id int not null,
    logdate date not null,
    peaktemp int
) PARTITION BY RANGE (logdate);
🎯 Quand utiliser : Administration avancée PostgreSQL
⚠️ Performance : VACUUM peut impacter les performances
✅ Optimisation : Maintenance régulière nécessaire
🚨 Scénario : "Optimisation d'une base PostgreSQL en production"

2. MySQL/MariaDB Avancé

RISQUE MOYEN CONFIGURATION BASE DE DONNÉES ⏱️ 5 minutes
# Optimisation et tuning
SHOW ENGINE INNODB STATUS;
SHOW PROCESSLIST;
EXPLAIN ANALYZE SELECT * FROM large_table WHERE condition;

# Backup et réplication
mysqldump --single-transaction --routines --triggers database_name > backup.sql
mysqlpump --users --routines --events > full_backup.sql

# Réplication MySQL
SHOW MASTER STATUS;
SHOW SLAVE STATUS\G
CHANGE MASTER TO MASTER_HOST='master', MASTER_USER='repl', MASTER_PASSWORD='password';

# Performance Schema
SELECT * FROM performance_schema.events_statements_summary_by_digest ORDER BY sum_timer_wait DESC LIMIT 10;
🎯 Quand utiliser : Administration avancée MySQL/MariaDB
⚠️ Réplication : Configurer soigneusement la réplication
✅ Monitoring : Performance Schema pour analyse détaillée
🚨 Scénario : "Configuration de la réplication MySQL"

3. MongoDB

RISQUE MOYEN CONFIGURATION BASE DE DONNÉES ⏱️ 3 minutes
# Opérations basiques
use mydb
db.collection.find({status: "active"}).sort({created_at: -1}).limit(10)
db.collection.createIndex({username: 1}, {unique: true})

# Agrégations
db.orders.aggregate([
    {$match: {status: "completed"}},
    {$group: {_id: "$customer_id", total: {$sum: "$amount"}}},
    {$sort: {total: -1}}
])

# Backup et restauration
mongodump --uri="mongodb://localhost:27017/mydb" --out=/backup/
mongorestore --uri="mongodb://localhost:27017/mydb" /backup/mydb/

# Performance
db.collection.explain().find({query: "condition"})
db.currentOp({"secs_running": {"$gte": 60}})
🎯 Quand utiliser : Administration de bases MongoDB
⚠️ Indexation : Crucial pour les performances
✅ Flexibilité : Schéma dynamique et agrégations puissantes
🚨 Scénario : "Gestion d'une base de données NoSQL"

Logiciels du Laboratoire

🎯 Objectif : Cette section recense tous les logiciels utilisés dans l'environnement de laboratoire
📁 Catégories : Virtualisation, Monitoring, Sécurité, Containers, Outils réseau
🔧 Usage : Référence rapide pour l'installation, configuration et dépannage

1. Émulation & Virtualisation Réseau

RISQUE MOYEN CONFIGURATION VIRTUALISATION ⏱️ 15 minutes
# Installation EVE-NG
wget -O - http://www.eve-ng.net/keys/eve-ng.gpg.key | sudo apt-key add -
echo "deb http://www.eve-ng.net/repo xenial main" | sudo tee /etc/apt/sources.list.d/eve-ng.list
sudo apt update && sudo apt install eve-ng

# Gestion des images
/opt/unetlab/addons/qemu/
chown -R root:root /opt/unetlab/addons/qemu/
/opt/unetlab/wrappers/unl_wrapper -a fixpermissions

# Accès web
https://[IP-EVE-NG]
# Identifiants par défaut : admin / eve

# Redémarrage des services
/opt/unetlab/wrappers/unl_wrapper -a restart
🎯 Quand utiliser : Simulation de réseaux complexes multi-fournisseurs
⚠️ Pré-requis : CPU avec virtualisation activée, 8GB RAM minimum
✅ Avantages : Support Cisco/Juniper/autres, communauté active
🚨 Scénario : "Préparation de labos pour certification CCNP"
RISQUE MOYEN CONFIGURATION VIRTUALISATION ⏱️ 10 minutes
# Installation GNS3
sudo add-apt-repository ppa:gns3/ppa
sudo apt update
sudo apt install gns3-gui gns3-server

# Version All-in-One (Windows)
# Télécharger depuis : https://www.gns3.com/software/download

# Configuration serveur
gns3server
# Accès : http://localhost:3080

# Intégration VMware/VirtualBox
# Dans GNS3: Edit → Preferences → VirtualBox/VMware
🎯 Quand utiliser : Prototypage de topologies réseau avec intégration Docker
⚠️ Performance : Peut être gourmand en ressources
✅ Avantages : Interface intuitive, multi-plateforme
🚨 Scénario : "Test de configuration réseau avant déploiement réel"

2. Hyperviseurs & Virtualisation

RISQUE MOYEN CONFIGURATION VIRTUALISATION PRODUCTION ⏱️ 30 minutes
# Installation via ISO
# Télécharger l'ISO depuis : https://customerconnect.vmware.com/

# Commandes ESXI utiles
esxcli system version get
esxcli network ip interface list
vim-cmd vmsvc/getallvms
vim-cmd vmsvc/power.on 1

# Configuration réseau
esxcli network ip interface ipv4 set -i vmk0 -t static -g 192.168.1.1 -I 192.168.1.10 -N 255.255.255.0

# Gestion stockage
esxcli storage filesystem list
esxcli storage nfs list
🎯 Quand utiliser : Virtualisation d'entreprise pour infrastructures critiques
⚠️ Licence : Version free avec limitations
✅ Avantages : Performance, vCenter, fonctionnalités enterprise
🚨 Scénario : "Virtualisation de serveurs de production"
RISQUE MOYEN CONFIGURATION VIRTUALISATION PRODUCTION ⏱️ 20 minutes
# Installation via ISO
# Télécharger : https://www.proxmox.com/en/downloads

# Commandes Proxmox
pvesh get /nodes
qm list
qm start 100
vzdump 100 --storage backup-storage --mode snapshot

# Création VM via CLI
qm create 200 --name "ubuntu-server" --memory 2048 --cores 2 --net0 virtio,bridge=vmbr0

# Gestion cluster
pvecm create CLUSTER_NAME
pvecm add NODE_IP
🎯 Quand utiliser : Alternative open-source à VMware, laboratoires
⚠️ Cluster : Configuration réseau critique pour le clustering
✅ Avantages : Gratuit, interface web, sauvegardes intégrées
🚨 Scénario : "Mise en place d'un environnement de test virtualisé"

3. Accès Distant & Bureau

RISQUE MOYEN CONFIGURATION WEB ⏱️ 15 minutes
# Docker Compose Guacamole
version: '3'
services:
  guacamole:
    image: guacamole/guacamole
    ports: ["8080:8080"]
    environment:
      - GUACD_HOSTNAME=guacd
      - MYSQL_HOSTNAME=mysql
  guacd:
    image: guacamole/guacd
  mysql:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: guacamole_db
      MYSQL_USER: guacamole_user
      MYSQL_PASSWORD: guacamole_password

# Initialisation base
docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
docker exec -i mysql mysql -u root -prootpassword guacamole_db < initdb.sql
🎯 Quand utiliser : Centralisation des accès RDP/SSH/VNC
⚠️ Sécurité : Configurer SSL et authentification forte
✅ Avantages : Clientless, authentification centralisée, MFA
🚨 Scénario : "Accès unifié à tous les serveurs du labo"
RISQUE FAIBLE CONFIGURATION CONTAINERS ⏱️ 5 minutes
# Installation Neko avec Docker
docker run -d \
  --name=neko \
  --restart=unless-stopped \
  -e NEKO_PASSWORD=monMotDePasse \
  -e NEKO_PASSWORD_ADMIN=monMotDePasseAdmin \
  -p 8080:8080 \
  -p 52000-52100:52000-52100/udp \
  --shm-size=2gb \
  m1k1o/neko:firefox

# Accès : http://localhost:8080
# Identifiants : neko / monMotDePasse
# Admin : admin / monMotDePasseAdmin

# Version Chrome
docker run -d \
  --name=neko-chrome \
  -e NEKO_PASSWORD=password \
  -p 8081:8080 \
  m1k1o/neko:chromium
🎯 Quand utiliser : Navigateur distant partagé pour démonstrations
⚠️ Performance : Nécessite une bonne connexion pour le streaming
✅ Avantages : Temps réel, partage de session, multi-navigateurs
🚨 Scénario : "Démonstration d'applications web en temps réel"

4. Monitoring & Observabilité

RISQUE FAIBLE CONFIGURATION MONITORING ⏱️ 10 minutes
# Installation Docker
docker run -d -p 3000:3000 --name grafana grafana/grafana

# Installation native Ubuntu
sudo apt-get install -y adduser libfontconfig1
wget https://dl.grafana.com/oss/release/grafana_10.0.0_amd64.deb
sudo dpkg -i grafana_10.0.0_amd64.deb
sudo systemctl enable grafana-server
sudo systemctl start grafana-server

# Configuration datasource
apiVersion: 1
datasources:
  - name: Prometheus
    type: prometheus
    url: http://prometheus:9090
    access: proxy

# Accès : http://localhost:3000
# Identifiants par défaut : admin / admin
🎯 Quand utiliser : Visualisation de métriques et création de dashboards
⚠️ Sécurité : Changer le mot de passe admin immédiatement
✅ Avantages : Multi-sources, communauté, plugins
🚨 Scénario : "Création de tableaux de bord pour surveillance infrastructure"
RISQUE MOYEN CONFIGURATION MONITORING ⏱️ 15 minutes
# Installation Prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.45.0/prometheus-2.45.0.linux-amd64.tar.gz
tar xvfz prometheus-*.tar.gz
cd prometheus-*
./prometheus --config.file=prometheus.yml

# Configuration de base
global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
  - job_name: 'node_exporter'
    static_configs:
      - targets: ['localhost:9100']

# Node Exporter (métriques système)
docker run -d -p 9100:9100 --name node-exporter prom/node-exporter
🎯 Quand utiliser : Collecte de métriques time-series
⚠️ Stockage : Prévoir assez d'espace pour les métriques
✅ Avantages : Pull model, requêtes puissantes, intégration Kubernetes
🚨 Scénario : "Monitoring cloud native et conteneurisé"
RISQUE MOYEN CONFIGURATION MONITORING ⏱️ 20 minutes
# Installation avec Docker
version: '3.5'
services:
  zabbix-server:
    image: zabbix/zabbix-server-mysql:latest
    ports: ["10051:10051"]
    environment:
      DB_SERVER_HOST: zabbix-mysql
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix-password

  zabbix-web:
    image: zabbix/zabbix-web-nginx-mysql:latest
    ports: ["80:8080", "443:8443"]
    environment:
      DB_SERVER_HOST: zabbix-mysql
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix-password

  zabbix-mysql:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix-password
🎯 Quand utiliser : Supervision d'infrastructure traditionnelle
⚠️ Ressources : Peut être gourmand en base de données
✅ Avantages : Scalable, templates, découverte automatique
🚨 Scénario : "Monitoring d'un parc de serveurs et équipements réseau"

5. Téléphonie & VoIP

RISQUE MOYEN CONFIGURATION TÉLÉPHONIE ⏱️ 30 minutes
# Installation 3CX
wget http://downloads.3cx.com/downloads/misc/debian10/3cxpbx.deb
dpkg -i 3cxpbx.deb

# Configuration réseau
# Accès web : https://ip-serveur:5001

# Diagnostic SIP
tcpdump -i any -n port 5060
tail -f /var/lib/3cxpbx/Data/Logs/*.log

# Commandes système
systemctl status nginx
systemctl status 3CXPhoneSystemMC01
systemctl status 3CXHttpServer
🎯 Quand utiliser : Mise en place d'un PBX IP pour communications unifiées
⚠️ Sécurité : Configurer correctement le firewall
✅ Avantages : Interface web, intégrations, coût
🚨 Scénario : "Installation d'une centrale téléphonique IP"

6. Sécurité & Analyse

RISQUE MOYEN CONFIGURATION SÉCURITÉ ⏱️ 15 minutes
# Installation et démarrage
apt install suricata
suricata-update
suricata -c /etc/suricata/suricata.yaml -i eth0

# Configuration de base
# /etc/suricata/suricata.yaml
vars:
  address-groups:
    HOME_NET: "[192.168.0.0/16,10.0.0.0/8]"
    EXTERNAL_NET: "any"

# Surveillance alertes
tail -f /var/log/suricata/fast.log
jq '.' /var/log/suricata/eve.json | head -20

# Mise à jour règles
suricata-update
systemctl restart suricata
🎯 Quand utiliser : Détection d'intrusions réseau (IDS/IPS)
⚠️ Performance : Peut impacter les performances réseau
✅ Avantages : Performances, règles communautaires
🚨 Scénario : "Surveillance du trafic réseau pour détection d'intrusions"
RISQUE MOYEN CONFIGURATION SÉCURITÉ ⏱️ 25 minutes
# Installation All-in-One
curl -sO https://packages.wazuh.com/4.5/wazuh-install.sh
sudo bash wazuh-install.sh --all-in-one

# Installation manuelle
# Serveur :
curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | apt-key add -
echo "deb https://packages.wazuh.com/4.x/apt/ stable main" | tee /etc/apt/sources.list.d/wazuh.list
apt update
apt install wazuh-manager

# Agent Linux :
curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | apt-key add -
echo "deb https://packages.wazuh.com/4.x/apt/ stable main" | tee /etc/apt/sources.list.d/wazuh.list
apt update
apt install wazuh-agent
🎯 Quand utiliser : SIEM open-source et HIDS (Host-based IDS)
⚠️ Ressources : Nécessite Elasticsearch pour les logs
✅ Avantages : CIS, PCI-DSS, intégration Elasticsearch
🚨 Scénario : "Centralisation des logs de sécurité et conformité"

7. Gestion de Parc & Services

RISQUE MOYEN CONFIGURATION GESTION ⏱️ 20 minutes
# Installation GLPI
apt install glpi
mysql -u root -p -e "CREATE DATABASE glpi;"
mysql -u root -p -e "GRANT ALL ON glpi.* TO 'glpi'@'localhost';"

# Installation manuelle
wget https://github.com/glpi-project/glpi/releases/download/10.0.0/glpi-10.0.0.tgz
tar -xzf glpi-10.0.0.tgz
mv glpi /var/www/html/
chown -R www-data:www-data /var/www/html/glpi

# Agent FusionInventory
apt install fusioninventory-agent
fusioninventory-agent --server http://glpi-server/glpi/plugins/fusioninventory/
🎯 Quand utiliser : Gestion de parc informatique et ticketing
⚠️ Base : Configurer correctement la base de données
✅ Avantages : FusionInventory, gratuité
🚨 Scénario : "Inventaire automatique du parc informatique"
RISQUE MOYEN AUTOMATISATION GESTION ⏱️ 10 minutes
#!/bin/bash
# Script de déploiement automatique des outils du labo

LAB_TOOLS=("docker" "grafana" "prometheus" "zabbix")

deploy_tool() {
    case $1 in
        "docker")
            curl -fsSL https://get.docker.com -o get-docker.sh
            sh get-docker.sh
            usermod -aG docker $USER
            ;;
        "grafana")
            docker run -d -p 3000:3000 --name grafana grafana/grafana
            ;;
        "prometheus")
            docker run -d -p 9090:9090 --name prometheus prom/prometheus
            ;;
        "zabbix")
            docker-compose -f zabbix-docker-compose.yml up -d
            ;;
    esac
}

for tool in "${LAB_TOOLS[@]}"; do
    echo "Déploiement de $tool..."
    deploy_tool $tool
done

echo "Déploiement terminé !"
🎯 Quand utiliser : Automatisation de l'installation des outils
⚠️ Test : Toujours tester en environnement de test d'abord
✅ Avantages : Gain de temps, reproductibilité
🚨 Scénario : "Déploiement rapide d'un nouvel environnement de labo"

🔧 Workflow de Mise en Place du Laboratoire

  1. 1. Installer l'émulation réseau (EVE-NG/GNS3)
  2. 2. Configurer l'hyperviseur (Proxmox/ESXi)
  3. 3. Déployer le monitoring (Grafana/Prometheus)
  4. 4. Installer les outils de sécurité (Suricata/Wazuh)
  5. 5. Mettre en place la gestion (GLPI)

AICHAT - Interface en Ligne de Commande

Commandes de base

RISQUE FAIBLE CONFIGURATION AICHAT ⏱️ 10 secondes
# Question simple à un modèle
aichat -m openai:deepseek "Explique brièvement la différence entre TCP et UDP."

# Sans streaming pour un affichage instantané
aichat -m openai:deepseek -S "Explique brièvement la différence entre TCP et UDP."

# Utiliser un fichier comme contexte
aichat -f mon_document.pdf -m openai:deepseek "Résume ce document."

# Démarrer le serveur local
aichat --serve 0.0.0.0:8080

# Question simple à un modèle
aichat -m openai:deepseek "Explique brièvement la différence entre TCP et UDP."

# Même chose, sans streaming pour un affichage instantané
aichat -m openai:deepseek -S "Explique brièvement la différence entre TCP et UDP."

# Lister les modèles disponibles
aichat --list-models

# Synchroniser les modèles depuis le dépôt officiel
aichat --sync-models

# Utiliser un fichier comme contexte
aichat -f mon_document.pdf -m openai:deepseek "Résume ce document."

# Démarrer le serveur local
aichat --serve 0.0.0.0:8080
🎯 Quand utiliser : Interaction avec modèles IA en ligne de commande
⚠️ Contexte : Les fichiers de contexte améliorent les réponses
✅ Rapidité : Alternative rapide aux interfaces web
🚨 Scénario : "Recherche d'information technique rapide"

Options principales

RISQUE FAIBLE CONFIGURATION AICHAT ⏱️ 1 minute
# Gestion des modèles
aichat --list-models                    # Lister les modèles disponibles
aichat --sync-models                    # Synchroniser les modèles

# Gestion des sessions
aichat --list-sessions                  # Lister toutes les sessions
aichat -s, --session [SESSION]          # Démarrer ou rejoindre une session

# Rôles et agents
aichat --list-roles                     # Lister tous les rôles
aichat --list-agents                    # Lister tous les agents

# Fonctionnalités avancées
aichat -e, --execute                    # Exécuter des commandes naturelles
aichat -c, --code                       # Afficher uniquement le code généré
aichat --rag                       # Démarrer un RAG

# Options principales complètes
| Option                    | Description                                                          |
| ------------------------- | -------------------------------------------------------------------- |
| `-m, --model `     | Sélectionner un modèle. Exemple : `openai:deepseek`                  |
| `--prompt `       | Utiliser un **prompt système** spécifique                            |
| `-r, --role `       | Sélectionner un rôle préconfiguré                                    |
| `-s, --session [SESSION]` | Démarrer ou rejoindre une session                                    |
| `--empty-session`         | Forcer une session vide                                              |
| `--save-session`          | Sauvegarder la conversation dans la session                          |
| `-a, --agent `     | Démarrer un agent                                                    |
| `--rag `             | Démarrer un RAG (Retrieval-Augmented Generation)                     |
| `-e, --execute`           | Exécuter des commandes naturelles                                    |
| `-c, --code`              | Afficher uniquement le code généré                                   |
| `-f, --file `       | Inclure fichiers, dossiers ou URLs                                   |
| `-S, --no-stream`         | **Désactiver l'affichage progressif** (plus rapide dans le terminal) |
| `--dry-run`               | Afficher la requête sans l'envoyer                                   |
| `--info`                  | Afficher les informations du modèle ou session                       |
| `--sync-models`           | Synchroniser les modèles avec le dépôt officiel                      |
| `--list-models`           | Lister tous les modèles disponibles                                  |
| `--list-roles`            | Lister tous les rôles                                                |
| `--list-sessions`         | Lister toutes les sessions                                           |
| `--list-agents`           | Lister tous les agents                                               |
| `--list-rags`             | Lister tous les RAGs                                                 |
| `--list-macros`           | Lister tous les macros                                               |
| `--serve [
]` | Démarrer le serveur API/WebApp | | `-h, --help` | Afficher l'aide | | `-V, --version` | Afficher la version |
🎯 Quand utiliser : Configuration avancée d'AICHAT
⚠️ Modèles : Choisir le modèle adapté à la tâche
✅ Flexibilité : Large gamme d'options et fonctionnalités
🚨 Scénario : "Configuration d'un workflow IA personnalisé"

Sites de Référence et Cheat Sheets

📚 Ressources en ligne pour approfondir vos connaissances

Commandes et Cheat Sheets

RISQUE FAIBLE RÉFÉRENCE SITES ⏱️ Navigation
# Sites de référence pour commandes et cheat sheets
- https://linuxize.com/# : Linux Sysadmin and DevOps blog about articles,tutorials, server operations and security.
- https://cheat.sh/ : Cheat sheets pour toutes les commandes (curl cht.sh/commande)
- https://tldr.sh/ : Simplified man pages avec des exemples concrets
- https://ss64.com/ : Référence complète des commandes Windows/Linux
- https://explainshell.com/ : Explication détaillée des options de commandes shell
- https://phoenixnap.com/kb : Base de connaissances avec tutoriels et commandes
- https://devhints.io/ : Cheat sheets pour développeurs et administrateurs
- https://github.com/chubin/cheat.sh : Repository officiel avec toutes les cheat sheets
- https://www.commandlinefu.com/ : Commandes shell partagées par la communauté
🎯 Quand utiliser : Recherche rapide de commandes et syntaxe
⚠️ Vérification : Toujours tester les commandes inconnues
✅ Apprentissage : Excellentes ressources pour apprendre
🚨 Scénario : "Oubli de la syntaxe d'une commande complexe"

Linux et Open Source

RISQUE FAIBLE RÉFÉRENCE SITES ⏱️ Navigation
# Sites de référence Linux
- https://linux.die.net/ : Linux Man Pages Online - Documentation complète des commandes Linux
- https://tldp.org/ : The Linux Documentation Project - Guides et HOWTOs Linux
- https://www.cyberciti.biz/ : nixCraft - Tutoriels et astuces Linux/Unix
- https://www.debian.org/doc/ : Debian Documentation - Documentation officielle Debian
- https://wiki.archlinux.org/ : ArchWiki - Documentation Arch Linux très complète
- https://help.ubuntu.com/ : Documentation officielle Ubuntu
- https://access.redhat.com/documentation/ : Documentation Red Hat Enterprise Linux
- https://docs.fedoraproject.org/ : Documentation Fedora
🎯 Quand utiliser : Documentation et apprentissage Linux
⚠️ Distribution : Certains sites sont spécifiques à une distribution
✅ Exhaustivité : Documentation très complète disponible
🚨 Scénario : "Recherche de documentation technique Linux"

Windows et Microsoft

RISQUE FAIBLE RÉFÉRENCE SITES ⏱️ Navigation
# Sites de référence Windows
- https://docs.microsoft.com/en-us/powershell/ : PowerShell Documentation - Documentation officielle PowerShell
- https://learn.microsoft.com/en-us/windows-server/ : Windows Server Docs - Documentation Windows Server
- https://docs.microsoft.com/en-us/sysinternals/ : Sysinternals - Outils et documentation système
- https://techcommunity.microsoft.com/ : Microsoft Tech Community
- https://docs.microsoft.com/en-us/windows/ : Documentation Windows client
- https://social.technet.microsoft.com/ : TechNet Forums
- https://gallery.technet.microsoft.com/ : Script Center
🎯 Quand utiliser : Documentation Microsoft et Windows
⚠️ Évolution : La documentation Microsoft évolue rapidement
✅ Officielle : Sources directes de Microsoft
🚨 Scénario : "Résolution de problèmes Windows Server"

Réseau et Cisco

RISQUE FAIBLE RÉFÉRENCE SITES ⏱️ Navigation
# Sites de référence Réseau
- https://www.cisco.com/c/en/us/support/index.html : Cisco Documentation - Documentation officielle Cisco
- https://www.routeralley.com/guides.html : RouterAlley - Guides réseaux et certifications
- https://www.packettracernetwork.com/ : PacketLife Cheat Sheets - Cheat sheets réseaux
- https://networklessons.com/ : Network Lessons - Cours réseaux en ligne
- https://www.firewall.cx/ : Firewall.cx - Réseau et sécurité
- https://www.juniper.net/documentation/ : Documentation Juniper
- https://www.arubanetworks.com/techdocs/ : Documentation Aruba Networks
🎯 Quand utiliser : Apprentissage et référence réseaux
⚠️ Fabricant : Documentation spécifique par fabricant
✅ Certification : Ressources pour préparer les certifications
🚨 Scénario : "Préparation à la certification CCNA"

Bases de Données

RISQUE FAIBLE RÉFÉRENCE SITES ⏱️ Navigation
# Sites de référence Bases de Données
- https://dev.mysql.com/doc/ : MySQL Documentation - Documentation officielle MySQL
- https://www.postgresql.org/docs/ : PostgreSQL Docs - Documentation PostgreSQL
- https://docs.mongodb.com/ : MongoDB Documentation
- https://docs.oracle.com/en/database/ : Documentation Oracle Database
- https://mariadb.com/kb/ : MariaDB Knowledge Base
- https://redis.io/documentation : Documentation Redis
- https://www.sqlite.org/docs.html : Documentation SQLite
🎯 Quand utiliser : Documentation des SGBD
⚠️ Version : Vérifier la version de la documentation
✅ Performance : Optimisation et tuning des bases
🚨 Scénario : "Optimisation des performances d'une base MySQL"

Containers et Virtualisation

RISQUE FAIBLE RÉFÉRENCE SITES ⏱️ Navigation
# Sites de référence Containers
- https://docs.docker.com/reference/ : Docker Documentation - Référence Docker
- https://kubernetes.io/docs/home/ : Kubernetes Documentation - Docs officielles K8s
- https://docs.vmware.com/en/VMware-vSphere/index.html : vSphere Documentation - Documentation VMware
- https://pve.proxmox.com/wiki/ : Proxmox VE Wiki
- https://docs.ansible.com/ : Documentation Ansible
- https://www.vagrantup.com/docs : Documentation Vagrant
- https://www.packer.io/docs : Documentation Packer
🎯 Quand utiliser : Documentation conteneurs et virtualisation
⚠️ Écosystème : Technologies en évolution rapide
✅ Best Practices : Guides de bonnes pratiques inclus
🚨 Scénario : "Déploiement d'une application avec Kubernetes"

Sécurité

RISQUE FAIBLE RÉFÉRENCE SITES ⏱️ Navigation
# Sites de référence Sécurité
- https://owasp.org/www-project-cheat-sheets/ : OWASP Cheat Sheets - Sécurité applicative
- https://cheatsheetseries.owasp.org/ : OWASP Cheat Sheet Series - Sécurité web
- https://www.sans.org/blog/the-ultimate-list-of-sans-cheat-sheets/ : SANS Cheat Sheets - Sécurité informatique
- https://www.ncsc.gov.uk/guidance : NCSC Guidance - Centre national de cybersécurité UK
- https://csrc.nist.gov/publications : NIST Publications
- https://www.cisecurity.org/cis-benchmarks/ : CIS Benchmarks
- https://www.securityfocus.com/ : SecurityFocus
🎯 Quand utiliser : Références en sécurité informatique
⚠️ Sensible : Certaines informations peuvent être sensibles
✅ Standards : Références de standards industry
🚨 Scénario : "Mise en conformité avec les standards de sécurité"

Outils en Ligne

RISQUE FAIBLE RÉFÉRENCE SITES ⏱️ Navigation
# Outils en ligne utiles
- https://www.regex101.com/ : Regex101 - Testeur d'expressions régulières
- https://jsonformatter.org/ : JSON Formatter - Validation et formatage JSON
- https://www.base64decode.org/ : Base64 Decode - Encodeur/décodeur Base64
- https://crontab.guru/ : Crontab Guru - Éditeur visuel de crontab
- https://www.url-encode-decode.com/ : URL Encode/Decode
- https://www.sqlformat.org/ : SQL Formatter - Formatage SQL
- https://www.diffchecker.com/ : Diff Checker - Comparaison de texte
- https://www.online-convert.com/ : Online Convert - Conversion de fichiers
🎯 Quand utiliser : Outils rapides pour tâches courantes
⚠️ Confidentialité : Éviter les données sensibles
✅ Productivité : Gain de temps pour des tâches simples
🚨 Scénario : "Test rapide d'une expression régulière"

Forums et Communautés

RISQUE FAIBLE RÉFÉRENCE SITES ⏱️ Navigation
# Forums et communautés techniques
- https://stackoverflow.com/ : Stack Overflow - Questions/réponses programmation
- https://serverfault.com/ : Server Fault - Administration système
- https://superuser.com/ : Super User - Questions utilisateur avancé
- https://www.reddit.com/r/sysadmin/ : Reddit Sysadmin
- https://www.reddit.com/r/networking/ : Reddit Networking
- https://community.spiceworks.com/ : Spiceworks Community
- https://discourse.ubuntu.com/ : Ubuntu Discourse
- https://forums.centos.org/ : CentOS Forums
🎯 Quand utiliser : Recherche de solutions à des problèmes spécifiques
⚠️ Qualité : Vérifier la qualité des réponses
✅ Communauté : Large base de connaissances collective
🚨 Scénario : "Problème technique sans solution documentée"

Tutoriels et Formations

RISQUE FAIBLE RÉFÉRENCE SITES ⏱️ Navigation
# Sites de tutoriels et formations
- https://www.digitalocean.com/community/tutorials : DigitalOcean Tutorials
- https://linuxconfig.org/ : LinuxConfig - Tutoriels Linux
- https://www.howtoforge.com/ : HowtoForge - Guides Linux
- https://www.tecmint.com/ : Tecmint - Linux Howtos
- https://www.2daygeek.com/ : 2DayGeek - Articles techniques
- https://www.cyberciti.biz/ : nixCraft (déjà listé mais important)
- https://www.guru99.com/ : Guru99 - Tutoriels IT
- https://www.tutorialspoint.com/index.htm : TutorialsPoint
🎯 Quand utiliser : Apprentissage de nouvelles technologies
⚠️ Actualité : Vérifier la date des tutoriels
✅ Pédagogique : Approche étape par étape
🚨 Scénario : "Apprentissage d'une nouvelle technologie"

💡 Conseil : Ces sites externes s'ouvriront dans un nouvel onglet. N'hésitez pas à les bookmarker pour un accès rapide !

Annexe Windows