🔍
📚 Documentation Technique

AllInOne — Réseau & GPO

Procédures réseau, politiques GPO, cours théoriques et schémas. Tout en un seul endroit.

📡

DHCP Relay

Cisco, Windows Server RRAS et MikroTik.

Réseau
🛡️

Politiques GPO

10 procédures : blocage, déploiement, MDP, mappage…

10 procédures
🔤

Cours Réseau

Acronymes, ports, OSI, IP, VLAN, routage et plus.

12 chapitres

VLANs Cisco

Configuration complète avec commandes et schémas.

Cours
01
Prérequis

Un routeur/switch L3, un serveur DHCP opérationnel et accès CLI requis. Le serveur DHCP doit avoir une étendue pour le sous-réseau distant.

Routeur L3 ou Switch L3Serveur DHCP actifAccès CLI/SSH
02
Accéder à l'interface du routeur

Entrez en mode configuration global :

enable → configure terminal
03
Appliquer ip helper-address

Sélectionnez l'interface côté clients (celle qui reçoit les requêtes DHCP) :

interface GigabitEthernet0/1

Appliquez le relay vers le serveur DHCP :

ip helper-address 192.168.10.5
⚠️ Cette commande se place sur l'interface côté CLIENTS, pas côté serveur.
04
Vérification et sauvegarde
show running-config interface GigabitEthernet0/1
write memory
✅ Testez depuis un client distant : il doit obtenir une IP du serveur DHCP centralisé.
05
Windows Server — RRAS
Outils d'administration → Routage et accès distant → IPv4 → Agent de relais DHCP

Clic droit sur Agent de relais DHCP → Propriétés → ajoutez l'IP du serveur DHCP. Ensuite clic droit → Nouvelle interface → sélectionnez l'interface côté clients.

01
Topologie réseau

Objectif : distribuer des IPs à plusieurs sous-réseaux depuis un serveur DHCP centralisé via MikroTik.

ether1 → PC-DIR-01ether2 → PC-IT-01ether3 → PC-PROD-01ether4 → SRV-DHCP
⚠️ Toutes les cartes réseau de chaque sous-réseau doivent être ajoutées à la VM MikroTik avant de commencer.
02
Vérifier les interfaces
interface print
03
Configuration IP des interfaces

Entrez dans la fonction des adresses IP, puis ajoutez la passerelle de chaque sous-réseau :

ip address
add address=192.168.50.1/28 interface=ether1
add address=192.168.60.1/28 interface=ether2
add address=192.168.70.1/28 interface=ether3

Vérifiez :

ip address print
⚠️ Le MikroTik DOIT avoir une IP sur chaque interface pour être la passerelle de chaque sous-réseau.
04
Configuration DHCP Relay
/ip dhcp-relay
add name=relay-dir interface=ether1 dhcp-server=192.168.50.66
add name=relay-it interface=ether2 dhcp-server=192.168.50.66
add name=relay-prod interface=ether3 dhcp-server=192.168.50.66
✅ Le MikroTik relaie toutes les requêtes DHCP vers le serveur centralisé.
05
Règle pare-feu ping (ICMPv4)
Pare-feu Windows → Règles entrantes → Nouvelle règle → Personnalisée → Tous les programmes → ICMPv4 → Autoriser → Nom : Autorisation_ping
💡
Tips MikroTik CLI
TAB → afficher les commandes disponibles
ip address disable numbers=0
ip address remove numbers=0
✅ Pour accéder à Winbox depuis l'hôte, laissez le Default Switch en premier dans la liste des adaptateurs réseau VM.
01
Installer le rôle
Gestionnaire de serveur → Gérer → Ajouter des rôles et fonctionnalités → Serveur DHCP

Finalisez la configuration post-installation (autoriser le serveur DHCP dans AD).

02
Créer une étendue
Outils d'administration → DHCP → IPv4 → Nouvelle étendue

Définissez la plage (ex: 192.168.1.100–200), le masque, la passerelle et le DNS. Activez l'étendue.

03
Tester
ipconfig /release && ipconfig /renew
✅ Le client doit obtenir une adresse dans la plage configurée.
01
Créer la GPO

Créez et nommez la GPO Desactivation_CMD. Liez-la à l'OU concernée.

02
Naviguer vers le paramètre
Configuration utilisateur → Stratégies → Modèles d'administration → Système → Désactiver l'accès à l'invite de commande
03
Configurer et activer

Activez, sélectionnez Oui pour désactiver également les scripts CMD, puis appliquez.

⚠️ "Oui" bloque aussi les fichiers .bat et .cmd.
04
Appliquer
gpupdate /force
✅ Les utilisateurs ne peuvent plus ouvrir cmd.exe.
01
Créer la GPO

Créez Desactivation_Powershell et liez-la à l'OU cible.

02
Naviguer vers le paramètre
Configuration utilisateur → Stratégies → Modèles d'administration → Système → Ne pas exécuter les applications Windows spécifiées
03
Ajouter les exécutables

Activez, cliquez sur Afficher et ajoutez :

powershell.exepowershell_ise.exepwsh.exe
04
Appliquer
gpupdate /force
✅ Les trois variantes de PowerShell sont bloquées.
01
Préparer le fichier MSI

Utilisez un fichier .MSI et placez-le dans un dossier partagé via UNC :

\\srv-dc-01\SYSVOL\TSSR.lab\scripts
⚠️ Chemin UNC réseau obligatoire — pas un chemin local.
02
Créer la GPO

Créez une GPO nommée Logiciels.

Configuration d'ordinateur → Stratégies → Paramètres du logiciel → Installation de logiciel

Clic droit → Nouveau → Package → sélectionnez le .MSI via UNC → Attribué.

03
Déployer sur les clients
gpupdate /force

Répondez O pour redémarrer.

✅ Le logiciel s'installe automatiquement au redémarrage.
04
Mettre à jour un logiciel

Ajoutez le nouveau .MSI, allez dans ses Propriétés → Mise à niveau → Désinstaller et réinstaller.

⚠️ Même logiciel, version différente — sinon les deux s'installent en parallèle.
01
Raccourci pour une OU spécifique

Créez une GPO liée à l'OU cible (ex: OU Commercial) nommée Raccourci Bureau.

Configuration utilisateur → Préférences → Paramètres Windows → Raccourcis

Clic droit → Nouveau raccourci. Remplissez les champs :

Nom : Dossier CommercialType : Objet système de fichiersEmplacement : Bureau

Renseignez le chemin UNC du dossier partagé dans Chemin d'accès cible.

02
Raccourci pour tous les utilisateurs

Créez Raccourci_Fermeture_Session liée au domaine / OU machines, dans Configuration ordinateur.

03
Appliquer
gpupdate /force
✅ Le raccourci apparaît sur le bureau à la prochaine connexion.
01
Héberger le fond d'écran

Placez l'image dans SYSVOL :

\\srv-dc-01\SYSVOL\TSSR.lab\scripts\fond_ecran.jpg

Sinon accordez la permission Lecture aux Ordinateurs du domaine sur le dossier choisi.

02
GPO — Copie du fichier
Configuration d'ordinateur → Préférences → Paramètres Windows → Fichiers → Nouveau

Dans Commun, cochez Appliquer une fois et ne pas réappliquer.

03
Configurer le papier peint
Configuration utilisateur → Stratégies → Modèles d'administration → Bureau → Bureau → Papier peint du Bureau

Activez et indiquez le chemin local de l'image.

04
Tester
gpupdate /force

Déconnectez puis reconnectez-vous.

01
Créer la GPO

Créez Interdiction_Modification_Fond_Ecran liée à l'OU Direction.

02
Configurer le paramètre
Configuration utilisateur → Stratégies → Modèles d'administration → Panneau de configuration → Personnalisation → Empêcher de modifier l'arrière-plan du Bureau

Activez et appliquez.

⚠️ Nécessite qu'un fond d'écran GPO soit déjà actif sur l'OU.
01
Créer la GPO

Créez Mappage_Lecteur liée au domaine ou à une OU.

02
Créer le lecteur réseau
Configuration utilisateur → Préférences → Paramètres Windows → Mappage de lecteur

Clic droit → Nouveau lecteur mappé. Configurez la lettre et le chemin UNC.

03
Ciblage par groupe de sécurité

Dans Commun → Ciblage au niveau des éléments → Nouvel élément → Groupe de sécurité. Ajoutez vos groupes GG :

gg_commercialgg_informatique

F6 sur une ligne pour passer l'opérateur en OU.

04
Suppression automatique si hors groupe

Créez un 2e lecteur (même lettre, mode Supprimer). Même ciblage mais N'est pas (F8). Pour les groupes suivants : ET N'est pas.

✅ Le lecteur disparaît automatiquement si l'utilisateur quitte le groupe.
05
Appliquer
gpupdate /force
01
Créer et configurer la GPO

Créez Masquer_Lecteur_C. Naviguez vers :

Configuration utilisateur → Modèles d'administration → Composants Windows → Explorateur de fichiers → Masquer ces lecteurs spécifiés dans Poste de travail

Activez et choisissez Restreindre au lecteur C uniquement.

⚠️ Masqué mais toujours accessible via C:\ dans la barre d'adresse.
02
Désactiver complètement l'accès (optionnel)
Empêcher l'accès aux lecteurs à partir du Poste de travail

Même chemin, paramètre juste en dessous. Activez avec l'option C.

03
Appliquer
gpupdate /force
✅ Le lecteur C disparaît de l'Explorateur.
01
Créer et configurer la GPO

Créez Message_Ouverture_Session. Naviguez vers :

Configuration d'ordinateur → Stratégies → Paramètres Windows → Paramètres de sécurité → Stratégies locales → Options de sécurité

Configurez :

Titre du message d'ouverture de sessionTexte du message

Renseignez le titre et le corps du message.

02
Appliquer
gpupdate /force
✅ Le message apparaît sur l'écran de connexion.
01
Accéder à la GPO
Configuration d'ordinateur → Stratégies → Paramètres Windows → Paramètres de sécurité → Stratégies de compte → Stratégie de mot de passe

Utilisez la Default Domain Policy ou une GPO dédiée liée à la racine du domaine.

02
Configurer les paramètres MDP
Longueur minimaleComplexité activéeDurée de vie maximaleHistorique des MDP

Recommandation : 12 car. min, complexité ON, 90 jours, 10 MDP mémorisés.

03
Stratégie de verrouillage de compte

Dans la catégorie Stratégie de verrouillage du compte :

Seuil : 5 tentativesDurée : 30 min
⚠️ Doit obligatoirement être sur une GPO liée à la racine du domaine.

À quoi sert le DHCP ?

DHCP signifie Dynamic Host Configuration Protocol. C'est un protocole réseau qui permet à un serveur d'attribuer automatiquement une configuration réseau à chaque appareil qui se connecte, sans aucune intervention manuelle.

Sans DHCP, il faudrait configurer à la main sur chaque PC : l'adresse IP, le masque de sous-réseau, la passerelle par défaut et les serveurs DNS. Sur un réseau de 200 postes, c'est vite ingérable.

🖥️
Adresse IP
Ex : 192.168.1.42 — l'identité de la machine sur le réseau
🔲
Masque de sous-réseau
Ex : 255.255.255.0 — délimite la partie réseau et hôte
🚪
Passerelle par défaut
Ex : 192.168.1.1 — le routeur pour sortir du réseau local
🔍
Serveur(s) DNS
Ex : 8.8.8.8 — traduit les noms de domaine en IPs
✅ Le DHCP fonctionne sur le port UDP 67 (serveur) et UDP 68 (client). C'est un protocole de la couche Application du modèle OSI.

La notion de bail (lease)

Le DHCP n'attribue pas une IP définitivement — il la loue pour une durée limitée appelée bail (en anglais : lease). Par défaut, cette durée est souvent de 8 heures sur un réseau local, ou 24 heures voire plus selon la configuration.

Quand le bail expire, la machine doit en demander un nouveau. Si elle est toujours connectée, elle renouvelle généralement le même bail (même IP) auprès du même serveur. Cela permet au serveur de récupérer les IPs des machines déconnectées pour les réattribuer.

⚠️ Si un PC est éteint pendant plusieurs jours et que son bail a expiré, il peut recevoir une adresse IP différente à son retour. C'est pourquoi les serveurs et imprimantes ont généralement des IPs statiques ou des réservations DHCP.

Le processus DORA — Les 4 étapes de l'attribution

Quand un appareil se connecte au réseau et a besoin d'une IP, il suit un échange en 4 messages avec le serveur DHCP, que l'on résume par l'acronyme DORA :

D
DISCOVER Client → Broadcast

Le client n'a pas encore d'IP. Il envoie un message en broadcast (vers 255.255.255.255) sur tout le réseau pour signaler sa présence et demander une configuration.

Il dit en quelque sorte : "Je viens de me connecter, y a-t-il un serveur DHCP disponible ?"

Source IP : 0.0.0.0 (le client n'a pas encore d'IP) Dest IP : 255.255.255.255 (broadcast — tout le réseau) Message : DHCP Discover Contient : adresse MAC du client, nom d'hôte
O
OFFER Serveur → Client (broadcast)

Le serveur DHCP reçoit le Discover. Il réserve provisoirement une adresse IP libre dans son étendue et répond avec une proposition de configuration complète.

Il dit : "Je suis disponible, voici une IP que je te propose avec le masque, la passerelle et la durée du bail."

Source IP : 192.168.1.1 (IP du serveur DHCP) Dest IP : 255.255.255.255 (broadcast — le client n'a toujours pas d'IP) Message : DHCP Offer Contient : IP proposée (ex: 192.168.1.42), masque, passerelle, DNS, durée du bail, IP du serveur DHCP
R
REQUEST Client → Broadcast

Le client reçoit l'Offer (il peut en recevoir plusieurs si plusieurs serveurs DHCP existent). Il choisit une offre et diffuse en broadcast un message de demande officielle pour confirmer son choix.

Il dit : "J'accepte l'offre du serveur 192.168.1.1, je demande officiellement l'IP 192.168.1.42."

Ce message est encore en broadcast pour que les autres serveurs DHCP (s'il y en a) sachent que leur offre a été refusée et puissent libérer leur réservation.

Source IP : 0.0.0.0 (toujours pas d'IP confirmée) Dest IP : 255.255.255.255 (broadcast) Message : DHCP Request Contient : IP demandée (192.168.1.42), IP du serveur choisi
A
ACKNOWLEDGE Serveur → Client

Le serveur DHCP reçoit le Request, confirme l'attribution de l'IP et envoie l'Acknowledge avec toute la configuration finale. Le client peut maintenant utiliser l'IP.

Il dit : "C'est confirmé, l'IP 192.168.1.42 t'est attribuée pour 8 heures. Voici ta configuration complète."

Source IP : 192.168.1.1 (serveur DHCP) Dest IP : 192.168.1.42 (maintenant en unicast vers le client) Message : DHCP Acknowledge (ACK) Contient : IP confirmée, masque, passerelle, DNS, début et fin du bail, options supplémentaires
✅ Après l'ACK, le client configure son interface réseau et est opérationnel. La configuration est visible avec ipconfig /all sous Windows.

Résumé visuel — DORA en un coup d'œil

💻 CLIENT
(0.0.0.0)
✅ IP configurée !
D — DISCOVER ──▶
broadcast "qui est là ?"
◀── O — OFFER
"voici une IP : 192.168.1.42"
R — REQUEST ──▶
"j'accepte cette IP !"
◀── A — ACK
"confirmé, bail = 8h"
🖥️ SERVEUR
(192.168.1.1)

Renouvellement du bail

Le processus DORA complet ne se produit qu'à la première connexion ou après expiration totale du bail. Pour le renouvellement, le client utilise un échange simplifié :

  • À 50% de la durée du bail : le client envoie directement un Request (en unicast) au serveur pour renouveler.
  • À 87,5% de la durée : si pas de réponse, il tente un broadcast vers n'importe quel serveur DHCP.
  • À 100% : bail expiré — le client recommence un DORA complet depuis zéro.
# Forcer la libération et le renouvellement sous Windows : ipconfig /release # Envoie un DHCP Release au serveur (libère l'IP) ipconfig /renew # Relance un DORA complet pour obtenir une nouvelle IP
ipconfig /all affiche la date et l'heure exactes de début et de fin du bail DHCP actuel (Bail obtenu / Bail expirant).

Le modèle OSI (Open Systems Interconnection) est un cadre conceptuel qui définit comment les systèmes réseau communiquent et envoient des données d'un expéditeur à un destinataire.

Le modèle est utilisé pour décrire chaque composant de la communication de données afin d'établir des règles et des normes pour les applications et l'infrastructure réseau.

🌐 Informatique Web

WWW
World Wide Web
HTTP / HTTPS
HyperText Transfer Protocol / Secure
DNS
Domain Name System
IP
Internet Protocol Address
URL
Uniform Resource Locator
FQDN
Fully Qualified Domain Name
ex: www.c2rt.org
TLD
Top Level Domain — extension (.org)
SLD
Second Level Domain — nom unique (c2rt)

🔒 Sécurité & Confidentialité

VPN
Virtual Private Network
SSL / TLS
Secure Sockets Layer / Transport Layer Security
WPA
Wi-Fi Protected Access
PSK
Pre-Shared Key
TKIP
Temporal Key Integrity Protocol
AES
Advanced Encryption Standard

📧 Messagerie Électronique

SMTP
Simple Mail Transfer Protocol
POP
Post Office Protocol
IMAP
Internet Message Access Protocol

🌐 Réseaux Informatiques

TCP
Transmission Control Protocol
Moins rapide qu'UDP mais plus sécurisé
UDP
User Datagram Protocol
Plus rapide que TCP, perte de paquets possible
VLAN
Virtual Local Area Network
Wi-Fi
Wireless Fidelity
MAC
Media Access Control
NAT
Network Address Translation
IP Public
PAT
Port Address Translation
IP + Port
DHCP
Dynamic Host Configuration Protocol
SSID
Service Set Identifier
ISP
Internet Service Provider
Ticket TGT
Ticket Granting Ticket
Preuve d'identité numérique Kerberos — évite la réauthentification répétée
SAM
Security Accounts Manager
Authentification hors domaine
NTDS
New Technology Directory Services
Authentification sur domaine Active Directory
UNC
Universal Naming Convention
Format \\serveur\dossier pour ressources réseau

💻 Composants Matériels

CPU
Central Processing Unit
GPU
Graphics Processing Unit
RAM
Random Access Memory
ROM
Read-Only Memory
SSD / HDD
Solid State Drive / Hard Disk Drive
BIOS / UEFI
Basic Input/Output System / Unified Extensible Firmware Interface
PSU
Power Supply Unit
MB
Motherboard

☁️ Virtualisation & Cloud

VM
Virtual Machine
VPS
Virtual Private Server
Hypervisor
Gestionnaire de machines virtuelles
FTP / SFTP
File Transfer Protocol / Secure
PortProtocoleDescriptionTCP/UDP
20FTPFile Transfer Protocol — Data TransferTCP
21FTPFile Transfer Protocol — Command ControlTCP
22SSHSecure ShellTCP
23TELNETRemote Login ServiceTCP
25SMTPSimple Mail Transfer ProtocolTCP
53DNSDomain Name SystemTCP/UDP
67DHCPDHCP — ServeurUDP
68DHCPDHCP — ClientUDP
80HTTPHypertext Transfer ProtocolTCP
88KERBEROSNetwork Authentication ServiceTCP/UDP
110POP3Post Office ProtocolTCP
143IMAPInternet Message Access ProtocolTCP
161SNMPSimple Network Management ProtocolUDP
389LDAPLightweight Directory Access ProtocolTCP/UDP
443HTTPSHTTP Secure (HTTP over TLS/SSL)TCP
445SMBServer Message BlockTCP
465SMTPSSMTP over SSL/TLSTCP
636LDAPSLDAP over SSL/TLSTCP
853DNS over TLSDNS over TLSTCP
993IMAPSIMAP over SSL/TLSTCP
995POP3SPOP3 over SSL/TLSTCP

Présentation — Qu'est-ce que le FSRM ?

01
Présentation du FSRM

Le FSRM (File Server Resource Manager) est un rôle Windows Server qui permet de gérer finement l'utilisation de l'espace disque sur les serveurs de fichiers.

Il prend en charge trois grandes fonctionnalités :

Gestion des quotasFiltrage de fichiersRapports de stockage

La section Gestion de quota dans la console FSRM se divise en deux parties :

SectionRôle
QuotasAffiche les règles actives — quotas déjà appliqués sur des répertoires
Modèles de quotasPermet de créer, visualiser ou modifier des modèles réutilisables
02
Types de quotas — conditionnel vs inconditionnel

FSRM propose deux modes de quota :

TypeComportementUsage recommandé
Quota conditionnel
(souple)
L'utilisateur peut dépasser la limite. L'administrateur reçoit une alerte, mais l'écriture n'est pas bloquée. Surveillance, sensibilisation des utilisateurs
Quota inconditionnel
(strict)
Toute écriture est bloquée dès que la limite est atteinte. L'utilisateur ne peut plus stocker de nouveaux fichiers. Contrôle strict de l'espace disque en production
🚨 Avec un quota inconditionnel, si un utilisateur atteint la limite pendant une session de travail, toute tentative d'enregistrement échouera. Prévoyez des alertes dès 80% pour laisser le temps de réagir.

Alertes & Reporting

03
Actions déclenchées aux seuils

FSRM peut déclencher automatiquement différentes actions lorsqu'un seuil de quota est atteint (par exemple à 80%, 90% ou 100%).

ActionDescription
📧 Notification e-mailAlerte l'administrateur et/ou l'utilisateur concerné
📊 Rapport de stockageGénère automatiquement un rapport d'utilisation
📋 Observateur d'événementsEnregistre un événement dans les journaux Windows (supervision)
⚙️ Exécution d'une commandeLance un script ou un programme (ex : extension automatique du quota)

Modèles de quotas

04
Modèles de quotas — principe

Un modèle de quota définit la limite, le type (conditionnel ou inconditionnel) et les actions déclenchées aux différents seuils. Il peut ensuite être appliqué à un ou plusieurs répertoires.

FSRM inclut plusieurs modèles prédéfinis, dont :

Limite de 200 MoLimite de 500 MoLimite de 1 GoLimite de 2 GoLimite de 200 Mo avec extension de 50 Mo
💡 Travailler avec des modèles plutôt qu'avec des quotas manuels facilite la maintenance : modifier le modèle met à jour tous les quotas qui en dérivent en une seule opération.
05
Modifier un modèle existant

Dans la liste des modèles, faire un clic droit sur le modèle souhaité (ex : Limite de 2 Go) → Modifier les propriétés du modèle.

Après modification, FSRM propose de mettre à jour tous les quotas dérivés de ce modèle. Accepter pour appliquer les changements à tous les répertoires concernés en une seule opération.

💡 Exemple : ramener le modèle Limite de 2 Go à 1 Go — tous les dossiers utilisant ce modèle sont mis à jour automatiquement.
06
Fonctionnalité « Commande » — automatisation

L'action Commande permet d'exécuter des scripts ou programmes lors du déclenchement d'un seuil. Elle ouvre des possibilités d'automatisation avancées.

Exemple concret : le modèle Limite de 200 Mo avec extension de 50 Mo (inclus par défaut dans FSRM) configure un quota inconditionnel à 200 Mo. Lorsque la limite est atteinte, une commande est automatiquement exécutée pour allouer 50 Mo supplémentaires à l'utilisateur, lui laissant le temps de libérer de l'espace.

🚨 L'action Commande s'exécute dans le contexte du système local. Veillez à ce que le script utilisé soit sécurisé et que ses permissions soient correctement restreintes.

Créer et appliquer un quota

07
Créer un quota depuis la console FSRM

Une fois le modèle prêt, dans la console FSRM :

  1. Faire un clic droit sur Quotas dans la console FSRM
  2. Cliquer sur Créer un quota
  3. Sélectionner le répertoire cible
  4. Choisir Créer un quota à partir d'un modèle
  5. Sélectionner le modèle adapté → cliquer sur Créer
💡 Résultat : le quota est visible dans la section Quotas de la console FSRM, avec le chemin du répertoire, la limite configurée, le type (conditionnel/inconditionnel) et l'utilisation actuelle.

Résumé

ConceptDétail
FSRMRôle Windows Server de gestion des ressources du serveur de fichiers
Quota conditionnelAlerte sans bloquer l'écriture — mode de surveillance
Quota inconditionnelBloque toute écriture dès la limite atteinte — mode strict
Modèle de quotaDéfinition réutilisable (limite + seuils + actions) applicable à plusieurs dossiers
Seuils d'alerteActions configurées à différents pourcentages (ex : e-mail à 80%, blocage à 100%)
Action CommandeExécution automatique d'un script lors du déclenchement d'un seuil
Mise à jour des dérivésModifier un modèle répercute les changements sur tous les quotas associés

Une Forêt contient plusieurs arbres. Un arbre contient un domaine. Un domaine est réuni avec plusieurs OU, des groupes, des ressources.

Windows utilise deux bases de données distinctes selon l’environnement : poste autonome ou domaine Active Directory.

Base SAM vs Base NTDS

Windows utilise deux bases de donnees distinctes pour stocker les comptes utilisateurs selon l'environnement (poste autonome ou domaine Active Directory).

Base SAM
Security Account Manager
  • Emplacement : C:\Windows\System32\config\SAM
  • Utilisee sur les postes autonomes (hors domaine)
  • Stocke les comptes locaux uniquement
  • Chiffree avec SYSKEY (depuis Windows NT)
  • Inaccessible pendant le demarrage du systeme
  • Geree via : lusrmgr.msc
Base NTDS
NT Directory Services
  • Emplacement : C:\Windows\NTDS\ntds.dit
  • Utilisee sur les controleurs de domaine (AD)
  • Stocke tous les objets AD (users, groupes, GPO...)
  • Repliquee entre tous les DC du domaine
  • Base de donnees ESE (Extensible Storage Engine)
  • Geree via : dsa.msc / Active Directory Users
Differences cles
Critere SAM NTDS.dit
Environnement Poste local / autonome Domaine Active Directory
Portee Machine locale uniquement Tout le domaine / foret
Replication Non - locale uniquement Oui - entre tous les DC
Contenu Comptes et groupes locaux Users, groupes, GPO, OUs...
Utilisee par Windows (tous) Controleurs de domaine AD
Quand un PC rejoint un domaine Active Directory, les connexions utilisent NTDS (via le DC). La SAM reste active uniquement pour les comptes locaux de la machine.
PAN
Personal Area Network
Réseau pour une seule personne
LAN
Local Area Network
Réseau local — maison ou entreprise
MAN
Metropolitan Area Network
Réseau à l'échelle d'une ville
WAN
Wide Area Network
Réseau étendu à l'échelle d'un pays. Internet = WAN public
CAN
Campus Area Network
GAN
Global Area Network

Topologies réseau

Une topologie de réseau informatique correspond à l'architecture (physique, logicielle ou logique) de celui-ci, définissant les liaisons entre les équipements et une hiérarchie éventuelle entre eux.

Supports de transmission

Deux types de supports :

  • Filaire : câbles coaxiaux, paires torsadées, fibre optique
  • Sans fil : ondes radio, faisceaux laser, faisceaux infrarouge

Câble à paire torsadée

  • Câble Ethernet = connecteur 8P8C (RJ45), 4 paires de fils
  • La torsion des fils réduit la diaphonie

Blindages

Les paires torsadées sont souvent blindées pour limiter les interférences. Le blindage peut être appliqué individuellement aux paires ou à l'ensemble (écrantage). Il existe cinq types de paires torsadées.

Catégories

Cat 5 = 100 Mb/s  |  Cat 5e = 1 Gb/s

Adresse IP

Une adresse IP est un numéro d'identification unique attribué de façon permanente ou provisoire à chaque périphérique faisant partie d'un même réseau informatique utilisant l'Internet Protocol.

➡ IPv4

Notation décimale — 4 valeurs entre 0 et 255 séparées par des points : 192.168.1.10

Longueur : 32 bits (4 octets)

➡ IPv6

Notation hexadécimale — 8 valeurs séparées par « : » : 1987:0c02:0000:84c2:0000:0000:cf2a:9077

Longueur : 128 bits (16 octets)

Masque de sous-réseau & CIDR

✔ Notation CIDR : /8, /16, /22, /24… (de /0 = 0.0.0.0 à /32 = 255.255.255.255)

/24 → 256 adresses | /25 → 128 | /26 → 64 | /27 → 32 | /28 → 16 | /29 → 8 | /30 → 4

Adresse réseau = 1ère adresse (ex: 192.168.10.0)
Adresse broadcast = dernière adresse (ex: 192.168.10.255)

Exemple : IP = 192.168.1.0/26 → réseau : 192.168.1.0 | broadcast : 192.168.1.63

Calcul binaire

  • Adresse réseau = IP ET logique masque (1+1=1, 1+0=0, 0+0=0)
  • Adresse broadcast = IP OU logique masque inversé (1+1=1, 1+0=1, 0+0=0)

Adresse MAC

L'adresse MAC (Media Access Control) est l'adresse physique d'un périphérique réseau. Chaque adresse MAC est unique au monde — sorte de plaque d'immatriculation des appareils.

Format : 48 bits (6 octets) en hexadécimal séparé par « : » — ex: 5E:FF:56:A2:AF:15

  • 1 bit I/G : 0 = unicast, 1 = multicast/broadcast
  • 1 bit U/L : 0 = universelle (IEEE), 1 = locale
  • 22 bits : adresse constructeur (OUI — Organizationally Unique Identifier)
  • 24 bits : adresse unique par carte

L'IEEE donne des préfixes de 24 bits aux fabricants → 16 millions d'adresses par préfixe.

✔️ Chiffrement

Opération qui consiste à transformer un message clair en un message chiffré, inintelligible pour un tiers, en vue d'assurer le secret de sa transmission. À la base du chiffrement, il y a une clé.

Le chiffrement est réversible : en possédant la clé, il est possible de retrouver le message original (déchiffrement). L'expéditeur et le destinataire doivent avoir la même clé et le même outil.

Exemple — Décalage de +7 caractères (chiffre de César)
Texte original
Merci de lire ces lignes
🔑 +7
Texte chiffré
Tljjpgklgspylgjlzgspnulz
↩️ Déchiffrement possible avec la clé inverse (−7)

❌ Cryptage

Transformation d'un message en clair en un message codé sans clé de déchiffrement — le retour au texte original est impossible. Contrairement au chiffrement, le cryptage est irréversible.

Le terme "cryptage" est souvent mal employé à la place de "chiffrement". En réalité, le cryptage désigne une transformation à sens unique : on ne peut pas retrouver le message d'origine.

Exemple — Cryptage (hachage SHA-256)
Texte original
Merci de lire ces lignes
🔒 SHA
Texte crypté (hash)
3a7f2c19b4e0d8...
🚫 Aucun déchiffrement possible — sens unique
✔️ Chiffrement
  • 🔑 Utilise une clé
  • ↩️ Réversible (déchiffrement)
  • 📨 Communication sécurisée
  • Exemples : AES, RSA, TLS/HTTPS
❌ Cryptage
  • 🚫 Pas de clé de retour
  • ⛔ Irréversible (sens unique)
  • 🛡️ Stockage mots de passe
  • Exemples : MD5, SHA-1, SHA-256

🔑 Chiffrement Symétrique — C'est quoi ?

Le chiffrement symétrique utilise une seule et même clé secrète pour chiffrer et déchiffrer. L'expéditeur et le destinataire doivent tous les deux posséder cette clé avant de communiquer.

💡 Analogie — Le coffre-fort à double clé

Alice et Bob ont chacun une copie de la même clé. Alice met son message dans le coffre et le verrouille. Bob ouvre le coffre avec sa copie. Problème : comment Alice a-t-elle remis sa clé à Bob sans qu'un espion l'intercepte au passage ? C'est le problème de distribution de clé.

⚠️ Si la clé est interceptée une fois, toute la communication — passée et future — est compromise.

🔄 Comment ça fonctionne ?

Le symétrique opère en deux phases sur les données brutes (les bits) :

🔒 Chiffrement
① Texte clair : "Bonjour"
+ Clé secrète K → algorithme (AES…)
② Texte chiffré : x7#kP!2&
🔓 Déchiffrement
① Texte chiffré : x7#kP!2&
+ même Clé secrète K → algorithme inverse
② Texte clair : "Bonjour"

📊 Algorithmes symétriques courants

AlgorithmeTaille de cléStatutUsage typique
AES (Advanced Encryption Standard)128 / 192 / 256 bits✔ Standard actuelHTTPS, VPN, disques chiffrés, Wi-Fi WPA2/3
ChaCha20256 bits✔ ModerneTLS 1.3, Android, OpenSSH
3DES112 / 168 bits⚠ ObsolèteLegacy bancaire
DES56 bits✘ CasséNe plus utiliser
✅ Avantages
  • ⚡ Très rapide (performances élevées)
  • 💡 Peu gourmand en ressources CPU
  • 📦 Adapté aux gros volumes de données
❌ Inconvénients
  • 🔓 Distribution de la clé difficile et risquée
  • 💀 Une clé compromise = tout compromis
  • 📈 N utilisateurs = N clés à gérer

🔐 Chiffrement Asymétrique — C'est quoi ?

Le chiffrement asymétrique utilise deux clés mathématiquement liées : une clé publique que tout le monde peut connaître, et une clé privée que seul le propriétaire possède. Ce que l'une chiffre, seule l'autre peut le déchiffrer — et on ne peut pas retrouver la clé privée à partir de la clé publique.

💡 Analogie — La boîte aux lettres publique

Bob installe une boîte aux lettres dans la rue avec une fente ouverte (clé publique) — n'importe qui peut y déposer un message. Mais seul Bob possède la clé du cadenas pour l'ouvrir (clé privée). Alice peut envoyer un message à Bob sans jamais avoir eu besoin de se rencontrer au préalable pour échanger un secret.

✅ Le problème de distribution de clé est résolu : la clé publique peut circuler librement sans risque.

🔄 Comment ça fonctionne ?

L'asymétrique a deux usages distincts selon le sens de chiffrement :

📨 Confidentialité (envoi secret)
① Alice chiffre avec la clé publique de Bob
② Seul Bob peut déchiffrer avec sa clé privée
Même si Eve intercepte le message, sans la clé privée de Bob elle ne peut rien faire.
✍️ Signature numérique (authenticité)
① Bob signe avec sa clé privée
② N'importe qui vérifie avec la clé publique de Bob
Prouve que le message vient bien de Bob et qu'il n'a pas été modifié.

📊 Algorithmes asymétriques courants

AlgorithmeTaille de cléStatutUsage typique
RSA2048 / 4096 bits✔ StandardHTTPS, SSH, certificats TLS
ECC (Elliptic Curve Cryptography)256 / 384 bits✔ Moderne & compactTLS 1.3, SSH moderne, mobiles
Diffie-Hellman2048+ bits✔ Échange de clésNégociation TLS, VPN
DSA1024 / 2048 bits⚠ En déclinSignature uniquement
✅ Avantages
  • 🔑 Pas de problème de distribution de clé
  • ✍️ Authentification et signature possibles
  • 📈 Scalable : 1 paire de clés par utilisateur
❌ Inconvénients
  • 🐢 Beaucoup plus lent que le symétrique
  • 📏 Clés beaucoup plus longues
  • 🚫 Inadapté au chiffrement de gros volumes

⚖️ Symétrique vs Asymétrique — Les différences clés

Critère🔑 Symétrique🔐 Asymétrique
Nombre de clés1 clé partagée2 clés (publique + privée)
Distribution de cléProblème majeurRésolu (clé publique libre)
VitesseTrès rapideLent (100× à 1000× plus lent)
Taille des clés128 – 256 bits2048 – 4096 bits (RSA)
Signature numériqueNonOui
Usage principalChiffrement de données en masseÉchange de clés, certificats, authentification
ExemplesAES, ChaCha20RSA, ECC, Diffie-Hellman

⚡ En pratique — Le modèle hybride (TLS/HTTPS)

Dans la quasi-totalité des protocoles modernes (TLS, HTTPS, SSH, PGP), les deux types sont combinés : l'asymétrique résout le problème de distribution de clé, puis le symétrique prend le relais pour la vitesse.

Exemple — Handshake TLS/HTTPS
Étape 1
🔐 Asymétrique — Le client et le serveur échangent une clé de session temporaire via RSA ou ECDHE. Personne ne peut l'intercepter.
Étape 2
Symétrique — Toute la communication est chiffrée avec AES en utilisant cette clé de session. Rapide et efficace.
✅ Résultat : sécurité de l'asymétrique + vitesse du symétrique — le meilleur des deux mondes.

Une route statique est configurée pour la connectivité à des réseaux distants qui ne sont pas directement connectés sur le routeur. Elle nécessite une configuration manuelle et ne s'adapte pas automatiquement aux changements du réseau.

Commande ip route

La commande ip route configure une route statique :

Router(config)# ip route 192.168.2.0 255.255.255.0 10.0.0.2
  • 192.168.2.0 = réseau de destination
  • 255.255.255.0 = masque de sous-réseau
  • 10.0.0.2 = adresse IP du prochain saut (next-hop)

Au lieu d'une IP, il est possible de mettre une interface de sortie.

Route par défaut

La route par défaut (0.0.0.0 0.0.0.0) correspond à tous les paquets sans route connue :

Router(config)# ip route 0.0.0.0 0.0.0.0 172.16.1.1

Très utile pour les stub networks (un seul routeur connecté) — évite de maintenir de nombreuses routes.

Vérification — show ip route

Router# show ip route
  • Les routes statiques sont indiquées avec le code S
  • Le S* = route par défaut (passerelle par défaut)
  • Pour que la communication fonctionne de bout en bout, il faut configurer la route dans les deux sens

Qu'est-ce qu'un VLAN ?

Un VLAN (Virtual Local Area Network) est un réseau local virtuel : il permet de segmenter un réseau physique en plusieurs sous-réseaux logiques indépendants, sans avoir besoin de matériel supplémentaire.

Concrètement, plusieurs appareils reliés au même switch physique peuvent être séparés comme s'ils étaient sur des switches différents — et inversement, des appareils sur des switches différents peuvent appartenir au même VLAN.

Exemple concret
🖥️ VLAN 10 — Finance
PC-Comptable-1, PC-Comptable-2
Réseau : 192.168.10.0/24
💻 VLAN 20 — Informatique
PC-IT-1, PC-IT-2, Serveur
Réseau : 192.168.20.0/24
→ Les deux services sont sur le même switch physique mais ne peuvent pas communiquer directement.

Pourquoi utiliser des VLANs ?

🔒 Sécurité
Isolation des services sensibles (RH, Finance). Un utilisateur d'un VLAN ne voit pas le trafic des autres.
📡 Réduction du broadcast
Chaque VLAN forme son propre domaine de broadcast. Moins de trafic inutile sur le réseau.
⚙️ Flexibilité
Regrouper des machines par service ou fonction, indépendamment de leur localisation physique.
💰 Économique
Un seul switch physique remplace plusieurs switches logiques. Réduction des coûts matériels.

La norme 802.1Q

La norme 802.1Q est le standard IEEE qui définit le tagging VLAN. Elle ajoute un tag de 4 octets dans la trame Ethernet pour identifier le VLAN d'appartenance.

Structure d'une trame 802.1Q :
MAC Dest
MAC Src
Tag 802.1Q
VLAN ID (12 bits)
Type
Données

Les ports non configurés restent dans le VLAN 1 (natif) — il est conseillé de ne pas l'utiliser pour des raisons de sécurité.

Ports Access vs Ports Trunk

Port Access
Connecté à un équipement final (PC, imprimante). Appartient à un seul VLAN. La trame sort sans tag.
Port Trunk
Connecté entre switches ou vers un routeur. Transporte plusieurs VLANs simultanément avec tags 802.1Q.

Introduction aux VLANs

Un VLAN (Virtual Local Area Network) permet de segmenter un réseau physique en plusieurs sous-réseaux logiques sur un switch.

Exemple : Une entreprise souhaite que le service Finance et le service Informatique ne puissent pas communiquer entre eux. Il faut créer 2 VLANs : VLAN Finance (192.168.20.0/24) et VLAN Informatique (192.168.30.0/24).

Avantages : réduction des domaines de broadcast + augmentation de la sécurité.

La norme 802.1Q ajoute un tag de 4 octets aux trames Ethernet. Les ports non configurés restent dans le VLAN 1 (natif) — il est conseillé de ne pas l'utiliser.

Étape 1 — Créer les VLANs

Switch> enable Switch# configure terminal Switch(config)# vlan 2 Switch(config-vlan)# name vlan_finance Switch(config)# vlan 3 Switch(config-vlan)# name vlan_informatique

Supprimer un VLAN (attention : retirer les ports affectés d'abord) :

Switch(config)# no vlan 2

Étape 2 — Assigner des ports aux VLANs

Switch(config)# interface fastethernet 0/5 Switch(config-if)# switchport mode access Switch(config-if)# switchport access vlan 2 Switch(config)# interface range fastethernet 0/6-14 Switch(config-if)# switchport mode access Switch(config-if)# switchport access vlan 2 Switch(config)# interface range fastethernet 0/15-20 Switch(config-if)# switchport mode access Switch(config-if)# switchport access vlan 3

Étape 3 — Visualiser la configuration

Switch# show vlan brief

Port Trunk — Communication inter-switches

Un port trunk redistribue les trames de tous les VLANs entre deux switches.

Switch(config)# interface gigabitethernet 0/24 Switch(config-if)# switchport mode trunk

Filtrage des VLANs autorisés sur le trunk :

Switch(config-if)# switchport trunk allowed vlan add 1,2 Switch(config-if)# no switchport trunk allowed vlan add 1,2
✅ Toujours sauvegarder la configuration après modification — une panne de courant peut tout effacer.

Le routage inter-VLAN est essentiel pour permettre la communication entre différents sous-réseaux virtuels. Deux méthodes : routeur avec sous-interfaces ou switch de niveau 3.

Configuration du Switch (couche 2)

Créez les VLANs 10 et 20, assignez les ports, puis configurez le port trunk vers le routeur :

Switch>enable Switch#conf t Switch(config)#vlan 10 Switch(config-vlan)#exit Switch(config)#vlan 20 Switch(config-vlan)#exit Switch(config)#interface range fastethernet 0/1-9 Switch(config-if)# switchport mode access Switch(config-if)#switchport access vlan 10 Switch(config-if)#exit Switch(config)#interface range fastethernet 0/10-19 Switch(config-if)# switchport mode access Switch(config-if)#switchport access vlan 20 Switch(config-if)#exit Switch(config)# interface gigabitethernet 0/24 Switch(config-if)# switchport mode trunk

Méthode 1 — Routeur avec sous-interfaces

Activez l'interface physique puis créez une sous-interface par VLAN :

Router(config)# interface gigabitethernet 0/0 Router(config-if)#no shutdown Router(config-if)#exit Router(config)# interface gigabitethernet 0/0.10 Router(config-subif)# encapsulation dot1q 10 Router(config-subif)# ip address 192.168.10.254 255.255.255.0 Router(config-subif)#exit Router(config)# interface gigabitethernet 0/0.20 Router(config-subif)# encapsulation dot1q 20 Router(config-subif)# ip address 192.168.20.254 255.255.255.0

Méthode 2 — Switch de couche 3 (L3)

Avantages : communication plus rapide entre VLANs, moins de latence (pas de passage par un routeur externe).

SwitchN3(config)#ip routing Switch(config)#vlan 30 Switch(config)#vlan 40 Switch(config)#interface vlan 30 Switch(config-subif)#ip address 192.168.30.254 255.255.255.0 Switch(config)#interface vlan 40 Switch(config-subif)#ip address 192.168.40.254 255.255.255.0 Switch(config)#interface gigabitethernet 0/1 Switch(config-subif)#switchport trunk encapsulation dot1q Switch(config-subif)#switchport mode trunk

Diagnostics

C:\>ping 192.168.30.1 Switch# show ip interface brief Switch# show ip route
✅ Les VLANs configurés avec status "up" peuvent communiquer entre eux et avec d'autres sous-réseaux.

Qu'est-ce qu'une ACL ?

Une ACL (Access Control List) est une liste de règles configurée sur un routeur ou switch pour autoriser ou refuser le trafic réseau en fonction de critères précis. Les règles sont lues de haut en bas, et la première règle qui correspond est appliquée.

Il existe deux grands types d'ACL chez Cisco : les ACL Standard et les ACL Étendues.

ACL Standard (numérotées 1–99 / 1300–1999)

Les ACL Standard filtrent le trafic uniquement sur la base de l'adresse IP source. Elles sont simples mais peu granulaires.

Caractéristiques
  • ✅ Filtre uniquement par adresse IP source
  • ✅ Simple à configurer
  • ❌ Pas de filtrage par port, protocole ou destination
  • 📍 Doit être appliquée le plus près possible de la destination
  • Plage numéros : 1–99 et 1300–1999

Syntaxe :

Router(config)# access-list 10 deny 192.168.10.0 0.0.0.255 Router(config)# access-list 10 permit any ! Application sur interface Router(config)# interface gigabitethernet 0/1 Router(config-if)# ip access-group 10 out

Dans cet exemple : le réseau 192.168.10.0/24 est bloqué, tout autre trafic est autorisé.

Tout ACL se termine implicitement par un deny any invisible. Sans règle permit, tout est bloqué.

ACL Étendue (numérotées 100–199 / 2000–2699)

Les ACL Étendues offrent un contrôle beaucoup plus précis. Elles permettent de filtrer sur la base de l'IP source ET destination, du protocole (TCP, UDP, ICMP...) et du port.

Caractéristiques
  • ✅ Filtre par IP source ET destination
  • ✅ Filtre par protocole (TCP, UDP, ICMP, IP)
  • ✅ Filtre par numéro de port (ex : 80, 443, 22)
  • ✅ Très granulaire et précise
  • 📍 Doit être appliquée le plus près possible de la source
  • Plage numéros : 100–199 et 2000–2699

Syntaxe :

! Bloquer HTTP depuis un sous-reseau vers un serveur Router(config)# access-list 110 deny tcp 192.168.10.0 0.0.0.255 host 192.168.20.5 eq 80 Router(config)# access-list 110 permit ip any any ! Application sur interface (sens entrant depuis source) Router(config)# interface gigabitethernet 0/0 Router(config-if)# ip access-group 110 in

Dans cet exemple : le trafic HTTP (port 80) depuis 192.168.10.0/24 vers le serveur 192.168.20.5 est bloqué. Tout autre trafic est autorisé.

Comparaison Standard vs Étendue

Critère ACL Standard ACL Étendue
Numérotation 1–99, 1300–1999 100–199, 2000–2699
IP Source ✅ Oui ✅ Oui
IP Destination ❌ Non ✅ Oui
Protocole (TCP/UDP/ICMP) ❌ Non ✅ Oui
Numéro de port ❌ Non ✅ Oui
Complexité Simple Plus complexe
Placement recommandé Près de la destination Près de la source

Commandes utiles

! Voir toutes les ACL configurees Router# show access-lists ! Supprimer une ACL Router(config)# no access-list 10 ! ACL nommee (plus lisible) Router(config)# ip access-list extended BLOC_HTTP Router(config-ext-nacl)# deny tcp 192.168.10.0 0.0.0.255 any eq 80 Router(config-ext-nacl)# permit ip any any

Comprendre le NAT

01
Définition et types de NAT

Le NAT (Network Address Translation) traduit les adresses IP privées (réseau local) en adresses IP publiques. Il permet à plusieurs appareils d'un même LAN d'accéder à Internet avec une seule adresse publique.

Du point de vue d'un service distant, tous les appareils du LAN partagent la même IP publique.

TypeFonctionnementUsage typique
NAT StatiqueLien fixe entre une IP interne et une IP publiqueServeur accessible depuis Internet
NAT DynamiqueAttribution temporaire depuis un pool d'adresses publiquesAccès sortant pour plusieurs postes
PAT / NAT OverloadPlusieurs IP internes partagent une seule IP publique via les portsBox Internet / entreprise
02
Table de translation et connexions multiples

Le routeur NAT conserve une table de translation qui associe chaque flux interne à un port externe unique.

IP interne 192.168.1.10:1025 → IP publique 203.0.113.5:40001 IP interne 192.168.1.11:1026 → IP publique 203.0.113.5:40002 IP interne 192.168.1.12:1027 → IP publique 203.0.113.5:40003
💡 Sans NAT, chaque appareil aurait besoin d'une adresse IPv4 publique unique — ressource limitée et épuisée. Le NAT permet à chaque box de ne consommer qu'une seule IP publique quel que soit le nombre d'appareils connectés.
03
Redirection de port (Port Forwarding) & sécurité

Le port forwarding (redirection de port) associe un port public du routeur à un service interne (serveur web, caméra IP, NAS…) pour le rendre accessible depuis Internet.

⚠️ Chaque port ouvert est une porte d'entrée potentielle. Un attaquant peut scanner les ports ouverts et tenter d'accéder au service exposé.

Bonnes pratiques :

Filtrer les IP autoriséesActiver le MFAMettre à jour le firmwareDMZ en entreprise
💡 Préférer un VPN à l'ouverture de ports directs quand c'est possible. Pour vérifier qu'un port est ouvert : canyouseeme.org ou nmap.

Comprendre le PAT

04
Définition et fonctionnement

Le PAT (Port Address Translation), aussi appelé NAT Overload, est une extension du NAT qui permet à plusieurs appareils de partager une seule IP publique en distinguant les connexions grâce aux numéros de ports.

Contrairement au NAT classique (1 IP interne → 1 IP publique), le PAT associe une IP interne + un port à une IP publique + un port différent.

192.168.2.10:1025 → 10.0.0.1:40001 192.168.2.11:1025 → 10.0.0.1:40002 192.168.2.12:3456 → 10.0.0.1:40003 # Trois appareils différents — une seule IP publique — des ports distincts
05
Avantages du PAT

Avantages du PAT :

Des milliers d'appareils sur 1 seule IP publiquePréserve le stock IPv4Transparent pour les postesProtection passive (machines internes non exposées)
💡 overload dans la commande ip nat inside source active le PAT. Sans overload, une seule machine du LAN peut utiliser le NAT à la fois.

Configuration Cisco (CLI)

06
Configuration des interfaces

Configurer les interfaces du routeur — côté LAN (inside) et côté WAN (outside).

R2>enable R2#configure terminal ! Interface fa1/0 — côté LAN (réseau interne) R2(config)#interface fa1/0 R2(config-if)#ip address 192.168.2.254 255.255.255.0 R2(config-if)#no shutdown R2(config-if)#exit ! Interface fa0/0 — côté WAN (réseau public) R2(config)#interface fa0/0 R2(config-if)#ip address 10.0.0.1 255.255.255.0 R2(config-if)#no shutdown R2(config-if)#exit
07
Déclarer inside / outside

Définir quelle interface est côté réseau interne (inside) et quelle interface est côté Internet (outside).

! Définir l'interface côté réseau interne R2(config)#interface fa1/0 R2(config-if)#ip nat inside R2(config-if)#exit ! Définir l'interface côté Internet R2(config)#interface fa0/0 R2(config-if)#ip nat outside R2(config-if)#exit
08
Règles d'accès et activation PAT

Créer une règle d'accès autorisant le LAN à sortir via le NAT, puis activer le PAT.

! Autoriser le réseau 192.168.2.0/24 à utiliser le NAT R2(config)#access-list 1 permit 192.168.2.0 0.0.0.255 ! Activer le PAT (NAT overload) sur l'interface fa0/0 R2(config)#ip nat inside source list 1 interface fa0/0 overload
💡 Résultat : tous les appareils du réseau 192.168.2.0/24 peuvent accéder à Internet en partageant l'IP de l'interface fa0/0.
09
Vérification

Vérifier que le NAT/PAT fonctionne correctement.

R2#debug ip nat ! Afficher la table de translation R2#show ip nat translations
ProInside globalInside localOutside localOutside global
icmp 10.0.0.1:1 192.168.2.10:1 8.8.8.8:1 8.8.8.8:1
Inside local = IP privée du PC sur le LANInside global = IP publique vue depuis Internet

Récapitulatif des commandes

CommandeRôle
ip nat insideDéfinit l'interface comme côté réseau privé
ip nat outsideDéfinit l'interface comme côté Internet
access-list 1 permit ...Autorise le trafic du LAN à être translaté
ip nat inside source list 1 ... overloadActive le PAT (NAT avec surcharge de ports)
debug ip natAffiche les translations en temps réel
show ip nat translationsAffiche la table de translation NAT

Rôle du masque de sous-réseau

Le masque de sous-réseau sert à séparer l'adresse IP en deux parties :

  • Identifier le réseau : il définit quelle partie de l'adresse correspond au "nom du groupe" (le sous-réseau).
  • Identifier l'hôte : il définit quelle partie correspond à la machine spécifique dans ce réseau.
  • Aiguiller le trafic : il permet à l'ordinateur de savoir si le destinataire est dans le même réseau (envoi direct) ou s'il doit passer par un routeur (envoi externe).
💡 Un masque est toujours une suite de 1 en binaire (partie réseau) suivie de 0 (partie hôte). Jamais l'inverse.

Notation CIDR — Puissances de 2

Chaque bit supplémentaire dans la partie réseau double le nombre de sous-réseaux disponibles :

Préfixe CIDR Bits empruntés (depuis /16) Nb sous-réseaux Nb hôtes / sous-réseau Masque décimal
/160165 534255.255.0.0
/171232 766255.255.128.0
/182416 382255.255.192.0
/1938 ✅8 190255.255.224.0
/204164 094255.255.240.0
/215322 046255.255.248.0
/226641 022255.255.252.0
/237128510255.255.254.0
/248256254255.255.255.0
⚠️ Formule : 2ⁿ sous-réseaux (n = bits empruntés). Hôtes utilisables = 2ʰ − 2 (réseau + broadcast exclus).

Que faire si le nombre voulu n'est pas une puissance de 2 ?

⚠️ La règle fondamentale

En CIDR, tous les sous-réseaux d'une même division ont exactement la même taille. On ne peut pas avoir des blocs de tailles différentes dans un découpage simple.

Et comme le nombre de sous-réseaux est toujours une puissance de 2, on ne peut pas faire exactement 3, 5, 6, 7, 9… sous-réseaux égaux. Il faut prendre la puissance de 2 supérieure ou égale, et les blocs "en trop" restent non attribués — ils existent dans l'espace d'adressage mais ne sont assignés à personne.

Voici la logique pour n'importe quel nombre :

Tu veux… → Puissance de 2 choisie Masque (depuis /16) Blocs créés Blocs non attribués
3 sous-réseaux égaux2² = 4  (4 ≥ 3)/18 — 255.255.192.041 non attribué
5 sous-réseaux égaux2³ = 8  (8 ≥ 5)/19 — 255.255.224.083 non attribués
6 sous-réseaux égaux2³ = 8  (8 ≥ 6)/19 — 255.255.224.082 non attribués
7 sous-réseaux égaux2³ = 8  (8 ≥ 7)/19 — 255.255.224.081 non attribué
9 sous-réseaux égaux2⁴ = 16 (16 ≥ 9)/20 — 255.255.240.0167 non attribués
12 sous-réseaux égaux2⁴ = 16 (16 ≥ 12)/20 — 255.255.240.0164 non attribués
📌 Exemple — 3 sous-réseaux égaux depuis 192.168.0.0/16

Étape 1 — Trouver la puissance de 2 ≥ 3 :

2¹ = 2 → 2 < 3, trop petit 2² = 4 → 4 ≥ 3 ✅ on choisit 4

Étape 2 — 2 bits empruntés → préfixe /18, masque 255.255.192.0, pas de 64

Chaque bloc fait 16 382 hôtes utilisables. Les 4 blocs sont identiques en taille — c'est obligatoire.

Étape 3 — 4 blocs créés, on en utilise 3 :

1
192.168.0.0 – 192.168.63.255  ·  /18  ·  16 382 hôtes
✔ Attribué
2
192.168.64.0 – 192.168.127.255  ·  /18  ·  16 382 hôtes
✔ Attribué
3
192.168.128.0 – 192.168.191.255  ·  /18  ·  16 382 hôtes
✔ Attribué
4
192.168.192.0 – 192.168.255.255  ·  /18  ·  même taille
— Non attribué
✅ Les 3 blocs attribués ont exactement la même taille (16 382 hôtes chacun). Le 4ème bloc existe dans l'espace d'adressage — il peut être attribué plus tard si le réseau s'agrandit.
⚠️ Il est impossible de faire 3 blocs qui couvrent tout le /16 de façon égale sans "gaspiller" un bloc. C'est une contrainte mathématique du CIDR, pas une erreur.

Exemple complet — 192.168.0.0/16 → 8 sous-réseaux

01
Combien de bits emprunter ?

On veut 8 sous-réseaux. On cherche la puissance de 2 ≥ 8 :

2¹ = 2 → /17 2² = 4 → /18 2³ = 8 → /19 ✅

Il faut emprunter 3 bits à la partie hôte, ce qui donne un préfixe /19.

✅ Nouveau masque : 255.255.224.0
02
Convertir /19 en binaire

/19 signifie 19 bits à 1 puis des 0 jusqu'à 32 bits :

11111111 . 11111111 . 11100000 . 00000000 255 . 255 . 224 . 0

Le 3ème octet 11100000 = 128 + 64 + 32 = 224.

03
Calculer le pas (incrément)

Le pas est la taille de chaque bloc. Il se lit sur le dernier octet "actif" du masque :

256 − 224 = 32 → le pas est 32

Chaque sous-réseau contient 32 adresses (dont 2 réservées : réseau + broadcast), soit 30 hôtes utilisables.

04
Lister les 8 sous-réseaux

On incrémente de 32 sur le 3ème octet à partir de 192.168.0.0 :

# Adresse réseau 1ère IP hôte Dernière IP hôte Broadcast
1192.168.0.0/19192.168.0.1192.168.31.254192.168.31.255
2192.168.32.0/19192.168.32.1192.168.63.254192.168.63.255
3192.168.64.0/19192.168.64.1192.168.95.254192.168.95.255
4192.168.96.0/19192.168.96.1192.168.127.254192.168.127.255
5192.168.128.0/19192.168.128.1192.168.159.254192.168.159.255
6192.168.160.0/19192.168.160.1192.168.191.254192.168.191.255
7192.168.192.0/19192.168.192.1192.168.223.254192.168.223.255
8192.168.224.0/19192.168.224.1192.168.255.254192.168.255.255
✅ 8 sous-réseaux de 8 190 hôtes chacun, couvrant l'intégralité du /16.

Méthode visuelle — La règle des puissances

Pour trouver rapidement le bon CIDR, mémorisez cette suite en partant du préfixe de base :

Base /16 → +0 bit → 2⁰ = 1 sous-réseau /17 → +1 bit → 2¹ = 2 sous-réseaux /18 → +2 bits → 2² = 4 sous-réseaux /19 → +3 bits → 2³ = 8 sous-réseaux ← notre exemple /20 → +4 bits → 2⁴ = 16 sous-réseaux /21 → +5 bits → 2⁵ = 32 sous-réseaux /22 → +6 bits → 2⁶ = 64 sous-réseaux /23 → +7 bits → 2⁷ = 128 sous-réseaux /24 → +8 bits → 2⁸ = 256 sous-réseaux
⚠️ Chaque bit emprunté double le nombre de sous-réseaux mais divise par 2 le nombre d'hôtes par sous-réseau.

Calculateur interactif

ipconfig — Configuration IP

01
ipconfig — Afficher la configuration réseau

Affiche les adresses IP, masques et passerelles de toutes les interfaces.

ipconfig # Résumé rapide ipconfig /all # Détail complet (MAC, DHCP, DNS, bail...) ipconfig /release # Libère le bail DHCP (supprime l'IP) ipconfig /renew # Demande une nouvelle IP au serveur DHCP ipconfig /flushdns # Vide le cache DNS local ipconfig /displaydns # Affiche le cache DNS actuel ipconfig /registerdns # Ré-enregistre le nom d'hôte auprès du DNS
ipconfig /all est la commande la plus complète : elle affiche aussi l'adresse MAC, le serveur DHCP, les DNS configurés et la durée du bail.

ping & tracert — Connectivité et chemin réseau

02
ping — Tester la joignabilité d'un hôte

Envoie des paquets ICMP Echo Request pour vérifier qu'une machine répond.

ping 192.168.1.1 # Ping standard (4 paquets) ping 192.168.1.1 -t # Ping continu (Ctrl+C pour arrêter) ping 192.168.1.1 -n 10 # Envoie 10 paquets ping 192.168.1.1 -l 1000 # Taille des paquets = 1000 octets ping 192.168.1.1 -4 # Force IPv4 ping 192.168.1.1 -6 # Force IPv6 ping monserveur.local # Ping par nom (résolution DNS)
⚠️ Un ping qui échoue ne signifie pas forcément que la machine est hors ligne — le pare-feu peut bloquer ICMP.
03
tracert — Tracer le chemin jusqu'à une destination

Affiche chaque routeur (saut) traversé pour atteindre une destination.

tracert 8.8.8.8 # Trace vers Google DNS tracert -d 8.8.8.8 # Sans résolution DNS (plus rapide) tracert -h 20 8.8.8.8 # Limite à 20 sauts maximum tracert monserveur.local # Trace par nom
✅ Utile pour localiser où un paquet se perd : le dernier saut qui répond indique le point de blocage.

arp — Table ARP (IP ↔ MAC)

04
arp — Afficher et gérer la table ARP

La table ARP associe chaque adresse IP locale à son adresse MAC correspondante.

arp -a # Affiche toute la table ARP arp -a 192.168.1.1 # Affiche l'entrée pour une IP spécifique arp -d 192.168.1.1 # Supprime une entrée ARP arp -d * # Vide toute la table ARP arp -s 192.168.1.1 AA-BB-CC-DD-EE-FF # Ajoute une entrée statique
# Exemple de sortie : Interface : 192.168.1.10 --- 0x5 Adresse Internet Adresse physique Type 192.168.1.1 c0-a8-01-01-aa-bb dynamique 192.168.1.20 00-1a-2b-3c-4d-5e dynamique 192.168.1.255 ff-ff-ff-ff-ff-ff statique
✅ Si une IP apparaît avec l'adresse MAC ff-ff-ff-ff-ff-ff, c'est une adresse de broadcast.

route — Table de routage

05
route — Afficher et modifier les routes

Permet de consulter et de modifier la table de routage Windows.

route print # Affiche toute la table de routage route print -4 # Routes IPv4 uniquement route print -6 # Routes IPv6 uniquement route print 192.168.* # Filtre les routes correspondantes
# Ajouter une route statique (non persistante) route add 10.0.0.0 mask 255.0.0.0 192.168.1.1 # Ajouter une route persistante (survit au redémarrage) route add 10.0.0.0 mask 255.0.0.0 192.168.1.1 -p # Supprimer une route route delete 10.0.0.0 # Modifier une route existante route change 10.0.0.0 mask 255.0.0.0 192.168.1.254
# Exemple de sortie route print : Itinéraires actifs : Destination réseau Masque réseau Adr. passerelle Adr. interface Métrique 0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.10 25 ← route par défaut 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 331 192.168.1.0 255.255.255.0 On-link 192.168.1.10 281 192.168.1.255 255.255.255.255 On-link 192.168.1.10 281
⚠️ La route 0.0.0.0 / 0.0.0.0 est la route par défaut (passerelle). C'est celle empruntée pour tout trafic sans route plus spécifique.

netstat — Connexions et ports actifs

06
netstat — Afficher les connexions réseau

Affiche les connexions TCP/UDP actives, les ports en écoute et les statistiques réseau.

netstat -a # Toutes les connexions et ports en écoute netstat -n # Affiche les IPs (sans résolution DNS) netstat -o # Affiche le PID du processus associé netstat -b # Affiche le nom de l'exécutable (admin requis) netstat -r # Affiche la table de routage (= route print) netstat -s # Statistiques par protocole (TCP, UDP, ICMP...) netstat -an # Combiné : toutes connexions + IPs brutes netstat -ano # Connexions + IPs brutes + PID netstat -ano | findstr :80 # Filtrer le port 80
# Exemple de sortie netstat -ano : Proto Adresse locale Adresse distante État PID TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4 TCP 192.168.1.10:49234 93.184.216.34:443 ESTABLISHED 3120 TCP 192.168.1.10:49235 192.168.1.1:53 TIME_WAIT 0
✅ Pour identifier le processus d'un PID : tasklist | findstr <PID>

nslookup — Résolution DNS

07
nslookup — Interroger les serveurs DNS

Résout un nom de domaine en adresse IP ou fait une résolution inverse (IP → nom).

nslookup google.com # Résolution directe (nom → IP) nslookup 8.8.8.8 # Résolution inverse (IP → nom) nslookup google.com 8.8.8.8 # Interroge un DNS spécifique nslookup -type=MX google.com # Enregistrements mail (MX) nslookup -type=NS google.com # Serveurs de noms (NS) nslookup -type=A google.com # Enregistrements IPv4 (A) nslookup -type=AAAA google.com # Enregistrements IPv6 (AAAA)
✅ En mode interactif : taper simplement nslookup puis les noms à résoudre. exit pour quitter.

netsh — Configuration avancée

08
netsh — Configurer les interfaces et le pare-feu

Outil puissant pour configurer les interfaces réseau, le pare-feu et les paramètres Wi-Fi.

# Afficher toutes les interfaces netsh interface show interface # Afficher la config IP d'une interface netsh interface ip show config "Ethernet" # Assigner une IP statique netsh interface ip set address "Ethernet" static 192.168.1.50 255.255.255.0 192.168.1.1 # Repasser en DHCP netsh interface ip set address "Ethernet" dhcp # Définir un serveur DNS netsh interface ip set dns "Ethernet" static 8.8.8.8 # Afficher les réseaux Wi-Fi sauvegardés netsh wlan show profiles # Voir le mot de passe d'un réseau Wi-Fi sauvegardé netsh wlan show profile name="NomDuReseau" key=clear # Réinitialiser la pile TCP/IP netsh int ip reset netsh winsock reset
⚠️ netsh int ip reset et netsh winsock reset nécessitent un redémarrage pour prendre effet.

Récapitulatif rapide

Commande Usage principal Exemple utile
ipconfig /allConfig IP complète (MAC, DHCP, DNS)ipconfig /flushdns
pingTester la joignabilité d'un hôteping 8.8.8.8 -t
tracertChemin réseau saut par sauttracert -d 8.8.8.8
arp -aTable ARP (IP ↔ MAC)arp -d *
route printTable de routageroute add ... -p
netstat -anoConnexions actives + PIDnetstat -ano | findstr :443
nslookupRésolution DNSnslookup -type=MX domain.com
netshConfig avancée (IP, Wi-Fi, pare-feu)netsh wlan show profiles
✅ Toutes ces commandes s'exécutent dans cmd.exe ou PowerShell. Certaines nécessitent les droits Administrateur (arp -d, netsh, netstat -b).

Schéma de câblage

⚠️ Pour cette procédure : PC10 branché sur GE1, PC20 sur GE9, et le lien Switch → MikroTik sur GE17.

Configuration du Switch Linksys

01
Accéder à l'interface web du switch

Connectez le switch au MikroTik pour récupérer une adresse via DHCP, ou utilisez l'IP par défaut :

192.168.1.251

Identifiants par défaut :

Login : admin Password : admin

Si le MikroTik vous distribue bien une IP, vous pouvez rester en DHCP.

02
Passer le switch en IP statique

La première chose à faire est d'attribuer une IP statique au switch dans la même plage que le MikroTik (ex : 192.168.88.x) :

03
Créer les VLANs

Aller dans VLAN Management → VLANs et créer les VLANs nécessaires (ex : VLAN 10 et VLAN 20) :

04
Assigner les ports aux VLANs (GE1 et GE9)

Aller dans VLAN Management → Interfaces. Sélectionner GE1 (PC10) et configurer l'option JOIN VLAN → VLAN 10 :

Faire la même chose pour GE9 (PC20) dans le VLAN 20 :

05
Configurer le port trunk GE17 (Switch → MikroTik)

Le port GE17 relie le switch au MikroTik. Il doit être configuré en trunk pour transporter les deux VLANs :

✅ Le port trunk doit transporter à la fois le VLAN 10 et le VLAN 20 vers le MikroTik.

Configuration du Routeur MikroTik

06
Accéder au MikroTik et créer les interfaces VLAN

Se connecter à l'interface WinBox/Web du MikroTik à l'adresse :

192.168.88.1

Aller dans Interfaces → onglet VLAN et créer les deux interfaces VLAN. Renommer l'interface physique reliant le routeur au switch (ex : Router→Switch) :

Créer VLAN 10 et VLAN 20 sur l'interface physique Router→Switch :

07
Assigner les adresses IP aux interfaces VLAN

Aller dans IP → Addresses et créer les adresses passerelles pour chaque VLAN :

✅ Le MikroTik devient la passerelle de chaque VLAN : 192.168.10.1 pour VLAN10, 192.168.20.1 pour VLAN20.
08
Test de connectivité

Configurer les PCs en IP statique :

PC10 : 192.168.10.x /24 — Passerelle : 192.168.10.1 PC20 : 192.168.20.x /24 — Passerelle : 192.168.20.1

Tester le ping entre PC10 et PC20 :

ping 192.168.20.x (depuis PC10)
⚠️ Si le ping échoue : vérifier les règles de pare-feu ICMP sur Windows, ou désactiver les cartes réseau supplémentaires qui pourraient interférer.

Installation du rôle FSRM

01
Ajouter le rôle via le Gestionnaire de serveur

Depuis le Gestionnaire de serveur, cliquer sur GérerAjouter des rôles et fonctionnalités.

Avancer jusqu'à l'étape Rôles de serveur, puis cocher :

Services de fichiers et de stockage → Services de fichiers et iSCSI → Gestionnaire de ressources du serveur de fichiers

Valider aussi lorsque l'assistant propose d'installer les outils de gestion associés.

Poursuivre jusqu'à la fin de l'installation — aucune configuration particulière n'est requise à cette étape.

✅ Une fois installé, une nouvelle console "Gestionnaire de ressources du serveur de fichiers" apparaît dans les Outils d'administration.

Configuration des modèles de quotas

02
Ouvrir la console FSRM

Dans les outils d'administration du serveur, ouvrir la console Gestionnaire de ressources du serveur de fichiers.

03
Modifier un modèle de quota existant

Dans la liste des Modèles de quotas, localiser le modèle "Limite de 2 Go". Faire un clic droit → Modifier les propriétés du modèle.

Modifier le nom du modèle et adapter la limite à 1 Go, puis valider.

⚠️ Il s'agit d'un quota inconditionnel : il ne sera pas possible de dépasser la limite définie.
04
Bonus — La fonction Commande (quota dynamique)

La fonction Commande permet d'exécuter des actions automatiques quand la limite est atteinte. Par exemple, le modèle "Limite de 200 Mo avec extension de 50 Mo" alloue automatiquement 50 Mo supplémentaires via une commande :

✅ C'est utile pour les quotas "souples" qui s'adaptent à l'usage tout en envoyant des alertes.
05
Mettre à jour les quotas dérivés du modèle

Au moment de valider les modifications du modèle, l'assistant demande comment appliquer les changements aux quotas existants qui utilisent ce modèle. Choisir selon le contexte :

⚠️ Si vous partez de zéro, ce choix n'a pas d'impact. En production, choisir "Appliquer aux quotas existants" pour propager les changements.

Application du quota sur un dossier

06
Créer un quota sur un répertoire

Faire un clic droit sur Quotas dans la console FSRM → Créer un quota.

Dans la fenêtre de configuration :

1. Cliquer "Parcourir" → sélectionner le répertoire cible (ex : Partage) 2. Choisir "Dériver les propriétés de ce modèle de quota (recommandé)" 3. Sélectionner le modèle "Limite de 1 Go" 4. Cliquer "Créer"
✅ Il est aussi possible de définir manuellement le quota sans utiliser de modèle, via l'option de configuration personnalisée.
07
Vérifier le quota et tester

Le quota apparaît dans la liste avec le pourcentage utilisé. Dans l'exemple ci-dessous, 4 fichiers de 250 Mo ont été déposés → le quota atteint 99% de la limite de 1 Go :

En tentant d'ajouter un fichier supplémentaire dépassant la limite, Windows bloque l'opération. Un événement est automatiquement consigné dans le journal Application de l'observateur d'événements :

✅ Ouvrir l'Observateur d'événements → Journaux Windows → Application pour retrouver les alertes FSRM avec la source SRMSVC.

Lister les commandes disponibles

Pour voir toutes les commandes du module LocalAccounts :

Get-Command -Module Microsoft.PowerShell.LocalAccounts

Commandes essentielles

Utilisateurs
  • Get-LocalUser — lister les comptes locaux
  • New-LocalUser — créer un utilisateur local
  • Remove-LocalUser — supprimer un utilisateur
  • Rename-LocalUser — renommer un utilisateur
  • Set-LocalUser — modifier (ex : mot de passe)
  • Enable-LocalUser — activer un compte
  • Disable-LocalUser — désactiver un compte
Groupes
  • Get-LocalGroup — lister les groupes locaux
  • New-LocalGroup — créer un groupe
  • Remove-LocalGroup — supprimer un groupe
  • Rename-LocalGroup — renommer un groupe
  • Set-LocalGroup — modifier un groupe
  • Get-LocalGroupMember — voir les membres
  • Add-LocalGroupMember — ajouter un membre
  • Remove-LocalGroupMember — retirer un membre

Créer un utilisateur local

Utilise 3 variables : $AccountName (nom), $AccountPassword (mot de passe), $AccountDescription (description, facultatif).

Mot de passe : 7 caractères minimum, doit contenir au moins 3 des 4 catégories : majuscules (A–Z), minuscules (a–z), chiffres (0–9), caractères spéciaux (!, @, #, %, etc.)
# Variable du nom d'utilisateur (ne pas mettre "utilisateurs" ou "administrateur") $AccountName = "MonUtilisateur" ` # Variable du mot de passe $AccountPassword = ConvertTo-SecureString "MOT_DE_PASSE" -AsPlainText -Force ` # Variable de la description (facultatif) $AccountDescription = "Compte de test" ` # Creer le compte local New-LocalUser $AccountName -Password $AccountPassword -FullName $AccountName -Description $AccountDescription

Vérifier que le compte a bien été créé :

Get-LocalUser

Supprimer un utilisateur local

Remove-LocalUser -Name "TST"

Prérequis : les services DNS et Active Directory doivent être installés.

Lister les commandes disponibles

Get-Command -Module ActiveDirectory

Commandes essentielles AD

Utilisateurs AD
  • Get-ADUser — lister les utilisateurs AD
  • New-ADUser — créer un utilisateur AD
  • Remove-ADUser — supprimer un utilisateur AD
  • Set-ADUser — modifier un utilisateur AD
  • Rename-ADObject — renommer un objet AD
  • Enable-ADAccount — activer un compte AD
  • Disable-ADAccount — désactiver un compte AD
  • Set-ADAccountPassword — changer le mot de passe
Groupes AD
  • Get-ADGroup — lister les groupes AD
  • New-ADGroup — créer un groupe AD
  • Remove-ADGroup — supprimer un groupe AD
  • Set-ADGroup — modifier un groupe AD
  • Get-ADGroupMember — voir les membres
  • Add-ADGroupMember — ajouter un membre
  • Remove-ADGroupMember — retirer un membre

Créer un utilisateur AD

Paramètres principaux : -Name (nom affiché), -SamAccountName (login), -UserPrincipalName (UPN), -Path (emplacement dans l'AD), -AccountPassword, -Enabled.

New-ADUser -Name "Jean Dupont" ` -SamAccountName "jdupont" ` -UserPrincipalName "[email protected]" ` # CN=Users pour le conteneur par defaut, ou OU=NomOU pour une UO specifique -Path "CN=Users,DC=c2rt,DC=org" ` # Demande le mot de passe a la creation -AccountPassword (Read-Host -AsSecureString "Entrez un mot de passe") ` -Enabled $true

Renommer un utilisateur AD

Exemple : jdupontj.dupont, Jean Dupont → Julien Dupont

# Modifier les infos de connexion (SamAccountName, DisplayName, etc.) Set-ADUser -Identity "jdupont" -SamAccountName "j.dupont" -DisplayName "Julien Dupont" -GivenName "Julien" -Surname "Dupont" # Renommer l'objet dans la liste AD Get-ADUser -Identity "j.dupont" | Rename-ADObject -NewName "Julien Dupont"

Gestion des Unites d'Organisation (OU)

Créer une OU à la racine du domaine :

New-ADOrganizationalUnit -Name "Agen" -Path "DC=c2rt,DC=org" -ProtectedFromAccidentalDeletion $true

Créer une OU dans une autre OU :

New-ADOrganizationalUnit -Name "Campus" -Path "OU=Agen,DC=c2rt,DC=org" -ProtectedFromAccidentalDeletion $true

Supprimer une OU (désactiver la protection d'abord) :

# Desactiver la protection contre la suppression accidentelle Set-ADOrganizationalUnit -Identity "OU=Campus,OU=Agen,DC=c2rt,DC=org" -ProtectedFromAccidentalDeletion $false # Supprimer l'OU Campus (dans Agen) Remove-ADOrganizationalUnit -Identity "OU=Campus,OU=Agen,DC=c2rt,DC=org" -Confirm:$false

Horaires de connexion

Restreindre un utilisateur à des plages horaires précises (ex : lundi–vendredi, 8h–18h) :

# Definir les heures (Lundi au Vendredi, 8h a 18h) [byte[]]$hours = @(0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0) # Le calcul exact du binaire varie selon le fuseau horaire # Appliquer a l'utilisateur Set-ADUser -Identity "jdupont" -Replace @{logonHours = $hours}

Appliquer les horaires d'un utilisateur modèle à toute une OU :

# 1. Stocker la config horaires du modele dans une variable $mesHoraires = (Get-ADUser -Identity "jdupont" -Properties logonHours).logonHours # 2. Appliquer cette variable a TOUS les utilisateurs de l'OU "Campus" Get-ADUser -Filter * -SearchBase "OU=Campus,OU=Agen,DC=c2rt,DC=org" | Set-ADUser -Replace @{logonHours = $mesHoraires}
Pour copier les horaires d'un compte modèle vers une OU entière, créez d'abord un utilisateur de référence avec les bons horaires, puis propagez avec Get-ADUser -Filter *.
01
Plans de Continuité & Reprise
🏢
PCA
Plan de Continuité d’Activité

Garantit la continuité des opérations en cas de crise majeure (catastrophe naturelle, cyberattaque). Maintient les activités critiques en mode dégradé.

💻
PCI
Plan de Continuité Informatique

Composante du PCA, spécifique aux SI. Garantit la disponibilité continue des systèmes via sauvegardes, redondances et procédures de basculement.

🔄
PRA
Plan de Reprise d’Activité

Rétablit les opérations après un incident (panne, perte de données). Peut fonctionner seul ou en complément du PCA. Inclut stratégies de récupération et tests réguliers.

🖥️
PRI
Plan de Reprise Informatique

Redémarre les systèmes informatiques après un incident, en complément du PCI. Se concentre sur la récupération rapide avec procédures de restauration.

📢
PCC
Plan de Communication de Crise

Assure une communication claire avec collaborateurs, clients, partenaires et autorités. Inclut protocoles, messages prérédigés et canaux dédiés. Souvent négligé, mais crucial.

02
Niveaux RAID
NiveauTypeCapacitéRedondancePerformanceIdéal pour
⚡ RAID 0Répartition100%❌ AucuneTrès rapideFichiers temporaires non critiques
🪞 RAID 1Miroir50%✅ 1 disqueLecture rapideDonnées critiques, sauvegardes
⚖️ RAID 5ParitéN-1✅ 1 disqueExcellente lectureServeurs de fichiers PME
🛡️ RAID 6Double paritéN-2✅ 2 disquesBonne lectureStockage critique haute dispo
🚀 RAID 10Miroir+Répart.50%✅ VariableTrès haute perf.BDD, workloads intensifs
03
Types de sauvegarde

Une sauvegarde est une copie de données permettant d’être restaurée en cas de perte ou de corruption.

💾
Sauvegarde Complète

Copie la totalité des données.

Restauration✅ Simple & rapide
Espace❌ Très gourmand
Durée❌ Longue
Sauvegarde Incrémentale

Copie uniquement les fichiers modifiés depuis la dernière sauvegarde (complète ou incrémentale).

Restauration❌ Complexe (chaîne)
Espace✅ Minimal
Durée✅ Très rapide
📊
Sauvegarde Différentielle

Copie les fichiers modifiés depuis la dernière sauvegarde complète.

Restauration⚠️ Nécessite complète
Espace⚠️ Croissant
Durée⚠️ Modérée
04
Règle 3-2-1-1-0

La méthode 3-2-1-1-0 est la règle d’or des sauvegardes professionnelles.

3
📂Copies des données

Conserver au moins 3 copies : production, sauvegarde, copie de sauvegarde. L’archivage compte comme une copie.

2
🗄️Types de supports

Utiliser au moins 2 supports différents : disques internes, SAN, NAS. Les bandes LTO comptent comme support.

1
🌍Copie hors site

Conserver au moins 1 copie hors site : autre site de production, infrastructure distante ou coffre-fort.

1
🔒Copie hors ligne / immuable

Au moins 1 copie isolée ou immuable : protection contre ransomware et actes malveillants via accès distant.

0
Zéro erreur

Zéro erreur après tests de restauration. Une sauvegarde non restaurable est inexploitable.

💡 Une sauvegarde non testée n’est pas une sauvegarde.

1. Qu'est-ce qu'un snapshot ?

01
Définition

Un snapshot (appelé point de contrôle dans Hyper-V) est une photographie de l'état d'une machine virtuelle à un instant T — disque, mémoire RAM et configuration. Il est créé en quelques secondes et permet de revenir à cet état précis si une opération tourne mal.

🍕 Analogie : C'est comme appuyer sur "Ctrl+Z" dans un traitement de texte. Si votre modification suivante est catastrophique, vous revenez exactement à l'état d'avant en un clic — sans avoir besoin de tout réécrire.

Dans Hyper-V, un snapshot génère un fichier .avhdx (disque différentiel) qui ne stocke que les différences par rapport au disque parent. La VM continue de fonctionner normalement, toutes les nouvelles écritures sont redirigées vers ce fichier différentiel.

💡 Créer un snapshot depuis le Gestionnaire Hyper-V : clic droit sur la VM → Point de contrôle. En PowerShell : Checkpoint-VM -Name "NomVM" -SnapshotName "Avant-MàJ"

2. Snapshot vs Sauvegarde — quelle différence ?

02
Comparaison détaillée

Snapshot et sauvegarde sont souvent confondus, mais ils répondent à des besoins très différents :

Critère📸 Snapshot💾 Sauvegarde
ObjectifRetour arrière rapide (avant une modif)Protection contre perte de données
Vitesse de créationQuelques secondesMinutes à heures
StockageSur le même hôte Hyper-V (fichier .avhdx)Sur un stockage externe / distant
Indépendant de la VM source ?❌ Non — dépend du disque parent✅ Oui — copie autonome complète
Survit à une panne disque de l'hôte ?❌ Non✅ Oui (si hors-site)
Survit à une suppression accidentelle de la VM ?❌ Non✅ Oui
Utilisation typiqueAvant une mise à jour, un changement de configPRA, sinistre, ransomware, archivage
Durée conseillée de rétentionQuelques heures à quelques jours maxJours, semaines, mois selon la politique
⚠️ Un snapshot n'est pas une sauvegarde. Si l'hôte physique tombe en panne, les snapshots sont perdus avec la VM. Ils ne protègent que contre les erreurs logicielles ou humaines sur un système en fonctionnement.

3. Risques liés à un usage prolongé

03
⚠️ Risque principal : croissance incontrôlée des fichiers .avhdx

Chaque snapshot crée un fichier .avhdx qui grossit en permanence car toutes les nouvelles écritures disque y sont redirigées. Sur une VM très active (base de données, contrôleur de domaine, serveur de fichiers), ce fichier peut atteindre plusieurs dizaines de Go en quelques jours.

🚨 Conséquences concrètes :
  • 🔴 Saturation du disque de l'hôte → la VM s'arrête brutalement (plus d'espace pour écrire)
  • 🔴 Dégradation des performances → chaque lecture doit traverser la chaîne snapshot → disque parent
  • 🔴 Fusion longue et risquée → supprimer un vieux snapshot force une fusion qui peut durer des heures et stresser le stockage
  • 🔴 Corruption possible → une fusion interrompue (coupure de courant, panne) peut corrompre le disque virtuel
⚠️ Cas critique avec Active Directory : Un snapshot d'un DC (Contrôleur de Domaine) restauré après plusieurs jours peut provoquer un USN Rollback — les autres DC refusent de se synchroniser car ils détectent des numéros de séquence incohérents. Cela peut rendre l'AD inutilisable.
04
Bonnes pratiques
✅ À faire
  • → Créer un snapshot juste avant une opération risquée
  • → Supprimer le snapshot dans les 24-48h si tout va bien
  • → Nommer les snapshots clairement (ex: Avant-MàJ-KB5034441)
  • → Surveiller l'espace disque de l'hôte
  • → Compléter avec une vraie sauvegarde VEEAM
❌ À éviter
  • → Laisser un snapshot actif plusieurs semaines
  • → Utiliser les snapshots comme seule stratégie de sauvegarde
  • → Empiler plusieurs snapshots en chaîne
  • → Restaurer un snapshot de DC après plusieurs jours
  • → Ignorer les alertes d'espace disque de l'hôte
💡 En PowerShell : Get-VMSnapshot -VMName "NomVM" pour lister les snapshots existants · Remove-VMSnapshot -VMName "NomVM" -Name "NomSnapshot" pour en supprimer un.

4. Résumé — Réponses aux questions clés

❓ Qu'est-ce qu'un snapshot ?

Une photographie de l'état complet d'une VM (disque + RAM + config) à un instant T, stockée sous forme de fichier différentiel .avhdx sur l'hôte Hyper-V. Il permet de revenir à cet état en quelques secondes.

❓ En quoi est-il différent d'une sauvegarde ?

Un snapshot dépend du disque parent et du stockage de l'hôte — il disparaît si l'hôte tombe en panne. Une sauvegarde est une copie autonome et indépendante, stockée hors de l'hôte, utilisable même en cas de sinistre total.

❓ Citez un risque lié à un usage prolongé

Le fichier .avhdx grossit continuellement. Sur une VM active, il peut saturer le disque de l'hôte en quelques jours, provoquant l'arrêt brutal de la VM. La suppression tardive d'un snapshot entraîne une fusion longue qui dégrade les performances et risque de corrompre le disque virtuel.

1. Définitions

01
RPO — Recovery Point Objective

Le RPO représente la quantité maximale de données que l'on peut se permettre de perdre en cas d'incident, exprimée en durée. C'est la réponse à la question : "Jusqu'à quand puis-je remonter dans le temps ?"

RPO = perte de données maximale tolérée

Si votre RPO est de 4 heures, cela signifie que votre système de sauvegarde doit garantir qu'en cas de panne, vous pouvez restaurer une version datant de moins de 4 heures. Les données créées entre la dernière sauvegarde et le sinistre sont perdues.

🍕 Analogie : Vous rédigez un document Word sans enregistrement automatique. Si l'ordinateur plante, vous perdez tout ce que vous avez tapé depuis la dernière sauvegarde. Le RPO, c'est la fréquence à laquelle vous appuyez sur Ctrl+S.
02
RTO — Recovery Time Objective

Le RTO représente le délai maximal acceptable pour remettre un système en fonctionnement après un incident. C'est la réponse à la question : "Combien de temps peut-on rester hors ligne ?"

RTO = durée maximale d'interruption tolérée

Si votre RTO est de 2 heures, cela signifie que les systèmes impactés doivent être opérationnels dans un délai de 2 heures maximum après le sinistre, qu'il s'agisse d'une restauration, d'un basculement vers un site secondaire ou d'un redémarrage.

🍕 Analogie : Un restaurant qui subit une coupure de courant. Le RTO, c'est le temps maximum pendant lequel il peut rester fermé avant de perdre trop de clients et de chiffre d'affaires.

2. Visualisation — RPO & RTO sur une timeline

Dernière
sauvegarde
💥 Incident
✅ Reprise
activité
◄── RPO ──►
◄── RTO ──►
RPO = données perdues (sauvegarde → incident)
RTO = temps d'interruption (incident → reprise)

3. Impact selon les métiers

Type d'organisationRPO typiqueRTO typiqueExplication
Banque / Bourse~0 (temps réel)< 1 minChaque seconde de données perdue = perte financière massive
Hôpital / Urgences< 15 min< 30 minLes dossiers patients sont vitaux
E-commerce< 1h< 2hChaque heure d'arrêt = commandes perdues
PME standard24h (1 sauvegarde/jour)< 4hTolérance modérée, reprise dans la journée
Archivage / Archives légales1 semaine72hDonnées peu modifiées, accès non critique
💡 Plus le RPO et le RTO sont bas, plus l'infrastructure de sauvegarde doit être sophistiquée (et coûteuse). Il faut trouver le bon équilibre selon les contraintes métier.

4. Comment atteindre ses objectifs RPO / RTO ?

03
Leviers techniques pour réduire le RPO
SolutionRPO atteignableDescription
Sauvegarde quotidienne~24hMéthode classique — snapshot ou agent la nuit
Sauvegarde toutes les heures~1hTâche planifiée VEEAM, sauvegardes incrémentales
Réplication continue (CBT)< 15 minVEEAM Continuous Data Protection (CDP)
Journalisation base de données< 1 minSQL Server log shipping, Oracle Data Guard
Réplication synchrone (SAN)~0Chaque écriture est dupliquée en temps réel sur un site distant
04
Leviers techniques pour réduire le RTO
SolutionRTO atteignableDescription
Restauration depuis bande / NAS4–24hCopie physique à restaurer manuellement
VEEAM Instant Recovery< 15 minLa VM démarre directement depuis le fichier de sauvegarde
Réplication de VM Hyper-V / VMware< 5 minUne copie de la VM tourne en veille sur un hôte secondaire
Cluster de basculement (Failover)< 1 minUn second nœud prend la main automatiquement
Active-Active (haute dispo)~0Deux instances tournent simultanément, aucune interruption
💡 VEEAM Instant Recovery est l'une des fonctionnalités les plus efficaces pour réduire le RTO : la VM démarre depuis le référentiel de sauvegarde en quelques minutes, le temps que la restauration complète s'effectue en arrière-plan.

5. Résumé — Mémo RPO / RTO

RPO
Recovery Point Objective
  • 📌 Perte de données max tolérée
  • 📌 Répond à : "Jusqu'où remonter ?"
  • 📌 Dépend de la fréquence des sauvegardes
  • 📌 Exemple : RPO 4h → sauvegarde toutes les 4h
RTO
Recovery Time Objective
  • 📌 Durée d'interruption max tolérée
  • 📌 Répond à : "Combien de temps hors ligne ?"
  • 📌 Dépend de la vitesse de restauration
  • 📌 Exemple : RTO 2h → back en ligne en < 2h
Moyen mnémotechnique : RPO = Point dans le passé où on revient (données) · RTO = Temps pour revenir à la normale (durée).
01
Prérequis

Deux serveurs Windows Server (2016/2019/2022), un DC principal existant, accès administrateur domaine.

Windows Server 2016+DC principal opérationnelAccès Admin DomaineMême domaine AD
💡 Le second serveur doit être joint au domaine avant d'être promu DC.
02
Joindre DC2 au domaine

Sur le futur DC2, ouvrir Gestionnaire de serveur → Système → Modifier le nom d'ordinateur.

Renseigner le domaine et valider avec un compte admin domaine, puis redémarrer.

# Vérifier l'appartenance au domaine : Get-ADDomain
⚠️ Le serveur doit être joint au domaine AVANT l'installation du rôle AD DS.
03
Installer le rôle AD DS sur DC2

Sur DC2, installer le rôle Active Directory Domain Services via PowerShell :

Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools

Attendre la fin de l'installation (quelques minutes). Vérifier le résultat :

Get-WindowsFeature AD-Domain-Services
💡 Le statut doit afficher Installed dans la colonne Install State.
04
Promouvoir DC2 en contrôleur de domaine

Promouvoir DC2 comme contrôleur de domaine dans le domaine existant :

Install-ADDSDomainController ` -DomainName "c2rt.org" ` -InstallDns:$true ` -Credential (Get-Credential) ` -Force:$true

Le serveur va redémarrer automatiquement à la fin de la promotion.

⚠️ Remplacer c2rt.org par votre nom de domaine réel. Fournir les credentials d'un admin domaine.
05
Vérifier la réplication Active Directory

Après le redémarrage, vérifier que la réplication AD fonctionne entre les deux DC :

# Sur DC1 ou DC2 : repadmin /showrepl

Vérifier qu'il n'y a aucune erreur. Forcer une synchronisation immédiate :

repadmin /syncall /AdeP

Vérifier le statut global de la réplication :

repadmin /replsummary
💡 Toutes les partitions (Domain, Schema, Configuration) doivent apparaître sans erreur.
06
Vérifier la réplication DFSR (SYSVOL)

DFSR (Distributed File System Replication) réplique les dossiers SYSVOL et NETLOGON entre les DC. C'est lui qui propage les GPO et les scripts de connexion.

Vérifier l'état DFSR sur DC2 (PowerShell en admin) :

Get-DfsrState -ComputerName DC2

Voir le détail des membres du groupe de réplication SYSVOL :

Get-DfsrMembership -GroupName "Domain System Volume" -ComputerName *
💡 Le champ State doit être 4 = Normal sur les deux DC.
07
Diagnostiquer et corriger DFSR si bloqué

Si DFSR est bloqué ou en état Non-authoritative, forcer une synchro depuis DC1 :

# Sur DC1 (source authoritative) : dfsrdiag SyncNow /partner:DC2 /RGName:"Domain System Volume" /RFName:"SYSVOL Share"

En cas de SYSVOL non partagé sur DC2, forcer la réinitialisation DFSR :

# Sur DC2, dans l'éditeur de registre : # HKLM\SYSTEM\CurrentControlSet\Services\DFSR\Parameters\SysVols\Migrating Sysvols # Modifier "Local Settings\\Migration State" → 3 (START) # Puis redémarrer le service DFSR : Restart-Service DFSR
⚠️ Cette opération ne doit être faite que si SYSVOL n'est pas partagé sur DC2 après promotion.
08
Vérifier les partages SYSVOL & NETLOGON

Vérifier que SYSVOL et NETLOGON sont bien partagés sur DC2 :

net share

Les deux partages doivent apparaître dans la liste. Vérifier aussi via :

# Tester l'accès au SYSVOL depuis un poste du domaine : dir \\DC2\SYSVOL dir \\DC2\NETLOGON
💡 Si SYSVOL et NETLOGON apparaissent, la réplication DFSR est fonctionnelle.
09
Vérifier les enregistrements DNS

Vérifier que DC2 est bien enregistré dans le DNS du domaine :

# Sur n'importe quel DC : nslookup DC2.c2rt.org nslookup c2rt.org

Vérifier les enregistrements SRV (essentiels pour l'authentification) :

nslookup -type=SRV _ldap._tcp.c2rt.org nslookup -type=SRV _kerberos._tcp.c2rt.org

Forcer l'enregistrement DNS si nécessaire :

ipconfig /registerdns net stop netlogon && net start netlogon
10
Validation finale

Validation complète de la réplication et de la santé des DC :

# Test de santé global : dcdiag /test:replications /v dcdiag /test:sysvol dcdiag /test:netlogons

Simuler une modification et vérifier la propagation :

# Créer un utilisateur test sur DC1, vérifier qu'il apparaît sur DC2 : New-ADUser -Name "TestRepl" -SamAccountName "TestRepl" -Enabled $false # Sur DC2 : Get-ADUser -Identity "TestRepl"

Supprimer l'utilisateur test une fois la validation faite :

Remove-ADUser -Identity "TestRepl" -Confirm:$false
💡 Si Get-ADUser retourne l'utilisateur sur DC2 sans erreur, la réplication AD + DFSR est pleinement opérationnelle.
Installation

• Rajouter un lecteur DVD à la VM backup.

• Parcourir l’ISO de Veeam.

• Aller dans “Ce PC” sur la VM Backup et lancer l’installation de Veeam.

• Installer Veeam Backup & Replication.

1 — Sauvegarde d'un Serveur

Aller dans InventoryPhysical and Cloud Infrastructure → clic droit → Add protection group…

Choisir Individual Computers → faire la nomenclature voulue (ex. SRV-DC01) → renseigner l’adresse du serveur + LOGs + option d’horairesApplyJob Now.

⚠️ Un Protection Group est un groupe d’ordinateurs que Veeam découvre et prépare pour être sauvegardés via un agent.

Dans le nouveau dossier créé sous Physical and Cloud Infrastructure → clic droit sur le serveur → Add to backup jobNew job.

Configurer : Server → Nomenclature de sauvegarde → sélectionner le ou les serveurs → Entire computer → cliquer sur Run the Job pour lancer une sauvegarde directe.

💡 Pour voir les jobs en cours : HOME en bas.
2 — Sauvegarder seulement les fichiers d'un serveur de fichiers

Après avoir ajouté le serveur dans un groupe physique, créer un JOB différent des jobs qui sauvegardent les serveurs complets.

Clic droit sur le serveur → Add to backup jobNew Job.

Dans l’onglet BACKUP MODE, sélectionner “File Level Backup”.

Cocher “The following file system objects” et pointer vers le ou les dossiers à sauvegarder.

Cliquer sur Run the Job à la dernière étape pour lancer la sauvegarde immédiatement.

3 — Sauvegarde d'une VM Imbriquée

• Lancer Veeam.

• Choisir le serveur de backup (localhost si c’est celui en question) → suivant jusqu’au lancement.

⚠️ Si message d’erreur → Services et démarrer tous les services Veeam à la main.

• Aller dans Backup InfrastructureBackup RepositoriesAdd backup repositories → choisir le dossier de backup (soit sur le serveur en question, soit sur un Serveur ou NAS à distance).

• On peut supprimer le dossier par défaut à partir de là.

• Aller dans InventoryVirtual InfrastructureAdd ServerHyper-V.

• Sélectionner Microsoft Hyper-V Server (standalone).

• Renseigner l’IP du serveur à sauvegarder.

• Saisir les credentials du serveur Hyper-V (NomServeur\administrateur + mot de passe).

⚠️ Pour test en LABO il faut désactiver le pare-feu sinon Veeam ne peut pas joindre le serveur — sinon, créer des règles de pare-feu entrant sur les ports requis.

Next jusqu’à Apply.

• Le serveur apparaît dans INVENTORY.

• Clic droit dessus → Add to backup JobNew Job (ou sélectionner un job déjà créé si on veut le joindre à cette tâche).

• Paramétrer les horaires → à la fin cliquer sur Run the Job pour lancer la première sauvegarde directement.

💡 Un Job est une tâche programmée qui indique à Veeam quoi sauvegarder, sauvegarder et quand le faire.
01
Prérequis

Machine A (source) — la machine avec les données à sauvegarder.

Disque de sauvegarde — capacité suffisante pour l’image. Initialiser et formater dans Windows avant de commencer.

Machine B (cible) — la machine qui recevra le clone.

Disque cible — doit être supérieur ou égal au disque sauvegardé de la machine A.

💡 L’ISO Clonezilla se place dans le lecteur DVD ou sur une clé USB. Les deux méthodes fonctionnent.
02
Démarrage de Clonezilla

Insérer l’ISO Clonezilla dans le lecteur DVD ou sur une clé USB de la machine.

Clic droit sur la VM → onglet Power“Power on to firmware”.

Dans le Boot Menu, sélectionner CD-Rom / USB.

Au démarrage : sélectionner Français → conserver les paramètres par défaut → Start Clonezilla.

03
Sauvegarde — Machine A (source)

Sélectionner device-image (pour créer une image disque).

Sélectionner local_dev.

Appuyer sur Entrée pour détecter les périphériques.

Sélectionner le disque de sauvegarde (disque destination).

Cocher “Passer la vérification du disque source”.

Sélectionner l’emplacement de l’image → faire directement DONE → Entrée (Clonezilla localisera automatiquement).

Choisir le mode Beginner (mode débutant).

Sélectionner savedisk (sauvegarde de tout le disque).

Nommer l’image — laisser le nom d’origine qui contient la date pour mieux s’y retrouver.

Choisir le disque à sauvegarder → sélectionner en appuyant sur Espace (une étoile ★ doit apparaître).

Mode de compression : 9 gzip.

Sélectionner “Ne pas vérifier à la fin de la création”.

Sélectionner “Vérifier l’image sauvegardée”.

Sélectionner “Ne pas chiffrer l’image”.

Sélectionner “Yes, copy log file” si vous souhaitez conserver les logs.

Choisir l’action à exécuter après la sauvegarde (ex. redémarrage) puis lancer la sauvegarde.

Valider toutes les confirmations. Suivre la progression.

🚨 Si une écriture en rouge apparaît, c’est une erreur — cause probable : disque de sauvegarde insuffisant ou mauvaise sélection.
04
Clonage — Machine B (cible)

Sur la machine B (cible), ajouter un disque virtuel existant en entrant le chemin du disque de sauvegarde de la machine A.

Insérer l’ISO Clonezilla (DVD ou USB) → démarrer sur Clonezilla comme à l’étape 2.

Sélectionner device-image.

Sélectionner local_dev.

Appuyer sur Entrée pour détecter les périphériques.

Sélectionner le disque de sauvegarde de la machine A.

Sélectionner l’image à restaurer → DONE.

Choisir le mode Beginner.

Sélectionner restoredisk (restaure tout le disque).

Sélectionner le disque cible de la machine B.

Suivre les mêmes étapes que pour la sauvegarde (confirmations, action de fin…).

🚨 Si écriture rouge → place insuffisante sur le disque cible. Vérifier que le disque B est bien supérieur ou égal au disque source.
💡 Une fois terminé, redémarrer sur la machine B — le clone de la machine A est opérationnel.
01
Installation du rôle WDS

Disposition : Serveur Active Directory + DHCP • Serveur WDS (peut être le même ou séparé).

Dans le Gestionnaire de serveur, ajouter le rôle Services de déploiement Windows (WDS).

Cocher l’option ci-dessous si le serveur WDS est membre du domaine.

02
Configuration initiale de WDS

Définir l’emplacement du dossier WDS — il est fortement conseillé de le placer sur un disque différent du système.

Cocher la case “Répondre à tous les ordinateurs” pour que WDS serve toutes les machines du réseau.

03
Création de l'image de démarrage

Dans la console WDS, clic droit sur “Images de démarrage”“Ajouter une image de démarrage”.

Sélectionner le fichier boot.wim dans le dossier Sources du DVD d’installation Windows.

Donner un nom reconnaissable à cette image de démarrage et poursuivre jusqu’à l’import.

04
Création de l'image de capture

Clic droit sur l’image de démarrage importée → “Créer une image de capture”.

Donner un nom reconnaissable et cliquer sur “Parcourir” pour définir l’emplacement.

🚨 L’image de capture doit être stockée au même endroit que l’image de démarrage.

Naviguer vers RemoteInstall\Boot\x64\Images. Si le fichier boot est visible, c’est le bon dossier. Nommer le fichier avec l’extension .wim“Ouvrir”.

Cliquer sur “Suivant” pour lancer la création. L’opération prend plusieurs minutes.

Une fois terminé, faire un clic droit sur le nom du serveur → Actualiser pour voir l’image de capture.

Désactiver l’image “Setup” (clic droit → Désactiver) pour ne conserver active que l’image de capture.

05
Création du Master (Sysprep)

Installer une VM Windows vierge. Vérifier qu’elle obtient une IP via DHCP. Effectuer les mises à jour si souhaité.

Ouvrir un invite de commande (cmd) et lancer Sysprep en mode Audit :

> C:\Windows\System32\Sysprep\Sysprep.exe /audit /reboot
💡 Respecter l’espace avant chaque / mais pas après.

Au reboot, la session Administrateur local s’ouvre automatiquement. Installer toutes les applications souhaitées.

Une fois les applications installées, généraliser le master :

> C:\Windows\System32\Sysprep\Sysprep.exe /generalize /oobe /shutdown
💡 /generalize : supprime les données propres (SID…) • /oobe : relance la configuration initiale au prochain démarrage • /shutdown : éteint la machine.
06
Récupération de l'image sur WDS (boot réseau)

Démarrer la VM master. Appuyer rapidement sur F12 pour booter sur le réseau (placer le switch réseau avant le disque dans l’ordre de boot).

La machine démarre automatiquement sur l’image de capture (la seule active).

Choisir le volume à capturer (ex. lecteur C) puis donner un nom reconnaissable à l’image.

Cocher “Charger l’image sur un serveur des services de déploiements”, saisir le nom du serveur WDS“Connexion”.

Fenêtre d’authentification : naviguer avec les flèches du clavier. Saisir NomServeur\administrateur + mot de passe. Descendre sur “Mémoriser les identifiants”Espace pour cocher → OK → Entrée.

Choisir un groupe d’images existant dans WDS pour stocker l’image d’installation.

Cliquer sur “Parcourir”. Utiliser le chemin de partage \\NomServeur\reminst et nommer le fichier (ex. win10.wim).

Cliquer sur “Suivant” pour lancer la capture. L’image .wim est créée et envoyée sur le serveur WDS.

07
Test de déploiement
🚨 L’image de démarrage “Setup” a été désactivée précédemment. Il faut la réactiver avant le déploiement.

Dans la console WDS, clic droit sur l’image “Setup”“Activer”. Désactiver l’image “Capture” pour ne pas avoir à choisir.

Démarrer une nouvelle VM vierge (sans OS). Elle boote automatiquement sur le réseau et trouve l’image boot.wim.

Le setup WDS s’ouvre. Cliquer sur “Suivant”.

S’authentifier au serveur (ou domaine) sous le format domaine_ou_serveur\utilisateur.

La liste des images d’installation disponibles s’affiche. Sélectionner l’image personnalisée capturée à l’étape précédente.

01
Modifier HKEY_USERS\.DEFAULT

Ouvrir l’Éditeur du Registre : Win + R → taper regeditEntrée.

Naviguer vers la clé :

HKEY_USERS\.DEFAULT\Control Panel\Keyboard

Double-cliquer sur InitialKeyboardIndicators.

Saisir 2 dans le champ Données de la valeurOK.

02
Modifier HKEY_CURRENT_USER

Naviguer vers la seconde clé :

HKEY_CURRENT_USER\Control Panel\Keyboard

Double-cliquer sur InitialKeyboardIndicators, saisir 2OK. Fermer le Registre.

💡 Redémarrer — le pavé numérique sera actif automatiquement à chaque démarrage.
03
Alternative — Script REG prêt à l'emploi

Télécharger et exécuter le script .reg ci-dessous — il applique les deux modifications automatiquement.

🚨 Exécuter en tant qu’administrateur, accepter l’avertissement, puis redémarrer.
1 — Restauration d'un Serveur Bare Metal
01
Récupérer l'ISO sur le serveur de backup

Récupérer l’ISO de la backup sur le serveur de backup.

02
Partager le dossier de la VM

Avant de continuer, partager le dossier où se trouve la VM. Pas besoin de modifier les permissions.

03
Copier l'ISO sur l'hôte et préparer la VM

L’ISO se trouve dans les Documents du serveur de backup. Copier-coller l’ISO sur l’hôte.

Ajouter un lecteur DVD sur la machine à restaurer et y monter l’ISO.

⚠️ Ne pas oublier de supprimer l’ancien disque dur et d’en créer un vierge.
04
Configurer l'ordre de démarrage

Mettre le lecteur DVD en premier pour le démarrage — sur l’emplacement et sur le microprogramme.

05
Démarrer la machine sur l'ISO Veeam

Démarrer la machine et appuyer vite pour booter sur le lecteur DVD.

Quand la machine démarre, restaurer avec Veeam Recovery Media.

06
Sélectionner Veeam Agent

Sélectionner Veeam Agent pour lancer la restauration.

07
Choisir Network Storage

Sélectionner Network Storage.

08
Choisir Shared Folder

Choisir Shared Folder pour le dossier partagé.

09
Renseigner les informations du serveur de backup

Renseigner les informations du serveur de backup pour joindre le dossier partagé.

10
Sélectionner la sauvegarde et lancer la restauration

Sélectionner la sauvegarde à restaurer.

Cliquer sur Suivant jusqu’au lancement — la machine récupère la backup en intégralité.

💡 Une fois terminé, retirer le lecteur DVD et redémarrer.
2 — Restauration d'une VM Imbriqué

Pour tester la sauvegarde en LABO, on va “casser” la VM imbriquée pour qu’elle ne démarre plus, par exemple avec :

bcdedit /delete {default}
🚨 A taper dans la VM imbriquée et pas dans la VM de base !

HOME en haut → RestoreMicrosoft Hyper-V.

Restore from backupEntire VM restoreEntire VM RestoreAdd from infrastructure → sélectionner le serveur et OK.

• Sélectionner la VM à restaurer → suivant jusqu’à la fin.

3 — Restauration d'un Fichier supprimé par erreur

• Aller dans HomeBackupsDisk → clic droit sur le backup en question → Restore Guest Files.

• Choisir la date de la sauvegardeBrowse.

• Dans la fenêtre qui s’ouvre, parcourir pour trouver le fichier perdu → clic droit → RestoreOverwrite.

4 — Restauration d'un objet Active Directory
🚨 Le serveur Active Directory doit utiliser le même système d’exploitation que celui du serveur de sauvegarde utilisé lors de la sauvegarde. Si le système d’exploitation est différent, la restauration d’un objet Active Directory ne sera pas possible.

Méthode 1 — Restauration directe depuis Veeam Explorer

1. Aller dans HomeBackupsDisk → clic droit sur le backup du DC → Restore application itemsMicrosoft Active Directory objects…

2. Veeam Explorer for Active Directory s’ouvre. Naviguer dans l’arborescence AD pour trouver l’objet à restaurer. Clic droit → Restore objects to NomDeLaMachine.domaine.

⚠️ Si une erreur survient lors de la restauration d’une GPO supprimée, c’est généralement un problème de permissions insuffisantes sur le SYSVOL. Ouvrir l’explorateur de fichiers, accéder au chemin UNC, entrer les identifiants admin en cochant “Mémoriser les identifiants”, puis réessayer.

Méthode 2 — Restore objects to... (avec Restore Wizard)

1. Depuis Veeam Explorer, clic droit sur l’objet → Restore objects to…

2. Le Restore Wizard s’ouvre. Renseigner le serveur cible → sélectionner “Use the following account” → entrer les identifiants du domaine (tssr.lab\Administrateur) → Next.

3. Vérifier les options de restauration → cliquer sur Restore.

💡 Cette méthode utilise des identifiants de domaine explicites — aucun problème de permissions à prévoir.
📋 Architecture cible : Machine Ubuntu Server (IP fixe 192.168.0.100) + Windows Server DHCP (192.168.0.250) sur le même réseau /24. FOG gère le PXE, Windows gère le DHCP.
📋
Prérequis — Ce qu’il faut vérifier avant de commencer
⚠️ Ne pas sauter cette étape. Un réseau mal configuré ou une IP qui change peut casser entièrement l’installation FOG.

Prérequis logiciels / système

  • Ubuntu Server 20.04 LTS ou 22.04 LTS, installation minimale.
  • Accès sudo ou compte root.
  • Connexion Internet fonctionnelle pendant l’installation.
  • Minimum 20 Go d’espace disque libre et 2 Go de RAM.

Prérequis réseau — IP fixe obligatoire

FOG est très sensible aux changements d’IP. Éditer le fichier Netplan :

sudo nano /etc/netplan/01-netcfg.yaml

Exemple de configuration IP fixe :

network: version: 2 ethernets: eth1: dhcp4: no addresses: - 192.168.0.100/24 routes: - to: default via: 192.168.0.250 nameservers: addresses: [192.168.0.250]
⚠️ Remplacer eth1 par le nom réel de votre interface (vérifier avec ip a). Le YAML est sensible à l’indentation — espaces uniquement, pas de tabulations.

Appliquer et vérifier :

sudo netplan apply ip a ping -c 3 192.168.0.250

Résumé des paramètres réseau

ParamètreValeur exempleRôle
IP du serveur FOG192.168.0.100IP fixe Ubuntu
Masque255.255.255.0/24
Passerelle / DNS192.168.0.250Windows Server (DHCP)
Interface réseaueth1À adapter selon ip a
01
Préparation de la machine Ubuntu (vierge)

Mettre le système à jour et installer Git.

sudo apt update && sudo apt upgrade -y
sudo apt install git -y
02
Récupération de FOG (Git)

Télécharger les sources officielles de FOG depuis GitHub.

cd ~ git clone https://github.com/FOGProject/fogproject.git cd fogproject/bin
03
Lancement de l’installation
sudo ./installfog.sh

Répondre aux questions comme ceci :

#QuestionRéponseNote
1What version of Linux…2Ubuntu détecté automatiquement
2Installation TypeNNormal
3Interfaceeth1Interface avec l’IP 192.168.0.100
4Router Address192.168.0.250Votre Windows Server
5DNS Address192.168.0.250
6Using FOG DHCPNWindows gère le DHCP
7InternationalizationN
8HTTPS SupportNPlus simple pour commencer
📌 Vérifier que “DHCP Service” est sur No dans le récapitulatif, puis taper Y pour lancer l’installation.
04
Phase de la base de données (le moment Web)
🚫 Le script va s’arrêter avec un message blanc sur fond noir. Ne plus toucher au terminal.

1. Aller sur le Windows Server et ouvrir un navigateur :

http://192.168.0.100/fog/management

2. Cliquer sur le bouton bleu “Install/Update Now”.

3. Attendre le formulaire de connexion (Login).

4. Revenir sur l’Ubuntu et appuyer sur Entrée.

05
Configuration du DHCP sur Windows Server

Sur le rôle DHCP Windows, configurer les options d’étendue suivantes :

OptionValeurDescription
066192.168.0.100Boot Server Host Name — IP du serveur FOG
067 (BIOS)undionly.kpxePC classiques — mode BIOS legacy
067 (UEFI)ipxe.efiPC modernes — mode UEFI
💡 Parc mixte BIOS/UEFI → configurer des classes de périphériques pour distribuer automatiquement le bon fichier.
06
Test final — Connexion à l’interface Web
ChampValeur
URLhttp://192.168.0.100/fog/management
Utilisateurfog
Mot de passepassword
🔒 Changer le mot de passe par défaut immédiatement après la première connexion.

📋 Procédure d’enregistrement d’un hôte (Full Registration)

01
Préparation du client (Boot Réseau)

Le PC doit chercher le serveur FOG avant de démarrer son propre système.

1. Démarrer ou redémarrer la machine virtuelle.

2. Appuyer sur la touche Boot Menu dès le logo de boot — généralement F12, parfois Esc ou F10.

3. Sélectionner Network Boot ou EFI Network selon le mode.

4. Attendre l’affichage de l’IP. Le menu FOG (menu bleu) apparaît.

02
L’inventaire sur le client

1. Descendre sur Perform Full Host Registration and Inventory et valider avec Entrée.

2. Le système charge le “FOS Linux”. Patienter jusqu’à la première question.

3. Répondre aux questions :

ChampQue faire
HostnameNom unique (ex : CLI-DEBIAN-01) puis Entrée
Image ID / Primary User / Department / LocationEntrée à chaque fois (laisser vide)
Associate with groupsn puis Entrée
Assign to default product keyn puis Entrée

4. À “Are you sure you want to register this host?” — Entrée.

5. Le PC s’éteint ou redémarre. C’est fini pour la partie client.

03
Validation sur le serveur (interface Web)

1. Ouvrir l’interface Web FOG : http://192.168.0.100/fog/management

2. Cliquer sur l’onglet Hosts (icône avec deux personnages).

3. Cliquer sur List All Hosts.

4. Le PC CLI-DEBIAN-01 doit apparaître dans le tableau.

✅ Hôte enregistré — vous pouvez maintenant lui assigner une image et déployer.

📸 Procédure de capture d’une image

📌 Prérequis : Le client doit déjà être enregistré dans FOG avant de pouvoir lancer une capture.
01
Configuration du serveur (FOG Web GUI)

Dans l’onglet Images, définir les caractéristiques du conteneur qui stockera les données.

  • Image Name : Nom logique (ex : Img-Debian-Base).
  • Image Type : Single Disk - Resizable — adapte l’image à différentes tailles de disques.
  • Operating System : Linux — FOG utilise les bons outils de compression.

Dans la fiche du client enregistré (ex : Debian-Client-T), sélectionner l’image dans le champ Host Image.

💡 Cette liaison indique au serveur : “Quand ce PC fera une capture, envoie les données dans ce dossier précis.”
02
Lancement de la tâche (Tasking)

Dans l’onglet Basic Tasks, cliquer sur Capture. Le serveur passe en mode écoute.

Fenêtre de confirmation :

  • Schedule instant : Tâche disponible immédiatement.
  • Wake on LAN : Réveille le PC à distance si compatible.
  • Cliquer sur Task pour valider.
03
Exécution sur le client (Partclone)

Booter le PC client en PXE. FOG démarre automatiquement la capture.

  • Partclone copie uniquement les blocs utilisés — plus rapide qu’une copie bit-à-bit.
  • Partition FAT32 (boot EFI) visible à 100 %.
  • Une fois terminé, le PC s’éteint automatiquement.
✔ L’image est disponible dans FOG pour être déployée sur n’importe quelle machine enregistrée.

🚀 Procédure de déploiement d’une image

01
Préparation de la machine cible (le nouveau PC)

Utiliser une nouvelle VM vide sur le même LAN Segment.

  • Démarrage PXE : Booter sur le réseau (F12).
  • Enregistrement : Effectuer un Full Host Registration and Inventory. Nommer le PC (ex : Debian-Client-02).
  • Une fois l’inventaire fini, le PC s’éteint.
02
Configuration du déploiement (interface Web FOG)

Aller dans Hosts → List All Hosts, cliquer sur Debian-Client-02.

  • Dans Host Image, sélectionner Img-Debian-Base puis cliquer Update.
  • Onglet Basic Tasks → cliquer Deploy → cocher Schedule with shutdownTask.
03
Exécution du transfert (sur le PC cible)

Rallumer Debian-Client-02 et forcer le boot PXE (F12).

  • Le client détecte la tâche de déploiement en attente.
  • Partclone affiche la progression du téléchargement depuis le serveur vers le disque local.
  • À 100 %, le PC redémarre — clone exact du Debian original installé en quelques minutes.
✔ La même image peut être déployée simultanément sur plusieurs machines enregistrées (Multicast).

📦 Déploiement d’une application (Snapins)

⚠️ Prérequis : Le FOG Client doit être installé sur la machine cliente. Sans lui, les Snapins ne fonctionneront pas. Télécharger le FOG Client tout en bas de la page d’accueil FOG.
01
Création du snapin

Dans l’interface Web FOG, aller dans l’onglet Snapin Management (icône disquettes en haut) puis cliquer Create New Snapin.

  • Snapin Name : Nom logique du snapin (ex : Putty).
  • Snapin Type : Normal Snapin.
  • Snapin Template : MSI pour un installeur .msi.
  • Snapin Run With : msiexec.exe.
  • Snapin Run With Argument : /i.
  • Snapin File : Sélectionner le fichier installeur (ex : putty-64bit-0.83-installer.msi).
  • Snapin Arguments : /quiet /qn /norestart pour une installation silencieuse.
02
Identification du snapin sur la machine cible

Dans la fiche de la machine cliente (Hosts → List All Hosts → cliquer sur le PC), aller dans l’onglet Snapins.

  • Cocher “Check here to see what snapins can be added” pour afficher la liste.
  • Sélectionner le snapin Putty dans la liste Add Snapins.
  • Cliquer sur le bouton Add pour l’associer à cet hôte.
03
Ajout de la tâche de déploiement

Dans la même fiche client, aller dans l’onglet Basic Tasks. En bas de la liste des tâches, cliquer sur Single Snapin.

04
Confirmation de la tâche

Sélectionner le snapin à installer, choisir Schedule instant et cliquer Task.

✔ Une fois la tâche validée, dès que le FOG Client sur la machine détecte la demande, il installe automatiquement l’application — sans intervention de l’utilisateur.

Introduction — Linux vs Windows

Linux est un système d'exploitation open source basé sur Unix. Contrairement à Windows, tout se gère principalement en ligne de commande (terminal). C'est particulièrement vrai pour les serveurs Debian/Ubuntu.

Quelques différences clés à retenir quand on vient de Windows :

WindowsLinux (Debian/Ubuntu)
C:\Users\nom/home/nom
Explorateur de fichiersTerminal + commandes
Panneau de configurationFichiers de config dans /etc
Gestionnaire de tâchestop / htop
Notepadnano / vim
Administrateurroot / sudo
💡 Sous Linux, les majuscules comptent : Fichier.txt et fichier.txt sont deux fichiers différents.

Arborescence — Structure des répertoires

Linux n'a pas de lettres de lecteur (C:, D:…). Tout part d'une seule racine : /

RépertoireContenu
/Racine du système (équivalent C:\)
/home/nomDossier personnel de l'utilisateur
/rootDossier personnel du superutilisateur root
/etcFichiers de configuration système
/var/logJournaux système (logs)
/tmpFichiers temporaires
/bin, /usr/binCommandes et programmes installés
/srvDonnées des services (web, FTP…)

Navigation — Se déplacer dans les répertoires

01
pwd — Où suis-je ?

Affiche le répertoire courant (Print Working Directory).

pwd # Résultat : /home/utilisateur
💡 Équivalent de regarder la barre d'adresse dans l'Explorateur Windows.
02
ls — Lister le contenu

Affiche le contenu d'un répertoire.

ls # Liste simple ls -l # Liste détaillée (permissions, taille, date) ls -la # Idem + fichiers cachés (commençant par .) ls -lh # Tailles lisibles (Ko, Mo…) ls /etc # Lister un autre répertoire
💡 ls -la est la commande la plus complète : elle montre tout, y compris les fichiers cachés.
03
cd — Changer de répertoire

Permet de changer de répertoire (Change Directory).

cd /etc # Aller dans /etc (chemin absolu) cd Documents # Aller dans Documents (chemin relatif) cd .. # Remonter d'un niveau (dossier parent) cd ~ # Aller dans son dossier personnel (/home/nom) cd - # Retourner au répertoire précédent
⚠️ Chemin absolu : commence par / — toujours valide depuis n'importe où.
Chemin relatif : depuis le répertoire courant.

Fichiers & Dossiers — Créer, copier, déplacer, supprimer

04
mkdir / touch — Créer

Créer des répertoires et des fichiers vides.

mkdir mon_dossier # Créer un dossier mkdir -p a/b/c # Créer toute une arborescence touch fichier.txt # Créer un fichier vide touch f1.txt f2.txt # Créer plusieurs fichiers
05
cp — Copier

Copier fichiers et dossiers.

cp fichier.txt copie.txt # Copier un fichier cp fichier.txt /home/user/ # Copier vers un autre répertoire cp -r dossier/ /tmp/sauvegarde/ # Copier un dossier (-r = récursif)
06
mv — Déplacer / Renommer

Déplacer ou renommer fichiers et dossiers.

mv ancien.txt nouveau.txt # Renommer mv fichier.txt /tmp/ # Déplacer mv dossier/ /var/backup/dossier/ # Déplacer un dossier
💡 mv sert à la fois à déplacer ET renommer — c'est la même commande.
07
rm — Supprimer

Supprimer fichiers et dossiers.

rm fichier.txt # Supprimer un fichier rm -r dossier/ # Supprimer un dossier (récursif) rm -rf dossier/ # Forcer la suppression sans confirmation
🚨 rm -rf supprime définitivement sans corbeille. Pas de Ctrl+Z possible.
08
cat / less / grep — Lire et chercher

Afficher et rechercher dans les fichiers.

cat fichier.txt # Afficher tout le contenu less fichier.txt # Affichage paginé (q pour quitter) head -n 10 fichier.txt # Afficher les 10 premières lignes tail -n 10 fichier.txt # Afficher les 10 dernières lignes tail -f /var/log/syslog # Suivre un log en temps réel grep "mot" fichier.txt # Rechercher un mot dans un fichier grep -r "mot" /etc/ # Rechercher récursivement dans un dossier
💡 tail -f est très utile pour surveiller les logs en direct (serveur web, SSH…).

Permissions & Utilisateurs

09
Lire les permissions

Sous Linux, chaque fichier a des permissions pour 3 entités :

EntitéSignification
u (user)Le propriétaire du fichier
g (group)Le groupe propriétaire
o (other)Tous les autres utilisateurs

Chaque entité peut avoir 3 droits : r (lire), w (écrire), x (exécuter).

ls -l fichier.txt # -rwxr-xr-- 1 alice devs 1024 jan 10 fichier.txt # ^^^ = propriétaire : rwx (lecture+écriture+exécution) # ^^^ = groupe : r-x (lecture+exécution) # ^^^ = autres : r-- (lecture seulement)
10
chmod — Modifier les permissions

Modifier les permissions avec chmod.

chmod 755 script.sh # rwxr-xr-x (notation octale) chmod +x script.sh # Ajouter le droit d'exécution chmod -w fichier.txt # Retirer le droit d'écriture chmod u+x,g-w fichier.txt # Ajouter x au proprio, retirer w au groupe chmod -R 755 dossier/ # Appliquer récursivement
Valeur octalePermissionsUtilisation typique
777rwxrwxrwxTout le monde peut tout faire (dangereux)
755rwxr-xr-xScripts, dossiers publics
644rw-r--r--Fichiers de config standards
600rw-------Clés SSH, fichiers privés
11
chown — Changer le propriétaire

Changer le propriétaire ou le groupe d'un fichier.

chown alice fichier.txt # Changer le propriétaire chown alice:devs fichier.txt # Changer propriétaire ET groupe chown -R www-data /var/www/ # Récursivement (serveur web)
12
sudo / su — Élévation de privilèges

sudo permet d'exécuter une commande en tant que root (administrateur) sans changer d'utilisateur.

sudo apt update # Exécuter en tant que root sudo -i # Ouvrir un shell root su - alice # Changer d'utilisateur whoami # Afficher l'utilisateur courant id # Afficher uid, gid et groupes passwd # Changer son mot de passe sudo passwd alice # Changer le MDP d'un autre user
💡 Préférer sudo commande à sudo -i pour limiter les risques d'erreur en root.
13
Gérer les utilisateurs et groupes

Gérer les utilisateurs et les groupes : les créer, les modifier, les supprimer et gérer leurs appartenances.

📋 Trois étapes pour partager un dossier

  1. Créer un groupe pour les utilisateurs qui partageront le dossier
  2. Créer/ajouter les utilisateurs à ce groupe
  3. Assigner le groupe au dossier avec les bonnes permissions

1️⃣ Créer un groupe

sudo groupadd partage # Créer un groupe appelé "partage" sudo groupadd développeurs # Exemple : groupe pour des devs cat /etc/group # Lister tous les groupes existants getent group partage # Voir les infos du groupe "partage"

2️⃣ Créer un utilisateur

sudo adduser alice # Créer alice (interactif - demande le mot de passe) sudo useradd -m -s /bin/bash bob # Variante non-interactive sudo useradd -m -G partage chloé # Créer chloé ET l'ajouter au groupe "partage" cat /etc/passwd # Lister tous les utilisateurs whoami # Afficher l'utilisateur courant id # Afficher uid, gid et groupes de l'utilisateur courant
💡 adduser est interactif (recommandé pour les débutants). useradd est plus basique mais plus rapide.

3️⃣ Ajouter un utilisateur à un groupe

sudo usermod -aG partage alice # Ajouter alice au groupe "partage" sudo usermod -aG sudo bob # Ajouter bob au groupe "sudo" (droits admin) sudo usermod -aG groupe1,groupe2 eve # Ajouter eve à plusieurs groupes id alice # Voir tous les groupes d'alice groups alice # Liste simplifiée des groupes d'alice
⚠️ L'option -a (append) est importante : elle AJOUTE au groupe, sans retirer des autres groupes.

Cas d'usage complet : créer un partage collaboratif

# 1. Créer le groupe sudo groupadd partage # 2. Créer les utilisateurs et les ajouter au groupe sudo adduser alice sudo usermod -aG partage alice sudo adduser bob sudo usermod -aG partage bob # 3. Créer le dossier et l'assigner au groupe sudo mkdir /home/partage/documents sudo chown -R :partage /home/partage/documents sudo chmod -R 770 /home/partage/documents # 4. Vérifier ls -ld /home/partage/documents id alice

Opérations avancées

sudo deluser alice # Supprimer un utilisateur (garder les fichiers) sudo deluser --remove-home bob # Supprimer bob + son dossier /home/bob sudo groupdel partage # Supprimer un groupe sudo passwd alice # Changer le mot de passe d'alice sudo usermod -s /bin/nologin eve # Bloquer eve (elle ne peut plus se connecter)
💡 Pour un partage de fichiers sur le réseau (Samba), préférez une structure comme :
  • Créer un groupe spécifique : sudo groupadd partage_samba
  • Ajouter les utilisateurs à ce groupe
  • Assigner le dossier au groupe avec chown :partage_samba
  • Permissions : chmod 770 sur le dossier

Gestion des paquets — apt

14
update / upgrade — Mettre à jour

apt est le gestionnaire de paquets de Debian/Ubuntu. Il permet d'installer, mettre à jour et supprimer des logiciels.

sudo apt update # Mettre à jour la liste des paquets sudo apt upgrade # Installer les mises à jour disponibles sudo apt full-upgrade # Mise à jour complète (peut supprimer des paquets)
💡 Toujours faire apt update avant apt install pour avoir les dernières versions.
15
install / remove — Installer et supprimer

Installer et supprimer des paquets.

sudo apt install nom-paquet # Installer un paquet sudo apt install vim curl wget # Installer plusieurs paquets sudo apt remove nom-paquet # Désinstaller (garde la config) sudo apt purge nom-paquet # Désinstaller + supprimer la config sudo apt autoremove # Nettoyer les paquets inutiles
16
search / show — Chercher un paquet

Rechercher un paquet et obtenir des informations.

apt search nginx # Rechercher un paquet apt show nginx # Informations détaillées dpkg -l # Lister tous les paquets installés dpkg -l | grep nginx # Vérifier si nginx est installé

Réseau sous Linux

17
ip a — Configuration des interfaces

Afficher la configuration réseau des interfaces.

ip a # Afficher toutes les interfaces (équiv. ipconfig /all) ip a show eth0 # Afficher une interface spécifique ip link # Afficher l'état des interfaces hostname -I # Afficher les IPs de la machine cat /etc/hostname # Afficher le nom d'hôte
💡 ip a est l'équivalent Linux de ipconfig /all sous Windows.
18
ping / traceroute / dig — Diagnostics

Tester la connectivité et diagnostiquer le réseau.

ping 8.8.8.8 # Tester la connexion (Ctrl+C pour arrêter) ping -c 4 google.com # Envoyer exactement 4 paquets traceroute google.com # Tracer le chemin réseau nslookup google.com # Résolution DNS dig google.com # Résolution DNS détaillée curl -I https://google.com # Tester une URL HTTP
19
ip route / ss — Routes et connexions

Afficher et gérer les routes et connexions actives.

ip route # Afficher la table de routage ip route show # Idem ss -tuln # Ports en écoute (équiv. netstat) ss -tunp # Ports + processus associés netstat -tuln # Ancienne commande (si installée)
20
Netplan — Configuration IP statique

Configuration réseau sur Debian/Ubuntu Server via Netplan.

cat /etc/netplan/*.yaml # Afficher la config réseau sudo nano /etc/netplan/01-netcfg.yaml # Éditer la config
# Exemple de fichier netplan (IP statique) : network: version: 2 ethernets: eth0: addresses: - 192.168.1.10/24 gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4]
sudo netplan apply # Appliquer les changements sudo netplan try # Tester (annulation auto si erreur)
🚨 Toujours faire netplan try avant netplan apply sur un serveur distant — en cas d'erreur, la connexion SSH serait coupée.

Éditeurs de texte — nano & vim

21
nano — Éditeur simple

nano est l'éditeur le plus simple — idéal pour débuter. Les raccourcis sont affichés en bas de l'écran.

nano fichier.txt # Ouvrir ou créer un fichier sudo nano /etc/hostname # Éditer un fichier système
RaccourciAction
Ctrl + OEnregistrer le fichier
EntréeConfirmer le nom du fichier
Ctrl + XQuitter nano
Ctrl + KCouper une ligne
Ctrl + UColler
Ctrl + WRechercher
Ctrl + GAide
💡 Pour les débutants : nano est recommandé. Il suffit de taper, puis Ctrl+OCtrl+X pour sauvegarder et quitter.
22
vim — Éditeur avancé

vim est plus puissant mais a une courbe d'apprentissage. Il fonctionne avec des modes.

vim fichier.txt # Ouvrir vim sudo vim /etc/ssh/sshd_config # Éditer un fichier système
Mode / CommandeAction
iPasser en mode INSERTION (écriture)
ÉchapRetourner en mode NORMAL
:wEnregistrer
:qQuitter
:wqEnregistrer et quitter
:q!Quitter SANS enregistrer (forcer)
/motRechercher "mot"
ddSupprimer une ligne
yy / pCopier / Coller une ligne
🚨 Piège classique : si vim est ouvert et que vous ne savez pas quitter → appuyer sur Échap puis taper :q! et Entrée.

Commandes utiles & astuces

23
Raccourcis et commandes du quotidien

Les commandes indispensables du quotidien.

clear # Vider le terminal history # Voir l'historique des commandes !! # Relancer la dernière commande sudo !! # Relancer la dernière commande en sudo Ctrl + C # Annuler/interrompre une commande Ctrl + L # Vider le terminal (= clear) Ctrl + R # Rechercher dans l'historique Tab # Auto-complétion (très utile !) man ls # Manuel d'une commande (q pour quitter)
💡 La touche Tab est ton meilleur ami : elle auto-complète les commandes et les noms de fichiers.
24
top / ps / df — Système et processus

Surveiller les processus et les ressources système.

top # Moniteur système en temps réel htop # Version améliorée (sudo apt install htop) ps aux # Lister tous les processus ps aux | grep nginx # Chercher un processus spécifique kill 1234 # Arrêter le processus n°1234 kill -9 1234 # Forcer l'arrêt pkill nginx # Arrêter par nom df -h # Espace disque (toutes les partitions) du -sh /var/log/ # Taille d'un dossier free -h # Mémoire RAM utilisée
25
systemctl — Gérer les services

Gérer les services (démons) avec systemd.

sudo systemctl start nginx # Démarrer un service sudo systemctl stop nginx # Arrêter un service sudo systemctl restart nginx # Redémarrer sudo systemctl reload nginx # Recharger la config sans couper sudo systemctl enable nginx # Démarrer au boot sudo systemctl disable nginx # Ne plus démarrer au boot sudo systemctl status nginx # Voir l'état du service journalctl -u nginx # Voir les logs d'un service journalctl -xe # Logs système récents (erreurs)
💡 systemctl status est la première commande à utiliser quand un service ne fonctionne pas.

Filtrage & Pipes — La puissance de Linux

26
Le Pipe ( | ) — Connecter les commandes entre elles

Le Pipe (représenté par la barre verticale |) est l'un des outils les plus puissants de Linux. Il sert de "tuyau" de communication entre deux programmes.

Le concept : Au lieu d'afficher le résultat d'une commande à l'écran, le pipe le redirige directement pour qu'il serve de "matière première" à la commande suivante.

Comment ça fonctionne ?

commande_A | commande_B
  • commande_A s'exécute et génère des données.
  • Le | attrape ces données au passage.
  • commande_B reçoit ces données, les traite (les filtre, les trie) et affiche le résultat final.
💡 Astuce clavier : Sur un clavier AZERTY (Windows), le symbole s'obtient avec AltGr + 6.

Exemple concret :

Si vous voulez chercher si l'utilisateur "micro" existe dans la liste des utilisateurs du système :

cat /etc/passwd | grep "micro"

Ici, cat lit tout le fichier, et grep ne garde que la ligne qui nous intéresse.

27
grep — Rechercher du texte (Filtrer)

grep analyse un texte ou un fichier et n'affiche que les lignes contenant un mot-clé précis.

grep "erreur" /var/log/syslog # Cherche le mot "erreur" dans un fichier ls /etc | grep "conf" # Liste /etc et ne garde que ce qui contient "conf"

Options indispensables :

  • -i : Ignore la casse (ne fait pas la différence entre "A" et "a").
  • -v : Inverse la recherche (affiche tout SAUF le mot-clé).
  • -r : Recherche récursive dans tous les fichiers d'un dossier.
Exemple concret de combo :
ip a | grep "inet "
Affiche uniquement les lignes contenant vos adresses IP en filtrant le surplus de la commande ip a.

1. C'est quoi RDS ?

01
Définition et principe

Le Remote Desktop Services (RDS) est une technologie Microsoft qui permet à des employés de se connecter à distance sur un serveur de l'entreprise et d'y utiliser des logiciels — comme s'ils étaient au bureau, depuis n'importe où.

🍕 Analogie : Imagine une salle informatique virtuelle. Chaque employé arrive avec son écran (PC, tablette, téléphone) et se connecte à la salle. Il voit son bureau, ses applis, ses fichiers — mais tout tourne en réalité sur le serveur. Son PC à lui ne fait que transmettre les clics de souris et afficher l'image.
En résumé : L'application tourne sur le serveur, pas sur le poste de l'utilisateur. Le réseau transporte uniquement l'image de l'écran et les clics.

2. Les rôles RDS — qui fait quoi ?

02
RD Session Host (RDSH) — Le serveur de travail

C'est le cœur du système. C'est sur ce serveur que tournent réellement toutes les applications et tous les bureaux des utilisateurs.

🍕 Analogie : C'est la cuisine d'un restaurant. Tous les plats sont préparés ici. Les clients (utilisateurs) ne la voient pas, mais c'est là que tout se passe. Chaque cuisinier prépare la commande d'un client sans perturber celle du voisin.
Sessions isolées par utilisateurPlusieurs serveurs RDSH possiblesRépartition de charge

Exemple concret — PME de 50 personnes : Chacun retrouve son bureau personnalisé, ses fichiers, ses logiciels. L'entreprise n'a pas besoin d'acheter 50 PC puissants : des petits PC ou même des tablettes suffisent côté utilisateurs.

03
RD Connection Broker (RDCB) — L'aiguilleur

C'est lui qui reçoit les demandes de connexion et décide sur quel serveur envoyer chaque utilisateur.

🍕 Analogie : C'est l'hôte d'accueil d'un grand restaurant avec plusieurs salles. Il regarde quelle salle est la moins bondée et t'y place. Si tu avais déjà une table réservée (session existante), il te ramène exactement là où tu étais assis.
Répartition de chargeReconnexion automatiqueGestion des sessions

Exemple : Marc travaille sur un rapport Word. Sa connexion coupe à 14h. À 14h05, il se reconnecte. Le Broker retrouve sa session. Son document Word est toujours ouvert à la même page.

04
RD Web Access (RDWA) — Le portail web

Ce rôle publie une page web sur laquelle les utilisateurs voient toutes les applications auxquelles ils ont accès. Ils cliquent sur une icône et ça se lance.

Accès via navigateurPas d'installation clientPortail RemoteApp

Exemple : Un consultant ouvre le portail web, entre ses identifiants, clique sur l'icône ERP — le logiciel s'ouvre sans rien installer sur sa machine.

05
RD Gateway (RDGW) — Le vigile sécurisé

Ce rôle sert de point d'entrée sécurisé pour les connexions qui viennent d'Internet. Sans lui, il faudrait ouvrir le port 3389 sur le réseau de l'entreprise — ce qui est dangereux.

⚠️ Sans RD Gateway : port 3389 exposé sur Internet = attaqué en permanence par des robots.
Avec RD Gateway : tout passe par le port 443 (HTTPS). Discret, chiffré, bien mieux protégé. Pas besoin de VPN.
Port 443 (HTTPS)Remplace le VPN pour RDSChiffrement fort
06
RD Licensing (RDL) — Le compteur de licences

Ce rôle gère les licences d'accès (CAL) qui autorisent légalement chaque utilisateur ou chaque appareil à se connecter au serveur RDS.

⚠️ Piège classique — les 120 jours : RDS fonctionne sans licence pendant 120 jours (mode grâce), puis bloque toutes les connexions — y compris les administrateurs.
➜ Toujours configurer RD Licensing dès le départ.

3. Protocole RDP & Accès

07
Ce qui circule sur le réseau

RDS utilise le protocole RDP (Remote Desktop Protocol) pour faire circuler les informations entre l'utilisateur et le serveur. RDP ne transporte pas les fichiers ni les logiciels — seulement l'image de l'écran.

💡 C'est pour ça que RDS fonctionne même avec une connexion lente : seule l'image de l'écran transite. Une page Word affichée pèse quelques kilo-octets, pas le fichier Word complet.
Fibre → image HD, son HD4G/Wi-Fi faible → qualité réduite autoMauvaise connexion → session vivante côté serveur
08
Bureau complet vs RemoteApp

Bureau complet : L'utilisateur obtient un bureau Windows entier hébergé sur le serveur. Idéal pour les télétravailleurs.

RemoteApp : Seule l'application publiée s'affiche dans une fenêtre sur le bureau local de l'utilisateur. Idéal pour les logiciels métier lourds (ERP, comptabilité, CAO).

🍕 Analogie RemoteApp : Tu commandes un seul plat à emporter. Tu ne t'assieds pas dans la salle, tu ne vois pas la cuisine. Tu reçois juste ton plat dans une boîte — c'est exactement ce que fait RemoteApp.

4. Sessions, Licences CAL & Sécurité

09
États d'une session & bonnes pratiques
Active → utilisateur travailleDéconnectée → session tourne sans utilisateurEn veille → sans activité depuis un moment
⚠️ Déconnexion ≠ Fermeture de session :
Déconnexion : la session reste active sur le serveur (consomme RAM + CAL).
Fermeture de session (log off) : toutes les applications se ferment, la session est supprimée.
💡 Configurez une limite automatique : sessions déconnectées depuis plus de 30 min se ferment toutes seules.
10
Licences CAL — User CAL vs Device CAL

User CAL : Attribuée à un utilisateur. Il peut se connecter depuis autant d'appareils qu'il veut. Idéal pour les commerciaux qui changent d'appareil.

Device CAL : Attribuée à un appareil. N'importe quel utilisateur peut s'y connecter. Idéal pour les postes partagés (ateliers, hôpitaux).

⚠️ Les CAL s'achètent en quantité. Une CAL RDS s'ajoute toujours à la licence Windows Server (qui ne couvre que 2 connexions admin par défaut).
11
Sécurité RDS — Points essentiels

NLA (Network Level Authentication) : Oblige l'utilisateur à prouver son identité AVANT que le serveur ouvre une session. Toujours activer.

❌ Ne jamais exposer le port 3389 sur Internet✅ Utiliser RD Gateway (port 443)MDP 12+ caractèresVerrouillage après 5 échecs2FA si possible
💡 Règle d'or : Principe du moindre privilège — chaque utilisateur ne doit avoir accès qu'à ce dont il a strictement besoin. Restriction presse-papiers, clés USB, impression via GPO.

5. Récapitulatif & Architectures

12
Architectures typiques

Petite structure (< 20 utilisateurs) : 1 seul serveur → RDSH + RDCB + RDWA + RDL. Simple, peu coûteux, mais pas de redondance.

Moyenne/Grande structure : Chaque rôle sur un serveur dédié. Plusieurs RDSH pour la charge. Redondance. Scalabilité (ajout d'un RDSH lors de pics d'activité).

Serveur 1 → RD Connection BrokerServeurs 2 & 3 → RD Session HostServeur 4 → RD GatewayServeur 5 → RD Web AccessServeur 6 → RD Licensing
13
Glossaire complet
RDS
Permet d'accéder à des logiciels et bureaux Windows depuis n'importe quel appareil, à distance
RDSH
Remote Desktop Session Host — Le serveur où tournent vraiment les applications, le moteur
RDCB
Remote Desktop Connection Broker — L'aiguilleur
RDWA
Remote Desktop Web Access — Le portail web
RDGW
Remote Desktop Gateway — Point d'entrée sécurisé depuis Internet (remplace le VPN pour RDS)
RDL
Remote Desktop Licensing — Le contrôleur de licences, obligatoire légalement
RDP
Remote Desktop Protocol — Transporte l'image de l'écran et les clics (port 3389)
RemoteApp
Publier un seul logiciel dans une fenêtre, sans tout le bureau Windows
User CAL
Licence liée à une personne — peut se connecter depuis plusieurs appareils
Device CAL
Licence liée à un PC — plusieurs personnes peuvent utiliser ce PC
NLA
Network Level Authentication — Vérification d'identité avant ouverture de session
🎯 La règle des 3 indispensables : Pour qu'un RDS fonctionne, il faut : RDSH (le moteur) + RDCB (le chef d'orchestre) + RDL (les licences). Tout le reste améliore le confort et la sécurité.

1. Rôle d'un commutateur virtuel

Dans Hyper-V, un commutateur virtuel (ou vSwitch) joue le même rôle qu'un switch physique dans une infrastructure réelle : il connecte les machines virtuelles entre elles et/ou vers l'extérieur. Il s'agit d'un composant logiciel qui opère au niveau du noyau Windows et qui est géré depuis le Gestionnaire de commutateurs virtuels.

Hyper-V propose trois types de commutateurs, chacun répondant à un besoin précis :

🌐
Externe
Accès au réseau physique (LAN / Internet)
🔗
Interne
VMs ↔ VMs + hôte Hyper-V, sans réseau physique
🔒
Privé
VMs ↔ VMs uniquement, hôte exclu

2. Commutateur Externe

01
🌐 Commutateur Externe — définition

Le commutateur Externe est le plus courant en production. Il est lié directement à une carte réseau physique de l'hôte Hyper-V et permet aux machines virtuelles de communiquer avec le réseau local (LAN) et Internet comme n'importe quelle machine physique.

🍕 Analogie : C'est comme brancher chaque VM sur le même switch physique que les PC du bureau. Elles obtiennent une vraie adresse IP (via DHCP ou en statique) et sont accessibles depuis le réseau.
✅ Ce commutateur permet :
  • 🔸 Communication VM → Internet
  • 🔸 Communication VM → LAN (autres PCs, serveurs physiques)
  • 🔸 Communication VM → VM (via le réseau physique)
  • 🔸 Communication VM → Hôte Hyper-V
💡 En cochant "Autoriser le système d'exploitation de gestion à partager cette carte réseau", l'hôte Hyper-V lui-même obtient aussi une connexion réseau via ce commutateur.
02
Cas d'usage typiques du commutateur Externe
ScénarioUtilisation
Serveur de production (DC, DHCP, RDS…)Doit être joignable depuis tout le réseau LAN
VM cliente rejoignant le domaine ADDoit accéder au contrôleur de domaine sur le LAN
Serveur Web accessible depuis InternetDoit avoir une IP routable
Lab avec accès Internet requisMises à jour Windows, téléchargements…
⚠️ Lier le commutateur externe à la bonne carte physique est essentiel. Si l'hôte a plusieurs cartes réseau, bien sélectionner celle reliée au réseau cible.

3. Commutateur Interne

03
🔗 Commutateur Interne — définition

Le commutateur Interne crée un réseau isolé entre les VMs et l'hôte Hyper-V. Il n'est pas connecté à une carte réseau physique — le trafic reste entièrement confiné à l'hôte. Cependant, l'hôte lui-même fait partie du réseau, ce qui lui permet d'interagir avec les VMs.

🍕 Analogie : C'est un réseau privé dans lequel les VMs et l'ordinateur hôte peuvent se parler, mais sans aucune connection au monde extérieur. Comme un intranet d'appartement.
✅ Ce commutateur permet :
  • 🔸 Communication VM → VM
  • 🔸 Communication VM → Hôte Hyper-V
  • 🔸 Communication Hôte → VM
❌ Ce commutateur NE permet PAS :
  • 🔴 Accès des VMs à Internet
  • 🔴 Accès des VMs au LAN physique
💡 Une carte réseau virtuelle (vNIC) est automatiquement créée sur l'hôte lors de la création du commutateur interne. On peut lui attribuer une IP statique pour gérer les VMs depuis l'hôte.
04
Cas d'usage typiques du commutateur Interne
ScénarioUtilisation
Lab de test isolé avec accès depuis l'hôteDéveloppeur voulant accéder aux VMs en SSH/RDP depuis son PC
Réseau de gestion Hyper-VL'hôte administre ses VMs sur un réseau dédié
Partage Internet par NATActiver le partage de connexion Windows (ICS) sur l'hôte pour donner Internet aux VMs via le commutateur interne
💡 Pour donner Internet aux VMs avec un commutateur interne, activer le Partage de connexion Internet (ICS) sur la carte physique de l'hôte et la partager vers la vNIC interne.

4. Commutateur Privé

05
🔒 Commutateur Privé — définition

Le commutateur Privé est le plus restrictif des trois. Il isole totalement les VMs dans leur propre bulle : elles peuvent communiquer entre elles, mais ni avec l'hôte, ni avec le réseau physique, ni avec Internet.

🍕 Analogie : C'est une pièce fermée à clé dans laquelle les VMs peuvent se parler entre elles, mais personne de l'extérieur — pas même l'hôte — ne peut entrer ou sortir.
✅ Ce commutateur permet :
  • 🔸 Communication VM → VM uniquement
❌ Ce commutateur NE permet PAS :
  • 🔴 Accès des VMs à Internet
  • 🔴 Accès des VMs au LAN physique
  • 🔴 Accès des VMs à l'hôte Hyper-V
  • 🔴 Accès de l'hôte aux VMs
06
Cas d'usage typiques du commutateur Privé
ScénarioUtilisation
Lab de cybersécurité (malware, CTF)Isoler totalement les VMs dangereuses pour ne pas contaminer le réseau
Test de communication inter-VMsVérifier qu'un protocole fonctionne entre deux VMs sans pollution réseau
Infrastructure AD ferméeDC + clients dans un réseau complètement isolé pour un examen ou une démo
⚠️ Contrairement au commutateur interne, aucune vNIC n'est créée sur l'hôte. L'hôte est complètement absent de ce réseau.

5. Tableau comparatif

Critère 🌐 Externe 🔗 Interne 🔒 Privé
VM → VM
VM → Hôte
VM → LAN physique
VM → Internet❌ (sauf ICS)
Lié à une carte réseau physique✅ Obligatoire
vNIC créée sur l'hôteOptionnelle✅ Automatique
Niveau d'isolationFaibleMoyenTotal
Règle rapide : Externe = production / accès LAN · Interne = lab avec accès hôte · Privé = isolation totale (sécurité, tests dangereux).

6. Créer un commutateur virtuel

07
Via le Gestionnaire Hyper-V (interface graphique)
Gestionnaire Hyper-V → (nom de l'hôte) → Action → Gestionnaire de commutateurs virtuels → Nouveau commutateur réseau virtuel

Choisissez le type souhaité (Externe / Interne / Privé) puis cliquez sur Créer un commutateur virtuel.

⚠️ Pour un commutateur Externe, sélectionnez la carte réseau physique cible dans la liste déroulante et décidez si l'hôte partage cette connexion.
08
Via PowerShell

Créer les trois types de commutateurs en PowerShell :

# Commutateur Externe (lié à la carte physique "Ethernet") New-VMSwitch -Name "vSwitch-Externe" -NetAdapterName "Ethernet" -AllowManagementOS $true # Commutateur Interne New-VMSwitch -Name "vSwitch-Interne" -SwitchType Internal # Commutateur Privé New-VMSwitch -Name "vSwitch-Prive" -SwitchType Private
# Lister tous les commutateurs virtuels existants Get-VMSwitch # Connecter une VM à un commutateur Connect-VMNetworkAdapter -VMName "NomDeLaVM" -SwitchName "vSwitch-Externe" # Supprimer un commutateur virtuel Remove-VMSwitch -Name "vSwitch-Prive"
Get-NetAdapter permet de lister les noms exacts des cartes réseau physiques disponibles sur l'hôte avant de créer un commutateur externe.

Architecture & Prérequis

01
Structure de l'infrastructure

L'infrastructure utilisée dans cette procédure se compose de :

1 × SRV-DC-01 (AD + DNS)2 × SRV-HOTE (Hyper-V)1 × SRV-BROKER (RDS)1 × PC-CLI-01 (Windows 11)

Le flux typique est : Client → Broker → Hôte 01 ou 02, le tout sous le contrôle d'authentification du DC.

💡 Prérequis : Tous les serveurs doivent être joints au domaine avant de commencer l'installation RDS.

Installation du service Bureau à Distance

02
Ajouter les serveurs hôtes au Broker

Sur le SRV-BROKER, se connecter avec tssr\Administrateur et ajouter les serveurs hôtes SRV-HOTE-01 et SRV-HOTE-02.

03
Lancer l'installation du service Bureau à Distance

Dans le Gestionnaire de serveur, cliquer sur Installation du service Bureau à distance.

Sélectionner Déploiement standard deux fois de suite.

Suivre l'assistant pour configurer le RD Session Host et le RD Connection Broker.

⚠️
Échec d'actualisation — correction WinRM

S'il y a une erreur échec d'actualisation après l'ajout du rôle :

Il faut rentrer la commande suivante dans PowerShell en administrateur sur les 2 SRV-HOTE et le SRV-BROKER :

Set-WSManInstance -ResourceURI winrm/config -ValueSet @{MaxEnvelopeSizekb = "600"}

Création de la Collection

04
Créer une collection dans Services Bureau à Distance

Dans SRV-BROKER, aller dans Services de Bureau à Distance et créer une nouvelle collection.

05
Créer le groupe AD et l'associer à la collection

Créer un groupe GG_Acces_Collection dans l'Active Directory et y ajouter les membres qui pourront accéder à la collection.

Revenir sur le Broker et ajouter le groupe GG précédemment créé.

DNS & Licences

06
Ajouter les hôtes au service DNS (Round Robin)

Aller dans le DNS sur le SRV-DC-01 et créer 2 nouveaux hôtes avec le même nom, chacun pointant vers l'adresse IP d'un serveur hôte.

⚠️ Un enregistrement du même nom avec plusieurs IPs s'appelle Round Robin (ou Tourniquet). Cela répartit automatiquement les connexions entre les deux SRV-HOTE.
07
Gestionnaire de licences RDS

Aller dans le gestionnaire de licences et configurer le serveur de licences.

Pour connecter plus de 2 utilisateurs sur le même serveur hôte, aller sur le SRV-BROKERCollectionModifier les paramètres de déploiement.

Connexion depuis le client

08
Se connecter depuis PC-CLI-01

Sur le PC-CLI-01, afficher les entrées DNS pour vérifier la résolution :

ipconfig /displaydns

Ouvrir le Bureau à distance et se connecter avec :

Ordinateur = nom-collection.nom-domaineUtilisateur = membre de GG_Acces_Collection
💡 Pour connecter plusieurs utilisateurs simultanément, cocher la case (option n°3) dans les options avancées.

Modification de la Collection

09
Modifier les propriétés de la collection

Depuis le SRV-BROKER, il est possible de modifier les paramètres de la collection à tout moment.

Modifier les éléments activés sur le bureau à distance (presse-papiers, imprimantes, sons...).

Passerelle & Certificats

10
Ajouter la passerelle RD Gateway

Dans les paramètres de déploiement, ajouter la passerelle et renseigner le SRV-BROKER.

11
Créer les certificats SSL

Créer les certificats depuis le menu de déploiement. Le nom du certificat doit être :

Nom du serveur.nom de domaine

Pour la Passerelle :

Pour l'accès Web :

✅ Les 2 certificats (Passerelle + Web Access) doivent apparaître avec un statut OK.

Connexion Web & RemoteApp

12
Connexion via le portail RD Web Access

Depuis le PC client, ouvrir un navigateur et aller sur :

https://srv-broker.tssr.lab/rdweb
13
Publier des programmes RemoteApp

Dans la collection, aller dans Programmes RemoteAppTâchesPublier les programmes.

Sur le PC Client, cliquer sur l'icône du programme voulu, attendre le téléchargement puis cliquer sur Conserver puis Ouvrir fichiers.

Disque de Profil Utilisateur

14
Créer et partager le dossier de profils

Sur le SRV-DC-01, créer un dossier C:\profile_rds.

Partage SMB du dossier (partage simple).

15
Configurer les permissions NTFS pour les hôtes

Dans les propriétés NTFS du dossier, choisir Type d'objet pour pouvoir chercher des ordinateurs.

Chercher les SRV-HOTE et leur attribuer le Contrôle Total.

16
Activer le Disque de Profil Utilisateur dans la collection

Sur le SRV-BROKER, aller dans Collection → Tâches → Modifier propriétés.

Sélectionner Disque de Profil Utilisateur et renseigner le chemin UNC du partage \SRV-DC-01\profile_rds.

Valider, puis fermer les sessions utilisateurs connectés sur les SRV-HOTE. Se reconnecter depuis le PC Client.

Pour vérifier, aller dans le partage sur le SRV-DC-01 :

✅ Si tu vois un fichier .VHDX dans le dossier de partage, le disque de profil utilisateur est bien pris en charge.

1. Prérequis

01
Prérequis
Serveur de fichiers dédié aux profils (SRV-DC-01) FSLogixAppsSetup.exe installé sur chaque Session Host Domaine Active Directory tssr.lab opérationnel
💡 Télécharger FSLogix : https://aka.ms/fslogix_download

2. Préparer le partage réseau

02
Créer et partager le dossier FSLogix

Sur SRV-DC-01, créer le dossier :

C:\FSLogix

Partager le dossier sous le nom FSLogix :

\\SRV-DC-01\FSLogix

Permissions NTFS requises :

PrincipalAccèsS'applique à
SystèmeContrôle totalCe dossier, sous-dossiers et fichiers
AdministrateurContrôle totalCe dossier, sous-dossiers et fichiers
tssr\AdministrateursContrôle totalCe dossier, sous-dossiers et fichiers
CREATEUR PROPRIETAIREModificationLes sous-dossiers et les fichiers seulement
tssr\UtilisateursModificationCe dossier seulement

3. Importer les templates ADMX FSLogix

03
Créer le Central Store dans SYSVOL
⚠️ Par défaut, le dossier PolicyDefinitions n'existe pas dans SYSVOL. Il faut créer le Central Store manuellement.

Naviguer vers :

\\tssr.lab\SYSVOL\tssr.lab\Policies\

Créer un nouveau dossier nommé :

PolicyDefinitions
04
Copier les templates Windows natifs
⚠️ Indispensable pour que toutes les GPO Windows standard restent disponibles dans l'éditeur de GPO.

Sur SRV-DC-01, copier tout le contenu de :

C:\Windows\PolicyDefinitions

Coller dans :

\\tssr.lab\SYSVOL\tssr.lab\Policies\PolicyDefinitions\
05
Copier les fichiers FSLogix ADMX

Dans le ZIP FSLogix extrait, trouver les fichiers dans le dossier templates\ :

fslogix.admxfslogix.adml

Copier fslogix.admx vers :

\\tssr.lab\SYSVOL\tssr.lab\Policies\PolicyDefinitions\

Copier fslogix.adml vers :

\\tssr.lab\SYSVOL\tssr.lab\Policies\PolicyDefinitions\en-US\
⚠️ Les templates FSLogix sont uniquement en anglais. Le fichier .adml doit aller dans en-US et non fr-FR.
✅ Fermer et rouvrir l'éditeur de GPO pour voir apparaître les paramètres FSLogix.

4. Configurer FSLogix via GPO

06
Créer et configurer la GPO FSLogix

Créer une GPO appliquée sur l'OU contenant les Session Hosts, puis naviguer dans :

Configuration ordinateur → Modèles d'administration → FSLogix → Profile Containers

Paramètres à configurer :

ParamètreValeur
EnabledActivé
VHD Locations\\SRV-DC-01\FSLogix
Delete Local Profile When VHD Should ApplyActivé
Is Dynamic (VHD)Activé
Size In MBs10240 (10 Go — à adapter)
Profile TypeRead / Write profile - fallback to Read Only
⚠️ Sans Is Dynamic (VHD), FSLogix crée un VHDX de taille maximale dès la première connexion (30 Go par défaut). Avec cette option, le fichier commence petit et grandit selon les besoins réels.

5. Fermeture automatique des sessions RemoteApp

07
Configurer la fermeture automatique des sessions RemoteApp
⚠️ Sans ce paramètre, quand un utilisateur ferme une RemoteApp, la session reste ouverte en état déconnecté et le VHDX reste monté. Un autre utilisateur ne peut alors pas monter ce même VHDX.

Dans la même GPO :

Configuration ordinateur → Modèles d'administration → Composants Windows → Services Bureau à distance → Hôte de session Bureau à distance → Delais d'expiration des sessions → Définir la limite de temps pour la fermeture de sessions RemoteApp
ParamètreValeur
Définir la limite de temps pour la fermeture de sessions RemoteAppImmédiatement
✅ Dès que l'utilisateur ferme la RemoteApp, la session est fermée et le VHDX FSLogix est démonté proprement.

6. Appliquer & Vérifier

08
Appliquer la GPO et vérifier

Sur chaque Session Host :

gpupdate /force

Vérifier que la GPO est appliquée :

gpresult /r
✅ La GPO FSLogix doit apparaître dans la liste des GPO appliquées.

Connecter un utilisateur test et vérifier que le dossier + le fichier .vhdx sont créés dans \\SRV-DC-01\FSLogix.

Ouvrir l'Observateur d'événements sur le Session Host :

Journaux des applications et des services → Microsoft → FSLogix → Apps → Operational
✅ Le message Profile successfully loaded doit apparaître à la connexion.

Vérifier le chemin du profil dans une session utilisateur :

echo %userprofile%
✅ Résultat attendu : C:\Users\nomdutilisateur (et non C:\Users\TEMP).
⚠️
Points clés à retenir
⛔ Pas de sessions simultanées sur plusieurs Session Hosts pour le même utilisateur 📁 Un seul VHDX par utilisateur dans le partage 💾 Sauvegardes régulières du partage FSLogix obligatoires
⚠️ Si plusieurs VHDX apparaissent pour le même utilisateur, vérifier les permissions NTFS sur le partage. Les VHDX contiennent l'intégralité des profils utilisateurs — les sauvegardes sont critiques.

Qu'est-ce que Fail2ban ?

Fail2ban est un système de prévention des intrusions (IPS) qui analyse les logs des services (SSH, HTTP, FTP…) en temps réel pour détecter les comportements malveillants et bloquer automatiquement les adresses IP responsables.

Contrairement à un pare-feu traditionnel, Fail2ban est adaptatif : il apprend des comportements anormaux (tentatives de connexion échouées répétées, requêtes malveillantes…) et réagit automatiquement.

Fonctionnement — 3 étapes clés

Fail2ban fonctionne en trois étapes distinctes :

1️⃣ Surveillance

  • Analyse en continu des logs des services (SSH, Apache, Nginx, FTP…)
  • Repère les comportements suspects : échecs de connexion, requêtes malveillantes, patterns anormaux
  • Utilise des expressions régulières (regex) pour identifier les tentatives malveillantes

2️⃣ Détection

  • Dès qu'un seuil de tentatives est atteint (ex: 5 échecs de connexion SSH)
  • L'IP est identifiée comme malveillante
  • Déclenche une action automatique et immédiate

3️⃣ Action

  • L'IP est automatiquement bloquée via iptables/nftables pour une durée configurable
  • Autres actions possibles : envoi d'email, logging personnalisé, scripts personnalisés

Cas d'usage réels

📌 Exemple 1 — Protection SSH

Attaquant lance 50 tentatives de connexion SSH en 1 minute avec des mots de passe aléatoires. Fail2ban détecte 5 échecs en 10 minutes, bloque l'IP pendant 1 heure. Plus aucune tentative réussie.

📌 Exemple 2 — Protection Web (WordPress)

Scanneur automatisé teste des milliers de chemins URL (ex: /wp-admin, /config.php). Fail2ban détecte les erreurs 404 répétées, bloque le scanneur.

📌 Exemple 3 — Protection API

Bot tente 100 requêtes API par seconde. Fail2ban décode ce pattern, bloque l'adresse IP. Les utilisateurs légitimes ne sont pas affectés.

Architecture de Fail2ban

Fail2ban est composé de plusieurs modules interconnectés :

ComposantRôle
BackendLit les logs (syslog, fichiers…)
FiltersPatterns regex pour détecter les comportements malveillants
ActionsRéactions automatiques (blocage IP, email, webhooks…)
JailsConteneurs combinant filters + actions pour un service

Configuration — Structure des fichiers

La configuration est modularisée dans /etc/fail2ban/ :

FichierRôle
jail.confConfiguration globale (durée de ban, seuils…)
jail.d/*.confConfigurations spécifiques par service (SSH, Apache…)
filter.d/*.confPatterns regex pour détecter les attaques
action.d/*.confActions à exécuter (iptables, email…)
💡 La clé de la flexibilité de Fail2ban réside dans ces fichiers de configuration modulaires. Vous pouvez créer vos propres jails, filters et actions.

Paramètres importants

Voici les paramètres clés que vous rencontrerez :

ParamètreSignificationExemple
bantimeDurée du ban en secondes3600 = 1 heure
findtimeFenêtre de temps pour compter les tentatives600 = 10 minutes
maxretryNombre d'erreurs avant ban5 = 5 tentatives échouées
portPort du service à protégerssh = port 22
logpathChemin du fichier de logs à surveiller/var/log/auth.log
⚠️ Exemple concret : avec bantime=3600, findtime=600 et maxretry=5, Fail2ban banne une IP pendant 1 heure si elle accumule 5 tentatives échouées en 10 minutes.

Avantages et limitations

✅ Avantages

  • Léger — Faible consommation CPU/mémoire
  • Flexible — Customisable pour n'importe quel service
  • Réactif — Détecte et bloque en quasi temps réel
  • Pas d'intervention manuelle — Tout est automatisé
  • Logs détaillés — Traçabilité complète des actions

❌ Limitations

  • Pas de protection contre les attaques distribuées (DDoS) — Les attaquants utilisent des centaines d'IPs différentes
  • Dépend des logs — Si le log n'enregistre pas l'erreur, Fail2ban ne le voit pas
  • Les vrais attaquants contournent facilement — Avec des proxies ou botnets
  • Peut créer des faux positifs — Un utilisateur oubliant son mot de passe peut se bloquer soi-même
💡 Fail2ban est une première couche de défense, pas une solution miracle. À combiner avec un VPN, un reverse proxy, une authentification forte (SSH keys)…
01
Installation de Fail2ban

Installez Fail2ban et ses dépendances :

sudo apt update sudo apt install -y fail2ban fail2ban-doc # Vérifiez l'installation sudo systemctl status fail2ban
💡 Fail2ban est disponible dans tous les dépôts des principales distributions Linux.
02
Structure des fichiers de configuration

Explorez la structure de configuration :

ls -la /etc/fail2ban/ tree /etc/fail2ban/ # si tree est installé

Fichiers importants :

FichierRôle
/etc/fail2ban/jail.confConfiguration globale par défaut
/etc/fail2ban/jail.localVos personnalisations (prend priorité)
/etc/fail2ban/jail.d/Configurations spécifiques par service
/etc/fail2ban/filter.d/Patterns regex pour détecter les attaques
/etc/fail2ban/action.d/Actions (blocage iptables, emails…)
⚠️ Ne modifiez jamais jail.conf directement. Créez plutôt jail.local pour vos personnalisations.
03
Créer une prison (jail) pour SSH

Créez un fichier de configuration personnalisé pour protéger SSH :

sudo nano /etc/fail2ban/jail.d/myconf.conf

Ajoutez le contenu suivant :

[ssh] enabled = true bantime = 1h maxretry = 3 port = ssh filter = sshd logpath = /var/log/auth.log

Explication des paramètres :

  • enabled = true → Active cette prison
  • bantime = 1h → Bannit l'IP pendant 1 heure
  • maxretry = 3 → Ban après 3 tentatives échouées
  • port = ssh → Port SSH (22 par défaut)
  • filter = sshd → Filtre SSH prédéfini
  • logpath = /var/log/auth.log → Fichier de logs SSH
ℹ️ Configuration essentielle pour protéger SSH. Les autres options sont optionnelles et peuvent être ajoutées selon vos besoins.
04
Vérifier la syntaxe et redémarrer

Vérifiez que votre configuration est correcte :

sudo fail2ban-client -d sudo fail2ban-client validate-config

Si tout est bon, redémarrez Fail2ban :

sudo systemctl restart fail2ban sudo systemctl status fail2ban
05
Vérifier les prisons actives

Consultez l'état de votre prison SSH :

sudo fail2ban-client status sudo fail2ban-client status sshd

Exemple de sortie :

Status for the jail: sshd ├─ Filter │ ├─ Currently failed: 0 │ ├─ Total failed: 0 │ └─ Journal matches: 0 └─ Actions ├─ Currently banned: 0 └─ Total banned: 0
💡 Currently banned = IPs actuellement bloquées. Total banned = historique total.
06
Tester l'attaque (simulation)

Simulez une attaque en lançant plusieurs tentatives SSH échouées depuis une autre machine :

# Effectuez 3+ tentatives SSH avec un mauvais mot de passe ssh root@votre_serveur # ssh root@votre_serveur # ssh root@votre_serveur #
⚠️ Attention : la 3e tentative échouée va bloquer votre IP ! Vérifiez depuis le serveur que l'IP est bien bannée :
sudo fail2ban-client status sshd sudo iptables -L -n | grep votre_ip
07
Débannir une IP (manuellement)

Si vous êtes accidentellement banni, débannissez votre IP :

# Débannir une IP spécifique sudo fail2ban-client set sshd unbanip 192.168.1.100 # Débannir toutes les IPs de la prison sshd sudo fail2ban-client set sshd unbanip --all # Vérifier que c'est bien débannie sudo fail2ban-client status sshd
08
Configurer des exclusions (whitelist)

Pour éviter de vous bannir vous-même, ajoutez votre IP ou sous-réseau à la whitelist :

sudo nano /etc/fail2ban/jail.d/myconf.conf

Configuration essentielles + optionnels :

# Jail SSH - Configuration essentielle [ssh] enabled = true bantime = 1h maxretry = 3 port = ssh filter = sshd logpath = /var/log/auth.log # OPTIONNEL : Ajouter une whitelist ignoreip = 127.0.0.1/8 192.168.1.0/24
💡 Ajoutez ignoreip pour protéger votre propre réseau. Par exemple : 192.168.1.0/24 protège tout le sous-réseau 192.168.1.x
09
Surveiller les logs en temps réel

Consultez les logs de Fail2ban pour voir ce qui se passe :

sudo tail -f /var/log/fail2ban.log sudo tail -50 /var/log/fail2ban.log sudo grep sshd /var/log/fail2ban.log | tail -20

Exemple de log lors d'un ban :

2025-01-21 15:42:01,123 fail2ban.filter [1234]: INFO [sshd] Found 192.168.1.100 2025-01-21 15:42:09,012 fail2ban.actions [1234]: NOTICE [sshd] Ban 192.168.1.100
10
Configuration avancée — Personnaliser les actions

Par défaut, Fail2ban bloque les IPs via iptables. Vous pouvez ajouter des actions supplémentaires :

sudo nano /etc/fail2ban/jail.d/myconf.conf
# Configuration essentielle [ssh] enabled = true bantime = 1h maxretry = 3 port = ssh filter = sshd logpath = /var/log/auth.log # OPTIONNEL : Ajouter des actions personnalisées # Envoyer un email à chaque ban action = iptables-multiport[name=SSH, port=ssh, protocol=tcp] sendmail-whois[name=SSH, [email protected]]

Actions disponibles (optionnelles) :

  • iptables-multiport → Blocage via iptables (défaut)
  • sendmail-whois → Email avec infos du hacker
  • sendmail → Email simple
  • slack → Notification Slack
💡 L'action par défaut (iptables) est suffisante pour la plupart des cas. Les autres actions sont optionnelles.
11
Récupérer et débannir les IPs

Visualisez et gérez les IPs bannies :

# Voir les IPs actuellement bannies sudo fail2ban-client status sshd # Via iptables sudo iptables -L -n | grep f2b-sshd # Débannir une IP spécifique sudo fail2ban-client set sshd unbanip 192.168.1.100 # Débannir toutes les IPs sudo fail2ban-client set sshd unbanip --all
12
Dépannage courant

La prison sshd n'apparaît pas :

sudo fail2ban-client -d sudo systemctl restart fail2ban

Fail2ban ne détecte aucune tentative :

cat /var/log/auth.log | tail -20 journalctl -u ssh -n 20

Le blocage ne fonctionne pas :

sudo iptables -L -n -v | grep fail2ban
ℹ️ Consultez toujours /var/log/fail2ban.log en cas de problème.
01
Installer Nginx

Mettez à jour les dépôts et installez le paquet Nginx :

sudo apt update && sudo apt install nginx -y
02
Comprendre l'arborescence

Voici les deux répertoires principaux à connaître :

  • /var/www : Contient les fichiers sources des sites web (pages HTML, images, etc.).
  • /etc/nginx : Contient les fichiers de configuration du serveur et des sites.
03
Préparer le répertoire du site

On commence par se rendre dans le répertoire web et nettoyer l'existant si besoin :

cd /var/www
sudo rm -rf html

Créez la structure pour votre nouveau site (ex: c2rt) :

sudo mkdir -p c2rt/html
04
Créer la page d'accueil

Créez un fichier index.html de base pour tester :

sudo nano c2rt/html/index.html

Ajoutez un code HTML simple, par exemple :

<h1>Bienvenue sur le site c2rt.lab</h1>
05
Configurer le Virtual Host

Allez dans le dossier des configurations disponibles et supprimez la config par défaut :

cd /etc/nginx/sites-available
sudo rm default

Créez le fichier de configuration pour votre site :

sudo nano c2rt.lab
06
Paramétrage du bloc serveur

Copiez et adaptez la configuration suivante :

server { listen 80; server_name c2rt.lab; root /var/www/c2rt/html; index index.html; location / { try_files $uri $uri/ =404; } }
Explication des lignes :
- listen 80 : Port d'écoute (HTTP).
- server_name : Nom de domaine associé.
- root : Emplacement des fichiers du site.
- index : Fichier chargé par défaut.
- location / : Définit une règle pour toutes les URL commençant par /.
- try_files : C'est la logique de recherche des fichiers. Si pas de fichier -> Erreur 404.
07
Activer le site

Créez un lien symbolique vers le dossier sites-enabled pour activer la config :

sudo ln -s /etc/nginx/sites-available/c2rt.lab /etc/nginx/sites-enabled/c2rt.lab

Supprimez le lien par défaut dans sites-enabled s'il existe :

cd /etc/nginx/sites-enabled && sudo rm default
08
Vérification et redémarrage

Testez la syntaxe de la configuration :

sudo nginx -t

Si tout est OK, rechargez Nginx :

sudo systemctl reload nginx
09
Identifier l'IP du serveur

Récupérez l'adresse IP de votre serveur Ubuntu pour le test final :

ip a
10
Enregistrement DNS Local (Windows)

Pour faire l'enregistrement DNS local, allez dans C:\Windows\System32\drivers\etc, ouvrez le Bloc-notes en tant qu'administrateur et ouvrez le fichier hosts (sans extension de fichier).

Ajoutez la ligne suivante à la fin (en remplaçant par l'IP de votre serveur) :

172.31.245.81 c2rt.lab
✅ Vous pouvez maintenant taper http://c2rt.lab dans votre navigateur !
01
Installation de BIND9

Installez BIND9 et les outils de gestion DNS :

sudo apt update sudo apt install -y bind9 bind9-utils bind9-doc dnsutils sudo systemctl status bind9
💡 bind9-utils fournit des outils comme dig, nslookup et host pour tester votre serveur DNS.
02
Fichiers de configuration BIND9

BIND9 utilise plusieurs fichiers de configuration situés dans /etc/bind/ :

FichierRôle
/etc/bind/named.confFichier principal qui inclut les autres
/etc/bind/named.conf.optionsOptions globales du serveur (forwarders, ACLs…)
/etc/bind/named.conf.localDéclaration des zones locales
/var/lib/bind/Répertoire contenant les fichiers de zones
ls -la /etc/bind/ cat /etc/bind/named.conf
03
Créer une zone DNS

Créez un fichier de zone pour votre domaine. Exemple : créer une zone pour exemple.lab

Étape 1 : Déclarer la zone dans named.conf.local

sudo nano /etc/bind/named.conf.local

Ajoutez à la fin du fichier :

zone "exemple.lab" { type master; file "/var/lib/bind/exemple.lab.zone"; allow-transfer { any; }; };
💡 type master signifie que ce serveur est authoritative (maître) pour cette zone.

Étape 2 : Créer le fichier de zone

sudo nano /var/lib/bind/exemple.lab.zone

Remplissez le fichier avec :

$TTL 86400 @ IN SOA ns1.exemple.lab. admin.exemple.lab. ( 2024010101 ; Serial 3600 ; Refresh 1800 ; Retry 604800 ; Expire 86400 ; Minimum TTL ) IN NS ns1.exemple.lab. IN MX 10 mail.exemple.lab. ns1 IN A 192.168.1.50 mail IN A 192.168.1.51 www IN A 192.168.1.52 app IN A 192.168.1.53 @ IN A 192.168.1.54
⚠️ Important : Les enregistrements SOA et NS sont obligatoires pour déclarer une zone. Remplacez les IP par vos vraies adresses.
04
Vérifier la syntaxe

Vérifiez que votre configuration est correcte :

# Vérifier la syntaxe du fichier named.conf sudo named-checkconf /etc/bind/named.conf # Vérifier la syntaxe du fichier de zone sudo named-checkzone exemple.lab /var/lib/bind/exemple.lab.zone
💡 Ces commandes vous aideront à identifier les erreurs avant de relancer BIND9.
05
Corriger les permissions

BIND9 s'exécute sous l'utilisateur bind. Il faut que ce dernier puisse lire les fichiers de zone :

sudo chown -R bind:bind /var/lib/bind/ sudo chmod 755 /var/lib/bind/ sudo chmod 644 /var/lib/bind/exemple.lab.zone
06
Redémarrer BIND9

Redémarrez le service BIND9 pour charger la nouvelle configuration :

sudo systemctl restart bind9 sudo systemctl status bind9
# Vérifier que BIND9 écoute sur le port 53 sudo netstat -tlnp | grep :53 # ou sudo ss -tlnp | grep :53
07
Tester votre serveur DNS

Testez que votre serveur DNS fonctionne correctement :

Sur la machine elle-même

# Interroger le serveur DNS local dig @localhost www.exemple.lab +short nslookup www.exemple.lab localhost host www.exemple.lab 127.0.0.1

Depuis une autre machine du réseau

# Remplacez 192.168.1.50 par l'IP de votre serveur DNS dig @192.168.1.50 www.exemple.lab +short nslookup www.exemple.lab 192.168.1.50
✅ Si vous voyez l'IP (ex: 192.168.1.52), c'est bon ! Votre serveur DNS répond correctement.
08
Configurer le serveur comme DNS client

Pour que d'autres machines utilisent votre serveur DNS, configurez-les pour utiliser son IP :

Sous Linux (Netplan)

sudo nano /etc/netplan/01-netcfg.yaml
network: version: 2 ethernets: eth0: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [192.168.1.50] # IP de votre serveur DNS search: [exemple.lab]

Appliquer la configuration

sudo netplan apply cat /etc/resolv.conf # Vérifier le changement

Sous Windows

Paramètres → Réseau et Internet → Propriétés Ethernet → Modifier → Paramètres DNS → Manuel

Entrez l'IP du serveur DNS (ex: 192.168.1.50)

09
Ajouter des enregistrements supplémentaires

Vous pouvez ajouter différents types d'enregistrements dans votre zone :

Types d'enregistrements courants

TypeExempleUtilité
Awww IN A 192.168.1.52Associer un domaine à une adresse IPv4
AAAAwww IN AAAA 2001:db8::1Associer un domaine à une adresse IPv6
CNAMEblog IN CNAME www.exemple.lab.Alias pour un autre domaine
MXIN MX 10 mail.exemple.lab.Serveur de mail pour le domaine
NSIN NS ns1.exemple.lab.Serveur DNS authoritative
TXTIN TXT "v=spf1 mx ~all"Texte libre (SPF, DKIM, DMARC…)

Exemple complet avec différents types

$TTL 86400 @ IN SOA ns1.exemple.lab. admin.exemple.lab. ( 2024010102 ; Serial (AUGMENTEZ CE CHIFFRE à chaque modification) 3600 ; Refresh 1800 ; Retry 604800 ; Expire 86400 ; Minimum TTL ) IN NS ns1.exemple.lab. IN MX 10 mail.exemple.lab. IN TXT "v=spf1 mx ~all" ns1 IN A 192.168.1.50 mail IN A 192.168.1.51 www IN A 192.168.1.52 app IN A 192.168.1.53 @ IN A 192.168.1.54 blog IN CNAME www.exemple.lab. ftp IN CNAME www.exemple.lab.
⚠️ Important : Augmentez le numéro de Serial à chaque modification de la zone, sinon les autres serveurs DNS ne verront pas les changements !

Appliquer les changements

sudo named-checkzone exemple.lab /var/lib/bind/exemple.lab.zone sudo systemctl reload bind9
10
Configurer les forwarders (optionnel)

Si vous voulez que votre serveur DNS transmette les requêtes qu'il ne peut pas résoudre à d'autres serveurs DNS publics :

sudo nano /etc/bind/named.conf.options

Modifiez la section forwarders :

options { directory "/var/cache/bind"; # Transférer les requêtes non résolues aux DNS publics forwarders { 8.8.8.8; # Google DNS 8.8.4.4; # Google DNS 2 1.1.1.1; # Cloudflare DNS }; # Résoudre les zones locales en priorité recursion yes; allow-recursion { 127.0.0.1; 192.168.1.0/24; }; };
sudo named-checkconf /etc/bind/named.conf sudo systemctl reload bind9
11
Logs et dépannage

En cas de problème, consultez les logs BIND9 :

# Voir les logs en temps réel sudo journalctl -u bind9 -f # Voir les derniers logs sudo journalctl -u bind9 -n 50 # Voir les logs du system tail -50 /var/log/syslog | grep named

Erreurs courantes

Erreur : named[xxx]: zone exemple.lab/IN: loading from master file /var/lib/bind/exemple.lab.zone failed: file not found

Solution : Vérifiez que le fichier existe et que le chemin dans named.conf.local est correct.

Erreur : permission denied quand BIND9 redémarre

Solution : Vérifiez que les permissions sont correctes : sudo chown bind:bind /var/lib/bind/

Erreur : dig n'affiche pas de réponse

Solution : Vérifiez que BIND9 écoute sur le port 53 : sudo ss -tlnp | grep :53

01
C'est quoi un CMS ?

Un CMS (Content Management System) est un Système de Gestion de Contenu. C'est un logiciel qui permet de concevoir, gérer et mettre à jour des sites web de manière dynamique, sans avoir besoin de coder chaque page à la main.

💡 WordPress est le CMS le plus utilisé au monde (plus de 40% du web).
02
Comprendre les Stacks : LEMP vs LAMP

Pour faire tourner un CMS comme WordPress, il faut un ensemble de logiciels appelé "Stack".

Stack LEMP

Linux (OS)
Engine-X (Nginx)
MariaDB (Base de données)
PHP (Langage)

Stack LAMP

Linux (OS)
Apache (Serveur Web)
MariaDB (Base de données)
PHP (Langage)

Ici, nous installons Nginx, installez-le avec la commande suivante :

sudo apt install nginx
03
Installer PHP et ses dépendances

WordPress nécessite PHP et plusieurs modules spécifiques pour traiter les images, les scripts et les connexions :

sudo apt install php-fpm php-mysql php-curl php-gd php-intl php-mbstring php-soap php-xml php-zip

Vérifiez le status du service (adaptez la version, ex: 8.3) :

sudo systemctl status php8.3-fpm.service
04
Installer et configurer MariaDB

Installez le serveur de base de données (version améliorée de MySQL) :

sudo apt install mariadb-server

Créez un mot de passe root si nécessaire et connectez-vous :

sudo passwd
su -
mysql -u root -p
05
Créer la base de données WordPress

Exécutez ces requêtes SQL pour préparer le terrain :

CREATE DATABASE Wordpress; CREATE USER 'wordpressuser'@'localhost' IDENTIFIED BY 'C2rt_2026'; GRANT ALL PRIVILEGES ON Wordpress.* TO 'wordpressuser'@'localhost'; FLUSH PRIVILEGES; EXIT;

Notez bien : Base = Wordpress | User = wordpressuser | Pass = C2rt_2026

06
Télécharger et extraire WordPress

On télécharge la dernière version dans le dossier temporaire :

cd /tmp
sudo wget https://wordpress.org/latest.zip

On décompresse l'archive directement dans le répertoire web :

sudo apt install unzip
sudo unzip latest.zip -d /var/www/
07
Droits d'accès (Permissions)

Donnez la propriété du dossier à l'utilisateur www-data (le serveur web) pour qu'il puisse écrire les fichiers :

sudo chown -R www-data:www-data /var/www/wordpress/
08
Configuration du Virtual Host Nginx

Créez le fichier de configuration de votre site :

sudo nano /etc/nginx/sites-available/wordpress.c2rt.lab

Insérez ce bloc de configuration :

server { listen 80; server_name wordpress.c2rt.lab; root /var/www/wordpress; index index.html index.php; location / { try_files $uri $uri/ =404; } location ~ \.php$ { fastcgi_pass unix:/var/run/php/php8.3-fpm.sock; fastcgi_index index.php; include fastcgi.conf; } }
09
Activation et rechargement

Activez le site via un lien symbolique et redémarrez Nginx :

sudo ln -s /etc/nginx/sites-available/wordpress.c2rt.lab /etc/nginx/sites-enabled/wordpress.c2rt.lab
sudo systemctl reload nginx
10
Finalisation via le navigateur

Accédez à l'IP de votre serveur dans un navigateur et suivez l'assistant :

Langue : Français
Base : Wordpress
Utilisateur : wordpressuser
MDP : C2rt_2026
✅ Installation terminée ! Votre site est prêt.
01
Mises à jour & Installation LAMP

Commencez par mettre à jour le système et installer les composants de la stack LAMP :

sudo apt update && sudo apt upgrade -y
sudo apt install apache2 php php-mysql libapache2-mod-php -y
sudo apt install mariadb-server mariadb-client -y

Sécurisez votre installation MariaDB :

sudo mysql_secure_installation
02
Créer la base de données WordPress

Connectez-vous à MariaDB :

sudo mysql -u root -p

Exécutez les requêtes SQL suivantes (pensez à remplacer MOT_DE_PASSE) :

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'MOT_DE_PASSE'; GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost'; FLUSH PRIVILEGES; EXIT;
03
Télécharger et installer WordPress

Téléchargez et extrayez la dernière version de WordPress :

cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xvzf latest.tar.gz
sudo mv wordpress /var/www/html/
04
Droits et permissions

Configurez les permissions pour qu'Apache puisse gérer les fichiers :

sudo chown -R www-data:www-data /var/www/html/wordpress
sudo find /var/www/html/wordpress/ -type d -exec chmod 755 {} \;
sudo find /var/www/html/wordpress/ -type f -exec chmod 644 {} \;
05
Configurer le VirtualHost Apache

Créez le fichier de configuration pour votre site c4rt.lab :

sudo nano /etc/apache2/sites-available/c4rt.lab.conf

Collez la configuration suivante :

<VirtualHost *:80> ServerName c4rt.lab ServerAlias www.c4rt.lab DocumentRoot /var/www/html/wordpress <Directory /var/www/html/wordpress> AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/c4rt.lab-error.log CustomLog ${APACHE_LOG_DIR}/c4rt.lab-access.log combined </VirtualHost>
06
Activation et rechargement

Activez le nouveau site, le module rewrite et redémarrez Apache :

sudo a2ensite c4rt.lab.conf
sudo a2enmod rewrite
sudo systemctl restart apache2
07
Finalisation via le navigateur

Ouvrez votre navigateur sur http://c4rt.lab et suivez l'assistant d'installation (choisir le titre du site, l'admin et le mot de passe).

⚠️ Attention : Si vous tombez sur la page par défaut d'Apache au lieu de l'installation WordPress, essayez d'utiliser l'URL complète car le dossier a été déplacé dans /var/www/html/wordpress/ :
http://c4rt.lab/wordpress
✅ Votre site WordPress sous Apache est maintenant opérationnel !
01
Identifier le fichier de configuration

Sur Ubuntu Server, la configuration réseau se trouve dans le dossier /etc/netplan/. Le fichier se nomme généralement 50-cloud-init.yaml ou 01-netcfg.yaml.

ls /etc/netplan/
02
Modifier le fichier YAML

Ouvrez le fichier avec l'éditeur nano :

sudo nano /etc/netplan/50-cloud-init.yaml

Modifiez le contenu en respectant scrupuleusement les indentations (espaces) :

network: version: 2 ethernets: eth0: dhcp4: false addresses: - 172.31.245.80/20 routes: - to: default via: 172.31.240.1 nameservers: addresses: - 8.8.8.8 - 1.1.1.1
03
Appliquer la configuration

Une fois le fichier enregistré (Ctrl+O, Entrée, Ctrl+X), appliquez les changements :

sudo netplan apply
💡 Si vous êtes à distance via SSH, utilisez sudo netplan try qui annulera les changements après 120s si la connexion est perdue.
04
Vérifier les changements

Vérifiez que la nouvelle adresse IP est bien appliquée sur l'interface :

ip a
01
Ouvrir le fichier des interfaces

Sur Debian, la configuration réseau se gère traditionnellement via le fichier /etc/network/interfaces.

sudo nano /etc/network/interfaces
02
Modifier la configuration

Adaptez le fichier pour passer d'une configuration DHCP à une configuration statique :

auto eth0 iface eth0 inet static address 192.168.1.10 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8 1.1.1.1
⚠️ Vérifiez bien le nom de votre interface (ex: eth0, ens33, enp0s3) avec la commande ip a avant de modifier le fichier.
03
Redémarrer le service réseau

Pour appliquer les changements sans redémarrer la machine entière :

sudo systemctl restart networking

Ou si vous préférez redémarrer l'interface spécifiquement :

sudo ifdown eth0 && sudo ifup eth0
04
Vérification

Vérifiez que la nouvelle adresse est bien active :

ip a
01
Générer les clés sur le client

Sur votre poste client (Windows en PowerShell Admin ou Linux), générez votre paire de clés :

ssh-keygen

Ou pour une clé RSA 4096 bits plus robuste :

ssh-keygen -b 4096

Appuyez sur Entrée pour l'emplacement par défaut et saisissez une passphrase (recommandé).

02
Emplacement des clés

Vos clés sont stockées dans le dossier caché .ssh :

  • Windows : C:\Users\MartinDepanne\.ssh\id_ed25519 (ou id_rsa)
  • Linux : /home/MartinDepanne/.ssh/
⚠️ Ne partagez JAMAIS votre clé privée (sans extension). Seule la clé publique (.pub) doit être envoyée sur les serveurs.
03
Préparer le serveur distant

Vérifiez si le dossier .ssh existe sur le serveur. S'il n'existe pas, créez-le depuis le client :

ssh username@ip_du_serveur "mkdir -p ~/.ssh && chmod 700 ~/.ssh"
04
Copier la clé publique sur le serveur

Depuis Windows :

scp "C:\Users\MartinDepanne\.ssh\id_ed25519.pub" username@ip_du_serveur:/home/MartinDepanne/.ssh/

Ou pour l'ajouter directement à la suite du fichier existant :

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh username@ip_du_serveur "cat >> ~/.ssh/authorized_keys"

Depuis Linux :

ssh-copy-id utilisateur@serveur

Ou manuellement :

cat ~/.ssh/id_ed25519.pub | ssh username@ip_du_serveur "cat >> ~/.ssh/authorized_keys"
05
Désactiver la connexion par mot de passe

Pour forcer l'usage des clés, modifiez la configuration SSH du serveur :

sudo nano /etc/ssh/sshd_config

Cherchez et modifiez la ligne suivante :

PasswordAuthentication no

Supprimez également le fichier de config cloud-init s'il existe :

cd /etc/ssh/sshd_config.d/ && sudo rm 50-cloud-init.conf
sudo systemctl restart ssh
🎁
BONUS : Récupérer une clé depuis le serveur

Si vous avez bloqué l'accès par mot de passe mais souhaitez ajouter un nouveau client, vous pouvez aller chercher la clé générée sur le nouveau client depuis le serveur :

Client Linux (avec serveur SSH installé) :

ssh nom_user_client@ip_client "cat ~/.ssh/id_clef.pub" >> ~/.ssh/authorized_keys

Client Windows (avec serveur SSH installé) :

ssh nom_user_client@ip_client "type C:/users/MartinDepanne/.ssh/id_clef.pub" >> ~/.ssh/authorized_keys

1. Les Racines — L'ère Unix (Années 60 - 80)

Avant l'ordinateur personnel, l'informatique était une affaire de colosses. Unix est né en 1969 aux Laboratoires Bell (AT&T) — bien avant Windows, bien avant le PC.

L'âge d'or dans les universités américaines

Dans les années 70 et 80, Unix n'était pas un produit de consommation, mais un outil de recherche. AT&T a distribué le code source d'Unix aux grandes universités pour presque rien. Les étudiants et chercheurs (notamment à Berkeley avec la version BSD) ont modifié le code, ajouté des fonctionnalités, et créé les protocoles qui font l'Internet d'aujourd'hui, comme le TCP/IP. On l'utilisait sur des Mainframes — ordinateurs géants occupant des pièces entières — pour calculer des trajectoires, gérer des bases de données ou faire de la recherche nucléaire.

2. La Révolte — GNU et Linus Torvalds

Vers 1980, Unix devient propriétaire : AT&T commence à facturer très cher et interdit de voir le code source.

🧔 1983 — Richard Stallman

Il lance le projet GNU. Idée radicale : créer un système Libre — lisible, modifiable, partageable. Il écrit presque tout, sauf le cœur du système.

👨‍💻 1991 — Linus Torvalds

Cet étudiant finlandais veut un système Unix sur son PC personnel, mais les licences sont trop chères. Il écrit un Noyau (Kernel) et le publie sur internet.

🔀 La fusion — GNU/Linux

En ajoutant les outils de Stallman au noyau de Torvalds, on obtient GNU/Linux : un système complet, libre, gratuit et ouvert à tous.

3. Le Noyau (Kernel) — Le Chef d'Orchestre

Le noyau est la partie la plus critique du système. Il travaille sous le capot, entre le matériel et les applications, sans interface visuelle.

#MissionDescription
01Gestion du HardwareParle au processeur, à la RAM, aux disques et périphériques
02Gestion des ProcessusDécide quel logiciel utilise le processeur et pendant combien de temps (multitâche)
03Gestion de la MémoireEmpêche un processus d'accéder aux données d'un autre (isolation mémoire)
04Droits & PermissionsVérifie si un utilisateur a le droit de lire, écrire ou exécuter un fichier

4. Les Distributions — Linux pour tous

Comme Linux est gratuit et ouvert, chaque groupe de personnes a créé sa propre version : la Distribution. Le noyau est identique, mais les outils et l'interface diffèrent.

UsageDistributionsCaractéristique principale
ServeursDebian, Red Hat, CentOSStabilité maximale, mises à jour contrôlées
Grand PublicUbuntu, Linux MintSimplicité, interface graphique soignée
Sécurité / PentestKali Linux, Parrot OSOutils offensifs préinstallés (hackers éthiques)
Embarqué / IoTAlpine, RaspbianTrès léger, faible empreinte mémoire

5. La Structure des Fichiers (Arborescence)

Oubliez le C:\. Sous Linux, tout commence à la racine / — disques, périphériques, fichiers système.

DossierContenuAnalogie
/binCommandes de base (ls, cp, mv…)🧰 Le sac à outils
/etcFichiers de configuration du système⚙️ Les réglages machine
/homeRépertoires personnels des utilisateurs🏠 Les chambres des utilisateurs
/rootRépertoire du super-utilisateur (root)🏰 La chambre forte de l'admin
/varDonnées variables : logs, bases de données, spool…📋 Les archives dynamiques
/tmpFichiers temporaires, vidés au redémarrage🗑️ La corbeille temporaire
/devFichiers représentant les périphériques matériels🖨️ Les périphériques (tout est fichier)
/procSystème de fichiers virtuel — état du noyau en temps réel🧠 La mémoire vive du noyau

6. Pourquoi Linux domine le monde ?

Si vous ne le voyez pas sur votre bureau, Linux est pourtant partout :

🌐
Serveurs Web
~90% des serveurs internet tournent sous Linux
Supercalculateurs
100% des 500 ordinateurs les plus puissants au monde
📱
Smartphones
Android est basé sur un noyau Linux
🏠
Objets connectés
Box internet, frigos connectés, voitures Tesla…

Contexte — Pourquoi Samba ?

Samba est une implémentation libre du protocole SMB/CIFS (Server Message Block), le protocole utilisé par Windows pour le partage de fichiers et d'imprimantes sur un réseau. Grâce à Samba, un serveur Linux peut partager des dossiers directement accessibles depuis l'explorateur Windows, sans aucun logiciel supplémentaire côté client.

01
Mettre à jour le système et installer Samba

Commencez par mettre à jour les paquets du système, puis installez Samba :

sudo apt update && sudo apt upgrade sudo apt install samba

Vérifiez que Samba est bien installé et que le service est actif :

sudo systemctl status smbd
💡 Le service principal de Samba s'appelle smbd (SMB Daemon). Un second service nmbd gère la résolution de noms NetBIOS — utile pour retrouver le serveur par son nom sur le réseau.
02
Créer le dossier à partager

Créez le répertoire DossierPartage dans votre répertoire personnel, puis ajoutez-y quelques fichiers de test :

mkdir ~/DossierPartage touch ~/DossierPartage/fichier1.txt touch ~/DossierPartage/fichier2.txt mkdir ~/DossierPartage/sous-dossier

Attribuez les bonnes permissions au dossier pour que Samba puisse y accéder :

sudo chown -R votre_utilisateur:groupe_de_lutilisateur ~/DossierPartage sudo chmod 755 ~/DossierPartage
03
Sauvegarder et éditer la configuration Samba

Avant de modifier le fichier de configuration, faites-en une sauvegarde :

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

Ouvrez ensuite le fichier de configuration principal de Samba :

sudo nano /etc/samba/smb.conf

Faites défiler jusqu'à la fin du fichier et ajoutez le bloc suivant pour définir votre partage :

[DossierPartage] comment = Partage de fichiers Linux path = /home/votre_utilisateur/DossierPartage browseable = yes read only = no writable = yes # Paramètres optionnels : valid users = votre_utilisateur create mask = 0664 directory mask = 0775
ℹ️ Remplacez votre_utilisateur par votre nom d'utilisateur Linux réel. Vous pouvez le connaître avec la commande whoami.

Explication des paramètres clés :

  • comment — Description du partage visible depuis les clients réseau
  • path — Chemin absolu du répertoire partagé sur le serveur
  • browseable — Rend le partage visible lors de la navigation réseau
  • writable — Autorise l'écriture dans le dossier partagé
  • valid users — Restreint l'accès aux utilisateurs listés
  • create mask — Permissions appliquées aux nouveaux fichiers créés
04
Vérifier la configuration et créer l'utilisateur Samba

Samba utilise sa propre base de mots de passe, indépendante du système Linux. Il faut donc enregistrer l'utilisateur dans Samba avec un mot de passe dédié :

sudo smbpasswd -a VOTRE_UTILISATEUR

Saisissez et confirmez le mot de passe Samba demandé. Ce sera le mot de passe utilisé pour se connecter depuis un client Windows ou Linux.

Vérifiez ensuite que la syntaxe du fichier de configuration est correcte :

testparm

Si aucune erreur n'est signalée, la configuration est valide.

💡 testparm est un outil fourni avec Samba qui analyse le fichier smb.conf et signale les erreurs de syntaxe avant même de redémarrer le service.
05
Redémarrer Samba pour appliquer les modifications

Redémarrez les deux services Samba pour appliquer la nouvelle configuration :

sudo systemctl restart smbd sudo systemctl restart nmbd

Activez le démarrage automatique au boot :

sudo systemctl enable smbd sudo systemctl enable nmbd
06
Configurer le pare-feu UFW Optionnel — Recommandé

Si le pare-feu UFW est actif sur votre système, autorisez le trafic Samba :

sudo ufw allow samba

Ou manuellement en ouvrant les ports utilisés par SMB :

sudo ufw allow 137/udp sudo ufw allow 138/udp sudo ufw allow 139/tcp sudo ufw allow 445/tcp
07
Récupérer l'adresse IP du serveur

Notez l'adresse IP de votre serveur Linux — les clients en auront besoin pour s'y connecter :

ip a

Repérez l'interface réseau active (généralement eth0 ou ens33) et notez son adresse IPv4 (ex : 192.168.1.50).

08
Accéder au partage depuis un autre poste

Depuis Windows

Ouvrez l'Explorateur de fichiers, puis dans la barre d'adresse saisissez :

\\192.168.1.50\DossierPartage

Windows vous demandera un nom d'utilisateur et un mot de passe — saisissez ceux définis avec smbpasswd.

Depuis un autre Linux

Montez le partage Samba dans un répertoire local :

sudo mkdir /mnt/partage sudo mount -t cifs //192.168.1.50/DossierPartage /mnt/partage -o username=VOTRE_UTILISATEUR

Ou installez le gestionnaire de fichiers Nautilus et parcourez via Autres emplacements → Connexion à un serveur avec l'adresse :

smb://192.168.1.50/DossierPartage
ℹ️ Remplacez 192.168.1.50 par l'adresse IP réelle relevée à l'étape précédente.
🎁
BONUS — Partage public sans mot de passe

Si vous souhaitez un partage accessible par tous sans authentification (à utiliser uniquement sur un réseau local de confiance), modifiez le bloc dans smb.conf comme suit :

[DossierPartage] comment = Partage public path = /home/VOTRE_UTILISATEUR/DossierPartage browseable = yes read only = no guest ok = yes public = yes

Puis donnez les droits en écriture à tous les utilisateurs sur le dossier :

sudo chmod 777 ~/DossierPartage sudo systemctl restart smbd
⚠️ Un partage public sans mot de passe est pratique en environnement de lab, mais à proscrire en production ou sur un réseau exposé à Internet.

Contexte — Pourquoi les ACL ?

Les permissions Linux classiques (chmod) ne permettent de définir des droits que pour 3 entités : le propriétaire, le groupe et les autres. Dès qu'on veut donner des droits spécifiques à un utilisateur particulier sans le mettre dans un groupe, les permissions standard atteignent leurs limites.

Les ACL (Access Control Lists) permettent d'ajouter des entrées de permissions supplémentaires, ciblées par utilisateur ou par groupe, indépendamment de la propriété du fichier.

01
Installer les outils ACL

Les outils getfacl et setfacl sont généralement inclus dans le paquet acl. Installez-le si nécessaire :

sudo apt install acl

Vérifiez que les commandes sont bien disponibles :

getfacl --version setfacl --version
02
Créer l'environnement de test

Créez un répertoire de travail appelé TestPermissions dans lequel nous allons appliquer les ACL :

sudo mkdir /TestPermissions sudo touch /TestPermissions/fichier_test.txt

Créez ensuite deux utilisateurs : utilisateur1 (le propriétaire) et utilisateur2 (à qui on accordera des droits via ACL) :

sudo adduser utilisateur1 sudo adduser utilisateur2

Attribuez utilisateur1 comme propriétaire du répertoire :

sudo chown utilisateur1:utilisateur1 /TestPermissions sudo chmod 700 /TestPermissions
ℹ️ Avec chmod 700, seul utilisateur1 a accès au répertoire. utilisateur2 n'a pour l'instant aucun droit — nous allons le lui accorder via les ACL.
03
Vérifier les ACL actuelles avec getfacl

Avant d'ajouter des entrées ACL, consultez l'état actuel des permissions du répertoire :

getfacl /TestPermissions

La sortie devrait ressembler à ceci :

# file: TestPermissions # owner: utilisateur1 # group: utilisateur1 user::rwx group::--- other::---

On constate qu'il n'y a que les 3 entrées classiques. utilisateur2 n'apparaît pas encore.

04
Ajouter une entrée ACL pour utilisateur2

Utilisez setfacl pour accorder à utilisateur2 les droits de lecture et d'écriture sur le répertoire :

sudo setfacl -m u:utilisateur2:rw /TestPermissions

Détail des options utilisées :

  • -mmodify : ajoute ou modifie une entrée ACL existante
  • u:utilisateur2 — cible l'utilisateur nommé utilisateur2
  • :rw — accorde les droits de lecture (r) et d'écriture (w)
💡 Pour appliquer récursivement à tout le contenu d'un répertoire, ajoutez l'option -R : sudo setfacl -R -m u:utilisateur2:rw /TestPermissions
05
Vérifier les ACL après modification

Relancez getfacl pour confirmer que l'entrée ACL a bien été ajoutée :

getfacl /TestPermissions

La sortie devrait maintenant afficher une ligne supplémentaire pour utilisateur2 :

# file: TestPermissions # owner: utilisateur1 # group: utilisateur1 user::rwx user:utilisateur2:rw- group::--- mask::rw- other::---

Deux nouvelles lignes sont apparues :

  • user:utilisateur2:rw- — l'entrée ACL que vous venez d'ajouter
  • mask::rw- — le masque effectif, qui représente le maximum de droits que peuvent avoir les entrées ACL (hors propriétaire)
ℹ️ La présence du signe + après les permissions dans un ls -l (ex : drwx------+) indique qu'une ACL est active sur ce fichier ou répertoire.
06
Commandes ACL utiles

Voici les commandes les plus courantes pour gérer les ACL au quotidien :

Ajouter des droits à un groupe

sudo setfacl -m g:nomgroupe:rx /repertoire

Supprimer l'entrée ACL d'un utilisateur

sudo setfacl -x u:utilisateur2 /TestPermissions

Supprimer toutes les ACL d'un fichier/dossier

sudo setfacl -b /TestPermissions

Définir des ACL par défaut (héritées par les nouveaux fichiers)

sudo setfacl -d -m u:utilisateur2:rw /TestPermissions

Copier les ACL d'un fichier vers un autre

getfacl /TestPermissions | sudo setfacl --set-file=- /AutreRepertoire
💡 L'option -d (default) est très utile sur les répertoires partagés : tous les nouveaux fichiers créés dedans hériteront automatiquement des ACL définies.
📋
Récapitulatif — Syntaxe setfacl
CommandeDescription
setfacl -m u:user:rwxAjouter/modifier droits pour un utilisateur
setfacl -m g:group:rxAjouter/modifier droits pour un groupe
setfacl -x u:userSupprimer l'entrée ACL d'un utilisateur
setfacl -bSupprimer toutes les ACL
setfacl -R -mAppliquer récursivement
setfacl -d -mDéfinir des ACL par défaut (héritage)
getfacl fichierAfficher toutes les ACL d'un fichier/dossier

Les droits ACL utilisent la même notation que chmod :

  • r — lecture
  • w — écriture
  • x — exécution
  • - — droit non accordé
01
Installer le serveur SSH

Le SFTP repose sur SSH. Si le serveur SSH n'est pas encore installé sur votre système, installez-le avec la commande suivante :

sudo apt install ssh
💡 Sur la plupart des distributions Ubuntu serveur, OpenSSH est déjà installé par défaut. Vous pouvez vérifier avec sudo service ssh status.
02
Modifier la configuration SSHD

Une fois SSH installé, ouvrez le fichier de configuration du démon SSH pour y apporter les modifications nécessaires :

sudo nano /etc/ssh/sshd_config

Faites défiler jusqu'à la fin du fichier et ajoutez ces 5 lignes :

Match group sftp ChrootDirectory /home X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
ℹ️ Ces lignes indiquent à SSH que tous les membres du groupe sftp seront automatiquement redirigés vers le sous-système SFTP interne, avec leur accès restreint au répertoire /home.
03
Redémarrer le service SSH

Redémarrez le service SSH pour que les modifications prennent effet :

sudo systemctl restart ssh
04
Créer le groupe SFTP

Créez un groupe dédié appelé sftp. Tous les utilisateurs SFTP devront appartenir à ce groupe :

sudo addgroup sftp
05
Créer un utilisateur SFTP

Créez un nouvel utilisateur et ajoutez-le directement au groupe sftp. Dans cet exemple, l'utilisateur s'appellera sftpuser :

sudo useradd -m sftpuser -g sftp

Définissez ensuite un mot de passe pour cet utilisateur :

sudo passwd sftpuser

Saisissez le mot de passe lorsque demandé, puis confirmez-le. Le système affichera passwd: password updated successfully en cas de succès.

06
Définir les permissions du répertoire utilisateur

Accordez un accès complet à l'utilisateur sur son propre répertoire personnel, tout en interdisant l'accès aux autres utilisateurs du système :

sudo chmod 700 /home/sftpuser/
ℹ️ Le chmod 700 signifie : lecture + écriture + exécution pour le propriétaire uniquement — les autres utilisateurs n'ont aucun droit sur ce dossier.
01
Mettre à jour le système et installer VSFTPD

Avant toute installation, assurez-vous que le système est à jour :

sudo apt update && sudo apt upgrade

Installez ensuite VSFTPD :

sudo apt install vsftpd

Une fois l'installation terminée, VSFTPD sera opérationnel sur votre système Ubuntu.

02
Vérifier l'état du service et activer le démarrage automatique

Vérifiez que VSFTPD est bien en cours d'exécution :

sudo service vsftpd status

Activez le démarrage automatique au boot :

sudo systemctl start vsftpd sudo systemctl enable vsftpd
03
Configurer VSFTPD

La configuration de VSFTPD se fait via le fichier /etc/vsftpd.conf. Ouvrez-le avec votre éditeur de texte :

sudo nano /etc/vsftpd.conf

Voici les paramètres courants à connaître :

  • anonymous_enable : Active ou désactive l'accès anonyme au serveur FTP.
  • local_enable : Active ou désactive l'accès des utilisateurs locaux au serveur FTP.
  • write_enable : Autorise ou interdit l'écriture de fichiers sur le serveur FTP.
  • chroot_local_user : Restreint les utilisateurs locaux à leur répertoire personnel.

Modifiez ces lignes comme suit :

local_enable=YES write_enable=YES chroot_local_user=YES

Ajoutez ensuite ces lignes à la fin du fichier pour le mode passif et la gestion de la liste d'utilisateurs :

user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=10000 pasv_max_port=10100 userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO

Redémarrez VSFTPD pour appliquer les changements :

sudo systemctl restart vsftpd.service
04
Gestion des utilisateurs FTP

Vous pouvez créer de nouveaux utilisateurs FTP avec adduser ou useradd et leur attribuer un accès en modifiant le fichier /etc/vsftpd.userlist.

sudo adduser utilisateur sudo mkdir -p /home/utilisateur/ftp sudo chown nobody:nogroup /home/utilisateur/ftp sudo chmod a-w /home/utilisateur/ftp sudo mkdir /home/utilisateur/ftp/fichiers sudo chown utilisateur:utilisateur /home/utilisateur/ftp/fichiers sudo nano /home/utilisateur/ftp/fichiers/liste.txt echo "utilisateur" | sudo tee -a /etc/vsftpd.userlist sudo systemctl restart vsftpd
ℹ️ La structure du répertoire FTP impose que le dossier racine (/home/utilisateur/ftp) n'appartienne pas à l'utilisateur, mais que le sous-dossier fichiers lui appartienne — c'est là qu'il pourra écrire.
05
Se connecter depuis Windows avec WinSCP

Pour vous connecter au serveur FTP depuis un poste Windows, utilisez le logiciel WinSCP. Au lancement, la fenêtre de connexion s'ouvre automatiquement :

Renseignez les champs suivants :

  • Protocole de fichier : FTP
  • Nom d'hôte : l'adresse IP de votre serveur (ex : 172.31.254.80)
  • Numéro de port : 21
  • Nom d'utilisateur : le compte créé sur le serveur (ex : martin)
  • Mot de passe : le mot de passe associé à cet utilisateur

Cliquez sur Connexion pour accéder au serveur FTP.

💡 Si vous avez activé SSL/TLS sur le serveur, sélectionnez FTP avec chiffrement TLS/SSL explicite dans le champ "Chiffrement" au lieu de "Pas de chiffrement".
⚙️
Configurer le pare-feu UFW Optionnel — Recommandé

Si votre serveur utilise le pare-feu ufw, autorisez les ports nécessaires pour le FTP et le mode passif :

sudo ufw allow 20:21/tcp sudo ufw allow 10000:10100/tcp
💡 Le port 21 est le port de commande FTP, le port 20 est utilisé pour le transfert de données en mode actif. Les ports 10000 à 10100 sont les ports passifs définis dans la configuration.
🔐
Sécuriser VSFTPD avec SSL/TLS

Pour renforcer la sécurité de votre serveur FTP, vous pouvez activer le chiffrement SSL/TLS. Commencez par générer un certificat auto-signé :

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Ajoutez ensuite les lignes suivantes à /etc/vsftpd.conf :

rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO require_ssl_reuse=NO ssl_ciphers=HIGH pasv_min_port=40000 pasv_max_port=50000
⚠️ Avec SSL/TLS activé, les clients FTP basiques (comme le navigateur) ne fonctionneront plus. Utilisez un client comme FileZilla qui supporte FTPS.

1. Qu'est-ce que le FTP ?

Le FTP (File Transfer Protocol) est un protocole réseau standard permettant le transfert de fichiers entre un client et un serveur via un réseau TCP/IP. Il a été défini dans le RFC 959 en 1985.

Il utilise deux canaux de communication distincts :

  • Port 21 — Canal de commande : pour envoyer des instructions (login, navigation, liste de fichiers…)
  • Port 20 — Canal de données : pour le transfert effectif des fichiers (en mode actif)

2. Mode Actif vs Mode Passif

Le FTP fonctionne selon deux modes qui diffèrent dans la façon dont la connexion de données est établie :

CritèreMode ActifMode Passif (PASV)
Qui initie la connexion data ?Le serveur contacte le clientLe client contacte le serveur
Port de données côté serveurPort 20Port aléatoire défini par le serveur
Problèmes avec les pare-feuxSouvent bloqué (le serveur initie)Plus compatible (le client initie)
Usage recommandéRéseaux internes sans NATInternet, derrière un routeur NAT
💡 En pratique, le mode passif est presque toujours utilisé sur Internet, car les pare-feux des clients bloquent les connexions entrantes initiées depuis l'extérieur.

3. Qu'est-ce que VSFTPD ?

VSFTPD (Very Secure FTP Daemon) est l'un des serveurs FTP les plus utilisés sous Linux. Il est notamment utilisé par des systèmes comme Ubuntu et est réputé pour :

  • Sa sécurité : conçu avec la sécurité en priorité, d'où son nom
  • Ses performances : très léger et efficace même sous forte charge
  • Sa stabilité : utilisé en production sur de nombreux serveurs
  • Sa simplicité de configuration via un seul fichier /etc/vsftpd.conf

4. Principaux paramètres de configuration

ParamètreValeurDescription
anonymous_enableYES/NOAutorise ou interdit les connexions sans mot de passe
local_enableYES/NOAutorise les comptes locaux Linux à se connecter
write_enableYES/NOAutorise l'écriture de fichiers sur le serveur
chroot_local_userYES/NOEmprisonne l'utilisateur dans son répertoire personnel (jail)
userlist_enableYES/NOActive l'utilisation d'une liste blanche/noire d'utilisateurs
userlist_denyYES/NONO = liste blanche (seuls les listés ont accès)
pasv_min_portNombrePort minimal pour le mode passif
pasv_max_portNombrePort maximal pour le mode passif
ssl_enableYES/NOActive le chiffrement FTPS (SSL/TLS)

5. FTP vs FTPS vs SFTP

Il est important de ne pas confondre ces trois protocoles :

ProtocolePortChiffrementDescription
FTP21 / 20❌ NonProtocole classique — données en clair sur le réseau
FTPS990 / 989✅ Oui (SSL/TLS)FTP avec couche SSL/TLS — ce que configure VSFTPD
SFTP22✅ Oui (SSH)Protocole différent — transfert via tunnel SSH, sans lien avec FTP
⚠️ SFTP n'est pas du FTP sécurisé — c'est un protocole totalement différent qui passe par SSH. Si vous voulez du FTP chiffré, utilisez FTPS (configuré via VSFTPD avec ssl_enable=YES).

6. Structure des répertoires VSFTPD

Pour que le chroot fonctionne correctement avec VSFTPD, la structure de répertoires doit respecter une règle précise : le répertoire racine de l'utilisateur ne doit pas lui appartenir, mais il doit posséder un sous-dossier pour écrire.

/home/utilisateur/ └── ftp/ ← propriétaire : nobody:nogroup, droits : a-w (pas d'écriture) └── fichiers/ ← propriétaire : utilisateur:utilisateur (peut écrire ici)
💡 Cette structure est requise car VSFTPD refuse de chroiter un utilisateur dans un répertoire où il a les droits d'écriture à la racine — c'est une mesure de sécurité.

1. Le groupe de sécurité Active Directory

01
Créer le groupe de sécurité GRP-Redirection

Dans la console Active Directory Utilisateurs et Ordinateurs, créer un nouveau groupe de sécurité nommé GRP-Redirection.

⚠️ Ce groupe contiendra uniquement les utilisateurs pour lesquels la redirection de dossiers doit être activée.

Ajoutez ensuite les membres souhaités dans ce groupe.

2. Le partage SMB et attribution des droits

02
Créer le partage SMB — Profiles$

Dans la console Gestionnaire de serveur, accédez à Services de fichiers et de stockage et créez un nouveau partage :

Type : Partage SMB - Rapide Nom : Profiles$
✅ Le symbole $ à la fin du nom masque le partage lors de la navigation réseau — bonne pratique de sécurité.

Options à activer :

OptionEffet
Activer l'énumération basée sur l'accèsL'utilisateur ne voit que son propre dossier lors de la navigation
Autoriser la mise en cache du partageActive la synchronisation des fichiers hors connexion
03
Configurer les autorisations NTFS
⚠️ C'est l'étape la plus délicate. Les permissions NTFS doivent être configurées précisément pour que chaque utilisateur accède uniquement à son propre dossier.
PrincipalAccèsS'applique à
SystèmeContrôle totalCe dossier, sous-dossiers et fichiers
AdministrateurContrôle totalCe dossier, sous-dossiers et fichiers
GRP-RedirectionLecture & Exécution, Création de dossiersCe dossier seulement
CRÉATEUR PROPRIÉTAIREContrôle totalSous-dossiers et fichiers seulement

3. La GPO de redirection de dossiers

04
Créer et cibler la GPO FOLDER_REDIRECTION

Via la console Gestion de stratégie de groupe, créez une GPO nommée FOLDER_REDIRECTION.

Filtrage de sécurité : modifiez-le pour qu'il contienne uniquement GRP-Redirection (retirez Utilisateurs authentifiés du filtrage).

⚠️ Suite à la mise à jour MS16-072, vous devez ajouter Utilisateurs authentifiés en Lecture dans l'onglet Délégation pour que la redirection fonctionne correctement.
05
Configurer la redirection du dossier Documents

Dans la GPO, naviguez vers :

Configuration utilisateur → Stratégies → Paramètres Windows → Redirection de dossiers → Documents

Clic droit sur DocumentsPropriétés :

ParamètreValeur recommandée
ParamètreDe base — Rediriger le dossier de tout le monde vers le même emplacement
OptionCréer un dossier pour chaque utilisateur sous le chemin d'accès racine
Chemin d'accès à la racine\\SRV-DC-01\Profiles$
✅ Dans l'onglet Paramètres : cochez "Accorder à l'utilisateur des droits exclusifs sur Documents" pour que seul l'utilisateur puisse accéder à son dossier.
⚠️ La procédure est identique pour Bureau, Images, etc. Répétez pour chaque dossier à rediriger.

4. Tester la redirection

06
Appliquer la GPO et vérifier

Sur le poste client, ouvrir une invite de commandes ou PowerShell en tant qu'administrateur :

gpupdate /force
⚠️ La commande vous avertira de la redirection et proposera de fermer la session. Validez avec O puis Entrée.

Reconnectez-vous avec l'utilisateur concerné et vérifiez :

✅ Un dossier au nom de l'utilisateur existe dans \\SRV-DC-01\Profiles$ ✅ Les fichiers Documents sont stockés sur le serveur ✅ L'utilisateur voit ses fichiers normalement
🌐

Réseau & IP

🔌

Ports & Services

🐧

Linux & GPO