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éseauPolitiques GPO
10 procédures : blocage, déploiement, MDP, mappage…
10 procéduresCours Réseau
Acronymes, ports, OSI, IP, VLAN, routage et plus.
12 chapitresVLANs Cisco
Configuration complète avec commandes et schémas.
Coursip helper-address.La maquette comporte 3 réseaux distincts reliés par 1 routeur. Le serveur DHCP est positionné dans le LAN1 (192.168.0.0/24) et distribue des adresses aux machines des LAN2 et LAN3 via le relay.
Ouvrir le routeur → onglet IConfig → section INTERFACE. Sélectionner chaque interface GigabitEthernet et lui attribuer :
GigabitEthernet0/0→ IP 10.0.0.254 / 255.255.255.0 (vers LAN3)GigabitEthernet1/0→ IP 172.16.0.254 / 255.255.255.0 (vers LAN2)GigabitEthernet2/0→ IP 192.168.0.254 / 255.255.255.0 (vers LAN1 / serveur)
Pour chaque interface : cocher Port Status → On ①③, saisir l'adresse IPv4 ④ et le masque ⑤.
Ouvrir Server0 → onglet Desktop → IP Configuration. Sélectionner Static et renseigner :
- IPv4 Address :
192.168.0.1② - Subnet Mask :
255.255.255.0 - Default Gateway :
192.168.0.254③ (interface du routeur côté LAN1)
Ouvrir Server0 → onglet Services ① → DHCP ②. Activer le service ③. Créer 3 pools en remplissant les champs puis cliquer sur Add ⑨ pour chaque :
| Pool Name ④ | Default Gateway ⑤ | Start IP ⑥ | Subnet Mask ⑦ | Max Users ⑧ |
|---|---|---|---|---|
| LAN2 | 172.16.0.254 | 172.16.0.100 | 255.255.255.0 | 101 |
| LAN3 | 10.0.0.254 | 10.0.0.100 | 255.255.255.0 | 101 |
| serverPool | 192.168.0.254 | 192.168.0.100 | 255.255.255.0 | 101 |
Ouvrir Router0 → onglet CLI. Appliquer ip helper-address sur chacune des 3 interfaces (côté LAN2 et LAN3 uniquement — pas côté serveur) :
② Interface GigabitEthernet 2/0 (vers LAN2) :
③ Interface GigabitEthernet 1/0 (vers LAN3) :
④ Interface GigabitEthernet 0/0 (vers LAN3) :
ip helper-address 192.168.0.1 = adresse IP du serveur DHCP. À répéter sur toutes les interfaces côté clients.
Sur chaque PC client (PC0 à PC5) → onglet Desktop → IP Configuration → sélectionner DHCP. La configuration IP doit se faire automatiquement :
- PC du LAN2 → reçoivent une IP
172.16.0.1xxavec gateway172.16.0.254 - PC du LAN3 → reçoivent une IP
10.0.0.1xxavec gateway10.0.0.254 - PC du LAN1 → reçoivent une IP
192.168.0.1xxavec gateway192.168.0.254
Le routage dynamique RIP (Routing Information Protocol) permet à plusieurs routeurs de s'échanger automatiquement leurs tables de routage. Contrairement au routage statique, il n'est pas nécessaire de déclarer manuellement chaque réseau distant sur chaque routeur — RIP s'en charge.
Dans cet exemple on part d'une topologie simple : 3 réseaux reliés par 2 routeurs, puis on voit comment étendre la logique à un schéma plus complexe.
Ouvrir chaque routeur → onglet Config → section INTERFACE. Attribuer une IP à chaque port utilisé :
- Port côté LAN → IP de la passerelle du LAN (ex:
172.16.1.254/ 255.255.255.0) - Port côté lien inter-routeurs → IP dans le sous-réseau de transit (ex:
10.0.0.1/ 255.255.255.252)
Pour chaque interface : cocher Port Status → On ③, saisir l'IPv4 ④ et le masque ⑤.
/30 (255.255.255.252) car seules 2 adresses hôtes sont nécessaires.Sur chaque PC → onglet Desktop → IP Configuration → Static. Renseigner :
- IPv4 Address ② : une IP libre dans le LAN du PC (ex:
172.16.1.1) - Subnet Mask ③ :
255.255.255.0 - Default Gateway ④ : l'IP du routeur côté ce LAN (ex:
172.16.1.254)
Ouvrir chaque routeur → onglet CLI. Activer RIP et déclarer tous les réseaux directement connectés au routeur (pas les réseaux distants — RIP s'en charge automatiquement).
Exemple pour le routeur de gauche (connecté au LAN 172.16.1.0 et au lien 10.0.0.0) :
no auto-summary est indispensable en RIP v2 pour éviter que les sous-réseaux soient résumés automatiquement et perdent leur précision.⚠️ On déclare uniquement les réseaux locaux du routeur. RIP propagera ensuite les routes aux autres routeurs automatiquement.
Répéter la même procédure sur le routeur de droite en adaptant les réseaux déclarés (lien inter-routeurs + LAN droit).
Sur une maquette avec davantage de routeurs, la logique reste identique : chaque routeur déclare uniquement ses propres réseaux. RIP se charge de propager les routes à l'ensemble du réseau.
Le routeur central (hub) n'a pas besoin de déclarer les réseaux des bords — il déclare seulement ses liens directs. Les "réseaux de secours" (liens de backup) peuvent également ne pas être déclarés s'ils ne servent qu'en failover.
Exemple pour le routeur du milieu dans une topologie maillée :
Il est aussi possible de configurer les interfaces du routeur entièrement en ligne de commande plutôt que via l'onglet Config. À faire pour chaque port :
copy running-config startup-configObjectif : distribuer des IPs à plusieurs sous-réseaux depuis un serveur DHCP centralisé via MikroTik.



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











Finalisez la configuration post-installation (autoriser le serveur DHCP dans AD).
Définissez la plage (ex: 192.168.1.100–200), le masque, la passerelle et le DNS. Activez l'étendue.
Créez et nommez la GPO Desactivation_CMD. Liez-la à l'OU concernée.

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

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

Activez, cliquez sur Afficher et ajoutez :


Utilisez un fichier .MSI et placez-le dans un dossier partagé via UNC :
Créez une GPO nommée Logiciels.
Clic droit → Nouveau → Package → sélectionnez le .MSI via UNC → Attribué.



Répondez O pour redémarrer.


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





Créez une GPO liée à l'OU cible (ex: OU Commercial) nommée Raccourci Bureau.
Clic droit → Nouveau raccourci. Remplissez les champs :




Renseignez le chemin UNC du dossier partagé dans Chemin d'accès cible.
Créez Raccourci_Fermeture_Session liée au domaine / OU machines, dans Configuration ordinateur.


Placez l'image dans SYSVOL :

Sinon accordez la permission Lecture aux Ordinateurs du domaine sur le dossier choisi.
Dans Commun, cochez Appliquer une fois et ne pas réappliquer.



Activez et indiquez le chemin local de l'image.

Déconnectez puis reconnectez-vous.

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

Créez Mappage_Lecteur liée au domaine ou à une OU.
Clic droit → Nouveau lecteur mappé. Configurez la lettre et le chemin UNC.



Dans Commun → Ciblage au niveau des éléments → Nouvel élément → Groupe de sécurité. Ajoutez vos groupes GG :
F6 sur une ligne pour passer l'opérateur en OU.


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.



Créez Masquer_Lecteur_C. Naviguez vers :
Activez et choisissez Restreindre au lecteur C uniquement.


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

Créez Message_Ouverture_Session. Naviguez vers :
Configurez :

Renseignez le titre et le corps du message.
Utilisez la Default Domain Policy ou une GPO dédiée liée à la racine du domaine.

Recommandation : 12 car. min, complexité ON, 90 jours, 10 MDP mémorisés.
Dans la catégorie Stratégie de verrouillage du compte :

À 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.
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.
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 :
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 ?"
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."
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.
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."
ipconfig /all sous Windows.Résumé visuel — DORA en un coup d'œil
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.
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
🔒 Sécurité & Confidentialité
📧 Messagerie Électronique
🌐 Réseaux Informatiques
💻 Composants Matériels
☁️ Virtualisation & Cloud


| Port | Protocole | Description | TCP/UDP |
|---|---|---|---|
| 20 | FTP | File Transfer Protocol — Data Transfer | TCP |
| 21 | FTP | File Transfer Protocol — Command Control | TCP |
| 22 | SSH | Secure Shell | TCP |
| 23 | TELNET | Remote Login Service | TCP |
| 25 | SMTP | Simple Mail Transfer Protocol | TCP |
| 53 | DNS | Domain Name System | TCP/UDP |
| 67 | DHCP | DHCP — Serveur | UDP |
| 68 | DHCP | DHCP — Client | UDP |
| 80 | HTTP | Hypertext Transfer Protocol | TCP |
| 88 | KERBEROS | Network Authentication Service | TCP/UDP |
| 110 | POP3 | Post Office Protocol | TCP |
| 143 | IMAP | Internet Message Access Protocol | TCP |
| 161 | SNMP | Simple Network Management Protocol | UDP |
| 389 | LDAP | Lightweight Directory Access Protocol | TCP/UDP |
| 443 | HTTPS | HTTP Secure (HTTP over TLS/SSL) | TCP |
| 445 | SMB | Server Message Block | TCP |
| 465 | SMTPS | SMTP over SSL/TLS | TCP |
| 500 | ISAKMP | Internet Security Association and Key Management Protocol | UDP |
| 636 | LDAPS | LDAP over SSL/TLS | TCP |
| 853 | DNS over TLS | DNS over TLS | TCP |
| 993 | IMAPS | IMAP over SSL/TLS | TCP |
| 995 | POP3S | POP3 over SSL/TLS | TCP |

Présentation — Qu'est-ce que le 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 :
La section Gestion de quota dans la console FSRM se divise en deux parties :
| Section | Rôle |
|---|---|
| Quotas | Affiche les règles actives — quotas déjà appliqués sur des répertoires |
| Modèles de quotas | Permet de créer, visualiser ou modifier des modèles réutilisables |
FSRM propose deux modes de quota :
| Type | Comportement | Usage 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 |

Alertes & Reporting
FSRM peut déclencher automatiquement différentes actions lorsqu'un seuil de quota est atteint (par exemple à 80%, 90% ou 100%).
| Action | Description |
|---|---|
| 📧 Notification e-mail | Alerte l'administrateur et/ou l'utilisateur concerné |
| 📊 Rapport de stockage | Génère automatiquement un rapport d'utilisation |
| 📋 Observateur d'événements | Enregistre un événement dans les journaux Windows (supervision) |
| ⚙️ Exécution d'une commande | Lance un script ou un programme (ex : extension automatique du quota) |
Modèles de quotas
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 :
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.

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.


Créer et appliquer un quota
Une fois le modèle prêt, dans la console FSRM :
- Faire un clic droit sur Quotas dans la console FSRM
- Cliquer sur Créer un quota
- Sélectionner le répertoire cible
- Choisir Créer un quota à partir d'un modèle
- Sélectionner le modèle adapté → cliquer sur Créer

Résumé
| Concept | Détail |
|---|---|
| FSRM | Rôle Windows Server de gestion des ressources du serveur de fichiers |
| Quota conditionnel | Alerte sans bloquer l'écriture — mode de surveillance |
| Quota inconditionnel | Bloque toute écriture dès la limite atteinte — mode strict |
| Modèle de quota | Définition réutilisable (limite + seuils + actions) applicable à plusieurs dossiers |
| Seuils d'alerte | Actions configurées à différents pourcentages (ex : e-mail à 80%, blocage à 100%) |
| Action Commande | Exécution automatique d'un script lors du déclenchement d'un seuil |
| Mise à jour des dérivés | Modifier 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).
| 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 |
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)
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.
1. Qu'est-ce qu'un Proxy ?
Un proxy (ou serveur mandataire) est un intermédiaire placé entre les clients d'un réseau local et Internet. Lorsqu'un client effectue une requête, c'est le proxy qui la transmet à sa place, puis retourne la réponse au client.
Il est principalement utilisé pour contrôler, filtrer, surveiller ou optimiser le trafic sortant des utilisateurs d'un réseau vers Internet.
- → Clients accèdent directement à Internet
- → Aucun contrôle ni filtrage des sites visités
- → Requêtes transitent par le proxy
- → IP réelle des clients masquée
2. Le Proxy Direct (Forward Proxy)
Le proxy direct agit au nom des clients du réseau local pour accéder à des ressources sur Internet. Le serveur distant ne voit que l'adresse IP du proxy, et non celle du client.
| Étape | Acteur | Action |
|---|---|---|
| 1. Requête client | Client (192.168.1.10) | Demande l'accès à www.exemple.com |
| 2. Transmission | Proxy (10.0.0.1) | Vérifie les règles, transmet la requête |
| 3. Réponse serveur | Serveur distant | Retourne la page au proxy |
| 4. Réponse client | Proxy (10.0.0.1) | Transmet la page au client |
Rôles du proxy direct
Logiciels courants
| Logiciel | Remarque |
|---|---|
| Squid | Open source très répandu, supporte HTTP, HTTPS, FTP et la mise en cache |
| Privoxy | Orienté vie privée, filtre les publicités et traceurs |
| CCProxy | Solution Windows pour PME avec interface graphique |
3. Le Proxy Inversé (Reverse Proxy)
Le proxy inversé est placé du côté des serveurs, pas des clients. Il reçoit les requêtes venant d'Internet et les redistribue vers un ou plusieurs serveurs internes. Les clients ne connaissent pas l'adresse des serveurs réels.
| Étape | Origine | Destination | Rôle |
|---|---|---|---|
| 1. Requête | Client Internet | Proxy inversé (IP publique) | Accès à www.monsite.com |
| 2. Routage | Proxy inversé | Serveur web interne | Transmission de la requête |
| 3. Traitement | Serveur interne | Proxy inversé | Génère la réponse |
| 4. Réponse | Proxy inversé | Client Internet | Retourne la page |
Rôles du proxy inversé
Logiciels courants
| Logiciel | Remarque |
|---|---|
| Nginx | Très performant, largement utilisé comme proxy inversé et serveur web |
| Apache (mod_proxy) | Module proxy intégré au serveur Apache, très répandu |
| HAProxy | Spécialisé dans le load balancing haute performance |
| Traefik | Proxy inversé moderne, natif pour Docker et Kubernetes |
4. Comparaison — Proxy Direct vs Inversé
| Critère | Proxy Direct (Forward) | Proxy Inversé (Reverse) |
|---|---|---|
| Position dans le réseau | Côté client (réseau interne) | Côté serveur (exposé sur Internet) |
| Qui est masqué ? | L'adresse IP des clients | L'adresse IP des serveurs internes |
| Initie la connexion | Le client interne | Le client Internet (externe) |
| Cas d'usage typique | Filtrage, contrôle des sorties | Load balancing, SSL, protection serveurs |
| Exemples | Squid, Privoxy | Nginx, HAProxy, Traefik |
| Connaissance du client | Le client configure son proxy | Le client ne sait pas qu'il y a un proxy |
5. Proxy Explicite vs Proxy Transparent
Le proxy est connu et déclaré sur les postes clients. Chaque client est configuré manuellement (ou via GPO) pour diriger son trafic vers le serveur proxy.
- ✅ Authentification possible
- ✅ Compatible HTTPS (tunnel CONNECT)
- ❌ Configuration nécessaire sur chaque poste
- ❌ Contournable par l'utilisateur
Le proxy est invisible pour les clients. Le trafic est intercepté et redirigé automatiquement par le routeur ou le pare-feu via des règles iptables.
- ✅ Zéro configuration client
- ✅ Impossible à contourner par l'utilisateur
- ❌ HTTPS complexe (SSL bumping requis)
- ❌ Authentification difficile à mettre en place
| Étape | Acteur | Ce qui se passe réellement |
|---|---|---|
| 1. Requête | Client | Envoie une requête vers www.exemple.com port 80 |
| 2. Interception | Routeur / Pare-feu | Règle redirige le trafic port 80 vers le proxy (port 3128) |
| 3. Traitement | Proxy transparent | Applique le filtrage, la mise en cache, transmet la requête |
| 4. Réponse | Proxy transparent | Retourne la réponse au client, qui ne sait pas qu'il est passé par un proxy |
1. Qu'est-ce que le VPN ?
Le VPN (Virtual Private Network) est une technologie qui établit un lien sécurisé et chiffré entre des réseaux ou des appareils qui ne se voient pas directement, généralement via Internet. Ce lien est appelé tunnel VPN.
Le VPN chiffre les données de bout en bout — toute personne interceptant le trafic sur le chemin ne voit que des données chiffrées illisibles.
- → Communications transitent en clair sur Internet
- → Un attaquant peut intercepter et lire les données
- → Données chiffrées dans un tunnel sécurisé
- → Réseaux distants communiquent comme s'ils étaient connectés physiquement
2. Les Types de VPN
Établi entre un appareil individuel (PC, smartphone) et un réseau d'entreprise. Permet à un employé en télétravail de se connecter au réseau interne depuis n'importe où.
| Étape | Acteur | Description |
|---|---|---|
| 1. Connexion | Employé (PC distant) | Lance le client VPN et s'authentifie |
| 2. Tunnel | Client VPN ↔ Concentrateur | Un tunnel chiffré est établi via Internet |
| 3. Accès | Employé | Accède aux ressources internes (serveurs, imprimantes…) |
Interconnecte deux réseaux d'entreprise de manière permanente. Mis en place entre le siège et des agences. Aucun logiciel VPN n'est nécessaire sur les postes clients — ce sont les routeurs/pare-feux des deux sites qui gèrent le tunnel.
| Site | Équipement | Rôle |
|---|---|---|
| Siège (Paris) | Routeur / Pare-feu | Extrémité 1 du tunnel VPN |
| Internet | Tunnel chiffré | Transmission sécurisée entre les deux sites |
| Agence (Lyon) | Routeur / Pare-feu | Extrémité 2 du tunnel VPN |
Service commercial qui permet à un particulier de chiffrer sa connexion Internet et de masquer son adresse IP réelle derrière celle du serveur VPN. Utilisé pour protéger la vie privée ou contourner des restrictions géographiques.
| Type | Entre qui ? | Cas d'usage typique |
|---|---|---|
| Client-to-Site | Un poste et un réseau | Télétravail, accès distant à l'entreprise |
| Site-to-Site | Deux réseaux | Interconnexion de siège et agences |
| Grand public | Un poste et un serveur VPN | Anonymat, contournement de restrictions |
3. Split Tunnel vs Full Tunnel
Seul le trafic destiné au réseau de l'entreprise passe par le tunnel VPN. Le reste (navigation Internet, streaming) transite directement par le FAI de l'utilisateur.
- ✅ Meilleures performances
- ✅ Moins de bande passante VPN consommée
- ❌ Trafic Internet non protégé par le VPN
La totalité du trafic passe par le tunnel VPN, y compris la navigation Internet. L'entreprise peut appliquer ses règles de filtrage sur l'ensemble des communications.
- ✅ Protection maximale — tout est chiffré
- ✅ Politiques de sécurité appliquées partout
- ❌ Plus gourmand en bande passante VPN
| Critère | Split Tunnel | Full Tunnel |
|---|---|---|
| Trafic entreprise | Passe par le VPN | Passe par le VPN |
| Trafic Internet | Passe directement par le FAI | Passe par le VPN |
| Sécurité | Partielle (Internet non protégé) | Maximale (tout chiffré) |
| Performances | Meilleures (moins de charge VPN) | Réduites (tout transit VPN) |
| Usage typique | Télétravail courant | Environnements haute sécurité |
4. Les Protocoles VPN
| Protocole | Port(s) | Caractéristiques |
|---|---|---|
| OpenVPN | UDP 1194 / TCP 443 | Open source, très sécurisé, configurable — solutions d'entreprise |
| WireGuard | UDP 51820 | Protocole moderne, très rapide, code source minimal — idéal pour les performances |
| L2TP/IPsec | UDP 500, 4500 | Natif sur la plupart des OS, sécurisé grâce à IPsec mais plus lent qu'OpenVPN |
| IKEv2/IPsec | UDP 500, 4500 | Très stable lors des changements de réseau (4G ↔ Wi-Fi) — recommandé pour mobiles |
| PPTP | TCP 1723 | ⚠️ Ancien protocole, rapide mais non sécurisé — à éviter absolument |
| SSTP | TCP 443 | Protocole Microsoft, utilise le port HTTPS via SSL/TLS |
📌 Définition
Le Cloud Computing consiste à louer des ressources informatiques (serveurs, stockage, applications) via Internet, hébergées chez un fournisseur, plutôt que de les posséder physiquement. On distingue trois grands modèles selon ce que le fournisseur gère pour vous.
🧩 Les 3 modèles de service
Le fournisseur loue l'infrastructure brute (serveurs virtuels, stockage, réseau). Vous gérez l'OS et tout le reste.
- Vous gérez : OS, middleware, runtime, données, applications
- Fournisseur gère : virtualisation, serveurs, stockage, réseau
- Exemple : AWS EC2, Azure VM, Proxmox/OVH dédié
- Contrôle total sur l'OS, la config réseau et la pile logicielle
- Flexibilité maximale : choix du système, des outils, des versions
- Scalabilité : ajout de ressources à la demande (CPU, RAM, stockage)
- Coût maîtrisé : paiement à l'usage, pas d'achat de matériel
- Idéal pour les équipes techniques ayant besoin d'environnements personnalisés
Le fournisseur fournit une plateforme prête à l'emploi pour développer et déployer. Vous gérez uniquement vos applications et données.
- Vous gérez : données, applications
- Fournisseur gère : OS, middleware, runtime, infrastructure
- Exemple : Heroku, Azure App Service, Google App Engine
- Déploiement rapide : focus sur le code, pas sur l'infra
- Maintenance réduite : mises à jour OS et runtime gérées par le fournisseur
- Collaboration facilitée : environnements partagés et reproductibles
- Intégrations natives : BDD, CI/CD, monitoring inclus souvent d'office
- Idéal pour les développeurs qui veulent livrer vite sans gérer de serveurs
Le fournisseur fournit une application complète, prête à l'usage. Vous n'avez rien à gérer techniquement.
- Vous gérez : rien (juste l'usage, vos données)
- Fournisseur gère : tout (infra → application)
- Exemple : Gmail, Microsoft 365, Salesforce
- Zéro maintenance : mises à jour, sécurité et disponibilité gérées par le fournisseur
- Accessibilité universelle : utilisable depuis n'importe quel navigateur, partout
- Adoption immédiate : aucune installation, opérationnel en quelques minutes
- Coût prévisible : abonnement mensuel/annuel par utilisateur
- Idéal pour les utilisateurs métier non techniques ou les PME sans DSI
📋 Récapitulatif — Qui gère quoi ?
| Couche | IaaS | PaaS | SaaS |
|---|---|---|---|
| Applications | Vous | Vous | Fournisseur |
| Données | Vous | Vous | Vous |
| Runtime / Middleware | Vous | Fournisseur | Fournisseur |
| OS | Vous | Fournisseur | Fournisseur |
| Virtualisation | Fournisseur | Fournisseur | Fournisseur |
| Serveurs / Stockage / Réseau | Fournisseur | Fournisseur | Fournisseur |
Plus on va vers le SaaS, moins on gère soi-même mais moins on a de contrôle. Plus on va vers l'IaaS, plus on a de flexibilité mais plus de gestion à assurer.
🔐 Les autres modèles de déploiement
Ressources mutualisées entre plusieurs clients, gérées par un fournisseur tiers (AWS, Azure, GCP). Coût réduit, scalabilité élevée.
Infrastructure dédiée à une seule entreprise, hébergée en interne ou chez un prestataire. Plus de contrôle et de sécurité.
Combinaison de cloud public et privé, selon les besoins (données sensibles en privé, pics de charge en public).
Utilisation de plusieurs fournisseurs cloud publics simultanément, pour éviter la dépendance à un seul (vendor lock-in).
✔️ 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.
❌ 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.
- 🔑 Utilise une clé
- ↩️ Réversible (déchiffrement)
- 📨 Communication sécurisée
- Exemples : AES, RSA, TLS/HTTPS
- 🚫 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.
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é.
🔄 Comment ça fonctionne ?
Le symétrique opère en deux phases sur les données brutes (les bits) :
📊 Algorithmes symétriques courants
| Algorithme | Taille de clé | Statut | Usage typique |
|---|---|---|---|
| AES (Advanced Encryption Standard) | 128 / 192 / 256 bits | ✔ Standard actuel | HTTPS, VPN, disques chiffrés, Wi-Fi WPA2/3 |
| ChaCha20 | 256 bits | ✔ Moderne | TLS 1.3, Android, OpenSSH |
| 3DES | 112 / 168 bits | ⚠ Obsolète | Legacy bancaire |
| DES | 56 bits | ✘ Cassé | Ne plus utiliser |
- ⚡ Très rapide (performances élevées)
- 💡 Peu gourmand en ressources CPU
- 📦 Adapté aux gros volumes de données
- 🔓 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.
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.
🔄 Comment ça fonctionne ?
L'asymétrique a deux usages distincts selon le sens de chiffrement :
📊 Algorithmes asymétriques courants
| Algorithme | Taille de clé | Statut | Usage typique |
|---|---|---|---|
| RSA | 2048 / 4096 bits | ✔ Standard | HTTPS, SSH, certificats TLS |
| ECC (Elliptic Curve Cryptography) | 256 / 384 bits | ✔ Moderne & compact | TLS 1.3, SSH moderne, mobiles |
| Diffie-Hellman | 2048+ bits | ✔ Échange de clés | Négociation TLS, VPN |
| DSA | 1024 / 2048 bits | ⚠ En déclin | Signature uniquement |
- 🔑 Pas de problème de distribution de clé
- ✍️ Authentification et signature possibles
- 📈 Scalable : 1 paire de clés par utilisateur
- 🐢 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és | 1 clé partagée | 2 clés (publique + privée) |
| Distribution de clé | Problème majeur | Résolu (clé publique libre) |
| Vitesse | Très rapide | Lent (100× à 1000× plus lent) |
| Taille des clés | 128 – 256 bits | 2048 – 4096 bits (RSA) |
| Signature numérique | Non | Oui |
| Usage principal | Chiffrement de données en masse | Échange de clés, certificats, authentification |
| Exemples | AES, ChaCha20 | RSA, 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.
1. Les Logiciels Malveillants (Malwares)
| Type | Description & Comportement |
|---|---|
| Virus / Ver | Le Virus infecte un fichier sain. Le Ver se propage seul sur le réseau pour le saturer. |
| Ransomware | Chiffre les données et demande une rançon pour la clé de décodage. |
| Botnet | Réseau de machines "zombies" pilotées à distance pour des attaques de masse. |
| Keylogger | Espion qui enregistre les touches du clavier (vol de mots de passe). |
| Rootkit | Invisible : s'installe au cœur de l'OS (Kernel) pour cacher d'autres menaces. |
2. Ingénierie Sociale
| Technique | Mode Opératoire |
|---|---|
| Baiting | L'appât : Laisser une clé USB piégée en évidence pour piéger un curieux. |
| Phishing | Hameçonnage de masse par mail (faux sites bancaires ou administratifs). |
| Spear Phishing | Attaque ciblée et ultra-personnalisée visant une personne précise. |
| Smishing / Vishing | Hameçonnage par SMS (Smishing) ou par appel vocal (Vishing). |
3. Attaques Réseau
| Attaque | Fonctionnement |
|---|---|
| Sniffing | Capture des paquets (Wireshark) pour lire les données circulant en clair. |
| ARP Spoofing | Détourne le trafic local vers l'attaquant (Man-In-The-Middle). |
| DNS Spoofing | Corrompt le cache DNS pour rediriger vers de faux sites web. |
| DDoS | Saturation d'un service par un flux massif provenant d'un Botnet. |
| IP Spoofing | Usurpation d'adresse IP pour contourner les listes d'accès (ACL). |
4. Attaques Applicatives
| Attaque | Fonctionnement |
|---|---|
| SQL Injection | Insertion de code malveillant pour manipuler la base de données. |
| XSS | Injection de scripts (JS) pour voler des cookies de session. |
| Path Traversal | Utiliser ../ pour accéder à des fichiers système interdits. |
| Zero-Day | Exploitation d'une faille inconnue de l'éditeur (pas encore de correctif). |
| Buffer Overflow | Submersion de la mémoire pour forcer l'exécution de code arbitraire. |
5. Conseils de Protection
| Cible | Action de protection recommandée |
|---|---|
| Humain | Ne jamais ouvrir de pièces jointes suspectes et vérifier l'expéditeur. |
| Comptes | Activer la Double Authentification (MFA) et utiliser des mots de passe uniques. |
| Système | Installer les mises à jour immédiatement pour corriger les Zero-Days. |
| Matériel | Ne jamais brancher de clés USB inconnues (risque de Baiting). |
| Données | Effectuer des sauvegardes régulières sur un support déconnecté (Hors-ligne). |
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 :
192.168.2.0= réseau de destination255.255.255.0= masque de sous-réseau10.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 :
Très utile pour les stub networks (un seul routeur connecté) — évite de maintenir de nombreuses routes.




Vérification — 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.
Réseau : 192.168.10.0/24
Réseau : 192.168.20.0/24
Pourquoi utiliser des VLANs ?
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.
VLAN ID (12 bits)
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
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
Supprimer un VLAN (attention : retirer les ports affectés d'abord) :
Étape 2 — Assigner des ports aux VLANs
Étape 3 — Visualiser la configuration
Port Trunk — Communication inter-switches
Un port trunk redistribue les trames de tous les VLANs entre deux switches.

Filtrage des VLANs autorisés sur le trunk :
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 :
Méthode 1 — Routeur avec sous-interfaces

Activez l'interface physique puis créez une sous-interface par VLAN :
Méthode 2 — Switch de couche 3 (L3)


Avantages : communication plus rapide entre VLANs, moins de latence (pas de passage par un routeur externe).
Diagnostics
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.
Syntaxe :
Dans cet exemple : le réseau 192.168.10.0/24 est bloqué, tout autre trafic est autorisé.
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.
Syntaxe :
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
Comprendre le 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.
| Type | Fonctionnement | Usage typique |
|---|---|---|
| NAT Statique | Lien fixe entre une IP interne et une IP publique | Serveur accessible depuis Internet |
| NAT Dynamique | Attribution temporaire depuis un pool d'adresses publiques | Accès sortant pour plusieurs postes |
| PAT / NAT Overload | Plusieurs IP internes partagent une seule IP publique via les ports | Box Internet / entreprise |
Le routeur NAT conserve une table de translation qui associe chaque flux interne à un port externe unique.
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.
Bonnes pratiques :
canyouseeme.org ou nmap.Comprendre le PAT
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.
Avantages du PAT :
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)
Configurer les interfaces du routeur — côté LAN (inside) et côté WAN (outside).
Définir quelle interface est côté réseau interne (inside) et quelle interface est côté Internet (outside).
Créer une règle d'accès autorisant le LAN à sortir via le NAT, puis activer le PAT.
192.168.2.0/24 peuvent accéder à Internet en partageant l'IP de l'interface fa0/0.Vérifier que le NAT/PAT fonctionne correctement.
| Pro | Inside global | Inside local | Outside local | Outside global |
|---|---|---|---|---|
| icmp | 10.0.0.1:1 | 192.168.2.10:1 | 8.8.8.8:1 | 8.8.8.8:1 |
Récapitulatif des commandes
| Commande | Rôle |
|---|---|
| ip nat inside | Définit l'interface comme côté réseau privé |
| ip nat outside | Définit l'interface comme côté Internet |
| access-list 1 permit ... | Autorise le trafic du LAN à être translaté |
| ip nat inside source list 1 ... overload | Active le PAT (NAT avec surcharge de ports) |
| debug ip nat | Affiche les translations en temps réel |
| show ip nat translations | Affiche 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).
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 |
|---|---|---|---|---|
| /16 | 0 | 1 | 65 534 | 255.255.0.0 |
| /17 | 1 | 2 | 32 766 | 255.255.128.0 |
| /18 | 2 | 4 | 16 382 | 255.255.192.0 |
| /19 | 3 | 8 ✅ | 8 190 | 255.255.224.0 |
| /20 | 4 | 16 | 4 094 | 255.255.240.0 |
| /21 | 5 | 32 | 2 046 | 255.255.248.0 |
| /22 | 6 | 64 | 1 022 | 255.255.252.0 |
| /23 | 7 | 128 | 510 | 255.255.254.0 |
| /24 | 8 | 256 | 254 | 255.255.255.0 |
Que faire si le nombre voulu n'est pas une puissance de 2 ?
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 égaux | 2² = 4 (4 ≥ 3) | /18 — 255.255.192.0 | 4 | 1 non attribué |
| 5 sous-réseaux égaux | 2³ = 8 (8 ≥ 5) | /19 — 255.255.224.0 | 8 | 3 non attribués |
| 6 sous-réseaux égaux | 2³ = 8 (8 ≥ 6) | /19 — 255.255.224.0 | 8 | 2 non attribués |
| 7 sous-réseaux égaux | 2³ = 8 (8 ≥ 7) | /19 — 255.255.224.0 | 8 | 1 non attribué |
| 9 sous-réseaux égaux | 2⁴ = 16 (16 ≥ 9) | /20 — 255.255.240.0 | 16 | 7 non attribués |
| 12 sous-réseaux égaux | 2⁴ = 16 (16 ≥ 12) | /20 — 255.255.240.0 | 16 | 4 non attribués |
Étape 1 — Trouver la puissance de 2 ≥ 3 :
É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 :
Exemple complet — 192.168.0.0/16 → 8 sous-réseaux
On veut 8 sous-réseaux. On cherche la puissance de 2 ≥ 8 :
Il faut emprunter 3 bits à la partie hôte, ce qui donne un préfixe /19.
/19 signifie 19 bits à 1 puis des 0 jusqu'à 32 bits :
Le 3ème octet 11100000 = 128 + 64 + 32 = 224.
Le pas est la taille de chaque bloc. Il se lit sur le dernier octet "actif" du masque :
Chaque sous-réseau contient 32 adresses (dont 2 réservées : réseau + broadcast), soit 30 hôtes utilisables.
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 |
|---|---|---|---|---|
| 1 | 192.168.0.0/19 | 192.168.0.1 | 192.168.31.254 | 192.168.31.255 |
| 2 | 192.168.32.0/19 | 192.168.32.1 | 192.168.63.254 | 192.168.63.255 |
| 3 | 192.168.64.0/19 | 192.168.64.1 | 192.168.95.254 | 192.168.95.255 |
| 4 | 192.168.96.0/19 | 192.168.96.1 | 192.168.127.254 | 192.168.127.255 |
| 5 | 192.168.128.0/19 | 192.168.128.1 | 192.168.159.254 | 192.168.159.255 |
| 6 | 192.168.160.0/19 | 192.168.160.1 | 192.168.191.254 | 192.168.191.255 |
| 7 | 192.168.192.0/19 | 192.168.192.1 | 192.168.223.254 | 192.168.223.255 |
| 8 | 192.168.224.0/19 | 192.168.224.1 | 192.168.255.254 | 192.168.255.255 |
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 :
Calculateur interactif
ipconfig — Configuration IP
Affiche les adresses IP, masques et passerelles de toutes les interfaces.
ping & tracert — Connectivité et chemin réseau
Envoie des paquets ICMP Echo Request pour vérifier qu'une machine répond.
Affiche chaque routeur (saut) traversé pour atteindre une destination.
arp — Table ARP (IP ↔ MAC)
La table ARP associe chaque adresse IP locale à son adresse MAC correspondante.
route — Table de routage
Permet de consulter et de modifier la table de routage Windows.
netstat — Connexions et ports actifs
Affiche les connexions TCP/UDP actives, les ports en écoute et les statistiques réseau.
tasklist | findstr <PID>nslookup — Résolution DNS
Résout un nom de domaine en adresse IP ou fait une résolution inverse (IP → nom).
nslookup puis les noms à résoudre. exit pour quitter.netsh — Configuration avancée
Outil puissant pour configurer les interfaces réseau, le pare-feu et les paramètres Wi-Fi.
Récapitulatif rapide
| Commande | Usage principal | Exemple utile |
|---|---|---|
| ipconfig /all | Config IP complète (MAC, DHCP, DNS) | ipconfig /flushdns |
| ping | Tester la joignabilité d'un hôte | ping 8.8.8.8 -t |
| tracert | Chemin réseau saut par saut | tracert -d 8.8.8.8 |
| arp -a | Table ARP (IP ↔ MAC) | arp -d * |
| route print | Table de routage | route add ... -p |
| netstat -ano | Connexions actives + PID | netstat -ano | findstr :443 |
| nslookup | Résolution DNS | nslookup -type=MX domain.com |
| netsh | Config avancée (IP, Wi-Fi, pare-feu) | netsh wlan show profiles |
Schéma de câblage

Configuration du Switch Linksys
Connectez le switch au MikroTik pour récupérer une adresse via DHCP, ou utilisez l'IP par défaut :
Identifiants par défaut :
Si le MikroTik vous distribue bien une IP, vous pouvez rester en DHCP.
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) :


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


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 :


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


Configuration du Routeur MikroTik
Se connecter à l'interface WinBox/Web du MikroTik à l'adresse :
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 :


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


Configurer les PCs en IP statique :
Tester le ping entre PC10 et PC20 :
Installation du rôle FSRM
Depuis le Gestionnaire de serveur, cliquer sur Gérer → Ajouter des rôles et fonctionnalités.
Avancer jusqu'à l'étape Rôles de serveur, puis cocher :
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.
Configuration des modèles de quotas
Dans les outils d'administration du serveur, ouvrir la console Gestionnaire de ressources du serveur de fichiers.

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.

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 :

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 :

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

Dans la fenêtre de configuration :

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 :


Lister les commandes disponibles
Pour voir toutes les commandes du module LocalAccounts :

Commandes essentielles
Get-LocalUser— lister les comptes locauxNew-LocalUser— créer un utilisateur localRemove-LocalUser— supprimer un utilisateurRename-LocalUser— renommer un utilisateurSet-LocalUser— modifier (ex : mot de passe)Enable-LocalUser— activer un compteDisable-LocalUser— désactiver un compte
Get-LocalGroup— lister les groupes locauxNew-LocalGroup— créer un groupeRemove-LocalGroup— supprimer un groupeRename-LocalGroup— renommer un groupeSet-LocalGroup— modifier un groupeGet-LocalGroupMember— voir les membresAdd-LocalGroupMember— ajouter un membreRemove-LocalGroupMember— retirer un membre
Créer un utilisateur local
Utilise 3 variables : $AccountName (nom), $AccountPassword (mot de passe), $AccountDescription (description, facultatif).

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


Supprimer un utilisateur local
Prérequis : les services DNS et Active Directory doivent être installés.
Lister les commandes disponibles

Commandes essentielles AD
Get-ADUser— lister les utilisateurs ADNew-ADUser— créer un utilisateur ADRemove-ADUser— supprimer un utilisateur ADSet-ADUser— modifier un utilisateur ADRename-ADObject— renommer un objet ADEnable-ADAccount— activer un compte ADDisable-ADAccount— désactiver un compte ADSet-ADAccountPassword— changer le mot de passe
Get-ADGroup— lister les groupes ADNew-ADGroup— créer un groupe ADRemove-ADGroup— supprimer un groupe ADSet-ADGroup— modifier un groupe ADGet-ADGroupMember— voir les membresAdd-ADGroupMember— ajouter un membreRemove-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.

Renommer un utilisateur AD
Exemple : jdupont → j.dupont, Jean Dupont → Julien Dupont

Gestion des Unites d'Organisation (OU)
Créer une OU à la racine du domaine :

Créer une OU dans une autre OU :

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


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

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

Get-ADUser -Filter *.Garantit la continuité des opérations en cas de crise majeure (catastrophe naturelle, cyberattaque). Maintient les activités critiques en mode dégradé.
Composante du PCA, spécifique aux SI. Garantit la disponibilité continue des systèmes via sauvegardes, redondances et procédures de basculement.
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.
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.
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.

| Niveau | Type | Capacité | Redondance | Performance | Idéal pour |
|---|---|---|---|---|---|
| ⚡ RAID 0 | Répartition | 100% | ❌ Aucune | Très rapide | Fichiers temporaires non critiques |
| 🪞 RAID 1 | Miroir | 50% | ✅ 1 disque | Lecture rapide | Données critiques, sauvegardes |
| ⚖️ RAID 5 | Parité | N-1 | ✅ 1 disque | Excellente lecture | Serveurs de fichiers PME |
| 🛡️ RAID 6 | Double parité | N-2 | ✅ 2 disques | Bonne lecture | Stockage critique haute dispo |
| 🚀 RAID 10 | Miroir+Répart. | 50% | ✅ Variable | Très haute perf. | BDD, workloads intensifs |

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

Copie la totalité des données.
Copie uniquement les fichiers modifiés depuis la dernière sauvegarde (complète ou incrémentale).
Copie les fichiers modifiés depuis la dernière sauvegarde complète.
La méthode 3-2-1-1-0 est la règle d’or des sauvegardes professionnelles.
Conserver au moins 3 copies : production, sauvegarde, copie de sauvegarde. L’archivage compte comme une copie.
Utiliser au moins 2 supports différents : disques internes, SAN, NAS. Les bandes LTO comptent comme support.
Conserver au moins 1 copie hors site : autre site de production, infrastructure distante ou coffre-fort.
Au moins 1 copie isolée ou immuable : protection contre ransomware et actes malveillants via accès distant.
Zéro erreur après tests de restauration. Une sauvegarde non restaurable est inexploitable.
1. Pourquoi du stockage réseau ?
Dans une infrastructure professionnelle, le stockage local d'un serveur est vite insuffisant et non redondant. Le stockage réseau permet de centraliser, mutualiser et sécuriser les données de plusieurs machines sur un équipement dédié accessible via le réseau.
Deux grandes familles existent : le NAS orienté partage de fichiers, et le SAN orienté stockage bloc à haute performance. Ils ne s'opposent pas, ils répondent à des besoins différents.
2. NAS — Network Attached Storage
Un NAS (Network Attached Storage) est un boîtier de stockage connecté au réseau Ethernet standard (LAN). Il fonctionne comme un serveur de fichiers dédié : les clients accèdent aux fichiers via le réseau, exactement comme un partage réseau Windows ou Linux.
Le NAS expose des dossiers partagés (appelés shares ou volumes) que les clients montent via des protocoles de partage de fichiers. Il intègre généralement son propre OS (TrueNAS, Synology DSM, QNAP QTS…) et une interface web d'administration.
Le NAS utilise des protocoles de partage de fichiers réseau selon le type de client :
| Protocole | Port | Usage | OS client |
|---|---|---|---|
| SMB / CIFS | 445 TCP | Partage Windows classique — \\serveur\partage | Windows principalement |
| NFS v3/v4 | 2049 TCP/UDP | Partage UNIX/Linux — montage via mount | Linux, macOS, VMware |
| AFP | 548 TCP | Partage Apple (Time Machine, anciennes versions macOS) | macOS |
| FTP / SFTP | 21 / 22 | Transfert de fichiers distant, accès externe | Tous OS |
| WebDAV / HTTP | 80 / 443 | Accès web ou via navigateur | Tous OS |
Sous Windows, le montage d'un partage NFS se fait avec :
Sous Linux, le montage d'un partage NFS :
Le NAS est idéal pour :
- Partage de fichiers en entreprise — dossiers communs, documents RH, projets partagés entre équipes
- Sauvegarde centralisée — destination VEEAM, Windows Server Backup, Time Machine macOS
- Stockage multimédia — serveur Plex, photothèque, vidéos de surveillance IP
- Hébergement de VMs légères — datastores VMware via NFS (moins performant que SAN mais fonctionnel)
- Archivage long terme — RAID intégré pour la redondance des données sur plusieurs disques
3. SAN — Storage Area Network
Un SAN (Storage Area Network) est un réseau de stockage dédié et séparé du LAN, conçu pour fournir un accès à des volumes de stockage bruts (blocs) à haute vitesse et faible latence, comme si c'était un disque dur local.
Le SAN est massivement utilisé dans les datacenters, clusters VMware/Hyper-V et environnements critiques (bases de données Oracle, SQL Server…) où la performance et la disponibilité sont primordiales. Il opère au niveau bloc (couches 1-3 OSI), ce qui le rend beaucoup plus rapide que le NAS pour les I/O intensifs.
Le SAN repose sur des protocoles de transport de blocs :
| Protocole | Support | Vitesse | Usage |
|---|---|---|---|
| Fibre Channel (FC) | Câble fibre optique dédiée | 8 / 16 / 32 Gb/s | Datacenter haut de gamme, banques, hôpitaux |
| iSCSI | Ethernet standard (LAN/IP) | 1 / 10 / 25 Gb/s | PME/ETI, VMware, Hyper-V, alternative FC moins chère |
| FCoE | Ethernet 10 Gb/s+ | 10 Gb/s+ | Convergence FC et Ethernet sur le même câble |
| NVMe over Fabrics | Ethernet RDMA ou FC | 25 / 100 Gb/s | Ultra haute performance, flash NVMe en réseau |
Avec iSCSI, la cible de stockage (le SAN) expose des LUN (Logical Unit Numbers) que les serveurs (initiateurs) se connectent et voient comme des disques locaux :
Le SAN est incontournable pour :
- Datastores VMware vSphere / Hyper-V — stockage partagé entre plusieurs hôtes pour vMotion, HA, DRS
- Bases de données critiques — Oracle, SQL Server, PostgreSQL sur LUNs dédiées avec haute performance I/O
- Clustering applicatif — deux serveurs accèdent au même volume pour la haute disponibilité active/passive
- Boot from SAN — les serveurs démarrent directement depuis un LUN SAN sans disque local
- Sauvegardes à haute vitesse — snapshot SAN quasi-instantané sans impacter les performances de production
4. NAS vs SAN — Comparatif
| Critère | NAS | SAN |
|---|---|---|
| Niveau de stockage | Fichier (niveau 7) | Bloc (niveau 1-3) |
| Réseau utilisé | LAN Ethernet classique | Réseau dédié (FC) ou iSCSI sur LAN |
| Protocoles | SMB, NFS, AFP, FTP | iSCSI, Fibre Channel, FCoE, NVMe-oF |
| Performance | Bonne (usage bureautique) | Très haute (bases de données, VMs) |
| Coût | Faible à modéré | Modéré à très élevé (FC) |
| Complexité | Simple — interface web | Élevée — zoning, LUN masking, HBA |
| Cas d'usage | Partage fichiers, sauvegarde, PME | Datacenter, clusters, bases de données |
| Exemples matériel | Synology, QNAP, TrueNAS | NetApp, Dell EMC, Pure Storage, HPE 3PAR |
5. DAS — Le troisième type de stockage
Le DAS (Direct Attached Storage) complète le tableau : c'est du stockage directement branché sur un serveur (disques internes, boîtier USB/SAS externe). Il n'est pas partageable sur le réseau, mais offre la meilleure latence possible puisqu'il n'y a pas de réseau entre le serveur et le stockage.
| Type | Réseau | Partage | Latence | Cas d'usage |
|---|---|---|---|---|
| DAS | Aucun | ❌ Non | ⚡ Très faible | Poste de travail, serveur isolé, NVMe local |
| NAS | LAN Ethernet | ✅ Oui (fichiers) | Faible à modérée | Partage fichiers, PME, sauvegarde |
| SAN | Réseau dédié | ✅ Oui (blocs) | Très faible | Datacenter, VMs, bases de données critiques |
1. C'est quoi un cluster ?
Un cluster est un groupe de plusieurs serveurs qui travaillent ensemble pour fournir un service avec plus de disponibilité, de tolérance aux pannes ou de répartition de charge.
Chaque serveur membre du cluster s'appelle un nœud. Le service protégé peut être une VM, une application, un rôle Windows, une base de données ou une IP virtuelle.
Le but n'est pas seulement d'avoir "plusieurs serveurs", mais de réduire les interruptions. Un cluster permet par exemple de déplacer une VM pendant une maintenance, de redémarrer automatiquement un service ailleurs après une panne, ou de répartir les connexions entre plusieurs serveurs web.
2. Vocabulaire essentiel
| Terme | Définition | Exemple TSSR |
|---|---|---|
| Nœud | Serveur membre du cluster. | HV01 et HV02 dans un cluster Hyper-V. |
| Ressource | Élément géré par le cluster. | VM, disque, adresse IP, service, rôle de fichiers. |
| Bascule / Failover | Déplacement automatique d'un service vers un autre nœud après panne. | Une VM redémarre sur HV02 si HV01 tombe. |
| Failback | Retour d'un service vers son nœud préféré après réparation. | La VM revient sur HV01 quand il est opérationnel. |
| Heartbeat | Signal régulier entre les nœuds pour vérifier qu'ils sont vivants. | Si HV01 ne répond plus, HV02 déclenche une bascule. |
| Quorum | Mécanisme de vote qui décide si le cluster a le droit de continuer. | 2 nœuds + témoin = majorité conservée. |
| Witness / Témoin | Élément qui ajoute un vote pour éviter l'égalité. | File Share Witness, Disk Witness, Cloud Witness. |
3. Le quorum — le mot que tu cherchais
Le quorum est le système de décision du cluster. Il sert à répondre à une question critique : "Est-ce que ce groupe de nœuds a encore le droit de faire tourner les services ?"
Chaque nœud possède généralement un vote. Le cluster doit conserver une majorité de votes pour rester actif. Si la majorité est perdue, il s'arrête pour éviter que deux parties du cluster fassent tourner le même service en même temps.
Le split-brain arrive quand les nœuds ne communiquent plus entre eux mais pensent chacun être le cluster actif. C'est dangereux : deux serveurs peuvent écrire en même temps sur le même disque ou lancer la même VM, ce qui peut corrompre les données.
Si deux nœuds démarrent la même VM sur le même stockage partagé, les écritures disque deviennent incohérentes. Le quorum empêche ça en autorisant uniquement le côté qui possède la majorité.
| Témoin | Principe | Cas d'usage |
|---|---|---|
| Disk Witness | Un disque partagé sert de vote supplémentaire. | Cluster avec stockage SAN/iSCSI partagé. |
| File Share Witness | Un partage réseau SMB sert de vote. | Cluster 2 nœuds simple en PME/labo. |
| Cloud Witness | Un stockage cloud sert de témoin. | Sites distants, pas de troisième salle serveur. |
4. Les grands types de clusters
| Type | Objectif | Fonctionnement | Exemple |
|---|---|---|---|
| Haute disponibilité (HA) | Réduire les interruptions. | Si un nœud tombe, le service redémarre ailleurs. | Cluster Hyper-V, VMware HA, Proxmox HA. |
| Répartition de charge | Distribuer les connexions. | Plusieurs serveurs répondent en parallèle. | NLB Windows, HAProxy, cluster web. |
| Calcul / HPC | Additionner la puissance de calcul. | Une tâche lourde est divisée sur plusieurs machines. | Rendu 3D, calcul scientifique. |
| Stockage | Rendre le stockage disponible et redondant. | Plusieurs nœuds présentent un stockage commun ou répliqué. | Ceph, Storage Spaces Direct, SAN. |
5. Migration à chaud vs migration à froid
Une migration à chaud déplace une VM ou un service vers un autre hôte sans l'arrêter, ou avec une coupure très courte. Chez Microsoft, on parle souvent de Live Migration.
Le principe : l'hyperviseur copie la mémoire RAM de la VM vers le nouvel hôte pendant qu'elle continue de fonctionner. À la fin, il synchronise les dernières modifications, bascule l'exécution et la VM continue presque sans interruption.
Une migration à froid impose d'arrêter la VM ou le service avant de le déplacer. C'est plus simple techniquement, mais cela provoque une interruption visible pour les utilisateurs.
Elle est utilisée quand la migration à chaud n'est pas possible : incompatibilité CPU, absence de stockage partagé, réseau Live Migration non configuré, version d'hyperviseur différente, ou déplacement complet vers une autre plateforme.
| Critère | Migration à chaud | Migration à froid |
|---|---|---|
| État de la VM | Allumée | Éteinte |
| Coupure utilisateur | Nulle ou très courte | Oui, le temps du déplacement |
| Complexité | Plus élevée | Plus simple |
| Prérequis | Réseau rapide, compatibilité CPU, droits, config cluster/hyperviseur | Accès au stockage et temps d'arrêt accepté |
| Exemple | Live Migration Hyper-V | Exporter une VM arrêtée puis l'importer ailleurs |
6. Stockage partagé, stockage répliqué et CSV
Dans beaucoup de clusters, les nœuds accèdent au même stockage : SAN Fibre Channel, iSCSI, SAS partagé ou baie de stockage. Les VM peuvent alors être reprises par un autre nœud car leurs disques ne sont pas enfermés dans un seul serveur.
Au lieu d'avoir un disque partagé unique, certains clusters répliquent les données entre les nœuds. Chaque serveur possède son stockage local, mais les blocs sont copiés vers les autres.
Exemples : Storage Spaces Direct, Ceph, certaines solutions HCI. C'est puissant, mais il faut un réseau rapide et une bonne surveillance.
7. Exemple concret — Cluster Hyper-V à 2 nœuds
Architecture :
- HV01 et HV02 : deux hôtes Hyper-V membres du domaine.
- Stockage partagé : LUN iSCSI ou SAN contenant les VHDX des VM.
- Réseau Management : administration, domaine, DNS.
- Réseau Live Migration : réseau rapide dédié aux migrations à chaud.
- Réseau stockage : trafic iSCSI séparé du réseau utilisateur.
- File Share Witness : partage SMB sur un troisième serveur pour le quorum.
8. HA, FT, PRA et sauvegarde — ne pas confondre
| Notion | But | Ce que ça protège | Limite |
|---|---|---|---|
| HA | Redémarrer rapidement ailleurs. | Panne d'un hôte. | Petite coupure possible, ne protège pas les données supprimées. |
| FT | Continuité sans coupure perceptible. | Panne d'un hôte critique. | Coûteux, contraintes fortes, pas toujours disponible. |
| PRA | Reprendre après un sinistre majeur. | Perte d'une salle, d'un site ou d'une infrastructure. | Nécessite procédures, tests, sauvegardes, site secondaire. |
| Sauvegarde | Restaurer des données dans le temps. | Suppression, corruption, ransomware. | Restauration parfois longue selon RTO/RPO. |
9. Bonnes pratiques TSSR
- → Prévoir un quorum adapté, surtout en cluster 2 nœuds
- → Séparer les réseaux : management, stockage, migration, utilisateurs
- → Tester le failover avant la mise en production
- → Surveiller les logs, le stockage, la latence et l'espace disque
- → Documenter les procédures de maintenance et de retour arrière
- → Garder des sauvegardes indépendantes du cluster
- → Mettre le témoin sur un nœud du cluster
- → Utiliser un seul switch pour tous les réseaux critiques
- → Oublier les sauvegardes parce que "le cluster est redondant"
- → Faire une maintenance sans vérifier où tournent les VM
- → Laisser une VM critique sans priorité ou sans règle de placement
- → Ignorer les alertes de quorum ou de heartbeat
10. Résumé express
Ensemble de serveurs, appelés nœuds, qui collaborent pour fournir un service plus disponible ou mieux réparti.
Mécanisme de vote qui évite qu'un cluster coupé en deux continue des deux côtés. Il protège contre le split-brain.
À chaud : la VM reste allumée pendant le déplacement. À froid : la VM est arrêtée, donc il y a une coupure planifiée.
Un cluster n'est pas une sauvegarde. Il protège surtout contre la panne d'un nœud, pas contre la suppression, la corruption ou le chiffrement des données.
1. Qu'est-ce qu'un snapshot ?
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.
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.
Checkpoint-VM -Name "NomVM" -SnapshotName "Avant-MàJ"2. Snapshot vs Sauvegarde — quelle différence ?
Snapshot et sauvegarde sont souvent confondus, mais ils répondent à des besoins très différents :
| Critère | 📸 Snapshot | 💾 Sauvegarde |
|---|---|---|
| Objectif | Retour arrière rapide (avant une modif) | Protection contre perte de données |
| Vitesse de création | Quelques secondes | Minutes à heures |
| Stockage | Sur 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 typique | Avant une mise à jour, un changement de config | PRA, sinistre, ransomware, archivage |
| Durée conseillée de rétention | Quelques heures à quelques jours max | Jours, semaines, mois selon la politique |
3. Risques liés à un usage prolongé
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.
- 🔴 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
- → 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
- → 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
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
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.
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.
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
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 ?"
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.
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 ?"
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.
2. Visualisation — RPO & RTO sur une timeline
sauvegarde
activité
3. Impact selon les métiers
| Type d'organisation | RPO typique | RTO typique | Explication |
|---|---|---|---|
| Banque / Bourse | ~0 (temps réel) | < 1 min | Chaque seconde de données perdue = perte financière massive |
| Hôpital / Urgences | < 15 min | < 30 min | Les dossiers patients sont vitaux |
| E-commerce | < 1h | < 2h | Chaque heure d'arrêt = commandes perdues |
| PME standard | 24h (1 sauvegarde/jour) | < 4h | Tolérance modérée, reprise dans la journée |
| Archivage / Archives légales | 1 semaine | 72h | Données peu modifiées, accès non critique |
4. Comment atteindre ses objectifs RPO / RTO ?
| Solution | RPO atteignable | Description |
|---|---|---|
| Sauvegarde quotidienne | ~24h | Méthode classique — snapshot ou agent la nuit |
| Sauvegarde toutes les heures | ~1h | Tâche planifiée VEEAM, sauvegardes incrémentales |
| Réplication continue (CBT) | < 15 min | VEEAM Continuous Data Protection (CDP) |
| Journalisation base de données | < 1 min | SQL Server log shipping, Oracle Data Guard |
| Réplication synchrone (SAN) | ~0 | Chaque écriture est dupliquée en temps réel sur un site distant |
| Solution | RTO atteignable | Description |
|---|---|---|
| Restauration depuis bande / NAS | 4–24h | Copie physique à restaurer manuellement |
| VEEAM Instant Recovery | < 15 min | La VM démarre directement depuis le fichier de sauvegarde |
| Réplication de VM Hyper-V / VMware | < 5 min | Une copie de la VM tourne en veille sur un hôte secondaire |
| Cluster de basculement (Failover) | < 1 min | Un second nœud prend la main automatiquement |
| Active-Active (haute dispo) | ~0 | Deux instances tournent simultanément, aucune interruption |
5. Résumé — Mémo RPO / RTO
- 📌 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
- 📌 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
1. Qu'est-ce qu'une mise à jour ?
Une mise à jour logicielle est un ensemble de modifications apportées à un programme ou un système d'exploitation pour corriger des problèmes, améliorer ses performances ou ajouter de nouvelles fonctionnalités. Sous Windows, Microsoft publie régulièrement des mises à jour via le service Windows Update.
2. Les types de mises à jour Windows
Les correctifs de sécurité sont les mises à jour les plus critiques. Ils corrigent des vulnérabilités dans Windows ou ses composants, qui pourraient être exploitées par des attaquants pour compromettre un système.
En 2017, la faille EternalBlue dans SMBv1 a permis au ransomware WannaCry d'infecter 200 000 machines dans 150 pays. Les systèmes non patchés étaient vulnérables — les systèmes à jour ne l'étaient pas.
Ces mises à jour corrigent des dysfonctionnements identifiés dans Windows ou ses composants — plantages, comportements inattendus, erreurs d'affichage, problèmes de compatibilité avec des applications tierces.
Exemples de bugs corrigés : impression qui ne fonctionne plus après une mise à jour, explorateur de fichiers qui plante, problème de veille prolongée sur laptop.
Ces mises à jour n'apportent pas de nouvelles fonctionnalités mais optimisent le code existant : réduction de la consommation CPU, amélioration des temps de démarrage, meilleure gestion de la mémoire RAM, optimisation des entrées/sorties disque.
Les Feature Updates introduisent de nouvelles fonctionnalités dans Windows. Sous Windows 10 et 11, Microsoft les publie une à deux fois par an (version 22H2, 23H2…). Elles sont plus lourdes que les correctifs classiques car elles modifient en profondeur des composants du système.
| Version | Année | Principales nouveautés |
|---|---|---|
| 22H2 | 2022 | Améliorations de sécurité, menu démarrer redessiné |
| 23H2 | 2023 | Windows Copilot (IA), intégration OneDrive améliorée |
| 24H2 | 2024 | Snapdragon ARM support, Recall AI (PC Copilot+) |
Windows Update peut également distribuer des mises à jour de pilotes (drivers) pour les composants matériels : carte graphique, carte réseau, imprimante, contrôleur USB, etc. Elles peuvent corriger des problèmes de stabilité ou activer de nouvelles fonctionnalités matérielles.
Depuis Windows 10, Microsoft utilise le modèle des Cumulative Updates (CU). Chaque mise à jour mensuelle est cumulative : elle contient tous les correctifs publiés depuis la dernière Feature Update. Résultat : une machine neuve n'a besoin d'installer qu'une seule grosse mise à jour pour être entièrement à jour.
Plus besoin d'installer les patchs un par un. Une seule CU suffit pour tout.
La CU mensuelle peut peser plusieurs centaines de Mo voire plus d'1 Go.
3. Le Patch Tuesday
Le Patch Tuesday (aussi appelé Update Tuesday) est le nom donné au deuxième mardi de chaque mois — le jour où Microsoft publie officiellement ses mises à jour de sécurité et correctifs pour Windows, Office, Edge et ses autres produits.
Cette cadence mensuelle régulière permet aux entreprises d'anticiper et planifier les déploiements de mises à jour — plutôt que d'avoir à réagir à des publications imprévisibles tout au long du mois.
| Mois | Date Patch Tuesday |
|---|---|
| Janvier 2025 | Mardi 14 janvier |
| Février 2025 | Mardi 11 février |
| Mars 2025 | Mardi 11 mars |
Chaque Patch Tuesday peut contenir des dizaines voire plus d'une centaine de correctifs, classés par produit et par niveau de sévérité :
| Niveau de sévérité | Signification | Urgence |
|---|---|---|
| 🔴 Critique | Exploitation possible à distance sans authentification | Déployer immédiatement |
| 🟡 Important | Exploitation nécessite une interaction utilisateur | Déployer rapidement |
| 🟢 Modéré | Impact limité par la configuration par défaut | Planifier |
| ⚪ Faible | Exploitation très difficile en conditions réelles | Routine mensuelle |
4. Les mises à jour Out-of-Band (OOB)
Une mise à jour Out-of-Band (OOB) est un correctif d'urgence publié en dehors du cycle mensuel du Patch Tuesday. Microsoft y recourt uniquement lorsqu'une vulnérabilité est si critique qu'attendre le prochain Patch Tuesday représente un risque inacceptable.
La faille CVE-2021-34527 dans le spouleur d'impression Windows permettait une élévation de privilèges et une exécution de code à distance. Microsoft a publié un patch Out-of-Band en urgence un mercredi, sans attendre le Patch Tuesday suivant.
| Critère | Patch Tuesday | Out-of-Band |
|---|---|---|
| Fréquence | Mensuelle (2ème mardi) | Imprévisible — urgence uniquement |
| Déclencheur | Cycle planifié | Vulnérabilité critique ou 0-day actif |
| Préparation possible | ✅ Oui — anticipation possible | ❌ Non — réaction immédiate requise |
| Tests préalables | Possibles en environnement de recette | Souvent déployés sans délai |
| Impact entreprise | Maîtrisé via WSUS | Déploiement d'urgence hors procédure |
5. WSUS — Windows Server Update Services
WSUS (Windows Server Update Services) est un rôle Windows Server qui permet de centraliser, contrôler et déployer les mises à jour Microsoft sur l'ensemble du parc informatique de l'entreprise.
Sans WSUS, chaque machine contacte directement les serveurs Microsoft Update pour télécharger les mises à jour. Avec WSUS, elles les téléchargent depuis un serveur interne, ce qui permet :
| Étape | Acteur | Action |
|---|---|---|
| 1 | Serveur WSUS | Se synchronise avec Microsoft Update (planifié quotidiennement) |
| 2 | Administrateur | Consulte les nouvelles mises à jour et les approuve ou les refuse |
| 3 | Serveur WSUS | Télécharge les mises à jour approuvées depuis Microsoft |
| 4 | Postes clients | Interrogent le serveur WSUS (via GPO) et téléchargent les patchs approuvés |
| 5 | Postes clients | Installent les mises à jour selon la fenêtre de maintenance configurée |
| 6 | Serveur WSUS | Collecte les rapports de conformité — état de chaque machine |
Configuration ordinateur → Modèles d'administration → Composants Windows → Windows UpdateWSUS permet de créer des groupes d'ordinateurs pour déployer les mises à jour par vagues successives — une pratique essentielle pour limiter les risques.
La GPO de configuration WSUS côté client se trouve dans :
| Paramètre GPO | Description |
|---|---|
| Spécifier l'emplacement intranet du service de MàJ Microsoft | URL du serveur WSUS : http://srv-wsus:8530 |
| Configurer les mises à jour automatiques | Planifier le téléchargement et l'installation (ex : mercredi 3h du matin) |
| Ne pas redémarrer automatiquement | Évite le redémarrage forcé pendant les heures de travail |
| Activer la gestion côté client | Permet à WSUS de cibler les groupes d'ordinateurs |
wuauclt /detectnow (ancienne) ou usoclient startscan (Windows 10+) force le client à contacter le serveur WSUS immédiatement.6. Cycle de vie des mises à jour
| Phase | Durée typique | Description |
|---|---|---|
| Publication Microsoft | Patch Tuesday | Microsoft publie les bulletins et les fichiers de mise à jour |
| Synchronisation WSUS | Automatique (24h max) | Le serveur WSUS télécharge les métadonnées et les fichiers |
| Validation interne | 1 à 5 jours | Test sur le groupe pilote — vérification de la stabilité |
| Approbation production | J+7 typiquement | Approbation WSUS pour les groupes de production |
| Déploiement complet | J+14 maximum | Tous les postes à jour avant le Patch Tuesday suivant |
7. Résumé
| Concept | Définition |
|---|---|
| Patch de sécurité | Correction d'une vulnérabilité exploitable par un attaquant |
| Bug fix | Correction d'un dysfonctionnement logiciel non lié à la sécurité |
| Feature Update | Nouvelle version semestrielle de Windows avec de nouvelles fonctionnalités |
| Cumulative Update | Mise à jour mensuelle regroupant tous les correctifs depuis la dernière Feature Update |
| Patch Tuesday | 2ème mardi du mois — cycle de publication mensuel de Microsoft |
| Out-of-Band (OOB) | Correctif d'urgence publié hors Patch Tuesday pour une faille critique active |
| WSUS | Rôle Windows Server de gestion centralisée des mises à jour en entreprise |
| Groupe pilote | Sous-ensemble de machines recevant les mises à jour en premier pour valider leur stabilité |
Deux serveurs Windows Server (2016/2019/2022), un DC principal existant, accès administrateur 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.
Sur DC2, installer le rôle Active Directory Domain Services via PowerShell :
Attendre la fin de l'installation (quelques minutes). Vérifier le résultat :
Promouvoir DC2 comme contrôleur de domaine dans le domaine existant :
Le serveur va redémarrer automatiquement à la fin de la promotion.
c2rt.org par votre nom de domaine réel. Fournir les credentials d'un admin domaine.Après le redémarrage, vérifier que la réplication AD fonctionne entre les deux DC :
Vérifier qu'il n'y a aucune erreur. Forcer une synchronisation immédiate :
Vérifier le statut global de la réplication :
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) :
Voir le détail des membres du groupe de réplication SYSVOL :
4 = Normal sur les deux DC.Si DFSR est bloqué ou en état Non-authoritative, forcer une synchro depuis DC1 :
En cas de SYSVOL non partagé sur DC2, forcer la réinitialisation DFSR :
Vérifier que SYSVOL et NETLOGON sont bien partagés sur DC2 :
Les deux partages doivent apparaître dans la liste. Vérifier aussi via :
Vérifier que DC2 est bien enregistré dans le DNS du domaine :
Vérifier les enregistrements SRV (essentiels pour l'authentification) :
Forcer l'enregistrement DNS si nécessaire :
Validation complète de la réplication et de la santé des DC :
Simuler une modification et vérifier la propagation :
Supprimer l'utilisateur test une fois la validation faite :
Get-ADUser retourne l'utilisateur sur DC2 sans erreur, la réplication AD + DFSR est pleinement opérationnelle.• 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.
Aller dans Inventory → Physical 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’horaires → Apply → Job Now.
Dans le nouveau dossier créé sous Physical and Cloud Infrastructure → clic droit sur le serveur → Add to backup job → New job.

Configurer : Server → Nomenclature de sauvegarde → sélectionner le ou les serveurs → Entire computer → cliquer sur Run the Job pour lancer une sauvegarde directe.
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 job → New 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.
• Lancer Veeam.
• Choisir le serveur de backup (localhost si c’est celui en question) → suivant jusqu’au lancement.
• Aller dans Backup Infrastructure → Backup Repositories → Add 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 Inventory → Virtual Infrastructure → Add Server → Hyper-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).

• Next jusqu’à Apply.
• Le serveur apparaît dans INVENTORY.
• Clic droit dessus → Add to backup Job → New 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.
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.
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.
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.
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…).
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.

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.
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.


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.

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.

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 :
/ 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 :
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.

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.

Ouvrir l’Éditeur du Registre : Win + R → taper regedit → Entrée.
Naviguer vers la clé :

Double-cliquer sur InitialKeyboardIndicators.

Saisir 2 dans le champ Données de la valeur → OK.

Naviguer vers la seconde clé :

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

Télécharger et exécuter le script .reg ci-dessous — il applique les deux modifications automatiquement.
Récupérer l’ISO de la backup sur le serveur de backup.

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

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.

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

Démarrer la machine et appuyer vite pour booter sur le lecteur DVD.
Quand la machine démarre, restaurer avec Veeam Recovery Media.
Sélectionner Veeam Agent pour lancer la restauration.

Sélectionner Network Storage.

Choisir Shared Folder pour le dossier partagé.

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

Sélectionner la sauvegarde à restaurer.


Cliquer sur Suivant jusqu’au lancement — la machine récupère la backup en intégralité.
Pour tester la sauvegarde en LABO, on va “casser” la VM imbriquée pour qu’elle ne démarre plus, par exemple avec :
• HOME en haut → Restore → Microsoft Hyper-V.

• Restore from backup → Entire VM restore → Entire VM Restore → Add from infrastructure → sélectionner le serveur et OK.

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

• Aller dans Home → Backups → Disk → clic droit sur le backup en question → Restore Guest Files.

• Choisir la date de la sauvegarde → Browse.
• Dans la fenêtre qui s’ouvre, parcourir pour trouver le fichier perdu → clic droit → Restore → Overwrite.
Méthode 1 — Restauration directe depuis Veeam Explorer
1. Aller dans Home → Backups → Disk → clic droit sur le backup du DC → Restore application items → Microsoft 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.



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.

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 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
Éditer le fichier Netplan :
Exemple de configuration IP fixe :
eth1 par le nom réel de l’interface (vérifier avec ip a). Le YAML est sensible à l’indentation — espaces uniquement.Appliquer et vérifier :
Résumé des paramètres réseau
| Paramètre | Valeur exemple | Rôle |
|---|---|---|
| IP du serveur FOG | 192.168.0.100 | IP fixe Ubuntu |
| Masque | 255.255.255.0 | /24 |
| Passerelle / DNS | 192.168.0.250 | Windows Server (DHCP) |
| Interface réseau | eth1 | À adapter selon ip a |
Répondre aux questions comme ceci :
| # | Question | Réponse | Note |
|---|---|---|---|
| 1 | What version of Linux… | 2 | Ubuntu détecté automatiquement |
| 2 | Installation Type | N | Normal |
| 3 | Interface | eth1 | Interface avec l’IP 192.168.0.100 |
| 4 | Router Address | 192.168.0.250 | Votre Windows Server |
| 5 | DNS Address | 192.168.0.250 | |
| 6 | Using FOG DHCP | N | Windows gère le DHCP |
| 7 | Internationalization | N | |
| 8 | HTTPS Support | N | Plus simple pour commencer |
No dans le récapitulatif, puis taper Y pour lancer l’installation.1. Aller sur le Windows Server et ouvrir un navigateur :
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.
| Option | Valeur | Description |
|---|---|---|
| 066 | 192.168.0.100 | Boot Server Host Name — IP du serveur FOG |
| 067 (BIOS) | undionly.kpxe | PC classiques — mode BIOS legacy |
| 067 (UEFI) | ipxe.efi | PC modernes — mode UEFI |
| Champ | Valeur |
|---|---|
| URL | http://192.168.0.100/fog/management |
| Utilisateur | fog |
| Mot de passe | password |
📋 Procédure d’enregistrement d’un hôte (Full Registration)
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 Boot Menu dès le logo — F12, parfois Esc ou F10.
3. Sélectionner Network Boot ou EFI Network.
4. Attendre l’affichage de l’IP — le menu FOG (menu bleu) apparaît.
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 :
| Champ | Que faire |
|---|---|
| Hostname | Nom unique (ex : CLI-DEBIAN-01) puis Entrée |
| Image ID / Primary User / Department / Location | Entrée à chaque fois (laisser vide) |
| Associate with groups | n puis Entrée |
| Assign to default product key | n 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.
1. Ouvrir l’interface Web FOG : http://192.168.0.100/fog/management
2. Onglet Hosts → List All Hosts.
3. Le PC CLI-DEBIAN-01 doit apparaître dans le tableau.
📸 Procédure de capture d’une image
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.
Dans la fiche du client enregistré (ex : Debian-Client-T), sélectionner l’image dans le champ Host Image.

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.
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.
🚀 Procédure de déploiement d’une image
Utiliser une nouvelle VM vide sur le même LAN Segment.
- Booter sur le réseau (F12).
- Effectuer un Full Host Registration and Inventory — nommer le PC (ex :
Debian-Client-02). - Une fois l’inventaire fini, le PC s’éteint.
Aller dans Hosts → List All Hosts, cliquer sur Debian-Client-02.
- Dans Host Image, sélectionner
Img-Debian-Basepuis cliquer Update. - Onglet Basic Tasks → cliquer Deploy → cocher Schedule with shutdown → Task.
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.
📦 Déploiement d’une application (Snapins)
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 (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 /norestartpour une installation silencieuse.
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 section Add Snapins.
- Cliquer sur Add pour l’associer à cet hôte.
Dans la même fiche client, aller dans l’onglet Basic Tasks. En bas de la liste, cliquer sur Single Snapin.

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

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 :
| Windows | Linux (Debian/Ubuntu) |
|---|---|
| C:\Users\nom | /home/nom |
| Explorateur de fichiers | Terminal + commandes |
| Panneau de configuration | Fichiers de config dans /etc |
| Gestionnaire de tâches | top / htop |
| Notepad | nano / vim |
| Administrateur | root / sudo |
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épertoire | Contenu |
|---|---|
| / | Racine du système (équivalent C:\) |
| /home/nom | Dossier personnel de l'utilisateur |
| /root | Dossier personnel du superutilisateur root |
| /etc | Fichiers de configuration système |
| /var/log | Journaux système (logs) |
| /tmp | Fichiers temporaires |
| /bin, /usr/bin | Commandes et programmes installés |
| /srv | Données des services (web, FTP…) |
Navigation — Se déplacer dans les répertoires
Affiche le répertoire courant (Print Working Directory).
Affiche le contenu d'un répertoire.
ls -la est la commande la plus complète : elle montre tout, y compris les fichiers cachés.Permet de changer de répertoire (Change Directory).
/ — toujours valide depuis n'importe où.Chemin relatif : depuis le répertoire courant.
Fichiers & Dossiers — Créer, copier, déplacer, supprimer
Créer des répertoires et des fichiers vides.
Copier fichiers et dossiers.
Déplacer ou renommer fichiers et dossiers.
mv sert à la fois à déplacer ET renommer — c'est la même commande.Supprimer fichiers et dossiers.
rm -rf supprime définitivement sans corbeille. Pas de Ctrl+Z possible.Afficher et rechercher dans les fichiers.
tail -f est très utile pour surveiller les logs en direct (serveur web, SSH…).Permissions & Utilisateurs
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).
Modifier les permissions avec chmod.

| Valeur octale | Permissions | Utilisation typique |
|---|---|---|
| 777 | rwxrwxrwx | Tout le monde peut tout faire (dangereux) |
| 755 | rwxr-xr-x | Scripts, dossiers publics |
| 644 | rw-r--r-- | Fichiers de config standards |
| 600 | rw------- | Clés SSH, fichiers privés |
Changer le propriétaire ou le groupe d'un fichier.
sudo permet d'exécuter une commande en tant que root (administrateur) sans changer d'utilisateur.
sudo commande à sudo -i pour limiter les risques d'erreur en root.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
- Créer un groupe pour les utilisateurs qui partageront le dossier
- Créer/ajouter les utilisateurs à ce groupe
- Assigner le groupe au dossier avec les bonnes permissions
1️⃣ Créer un groupe
2️⃣ Créer un utilisateur
adduser est interactif (recommandé pour les débutants). useradd est plus basique mais plus rapide.3️⃣ Ajouter un utilisateur à un groupe
-a (append) est importante : elle AJOUTE au groupe, sans retirer des autres groupes.Cas d'usage complet : créer un partage collaboratif
Opérations avancées
- 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 770sur le dossier
Gestion des paquets — apt
apt est le gestionnaire de paquets de Debian/Ubuntu. Il permet d'installer, mettre à jour et supprimer des logiciels.
apt update avant apt install pour avoir les dernières versions.Installer et supprimer des paquets.
Rechercher un paquet et obtenir des informations.
Réseau sous Linux
Afficher la configuration réseau des interfaces.
ip a est l'équivalent Linux de ipconfig /all sous Windows.Tester la connectivité et diagnostiquer le réseau.
Afficher et gérer les routes et connexions actives.
Configuration réseau sur Debian/Ubuntu Server via Netplan.
netplan try avant netplan apply sur un serveur distant — en cas d'erreur, la connexion SSH serait coupée.Éditeurs de texte — nano & vim
nano est l'éditeur le plus simple — idéal pour débuter. Les raccourcis sont affichés en bas de l'écran.
| Raccourci | Action |
|---|---|
| Ctrl + O | Enregistrer le fichier |
| Entrée | Confirmer le nom du fichier |
| Ctrl + X | Quitter nano |
| Ctrl + K | Couper une ligne |
| Ctrl + U | Coller |
| Ctrl + W | Rechercher |
| Ctrl + G | Aide |
vim est plus puissant mais a une courbe d'apprentissage. Il fonctionne avec des modes.
| Mode / Commande | Action |
|---|---|
| i | Passer en mode INSERTION (écriture) |
| Échap | Retourner en mode NORMAL |
| :w | Enregistrer |
| :q | Quitter |
| :wq | Enregistrer et quitter |
| :q! | Quitter SANS enregistrer (forcer) |
| /mot | Rechercher "mot" |
| dd | Supprimer une ligne |
| yy / p | Copier / Coller une ligne |
Échap puis taper :q! et Entrée.Commandes utiles & astuces
Les commandes indispensables du quotidien.
Surveiller les processus et les ressources système.
Gérer les services (démons) avec systemd.
systemctl status est la première commande à utiliser quand un service ne fonctionne pas.Filtrage & Pipes — La puissance de Linux
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.
Comment ça fonctionne ?
- 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.
AltGr + 6.
Exemple concret :
Si vous voulez chercher si l'utilisateur "micro" existe dans la liste des utilisateurs du système :
Ici, cat lit tout le fichier, et grep ne garde que la ligne qui nous intéresse.
grep analyse un texte ou un fichier et n'affiche que les lignes contenant un mot-clé précis.
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.
ip a | grep "inet "Affiche uniquement les lignes contenant vos adresses IP en filtrant le surplus de la commande
ip a.
📌 Méthodologie
- Identification : Depuis quand et où le problème apparaît.
- Émettre une hypothèse : Proposer une ou plusieurs causes possibles.
- Test de l’hypothèse : Vérifier la théorie avec des tests.
- Établir un plan d’action : Corriger la panne avec le moins d’impact.
- Application de la solution : Mise en place de la correction.
- Vérification : Contrôler que le problème est résolu.
- Documentation : Noter le problème et la solution appliquée.
📶 Dépannage Réseau
En dépannage réseau on utilise souvent le modèle OSI pour diagnostiquer la panne couche par couche.
📚 Modèle OSI
| Couche | Nom | Exemple |
|---|---|---|
| 7 | Application | HTTP, HTTPS, DNS |
| 6 | Présentation | SSL / TLS |
| 5 | Session | Ouverture de session |
| 4 | Transport | TCP / UDP |
| 3 | Réseau | IP / Routage |
| 2 | Liaison | MAC / Switch / VLAN |
| 1 | Physique | Câble / Signal |
🧪 Scénario 1 : Le PC n’a plus accès au réseau
- Vérification du câble réseau / voyant de la carte réseau
- Tester un autre câble ou un autre port switch
- Vérifier la configuration IP
- Ping de la passerelle
- Tester la résolution DNS
- Vérifier le pare-feu Windows
- Tester sans proxy si utilisé
🧪 Scénario 2 : Lenteur réseau
- Vérifier la saturation réseau
- Contrôler les erreurs sur le switch
- Tester avec un autre câble
- Analyser le trafic avec Wireshark
- Vérifier la boucle réseau / spanning-tree
- Contrôler le débit des interfaces
🧪 Scénario 3 : Impossible d’accéder à un serveur
- Ping du serveur
- Tester le port du service
- Vérifier le service démarré
- Contrôler les droits NTFS / SMB
- Vérifier le pare-feu
- Consulter les logs système
🧪 Scénario 1 : Une application ne démarre plus
- Lire le message d’erreur
- Vérifier les dépendances
- Contrôler les droits utilisateur
- Tester en administrateur
- Réinstaller le logiciel
- Consulter les logs Windows/Linux
🧪 Scénario 2 : Le PC devient lent
- Vérifier l’utilisation CPU / RAM / disque
- Contrôler les programmes au démarrage
- Scan antivirus
- Vérifier l’espace disque
- Contrôler l’état SMART du disque
🧪 Scénario 3 : Écran bleu Windows
- Noter le code erreur
- Tester la RAM
- Vérifier les pilotes
- Analyser les dumps mémoire
- Tester le disque
🧪 Scénario 1 : Le PC ne démarre plus
- Vérifier alimentation et câbles
- Tester une autre alimentation
- Écouter les bips BIOS
- Tester la RAM une par une
- Retirer les périphériques inutiles
- Clear CMOS
🧪 Scénario 2 : Écran noir
- Tester un autre écran
- Contrôler le câble vidéo
- Tester la carte graphique
- Vérifier la RAM
- Tester avec GPU intégré
🧪 Scénario 3 : Disque dur défectueux
- SMART disque
- CHKDSK
- Bruits mécaniques
- Lenteurs importantes
- Sauvegarder immédiatement
🧪 Scénario 1 : Un utilisateur ne peut plus se connecter
- Vérifier le réseau
- Tester la résolution DNS
- Vérifier l’heure du poste
- Contrôler le compte AD
- Tester le mot de passe
- Retirer puis réintégrer le poste au domaine
🧪 Scénario 2 : Une GPO ne s’applique pas
- Vérifier le lien de la GPO
- Contrôler les filtrages de sécurité
- Vérifier les OU
- Tester la réplication AD
- Forcer les stratégies
🧰 Outils de dépannage
ping→ tester la connectivitétracert→ afficher le chemin réseaunslookup→ tester le DNSnetstat→ connexions réseauWireshark→ analyse trafic réseauObservateur d’événements→ logs Windows
🏛️ Pourquoi des normes ?
Les normes garantissent l'interopérabilité, la sécurité et la qualité des systèmes informatiques à l'échelle mondiale. Sans elles, chaque constructeur imposerait ses propres règles, rendant les échanges impossibles.
Normalisation américaine
Normalisation internationale
Électronique & réseaux
📡 Normes IEEE incontournables en réseau
L'IEEE est l'organisme derrière la quasi-totalité des standards réseau utilisés aujourd'hui. Ses normes sont préfixées 802.x.
| Norme | Nom commun | Description |
|---|---|---|
| IEEE 802.3 | Ethernet | Réseau filaire, CSMA/CD, 10/100/1000 Mbps |
| IEEE 802.1Q | VLAN Tagging | Encapsulation VLAN sur trame Ethernet (trunk) |
| IEEE 802.1D | Spanning Tree (STP) | Évite les boucles réseau sur les switchs |
| IEEE 802.1X | NAC / EAP | Authentification par port (réseau filaire/Wi-Fi) |
| IEEE 802.11a/b/g/n/ac/ax | Wi-Fi | Communications sans fil (2,4 / 5 / 6 GHz) |
| IEEE 802.3af / at / bt | PoE / PoE+ / PoE++ | Alimentation via câble Ethernet (15 W / 30 W / 90 W) |
| IEEE 802.11i | WPA2 | Sécurité Wi-Fi (AES/CCMP) |
🌐 Normes ISO importantes en informatique
| Norme ISO | Domaine | Ce qu'elle définit |
|---|---|---|
| ISO/IEC 7498 | Réseau | Modèle OSI — 7 couches de communication |
| ISO/IEC 27001 | Sécurité | Système de Management de la Sécurité de l'Information (SMSI) |
| ISO/IEC 27002 | Sécurité | Guide des bonnes pratiques de sécurité |
| ISO 9001 | Qualité | Système de management de la qualité |
| ISO/IEC 20000 | Services IT | Management des services informatiques (proche ITIL) |
| ISO 31000 | Risques | Management du risque — cadre et lignes directrices |
| ISO/IEC 11801 | Câblage | Câblage générique pour bâtiments et campus |
📐 Normes ANSI — Focus câblage
L'ANSI co-publie avec la TIA (Telecommunications Industry Association) les normes de câblage structuré.
- Cat 5e — 1 Gbps jusqu'à 100 m
- Cat 6 — 10 Gbps jusqu'à 55 m, 1 Gbps jusqu'à 100 m
- Cat 6A — 10 Gbps jusqu'à 100 m
- Cat 8 — 40 Gbps jusqu'à 30 m (datacenters)
- Ordre des fils : T568A et T568B (attention aux câbles croisés)
📌 Qu'est-ce que le RGPD ?
Le RGPD (en anglais GDPR — General Data Protection Regulation) est un règlement européen entré en vigueur le 25 mai 2018. Il encadre la collecte, le traitement et le stockage des données personnelles des citoyens de l'UE.
- Toute organisation traitant des données de citoyens UE
- Même si l'entreprise est hors UE
- Données numériques ET papier
- Jusqu'à 20 M€ ou 4 % du CA mondial
- Autorité française : CNIL
- Notification obligatoire en 72h en cas de fuite
🔑 Les 7 principes fondamentaux
| # | Principe | Ce que ça signifie concrètement |
|---|---|---|
| 1 | Licéité, loyauté, transparence | L'utilisateur doit savoir que ses données sont collectées et pourquoi |
| 2 | Limitation des finalités | Les données ne peuvent être utilisées que pour l'usage déclaré |
| 3 | Minimisation des données | Collecter uniquement ce qui est strictement nécessaire |
| 4 | Exactitude | Les données doivent être tenues à jour et corrigées si nécessaire |
| 5 | Limitation de la conservation | Pas de stockage au-delà de la durée nécessaire |
| 6 | Intégrité et confidentialité | Sécurisation technique et organisationnelle des données |
| 7 | Responsabilité (accountability) | L'organisation doit être capable de prouver sa conformité |
👤 Les droits des personnes
🖥️ Impact concret pour un technicien IT
- Chiffrer les disques durs (BitLocker, LUKS) contenant des données personnelles
- Mettre en place des sauvegardes sécurisées et des politiques de rétention
- Journaliser les accès aux données sensibles (logs)
- Appliquer le principe du moindre privilège en AD
- Notifier le DPO / CNIL en cas de violation de données sous 72h
- Pseudonymiser ou anonymiser les données de test
- Supprimer les comptes utilisateurs à la fin du contrat (procédure offboarding)
📌 Qu'est-ce qu'ITIL ?
ITIL (Information Technology Infrastructure Library) est un ensemble de bonnes pratiques pour la gestion des services IT. La version actuelle est ITIL v4 (2019). Ce n'est pas une norme obligatoire, mais un référentiel de référence mondiale utilisé par la majorité des DSI.
Aligner les services informatiques sur les besoins métier, en garantissant qualité, disponibilité et amélioration continue.
🔄 Les 4 dimensions du service (ITIL v4)
📋 Les pratiques ITIL clés
ITIL v4 définit 34 pratiques regroupées en 3 catégories. Voici les plus importantes en contexte technicien :
| Pratique | Description | Exemple concret |
|---|---|---|
| Gestion des incidents | Restaurer le service le plus vite possible | Un serveur tombe en panne → ticket → résolution |
| Gestion des problèmes | Identifier et éliminer les causes racines | Incidents récurrents sur un switch → RCA |
| Gestion des changements | Contrôler les modifications en production | Mise à jour Windows → CAB → déploiement planifié |
| Gestion des demandes | Traiter les demandes de service standard | Création d'un compte utilisateur |
| Gestion des actifs | Suivre les composants matériels et logiciels | CMDB — base de configuration |
| Service Desk | Point d'entrée unique pour les utilisateurs | Helpdesk, ticketing (GLPI, Jira…) |
| Gestion des niveaux de service | Définir et surveiller les SLA | Résoudre les incidents P1 en moins de 4h |
📊 Priorités & SLA (Niveaux de Service)
| Priorité | Impact | Urgence | Délai cible | Exemple |
|---|---|---|---|---|
| P1 — Critique | Majeur | Haute | < 1h | Serveur de production hors service |
| P2 — Élevé | Significatif | Haute | < 4h | Messagerie inaccessible pour 50+ utilisateurs |
| P3 — Moyen | Modéré | Normale | < 8h | Imprimante réseau HS |
| P4 — Faible | Faible | Faible | < 72h | Demande de logiciel |
📌 Qu'est-ce que l'ISO 27001 ?
L'ISO/IEC 27001 est la norme internationale qui définit les exigences pour établir, mettre en œuvre, maintenir et améliorer un SMSI (Système de Management de la Sécurité de l'Information). Une organisation peut obtenir une certification après audit par un organisme accrédité.
🔄 La roue de Deming — PDCA
L'ISO 27001 repose sur le cycle PDCA (Plan-Do-Check-Act) pour l'amélioration continue :
- Identifier les actifs informationnels
- Évaluer les risques
- Définir les objectifs de sécurité
- Implémenter les contrôles de sécurité
- Former le personnel
- Appliquer les procédures
- Audits internes et externes
- Surveillance des indicateurs
- Revue de direction
- Corriger les non-conformités
- Améliorer en continu le SMSI
- Mettre à jour les politiques
🛡️ Les 114 contrôles — Annexe A
L'ISO 27001 liste des contrôles regroupés en 14 domaines. Voici les plus pertinents pour un technicien :
| Domaine | Exemples de contrôles |
|---|---|
| A.6 — Organisation | Séparation des tâches, télétravail sécurisé |
| A.8 — Gestion des actifs | Inventaire, classification et propriété des actifs |
| A.9 — Contrôle d'accès | Politique des mots de passe, moindre privilège, MFA |
| A.10 — Cryptographie | Chiffrement des données, gestion des clés |
| A.11 — Sécurité physique | Contrôle d'accès aux salles serveurs, badgeage |
| A.12 — Opérations | Journaux, sauvegardes, protection contre les malwares |
| A.13 — Communications | Segmentation réseau, chiffrement des transferts |
| A.16 — Incidents | Signalement, réponse, analyse post-incident |
| A.17 — Continuité | PCA, PRA, tests de reprise |
📌 PCA vs PRA — La différence fondamentale
Garantit que l'activité globale de l'entreprise continue, même en mode dégradé, pendant un sinistre.
- Avant et pendant le sinistre
- Maintenir l'activité en mode dégradé
- Exemple : basculer sur un datacenter secondaire à chaud
Décrit comment restaurer l'activité globale de l'entreprise après l'interruption.
- Après le sinistre
- Restaurer l'activité normale
- Exemple : restaurer depuis les sauvegardes, reconfigurer les serveurs
Déclinaison IT du PCA. Regroupe les moyens techniques garantissant la continuité des services informatiques essentiels, via redondance et haute disponibilité.
- Avant et pendant le sinistre
- Redondance serveurs, réplication, RAID, cloud, alim/connexion de secours
- Exemple : clusters actifs, haute disponibilité
Déclinaison IT du PRA. Décrit les procédures techniques pour restaurer le SI après une interruption : restauration des sauvegardes, reconstruction des serveurs, remise en service des applications et bases de données, dans un ordre précis pour rétablir les services critiques en priorité.
- Après le sinistre
- Restauration serveurs, BDD, applications
- Ordre de redémarrage priorisé
| Plan | Périmètre | Quand | Objectif |
|---|---|---|---|
| PCA | Métier / Entreprise | Avant & pendant | Continuer l'activité en mode dégradé |
| PRA | Métier / Entreprise | Après | Restaurer l'activité normale |
| PCI | Informatique (SI) | Avant & pendant | Maintenir les services IT critiques accessibles |
| PRI | Informatique (SI) | Après | Restaurer le SI (serveurs, BDD, applications) |
PCI et PRI sont les déclinaisons informatiques du PCA et du PRA : même logique (continuité vs reprise), mais centrée uniquement sur le système d'information.
⏱️ Les métriques clés : RPO & RTO
Quantité maximale de données qu'on accepte de perdre.
Exemple : RPO = 4h → on sauvegarde toutes les 4h → on peut perdre 4h de données max.
Durée maximale d'interruption acceptable.
Exemple : RTO = 2h → le système doit être opérationnel en moins de 2h après incident.
Plus RPO et RTO sont faibles → plus la solution est coûteuse. Un RPO = 0 (aucune perte) et RTO = 0 (reprise instantanée) nécessite une architecture Active-Active en temps réel.
🏗️ Les niveaux de reprise
| Niveau | Nom | Description | RTO approximatif | Coût |
|---|---|---|---|---|
| 1 | Cold Site | Local vide, infrastructure à installer | Jours à semaines | 💚 Faible |
| 2 | Warm Site | Infrastructure partiellement prête, à activer | Heures à jours | 🟡 Moyen |
| 3 | Hot Site | Infra identique en production, synchronisation régulière | Minutes à heures | 🔴 Élevé |
| 4 | Active-Active | Double site actif simultanément, bascule transparente | Secondes (quasi 0) | 🔴🔴 Très élevé |
📋 Éléments d'un PRA informatique
- Inventaire des systèmes critiques — par ordre de priorité de redémarrage
- Schéma d'architecture — réseau, serveurs, dépendances
- Procédures de restauration — étape par étape, testées régulièrement
- Contacts d'urgence — DSI, prestataires, hébergeurs
- Tests réguliers — exercice de reprise au moins une fois par an
- Documentation à jour — versions des OS, licences, mots de passe en coffre-fort
📌 Qu'est-ce que Merise ?
Merise est une méthode française de conception et développement de systèmes d'information, créée dans les années 1970. Elle repose sur une séparation des données (ce qu'on stocke) et des traitements (ce qu'on fait avec). Elle reste très utilisée dans l'administration et les entreprises françaises.
🧱 Les concepts du MCD
| Concept | Définition | Exemple |
|---|---|---|
| Entité | Objet réel du domaine, représenté par un rectangle | CLIENT, COMMANDE, PRODUIT |
| Attribut | Propriété d'une entité | nom, prénom, email, prix |
| Identifiant | Attribut unique qui identifie chaque occurrence | id_client, numéro_commande |
| Association | Lien entre deux entités, représenté par un ovale ou losange | CLIENT passe COMMANDE |
| Cardinalité | Nombre min et max de participations à une association | (1,N), (0,1), (1,1) |
🔢 Les cardinalités — Lire le MCD
(min, max) :(0,1)
Participe 0 ou 1 fois — la relation est optionnelle (ex: un employé peut avoir 0 ou 1 voiture de société)
(1,1)
Participe exactement 1 fois — obligatoire (ex: une commande appartient à exactement 1 client)
(0,N)
Participe 0 à plusieurs fois (ex: un client peut avoir 0 ou plusieurs commandes)
(1,N)
Participe au moins 1 fois à plusieurs (ex: une commande contient au moins 1 produit)
📋 Du MCD au MLD — Les règles de transformation
| Relation MCD | Résultat dans le MLD |
|---|---|
| 1,1 — N,1 (one-to-one) | La clé étrangère est placée dans l'une des deux tables |
| 1,N — 1,N (one-to-many) | La clé étrangère est dans la table côté N |
| N,N — N,N (many-to-many) | Création d'une table de jointure avec les deux clés étrangères |
💻 Exemple concret — Boutique en ligne
Installez les dépendances nécessaires, puis téléchargez mkcert depuis les dépôts officiels :
Vérifiez que mkcert est correctement installé :
mkcert n'est pas disponible via apt, installez-le manuellement : sudo apt install -y wget && wget https://github.com/FiloSottile/mkcert/releases/latest/download/mkcert-v*-linux-amd64 -O mkcert && sudo mv mkcert /usr/local/bin/ && sudo chmod +x /usr/local/bin/mkcertCette commande crée et installe l'autorité de certification locale de mkcert dans le magasin de confiance du système :
Pour connaître l'emplacement exact des fichiers de la CA Root générés :

rootCA.pem (clé publique à distribuer) et rootCA-key.pem (clé privée — à ne jamais partager).Créez d'abord le dossier qui accueillera vos certificats Nginx, puis générez directement le certificat pour votre domaine local :
Lancez mkcert en ciblant votre domaine — ici c2rt.local :

Deux fichiers sont créés dans le répertoire courant :
c2rt.local.pem→ certificat public (à référencer dans Nginx viassl_certificate)c2rt.local-key.pem→ clé privée (à référencer viassl_certificate_key)
Ouvrez votre fichier de Virtual Host Nginx et adaptez la configuration pour activer HTTPS avec redirection HTTP → HTTPS :
Copiez ce bloc de configuration complet :
— Le premier bloc écoute sur le port 80 (HTTP) et redirige tout le trafic en 301 vers HTTPS.
— Le second bloc écoute sur le port 443 (HTTPS) et sert le site avec les certificats mkcert.
—
ssl_certificate pointe vers le .pem public, ssl_certificate_key vers la clé privée.
Testez la syntaxe et rechargez Nginx :

Pour que Windows fasse confiance au certificat, il faut lui importer la CA Root. Commencez par afficher le contenu du fichier rootCA.pem sur le serveur Linux :

Sur votre machine Windows, créez un nouveau fichier texte, collez le contenu copié et enregistrez-le sous le nom rootCA.pem (par exemple dans C:\Users\VotreNom\Downloads\).
Ouvrez PowerShell en tant qu'administrateur et lancez la commande suivante pour importer le certificat racine dans le magasin de confiance de la machine :

Cert:\LocalMachine\Root installe la CA pour tous les utilisateurs de la machine. Si vous souhaitez l'installer uniquement pour votre compte, utilisez Cert:\CurrentUser\Root à la place.Une fois importé, rechargez votre navigateur et accédez à https://c2rt.local — le cadenas vert doit apparaître sans alerte de sécurité.

Installez BIND9 et les outils de gestion DNS :
bind9-utils fournit des outils comme dig, nslookup et host pour tester votre serveur DNS.BIND9 utilise plusieurs fichiers de configuration situés dans /etc/bind/ :
| Fichier | Rôle |
|---|---|
| /etc/bind/named.conf | Fichier principal qui inclut les autres |
| /etc/bind/named.conf.options | Options globales du serveur (forwarders, ACLs…) |
| /etc/bind/named.conf.local | Déclaration des zones locales |
| /var/lib/bind/ | Répertoire contenant les fichiers de zones |
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
Ajoutez à la fin du fichier :
type master signifie que ce serveur est authoritative (maître) pour cette zone.Étape 2 : Créer le fichier de zone
Remplissez le fichier avec :
Vérifiez que votre configuration est correcte :
BIND9 s'exécute sous l'utilisateur bind. Il faut que ce dernier puisse lire les fichiers de zone :
Redémarrez le service BIND9 pour charger la nouvelle configuration :
Testez que votre serveur DNS fonctionne correctement :
Sur la machine elle-même
Depuis une autre machine du réseau
192.168.1.52), c'est bon ! Votre serveur DNS répond correctement.Pour que d'autres machines utilisent votre serveur DNS, configurez-les pour utiliser son IP :
Sous Linux (Netplan)
Appliquer la configuration
Sous Windows
Entrez l'IP du serveur DNS (ex: 192.168.1.50)
Vous pouvez ajouter différents types d'enregistrements dans votre zone :
Types d'enregistrements courants
| Type | Exemple | Utilité |
|---|---|---|
| A | www IN A 192.168.1.52 | Associer un domaine à une adresse IPv4 |
| AAAA | www IN AAAA 2001:db8::1 | Associer un domaine à une adresse IPv6 |
| CNAME | blog IN CNAME www.exemple.lab. | Alias pour un autre domaine |
| MX | IN MX 10 mail.exemple.lab. | Serveur de mail pour le domaine |
| NS | IN NS ns1.exemple.lab. | Serveur DNS authoritative |
| TXT | IN TXT "v=spf1 mx ~all" | Texte libre (SPF, DKIM, DMARC…) |
Exemple complet avec différents types
Serial à chaque modification de la zone, sinon les autres serveurs DNS ne verront pas les changements !Appliquer les changements
Si vous voulez que votre serveur DNS transmette les requêtes qu'il ne peut pas résoudre à d'autres serveurs DNS publics :
Modifiez la section forwarders :
En cas de problème, consultez les logs BIND9 :
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
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.
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 :
WordPress nécessite PHP et plusieurs modules spécifiques pour traiter les images, les scripts et les connexions :
Vérifiez le status du service (adaptez la version, ex: 8.3) :
Installez le serveur de base de données (version améliorée de MySQL) :
Créez un mot de passe root si nécessaire et connectez-vous :
Exécutez ces requêtes SQL pour préparer le terrain :
Notez bien : Base = Wordpress | User = wordpressuser | Pass = XXXX
On télécharge la dernière version dans le dossier temporaire :
On décompresse l'archive directement dans le répertoire web :
Donnez la propriété du dossier à l'utilisateur www-data (le serveur web) pour qu'il puisse écrire les fichiers :
Créez le fichier de configuration de votre site :
Insérez ce bloc de configuration :
Activez le site via un lien symbolique et redémarrez Nginx :
Accédez à l'IP de votre serveur dans un navigateur et suivez l'assistant :
Base : Wordpress
Utilisateur : wordpressuser
MDP : XXXX
Commencez par mettre à jour le système et installer les composants de la stack LAMP :
Sécurisez votre installation MariaDB :
Connectez-vous à MariaDB :
Exécutez les requêtes SQL suivantes (pensez à remplacer MOT_DE_PASSE) :
Téléchargez et extrayez la dernière version de WordPress :
Configurez les permissions pour qu'Apache puisse gérer les fichiers :
Créez le fichier de configuration pour votre site c4rt.lab :
Collez la configuration suivante :
Activez le nouveau site, le module rewrite et redémarrez Apache :
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).
/var/www/html/wordpress/ :http://c4rt.lab/wordpress
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.
Ouvrez le fichier avec l'éditeur nano :
Modifiez le contenu en respectant scrupuleusement les indentations (espaces) :
Une fois le fichier enregistré (Ctrl+O, Entrée, Ctrl+X), appliquez les changements :
sudo netplan try qui annulera les changements après 120s si la connexion est perdue.Vérifiez que la nouvelle adresse IP est bien appliquée sur l'interface :
Sur Debian, la configuration réseau se gère traditionnellement via le fichier /etc/network/interfaces.
Adaptez le fichier pour passer d'une configuration DHCP à une configuration statique :
ip a avant de modifier le fichier.Pour appliquer les changements sans redémarrer la machine entière :
Ou si vous préférez redémarrer l'interface spécifiquement :
Vérifiez que la nouvelle adresse est bien active :
Sur votre poste client (Windows en PowerShell Admin ou Linux), générez votre paire de clés :
Ou pour une clé RSA 4096 bits plus robuste :
Appuyez sur Entrée pour l'emplacement par défaut et saisissez une passphrase (recommandé).
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/
.pub) doit être envoyée sur les serveurs.Vérifiez si le dossier .ssh existe sur le serveur. S'il n'existe pas, créez-le depuis le client :
Depuis Windows :
Ou pour l'ajouter directement à la suite du fichier existant :
Depuis Linux :
Ou manuellement :
Pour forcer l'usage des clés, modifiez la configuration SSH du serveur :
Cherchez et modifiez la ligne suivante :
Supprimez également le fichier de config cloud-init s'il existe :
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é) :
Client Windows (avec serveur SSH installé) :
1. C'est quoi RDS ?
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ù.
2. Les rôles RDS — qui fait quoi ?
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.
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.
C'est lui qui reçoit les demandes de connexion et décide sur quel serveur envoyer chaque utilisateur.
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.
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.
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.
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.
✅ Avec RD Gateway : tout passe par le port 443 (HTTPS). Discret, chiffré, bien mieux protégé. Pas besoin de VPN.
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.
➜ Toujours configurer RD Licensing dès le départ.
3. Protocole RDP & Accès
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.
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).
4. Sessions, Licences CAL & Sécurité
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.
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).
NLA (Network Level Authentication) : Oblige l'utilisateur à prouver son identité AVANT que le serveur ouvre une session. Toujours activer.
5. Récapitulatif & Architectures
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é).
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 :
2. Commutateur Externe
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.
- 🔸 Communication VM → Internet
- 🔸 Communication VM → LAN (autres PCs, serveurs physiques)
- 🔸 Communication VM → VM (via le réseau physique)
- 🔸 Communication VM → Hôte Hyper-V
| Scénario | Utilisation |
|---|---|
| Serveur de production (DC, DHCP, RDS…) | Doit être joignable depuis tout le réseau LAN |
| VM cliente rejoignant le domaine AD | Doit accéder au contrôleur de domaine sur le LAN |
| Serveur Web accessible depuis Internet | Doit avoir une IP routable |
| Lab avec accès Internet requis | Mises à jour Windows, téléchargements… |
3. Commutateur Interne
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.
- 🔸 Communication VM → VM
- 🔸 Communication VM → Hôte Hyper-V
- 🔸 Communication Hôte → VM
- 🔴 Accès des VMs à Internet
- 🔴 Accès des VMs au LAN physique
| Scénario | Utilisation |
|---|---|
| Lab de test isolé avec accès depuis l'hôte | Développeur voulant accéder aux VMs en SSH/RDP depuis son PC |
| Réseau de gestion Hyper-V | L'hôte administre ses VMs sur un réseau dédié |
| Partage Internet par NAT | Activer le partage de connexion Windows (ICS) sur l'hôte pour donner Internet aux VMs via le commutateur interne |
4. Commutateur Privé
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.
- 🔸 Communication VM → VM uniquement
- 🔴 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
| Scénario | Utilisation |
|---|---|
| Lab de cybersécurité (malware, CTF) | Isoler totalement les VMs dangereuses pour ne pas contaminer le réseau |
| Test de communication inter-VMs | Vérifier qu'un protocole fonctionne entre deux VMs sans pollution réseau |
| Infrastructure AD fermée | DC + clients dans un réseau complètement isolé pour un examen ou une démo |
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ôte | Optionnelle | ✅ Automatique | ❌ |
| Niveau d'isolation | Faible | Moyen | Total |
6. Créer un commutateur virtuel
Choisissez le type souhaité (Externe / Interne / Privé) puis cliquez sur Créer un commutateur virtuel.
Créer les trois types de commutateurs en PowerShell :
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
L'infrastructure utilisée dans cette procédure se compose de :

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


Installation du service Bureau à Distance
Sur le SRV-BROKER, se connecter avec tssr\Administrateur et ajouter les serveurs hôtes SRV-HOTE-01 et SRV-HOTE-02.

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.




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 :

Création de la Collection
Dans SRV-BROKER, aller dans Services de Bureau à Distance et créer une nouvelle 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
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.


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-BROKER → Collection → Modifier les paramètres de déploiement.


Connexion depuis le client
Sur le PC-CLI-01, afficher les entrées DNS pour vérifier la résolution :
Ouvrir le Bureau à distance et se connecter avec :

Modification 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
Dans les paramètres de déploiement, ajouter la passerelle et renseigner le SRV-BROKER.



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



Pour l'accès Web :



Connexion Web & RemoteApp
Depuis le PC client, ouvrir un navigateur et aller sur :

Dans la collection, aller dans Programmes RemoteApp → Tâches → Publier 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
Sur le SRV-DC-01, créer un dossier C:\profile_rds.


Partage SMB du dossier (partage simple).

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.


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 :

1. Prérequis
2. Préparer le partage réseau
Sur SRV-DC-01, créer le dossier :
Partager le dossier sous le nom FSLogix :
Permissions NTFS requises :
| Principal | Accès | S'applique à |
|---|---|---|
| Système | Contrôle total | Ce dossier, sous-dossiers et fichiers |
| Administrateur | Contrôle total | Ce dossier, sous-dossiers et fichiers |
| tssr\Administrateurs | Contrôle total | Ce dossier, sous-dossiers et fichiers |
| CREATEUR PROPRIETAIRE | Modification | Les sous-dossiers et les fichiers seulement |
| tssr\Utilisateurs | Modification | Ce dossier seulement |
3. Importer les templates ADMX FSLogix
Naviguer vers :
Créer un nouveau dossier nommé :
Sur SRV-DC-01, copier tout le contenu de :
Coller dans :
Dans le ZIP FSLogix extrait, trouver les fichiers dans le dossier templates\ :
Copier fslogix.admx vers :
Copier fslogix.adml vers :
4. Configurer FSLogix via GPO
Créer une GPO appliquée sur l'OU contenant les Session Hosts, puis naviguer dans :
Paramètres à configurer :
| Paramètre | Valeur |
|---|---|
| Enabled | Activé |
| VHD Locations | \\SRV-DC-01\FSLogix |
| Delete Local Profile When VHD Should Apply | Activé |
| Is Dynamic (VHD) | Activé |
| Size In MBs | 10240 (10 Go — à adapter) |
| Profile Type | Read / Write profile - fallback to Read Only |
5. Fermeture automatique des sessions RemoteApp
Dans la même GPO :
| Paramètre | Valeur |
|---|---|
| Définir la limite de temps pour la fermeture de sessions RemoteApp | Immédiatement |
6. Appliquer & Vérifier
Sur chaque Session Host :
Vérifier que la GPO est appliquée :
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 :
Vérifier le chemin du profil dans une session utilisateur :
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 :
| Composant | Rôle |
|---|---|
| Backend | Lit les logs (syslog, fichiers…) |
| Filters | Patterns regex pour détecter les comportements malveillants |
| Actions | Réactions automatiques (blocage IP, email, webhooks…) |
| Jails | Conteneurs combinant filters + actions pour un service |
Configuration — Structure des fichiers
La configuration est modularisée dans /etc/fail2ban/ :
| Fichier | Rôle |
|---|---|
jail.conf | Configuration globale (durée de ban, seuils…) |
jail.d/*.conf | Configurations spécifiques par service (SSH, Apache…) |
filter.d/*.conf | Patterns regex pour détecter les attaques |
action.d/*.conf | Actions à exécuter (iptables, email…) |
Paramètres importants
Voici les paramètres clés que vous rencontrerez :
| Paramètre | Signification | Exemple |
|---|---|---|
bantime | Durée du ban en secondes | 3600 = 1 heure |
findtime | Fenêtre de temps pour compter les tentatives | 600 = 10 minutes |
maxretry | Nombre d'erreurs avant ban | 5 = 5 tentatives échouées |
port | Port du service à protéger | ssh = port 22 |
logpath | Chemin du fichier de logs à surveiller | /var/log/auth.log |
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
Installez Fail2ban et ses dépendances :
Explorez la structure de configuration :
Fichiers importants :
| Fichier | Rôle |
|---|---|
| /etc/fail2ban/jail.conf | Configuration globale par défaut |
| /etc/fail2ban/jail.local | Vos 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…) |
jail.conf directement. Créez plutôt jail.local pour vos personnalisations.Créez un fichier de configuration personnalisé pour protéger SSH :
Ajoutez le contenu suivant :
Explication des paramètres :
enabled = true→ Active cette prisonbantime = 1h→ Bannit l'IP pendant 1 heuremaxretry = 3→ Ban après 3 tentatives échouéesport = ssh→ Port SSH (22 par défaut)filter = sshd→ Filtre SSH prédéfinilogpath = /var/log/auth.log→ Fichier de logs SSH
Vérifiez que votre configuration est correcte :
Si tout est bon, redémarrez Fail2ban :
Consultez l'état de votre prison SSH :
Exemple de sortie :
Currently banned = IPs actuellement bloquées. Total banned = historique total.Simulez une attaque en lançant plusieurs tentatives SSH échouées depuis une autre machine :
Si vous êtes accidentellement banni, débannissez votre IP :
Pour éviter de vous bannir vous-même, ajoutez votre IP ou sous-réseau à la whitelist :
Configuration essentielles + optionnels :
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.xConsultez les logs de Fail2ban pour voir ce qui se passe :
Exemple de log lors d'un ban :
Par défaut, Fail2ban bloque les IPs via iptables. Vous pouvez ajouter des actions supplémentaires :
Actions disponibles (optionnelles) :
iptables-multiport→ Blocage via iptables (défaut)sendmail-whois→ Email avec infos du hackersendmail→ Email simpleslack→ Notification Slack
Visualisez et gérez les IPs bannies :
La prison sshd n'apparaît pas :
Fail2ban ne détecte aucune tentative :
Le blocage ne fonctionne pas :
/var/log/fail2ban.log en cas de problème.Mettez à jour les dépôts et installez le paquet Nginx :
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.
On commence par se rendre dans le répertoire web et nettoyer l'existant si besoin :
Créez la structure pour votre nouveau site (ex: c2rt) :
Créez un fichier index.html de base pour tester :
Ajoutez un code HTML simple, par exemple :
Allez dans le dossier des configurations disponibles et supprimez la config par défaut :
Créez le fichier de configuration pour votre site :
Copiez et adaptez la configuration suivante :
-
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.
Créez un lien symbolique vers le dossier sites-enabled pour activer la config :
Supprimez le lien par défaut dans sites-enabled s'il existe :
Testez la syntaxe de la configuration :
Si tout est OK, rechargez Nginx :
Récupérez l'adresse IP de votre serveur Ubuntu pour le test final :
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) :

http://c2rt.lab dans votre navigateur !Installez BIND9 et les outils de gestion DNS :
bind9-utils fournit des outils comme dig, nslookup et host pour tester votre serveur DNS.BIND9 utilise plusieurs fichiers de configuration situés dans /etc/bind/ :
| Fichier | Rôle |
|---|---|
| /etc/bind/named.conf | Fichier principal qui inclut les autres |
| /etc/bind/named.conf.options | Options globales du serveur (forwarders, ACLs…) |
| /etc/bind/named.conf.local | Déclaration des zones locales |
| /var/lib/bind/ | Répertoire contenant les fichiers de zones |
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
Ajoutez à la fin du fichier :
type master signifie que ce serveur est authoritative (maître) pour cette zone.Étape 2 : Créer le fichier de zone
Remplissez le fichier avec :
Vérifiez que votre configuration est correcte :
BIND9 s'exécute sous l'utilisateur bind. Il faut que ce dernier puisse lire les fichiers de zone :
Redémarrez le service BIND9 pour charger la nouvelle configuration :
Testez que votre serveur DNS fonctionne correctement :
Sur la machine elle-même
Depuis une autre machine du réseau
192.168.1.52), c'est bon ! Votre serveur DNS répond correctement.Pour que d'autres machines utilisent votre serveur DNS, configurez-les pour utiliser son IP :
Sous Linux (Netplan)
Appliquer la configuration
Sous Windows
Entrez l'IP du serveur DNS (ex: 192.168.1.50)
Vous pouvez ajouter différents types d'enregistrements dans votre zone :
Types d'enregistrements courants
| Type | Exemple | Utilité |
|---|---|---|
| A | www IN A 192.168.1.52 | Associer un domaine à une adresse IPv4 |
| AAAA | www IN AAAA 2001:db8::1 | Associer un domaine à une adresse IPv6 |
| CNAME | blog IN CNAME www.exemple.lab. | Alias pour un autre domaine |
| MX | IN MX 10 mail.exemple.lab. | Serveur de mail pour le domaine |
| NS | IN NS ns1.exemple.lab. | Serveur DNS authoritative |
| TXT | IN TXT "v=spf1 mx ~all" | Texte libre (SPF, DKIM, DMARC…) |
Exemple complet avec différents types
Serial à chaque modification de la zone, sinon les autres serveurs DNS ne verront pas les changements !Appliquer les changements
Si vous voulez que votre serveur DNS transmette les requêtes qu'il ne peut pas résoudre à d'autres serveurs DNS publics :
Modifiez la section forwarders :
En cas de problème, consultez les logs BIND9 :
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
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.
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 :
WordPress nécessite PHP et plusieurs modules spécifiques pour traiter les images, les scripts et les connexions :
Vérifiez le status du service (adaptez la version, ex: 8.3) :
Installez le serveur de base de données (version améliorée de MySQL) :
Créez un mot de passe root si nécessaire et connectez-vous :
Exécutez ces requêtes SQL pour préparer le terrain :
Notez bien : Base = Wordpress | User = wordpressuser | Pass = XXXX
On télécharge la dernière version dans le dossier temporaire :
On décompresse l'archive directement dans le répertoire web :
Donnez la propriété du dossier à l'utilisateur www-data (le serveur web) pour qu'il puisse écrire les fichiers :
Créez le fichier de configuration de votre site :
Insérez ce bloc de configuration :
Activez le site via un lien symbolique et redémarrez Nginx :
Accédez à l'IP de votre serveur dans un navigateur et suivez l'assistant :
Base : Wordpress
Utilisateur : wordpressuser
MDP : XXXX
Commencez par mettre à jour le système et installer les composants de la stack LAMP :
Sécurisez votre installation MariaDB :
Connectez-vous à MariaDB :
Exécutez les requêtes SQL suivantes (pensez à remplacer MOT_DE_PASSE) :
Téléchargez et extrayez la dernière version de WordPress :
Configurez les permissions pour qu'Apache puisse gérer les fichiers :
Créez le fichier de configuration pour votre site c4rt.lab :
Collez la configuration suivante :
Activez le nouveau site, le module rewrite et redémarrez Apache :
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).
/var/www/html/wordpress/ :http://c4rt.lab/wordpress
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.
Ouvrez le fichier avec l'éditeur nano :
Modifiez le contenu en respectant scrupuleusement les indentations (espaces) :
Une fois le fichier enregistré (Ctrl+O, Entrée, Ctrl+X), appliquez les changements :
sudo netplan try qui annulera les changements après 120s si la connexion est perdue.Vérifiez que la nouvelle adresse IP est bien appliquée sur l'interface :
Sur Debian, la configuration réseau se gère traditionnellement via le fichier /etc/network/interfaces.
Adaptez le fichier pour passer d'une configuration DHCP à une configuration statique :
ip a avant de modifier le fichier.Pour appliquer les changements sans redémarrer la machine entière :
Ou si vous préférez redémarrer l'interface spécifiquement :
Vérifiez que la nouvelle adresse est bien active :
Sur votre poste client (Windows en PowerShell Admin ou Linux), générez votre paire de clés :
Ou pour une clé RSA 4096 bits plus robuste :
Appuyez sur Entrée pour l'emplacement par défaut et saisissez une passphrase (recommandé).
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/
.pub) doit être envoyée sur les serveurs.Vérifiez si le dossier .ssh existe sur le serveur. S'il n'existe pas, créez-le depuis le client :
Depuis Windows :
Ou pour l'ajouter directement à la suite du fichier existant :
Depuis Linux :
Ou manuellement :
Pour forcer l'usage des clés, modifiez la configuration SSH du serveur :
Cherchez et modifiez la ligne suivante :
Supprimez également le fichier de config cloud-init s'il existe :
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é) :
Client Windows (avec serveur SSH installé) :
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.
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.
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.
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.
| # | Mission | Description |
|---|---|---|
| 01 | Gestion du Hardware | Parle au processeur, à la RAM, aux disques et périphériques |
| 02 | Gestion des Processus | Décide quel logiciel utilise le processeur et pendant combien de temps (multitâche) |
| 03 | Gestion de la Mémoire | Empêche un processus d'accéder aux données d'un autre (isolation mémoire) |
| 04 | Droits & Permissions | Vé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.
| Usage | Distributions | Caractéristique principale |
|---|---|---|
| Serveurs | Debian, Red Hat, CentOS | Stabilité maximale, mises à jour contrôlées |
| Grand Public | Ubuntu, Linux Mint | Simplicité, interface graphique soignée |
| Sécurité / Pentest | Kali Linux, Parrot OS | Outils offensifs préinstallés (hackers éthiques) |
| Embarqué / IoT | Alpine, Raspbian | Trè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.
| Dossier | Contenu | Analogie |
|---|---|---|
/bin | Commandes de base (ls, cp, mv…) | 🧰 Le sac à outils |
/etc | Fichiers de configuration du système | ⚙️ Les réglages machine |
/home | Répertoires personnels des utilisateurs | 🏠 Les chambres des utilisateurs |
/root | Répertoire du super-utilisateur (root) | 🏰 La chambre forte de l'admin |
/var | Données variables : logs, bases de données, spool… | 📋 Les archives dynamiques |
/tmp | Fichiers temporaires, vidés au redémarrage | 🗑️ La corbeille temporaire |
/dev | Fichiers représentant les périphériques matériels | 🖨️ Les périphériques (tout est fichier) |
/proc | Systè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 :
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.
Commencez par mettre à jour les paquets du système, puis installez Samba :
Vérifiez que Samba est bien installé et que le service est actif :
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.Créez le répertoire DossierPartage dans votre répertoire personnel, puis ajoutez-y quelques fichiers de test :
Attribuez les bonnes permissions au dossier pour que Samba puisse y accéder :
Avant de modifier le fichier de configuration, faites-en une sauvegarde :
Ouvrez ensuite le fichier de configuration principal de Samba :
Faites défiler jusqu'à la fin du fichier et ajoutez le bloc suivant pour définir votre partage :
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éseaupath— Chemin absolu du répertoire partagé sur le serveurbrowseable— Rend le partage visible lors de la navigation réseauwritable— Autorise l'écriture dans le dossier partagévalid users— Restreint l'accès aux utilisateurs listéscreate mask— Permissions appliquées aux nouveaux fichiers créés
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é :
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 :
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.Redémarrez les deux services Samba pour appliquer la nouvelle configuration :
Activez le démarrage automatique au boot :
Si le pare-feu UFW est actif sur votre système, autorisez le trafic Samba :
Ou manuellement en ouvrant les ports utilisés par SMB :
Notez l'adresse IP de votre serveur Linux — les clients en auront besoin pour s'y connecter :
Repérez l'interface réseau active (généralement eth0 ou ens33) et notez son adresse IPv4 (ex : 192.168.1.50).
Depuis Windows
Ouvrez l'Explorateur de fichiers, puis dans la barre d'adresse saisissez :
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 :
Ou installez le gestionnaire de fichiers Nautilus et parcourez via Autres emplacements → Connexion à un serveur avec l'adresse :
192.168.1.50 par l'adresse IP réelle relevée à l'étape précédente.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 :
Puis donnez les droits en écriture à tous les utilisateurs sur le dossier :
Informations document
- Version : 2.0 — 21/05/2026
- Domaine : tssr.lab — Réseau : 192.168.30.0/24
- Serveur PKI : 192.168.30.11 (Debian / Proxmox)
- Rôle : CA Root + CA Intermédiaire (2 niveaux)
0. Logique globale — À lire avant tout
Avant de saisir la moindre commande, il est indispensable de comprendre comment la PKI s'articule dans cette infrastructure. Cette section résume l'architecture de confiance que vous allez construire, les responsabilités de chaque machine, et les règles fondamentales à respecter.
Qu'est-ce qu'une PKI ?
Une PKI est l'ensemble des outils, procédures et politiques permettant de créer, distribuer, gérer et révoquer des certificats numériques. Dans cette infrastructure, OpenSSL hébergé sur 192.168.30.11 joue le rôle d'autorité de certification (CA) : il signe les certificats de chaque service pour prouver leur identité sur le réseau local tssr.lab.
Un certificat = une identité numérique signée par une autorité de confiance. Sans PKI, toutes les connexions SSL/TLS génèrent des avertissements de sécurité.
Hiérarchie de confiance
La PKI C2RT utilise une architecture à deux niveaux (Root CA + Intermediate CA). La Root CA reste hors ligne après création ; seule l'Intermediate CA est utilisée au quotidien pour signer les certificats des services.
Plan d'adressage
| Machine | IP / Accès | Rôle |
|---|---|---|
| SRV Proxmox | 192.168.30.2:8006 | Hyperviseur – VM/CT Linux |
| TrueNAS | 192.168.30.3 | NAS – stockage SMB/NFS |
| GLPI | 192.168.30.4 | Gestionnaire parc & tickets |
| SRV Windows 2025 | 192.168.30.5 | Windows Server – WSUS / Bastion / VPN |
| Patchmon | 192.168.30.22 | Surveillance MAJ machine Linux |
| VaultWarden | 192.168.30.6 | Gestionnaire de mots de passe |
| Samba LDAP | 192.168.30.10 | Contrôleur de domaine AD |
| ⭐ OpenSSL PKI | 192.168.30.11 | Serveur PKI – CA Root & Intermédiaire |
| CrowdSec | 192.168.30.20:8081 | SIEM – supervision & sécurité (Docker) |
| Bastion Teleport | 192.168.30.20:8080 | Accès distant RDP/SSH (Docker) |
| Patchmon | 192.168.30.20:5601 | Linux WSUS – mises à jour (Docker) |
| WSUS | 192.168.30.21 | Mises à jour Windows |
| pfSense | 192.168.60.254 | Pare-feu / routeur (VM Hyper-V) |
Règles fondamentales — À ne jamais enfreindre
| Élément | Règle | Critique |
|---|---|---|
| *.key.pem | Restent TOUJOURS sur la machine qui héberge le service. Ne circulent pas sur le réseau sauf déploiement initial via scp chiffré SSH. | 🔴 |
| *.cert.pem | Peuvent être copiés et distribués librement — ils ne contiennent que la partie publique. | 🟢 |
| rootCA.cert.pem | Doit être installée sur TOUS les serveurs et postes clients AVANT de configurer les services SSL. | 🔴 |
| Génération | Tout se génère sur le serveur OpenSSL (192.168.30.11), puis on copie vers la machine cible via scp. |
🟡 |
| Mots de passe | Root CA et Intermediate CA ont des mots de passe DIFFÉRENTS. Les noter immédiatement dans KeePass. | 🔴 |
Tableau de déploiement des fichiers
| Fichier | Généré sur | Déployé sur | Emplacement destination |
|---|---|---|---|
| rootCA.cert.pem | 192.168.30.11 | TOUS les serveurs + clients | /usr/local/share/ca-certificates/c2rt-rootCA.crt |
| intermediateCA.cert.pem | 192.168.30.11 | TOUS les serveurs + clients | /usr/local/share/ca-certificates/c2rt-intermediateCA.crt |
| ca-chain.cert.pem | 192.168.30.11 | Tous les services | Dossier SSL du service concerné |
| samba.cert.pem + .key | 192.168.30.11 | Samba — 192.168.30.10 | /etc/samba/tls/ |
| glpi.cert.pem + .key | 192.168.30.11 | GLPI — 192.168.30.4 | /etc/ssl/c2rt/ |
| teleport.cert.pem + .key | 192.168.30.11 | WinSrv — 192.168.70.50 | /etc/ssl/c2rt/ |
| vaultwarden.cert.pem + .key | 192.168.30.11 | VaultWarden — 192.168.30.6 | /opt/vaultwarden/ssl/ |
| truenas.cert.pem + .key | 192.168.30.11 | TrueNAS — 192.168.30.3 | Via interface web |
| proxmox.cert.pem + .key | 192.168.30.11 | Proxmox — 192.168.30.2 | Via interface web (Node > Certificates) |
| pfsense.cert.pem + .key | 192.168.30.11 | pfSense — 192.168.60.254 | System > Cert Manager (copier/coller) |
| patchmon.cert.pem + .key | 192.168.30.11 | PatchMon — 192.168.30.22 | /etc/ssl/c2rt/ (reverse proxy Nginx) |
Cette étape se réalise uniquement sur le serveur OpenSSL (192.168.30.11), VM Debian hébergée sur Proxmox. Il doit être dédié exclusivement à la PKI — aucun autre service ne doit tourner dessus pour limiter la surface d'attaque.
1.1 — Mise à jour du système
OpenSSL 3.0.x dd Mon yyyySi la version est inférieure à 1.1.1 :
apt dist-upgrade -y puis relancer openssl version.1.2 — Vérification de la connectivité réseau
On crée l'arborescence complète de dossiers qui va accueillir tous les fichiers de la PKI. Cette structure suit les meilleures pratiques OpenSSL avec séparation stricte entre Root CA et Intermediate CA.
tree /etc/ssl/c2rt/
/etc/ssl/c2rt/
├── certs/ ← Certificats des services (samba, glpi, etc.)
├── crl/ ← Listes de révocation (CRL)
├── csr/ ← Demandes de signature (CSR) des services
├── newcerts/ ← Copies automatiques des certs signés (OpenSSL)
├── private/ ← Clés privées des services
├── rootCA/
│ ├── certs/ ← Certificat rootCA.cert.pem
│ ├── index.txt ← Base de données (vide au départ)
│ ├── private/ ← Clé privée rootCA.key.pem (chmod 400)
│ ├── serial ← Compteur de série (commence à 1000)
│ └── crlnumber
└── intermediateCA/
├── certs/ ← Certificat intermediateCA.cert.pem + ca-chain.cert.pem
├── csr/ ← CSR de l'Intermediate CA
├── index.txt
├── private/ ← Clé privée intermediateCA.key.pem (chmod 400)
├── serial ← Compteur de série (commence à 2000)
└── crlnumberCe fichier de configuration dit à OpenSSL comment se comporter quand il agit en tant que Root CA (signature de l'Intermediate CA, génération des CRL, politique de certificats). Il doit être créé une seule fois.
La Root CA est l'autorité de certification racine. Elle est auto-signée et constitue le sommet de la hiérarchie de confiance. Sa clé privée doit être protégée par un mot de passe fort — sa compromission nécessiterait de reconstruire toute la PKI.
4.1 — Clé privée Root CA (RSA 4096 bits, chiffrée AES-256)
OpenSSL demande de saisir et confirmer un mot de passe. Ce mot de passe est UNIQUE et irremplaçable :
• Minimum 20 caractères, mixte (majuscules, minuscules, chiffres, symboles)
• Exemple fort :
C2RT-Root@2026!Agen#PKI• Le noter IMMÉDIATEMENT dans KeePass sous l'entrée C2RT Root CA password
• Ce mot de passe sera demandé UNE SEULE FOIS : pour signer l'Intermediate CA
• Si perdu → toute la PKI est à reconstruire depuis zéro
4.2 — Certificat Root CA auto-signé (validité 20 ans)
Le certificat Root CA est auto-signé. Il sera distribué sur tous les serveurs et postes clients comme ancre de confiance.
4.3 — Vérification de la Root CA
Issuer: C=FR, ST=Nouvelle-Aquitaine, L=Agen, O=C2RT, OU=TSSR, CN=C2RT Root CASubject: C=FR, ST=Nouvelle-Aquitaine, L=Agen, O=C2RT, OU=TSSR, CN=C2RT Root CA(Subject = Issuer → normal, c'est auto-signé)
CA:TRUE → confirme que c'est bien une autorité de certificationL'Intermediate CA est l'autorité qui signe tous les certificats des services au quotidien. Grâce à cette architecture à deux niveaux, la Root CA peut être mise hors ligne après avoir signé l'Intermediate CA, ce qui réduit considérablement les risques.
5.1 — Fichier de configuration Intermediate CA
5.2 — Clé privée Intermediate CA
Choisir un mot de passe DIFFÉRENT de celui de la Root CA.
Le noter dans KeePass sous C2RT Intermediate CA password.
Ce mot de passe sera demandé à chaque signature de certificat service.
5.3 — CSR de la CA Intermédiaire
La CA Intermédiaire génère une demande de signature (CSR) qui sera soumise à la Root CA pour obtenir son certificat.
5.4 — Signature de l'Intermediate CA par la Root CA
C'est ici que la Root CA entre en jeu pour la dernière fois. OpenSSL demandera le mot de passe de la Root CA.
5.5 — Création de la chaîne de certificats (ca-chain.cert.pem)
La chaîne de certification contient les deux certificats dans l'ordre requis : Intermediate CA en premier, puis Root CA.
5.6 — Vérification de la chaîne de confiance
Les IP dans les SAN (Subject Alternative Names) sont incluses dans le certificat et ne peuvent PAS être modifiées après signature. Si une IP change, le certificat doit être révoqué et regénéré.
Samba LDAP : 192.168.30.10 | GLPI : 192.168.30.4 | Teleport : 192.168.70.50
VaultWarden : 192.168.30.6 | TrueNAS : 192.168.30.3 | pfSense : 192.168.60.254
Proxmox : 192.168.30.2
6.1 — Certificat Samba AD / LDAP (192.168.30.10)
Machine : Samba LDAP — 192.168.30.10 | Déploiement : scp depuis 192.168.30.11
Spécificité :
extendedKeyUsage inclut clientAuth en plus de serverAuth (requis par Samba AD pour LDAPS)Port LDAPS : 636
6.2 — Certificat GLPI (192.168.30.4)
Machine : GLPI — 192.168.30.4 | Serveur web : Nginx — HTTPS port 443
URL d'accès : https://glpi.tssr.lab
6.3 — Certificat Teleport / Bastion Teleport (192.168.70.50)
Machine : Windows Server / Docker — 192.168.70.50
Reverse proxy : Nginx devant Teleport pour le SSL | Ports : 8080 interne, 443 via Nginx
6.4 — Certificat TrueNAS (192.168.30.3)
Machine : TrueNAS — 192.168.30.3
Déploiement : Import via interface web (Credentials > Certificates > Add)
6.5 — Certificat pfSense (192.168.60.254) — VM Hyper-V
Machine : pfSense — 192.168.60.254 (VM Hyper-V sur Windows Server 2025)
Pas de scp direct possible. On exporte le certificat et la clé en texte, puis on les copie-colle dans l'interface web.
Procédure d'import dans l'interface web pfSense (https://192.168.60.254) :
- Naviguer vers System > Cert Manager > Certificates > Add/Sign
- Method : Import an existing Certificate
- Certificate data : coller le contenu de pfsense.cert.pem
- Private key data : coller le contenu de pfsense.key.pem
- Sauvegarder, puis System > Advanced > Admin Access → choisir ce certificat pour HTTPS
6.6 — Certificat Proxmox (192.168.30.2) — Interface web port 8006
Machine : Proxmox VE — 192.168.30.2 (port 8006)
Import via : Datacenter > Node > System > Certificates
URL d'accès : https://proxmox.tssr.lab:8006
6.7 — Certificat VaultWarden (192.168.30.6)
Machine : Debian — 192.168.30.6 | Chemin standard : /opt/vaultwarden/ssl/
6.8 — Certificat PatchMon (192.168.30.22)
Machine : Debian — 192.168.30.22 | PatchMon tourne en Docker sur le port 3000.
On place un reverse proxy en front pour exposer le service en HTTPS (443) avec le certificat C2RT.
Reverse proxy utilisé ici : Nginx — alternatives possibles : Apache2, Caddy, HAProxy, Traefik.
Mise en place du reverse proxy Nginx (sur 192.168.30.22). Alternatives possibles : Apache2, Caddy, HAProxy, Traefik.
1. Installation de Nginx :
2. Création du fichier de configuration :
3. Contenu de la configuration Nginx :
4. Activation du site :
5. Vérification de la configuration :
6. Rechargement de Nginx :
7. Configuration de PatchMon — éditer le fichier .env :
Mettre :
http://192.168.30.22:3000 — PatchMon doit voir l'URL publique HTTPS, pas l'adresse interne du conteneur.8. Redémarrage de PatchMon :
9. Vérification des variables d'environnement injectées :
10. Vérification des ports :
11. Test HTTPS depuis le serveur :
12. Vérification finale du certificat :
Cette étape est indispensable avant d'utiliser les certificats. Sans la Root CA installée, tous les navigateurs et outils système afficheront des erreurs SSL même si les certificats sont techniquement valides.
7.1 — Sur le serveur OpenSSL lui-même (192.168.30.11)
7.2 — Sur les serveurs Linux (Samba, GLPI, TrueNAS, VaultWarden)
7.3 — Sur le Bastion Teleport (192.168.70.50)
7.4 — Sur les postes clients Windows via GPO
- Ouvrir la console Gestion des stratégies de groupe sur Windows Server (192.168.30.5)
- Créer ou éditer une GPO liée au domaine tssr.lab
- Naviguer vers : Configuration ordinateur > Paramètres Windows > Paramètres de sécurité > Stratégies de clé publique
- Clic droit sur Autorités de certification racines de confiance > Importer
- Sélectionner
rootCA.cert.pem(renommer enrootCA.crtsi Windows refuse .pem) - Répéter pour Autorités de certification intermédiaires avec
intermediateCA.cert.pem
Supprimer manuellement avec :
certutil -delstore "Intermediate Certification Authorities" "C2RT Root CA"Puis forcer à nouveau la GPO.
7.5 — Sur les conteneurs Docker (192.168.30.20)
7.6 — Dans pfSense (192.168.60.254) — Import Root CA
- Naviguer vers System > Cert Manager > CAs > Add
- Method : Import an existing Certificate Authority
- Certificate data : coller le contenu de
rootCA.cert.pem - Private key : laisser vide
- Sauvegarder — pfSense reconnaîtra désormais tous les certificats signés par C2RT
Les CRL (Certificate Revocation Lists) permettent de révoquer un certificat compromis ou expiré avant sa date normale d'expiration.
8.1 — Génération initiale des CRL
8.2 — Révoquer un certificat compromis
Intermediate CA CRL : expire dans 180 jours (default_crl_days = 180)
Root CA CRL : expire dans 365 jours (default_crl_days = 365)
Une CRL expirée peut bloquer toutes les connexions SSL de l'infrastructure.
Exemple cron (sur le serveur 192.168.30.11) :
0 2 */150 * * openssl ca -config /etc/ssl/c2rt/intermediateCA/openssl.cnf -gencrl -out /etc/ssl/c2rt/crl/intermediateCA.crl.pem9.1 — Script de vérification en batch
9.2 — Vérification de la connectivité SSL des services
Cette archive contient TOUTES les clés privées de l'infrastructure.
Sans cette sauvegarde : perte du serveur OpenSSL = reconstruire toute la PKI + redistribuer tous les certificats.
| # | Point critique | Action requise | Fréquence |
|---|---|---|---|
| 1 | Mots de passe Root CA & Intermediate CA | Stocker IMMÉDIATEMENT dans KeePass. Si perdus → PKI à refaire depuis zéro. | Unique |
| 2 | IP dans les SAN des certificats | Remplacer TOUTES les IP par les vraies IP du plan d'adressage AVANT signature. | À chaque génération |
| 3 | Déploiement Root CA | Installer rootCA.cert.pem sur TOUS serveurs + postes clients AVANT les services. | Une fois + nouveaux postes |
| 4 | Renouvellement CRL Intermediate | Régénérer avec openssl ca -gencrl avant expiration (180j). | Tous les 6 mois |
| 5 | Renouvellement CRL Root | Régénérer avant expiration (365j). | Tous les 12 mois |
| 6 | Protection des clés privées (*.key.pem) | Jamais distribuer, chmod 400, uniquement root. | Permanent |
| 7 | Sauvegarde PKI sur NAS | Archiver /etc/ssl/c2rt/ chiffré vers 192.168.30.3. | Après chaque changement |
| 8 | Renouvellement certificats services | Certificats valides 825j (~2,2 ans). Planifier le renouvellement. | Tous les 2 ans |
0. Principe général et architecture du projet
Objectif du projet
Le but est de mettre en place un pare-feu applicatif (WAF) qui protège un serveur web interne contre les attaques web courantes (injection SQL, XSS, etc.), en s'appuyant sur Nginx + ModSecurity + OWASP Core Rule Set (CRS), avec du TLS signé par une PKI interne (autorité de certification maison), le tout dans un lab Hyper-V.
Architecture
Rôle de chaque brique :
- PKI-CA-01 délivre et signe le certificat TLS utilisé par le WAF (Root CA + Intermediate CA), pour que le HTTPS présenté par
waf.c2rt.localsoit vérifiable via une chaîne de confiance. - WAF-NGX-01 est le seul point d'entrée exposé : il termine le TLS, filtre le trafic avec ModSecurity/CRS (injections SQL, XSS, etc.), applique du rate-limiting, puis relaie les requêtes légitimes vers le serveur applicatif en HTTP interne.
- APP-SRV-01 héberge l'application web réelle et n'accepte de connexions sur le port 80 que depuis l'IP du WAF (règle
ufw) : il est injoignable directement depuis le PC hôte ou le reste du réseau. - Le PC hôte Windows fait tourner Hyper-V, héberge les 3 VM et sert de poste de test (résolution DNS locale via le fichier
hosts,curl,Test-NetConnection).
Pour que ton PC (l'hôte) puisse communiquer avec les VM, il faut un commutateur virtuel externe : il relie les VM à ta carte réseau physique, ce qui les met sur le même réseau que ton PC (et leur donne aussi Internet, nécessaire pour les apt install).
Les VM créées :
| Nom VM | Rôle | OS | IP | Utilisateur |
|---|---|---|---|---|
| PKI-CA-01 | Autorité de certification | Debian 12 (minimal, sans interface graphique) | 192.168.30.10 | pki |
| WAF-NGX-01 | Reverse proxy / pare-feu applicatif | Debian 12 (minimal, sans interface graphique) | 192.168.30.50 | waf |
| APP-SRV-01 | Serveur applicatif interne | Debian 12 (minimal, sans interface graphique) | 192.168.30.60 | app |
Si tu as déjà une VM PKI ou une VM applicative issues de ton précédent projet PKI, tu peux les réutiliser telles quelles et sauter leur création — va directement à la partie qui les concerne.
192.168.30.0/24) à ton réseau physique réel si besoin. Avec un switch externe, les VM et ton PC doivent être sur le même sous-réseau que ta box/routeur — si ton LAN est en 192.168.1.0/24 par exemple, utilise cette plage à la place, en gardant les mêmes derniers octets (.10, .50, .60).PARTIE 0 — Configurer Hyper-V pour que les VM parlent à ton PC
0.1 Créer le commutateur virtuel externe
Sur ton PC hôte :
- Ouvre Gestionnaire Hyper-V.
- Dans le panneau de droite, clique sur Gestionnaire de commutateurs virtuels.
- Sélectionne Externe, clique sur Créer un commutateur virtuel.
- Nomme-le par exemple
Switch-LAN-TSSR. - Dans Type de connexion, choisis ta carte réseau physique (Wi-Fi ou Ethernet, celle qui te donne Internet).
- Coche « Autoriser le système d'exploitation de gestion à partager cette carte réseau » — c'est cette case qui permet à ton PC hôte de continuer à communiquer avec les VM sur ce switch.
- Valide (OK).
📸 À capturer : la fenêtre du Gestionnaire de commutateurs virtuels avec le switch créé.
PARTIE 1 — Créer et installer chaque VM
Répète cette partie pour PKI-CA-01, WAF-NGX-01 et APP-SRV-01.
1.1 Télécharger l'ISO
Télécharge l'image d'installation nette de Debian 12 (« netinst ») : https://www.debian.org/distrib/netinst → choisis l'image amd64.
1.2 Créer la VM dans Hyper-V
- Gestionnaire Hyper-V → Nouveau → Ordinateur virtuel.
- Nom :
PKI-CA-01(puis répète avecWAF-NGX-01,APP-SRV-01). - Génération 2 (recommandé, plus rapide, supporte l'UEFI).
- Mémoire : 2048 Mo suffisent pour ces rôles (RAM dynamique activable).
- Réseau : sélectionne
Switch-LAN-TSSR(le switch externe créé en Partie 0) — c'est l'étape qui garantit que la VM sera joignable depuis ton PC. - Disque dur virtuel : 20 Go suffisent.
- Options d'installation : « Installer un système d'exploitation à partir d'un fichier image (.iso) » → sélectionne l'ISO Debian téléchargée.
- Termine l'assistant.
1.3 Désactiver le Secure Boot (Debian ne le supporte pas nativement en génération 2)
Avant de démarrer la VM :
- Clic droit sur la VM → Paramètres.
- Sécurité → décoche Activer le démarrage sécurisé (Secure Boot). (Ou, si tu veux le garder : change le modèle en « Microsoft UEFI Certificate Authority » — mais le plus simple pour un lab est de le décocher.)
- Applique, puis démarre la VM.
1.4 Installation de Debian 12
Démarre la VM (double-clic, puis Démarrer dans la fenêtre de connexion) et suis l'installateur :
- Langue : Français (ou English, comme tu préfères pour les logs)
- Nom de machine :
pki-ca-01(adapte selon la VM) - Utilisateur root : définis un mot de passe
- Partitionnement : « Assisté – utiliser un disque entier » (simple, suffisant pour un lab)
- Sélection de logiciels : décoche Environnement de bureau / GNOME, garde uniquement Utilitaires usuels du système et éventuellement Serveur SSH (coche-le, ça te permettra de t'y connecter depuis ton PC ensuite au lieu de rester dans la fenêtre Hyper-V)
- Installe GRUB sur le disque principal
- Redémarre à la fin de l'installation
📸 À capturer : l'écran de connexion Debian après le premier redémarrage.
1.5 Configurer une IP statique
Une fois connecté (root), identifie le nom de l'interface réseau :
Édite /etc/network/interfaces (adapte ens18/eth0 au nom réel vu ci-dessus, et l'IP selon la machine — .10 pour PKI-CA-01, .50 pour WAF-NGX-01, .60 pour APP-SRV-01) :
Vérifier depuis ton PC hôte (PowerShell) que la VM répond :
📸 À capturer : réponse au ping depuis PowerShell.
1.6 Se connecter en SSH depuis ton PC (plus confortable que la console Hyper-V)
Si tu as installé le serveur SSH à l'étape 1.4, depuis PowerShell sur ton PC :
Accepte l'empreinte de la clé au premier lancement.
Répète toute la Partie 1 pour WAF-NGX-01 (192.168.30.50) et APP-SRV-01 (192.168.30.60).
PARTIE 2 — Sur APP-SRV-01 (serveur applicatif)
Installe une application web simple pour avoir quelque chose à protéger (tu peux remplacer par ton GLPI existant si tu en as déjà un) :
Restreins l'accès HTTP pour n'accepter que le WAF :
Vérifier depuis ton PC que le port 80 n'est plus ouvert directement :
→ TcpTestSucceeded : False attendu (sauf accès direct autorisé pour debug).
📸 À capturer : ufw status sur la VM.
PARTIE 3 — Sur WAF-NGX-01 (le cœur de la procédure)
3.1 Système et Nginx
📸 À capturer.
3.2 Générer le CSR (à envoyer vers PKI-CA-01, Partie 4.3)
→ va faire signer ce fichier sur PKI-CA-01 (Partie 4) avant de continuer.
Une fois les fichiers reçus (waf.c2rt.local.crt et ca-chain.crt, envoyés depuis PKI-CA-01 en Partie 4.4) :
3.3 ModSecurity + connecteur Nginx
Sur Debian 12, ce paquet dépose automatiquement un fichier de chargement du module dans /etc/nginx/modules-enabled/, dossier déjà inclus par défaut dans /etc/nginx/nginx.conf (ligne include /etc/nginx/modules-enabled/*.conf;). Il ne faut donc pas ajouter le load_module à la main sans vérifier d'abord, sous peine d'obtenir une erreur de directive en double.
Vérifie d'abord si le module est déjà chargé :
- Si un fichier contenant
load_module modules/ngx_http_modsecurity_module.so;apparaît déjà dans le résultat → ne touche pas ànginx.conf, le module est déjà chargé. C'est le cas normal avec le paquetlibnginx-mod-http-modsecuritysur Debian 12. - Seulement si aucun fichier de ce type n'existe dans
modules-enabled/, ajoute alors manuellement en tête de/etc/nginx/nginx.conf:
"load_module" directive is duplicate) : le module est en réalité déjà chargé via modules-enabled/, donc ajouter la ligne une seconde fois dans nginx.conf fait échouer nginx -t. Si tu l'avais déjà ajoutée par erreur, retire la ligne de nginx.conf et relance le test.📸 À capturer.
3.4 Configuration ModSecurity + OWASP CRS
Sur Debian 12, le paquet libnginx-mod-http-modsecurity crée déjà un dossier /etc/nginx/modsec/ et dépose parfois directement des fichiers d'exemple à la racine de /etc/nginx/ (modsecurity.conf, modsecurity_includes.conf). Le chemin /etc/modsecurity/modsecurity.conf-recommended utilisé dans certains tutoriels basés sur une compilation depuis les sources n'existe pas avec ce paquet — vérifie d'abord ce qui est réellement présent :
- Si
/etc/nginx/modsecurity.confexiste déjà (cas le plus fréquent avec ce paquet) : utilise-le comme base plutôt que d'aller chercher un fichier-recommendedqui n'est pas fourni ici.
- Sinon, si tu as installé ModSecurity depuis les sources et que
/etc/modsecurity/modsecurity.conf-recommendedexiste bien chez toi, utilise plutôt :
Copie ensuite la table Unicode, si elle n'est pas déjà dans /etc/nginx/modsec/ :
- Si un résultat apparaît (par ex.
/usr/share/.../unicode.mapping), copie-le :
- Sinon, télécharge-le directement depuis le dépôt officiel :
Récupère ensuite l'OWASP Core Rule Set :
Crée le fichier /etc/nginx/modsec/main.conf (il n'existe pas encore, nano le crée) :
Colle-y exactement ces trois lignes, puis enregistre (Ctrl+O, Entrée, Ctrl+X) :
Ensuite, édite (ce fichier existe déjà, tu l'as copié en 3.4) /etc/nginx/modsec/modsecurity.conf :
Cherche la ligne qui commence par SecRuleEngine (déjà présente dans le fichier copié, en général réglée sur On) et remplace-la pour commencer en observation. Vérifie aussi que les lignes SecAuditEngine, SecAuditLog et SecAuditLogParts existent et ont bien ces valeurs — ajoute-les si elles manquent, ou corrige-les si elles diffèrent :
Enregistre (Ctrl+O, Entrée, Ctrl+X).
bash grep -n "SecRuleEngine\|SecAuditEngine\|SecAuditLog" /etc/nginx/modsec/modsecurity.conf ``3.5 Reverse proxy, TLS et filtrage
Dans le bloc http {} de /etc/nginx/nginx.conf :
/etc/nginx/ssl/waf-chain.crt existe et n'est pas vide (cat /etc/nginx/ssl/waf-chain.crt) — il doit avoir été créé en 3.2, ce qui suppose que la Partie 4 (signature du certificat par PKI-CA-01) est déjà terminée. Un fichier vide ou absent provoque une erreur cannot load certificate ... PEM_read_bio_X509_AUX() failed au démarrage de Nginx.📸 À capturer.
PARTIE 4 — Sur PKI-CA-01 (autorité de certification)
Cette partie met en place une PKI à deux étages : une Root CA (racine, hors ligne dans l'idéal, ici sur la même VM pour le lab) qui ne signe qu'un seul certificat — celui de l'Intermediate CA — laquelle signe ensuite les certificats "de production" comme celui du WAF. C'est la pratique standard (la clé Root reste la plus protégée possible).
4.1 Arborescence et fichiers de base
4.2 Fichier de configuration OpenSSL de la Root CA
Crée /root/pki/root/openssl.cnf :
4.3 Créer la clé et le certificat auto-signé de la Root CA
(choisis une passphrase forte — elle protège la clé la plus sensible de toute la PKI)
Vérifier :
📸 À capturer.
4.4 Fichier de configuration OpenSSL de l'Intermediate CA
Crée /root/pki/intermediate/openssl.cnf :
[ alt_names ] définit le(s) nom(s) DNS couvert(s) par les certificats serveur signés avec l'extension server_cert. Ajoute une ligne DNS.2 = ... si tu dois couvrir d'autres noms plus tard.4.5 Créer la clé, le CSR et le certificat de l'Intermediate CA (signé par la Root)
Signature du CSR de l'intermédiaire par la Root CA :
Vérifier la chaîne :
→ doit répondre OK. 📸 À capturer.
4.6 Construire le fichier de chaîne (chain)
(Si tu as déjà ta PKI du projet précédent sur une autre VM avec cette même arborescence, réutilise-la directement et saute à l'étape 4.7 — pas besoin de la refaire.)
4.7 Réceptionner et signer le CSR du WAF
Le CSR arrive depuis WAF-NGX-01 (généré en Partie 3.2). Depuis PKI-CA-01 :
Vérifier :
→ doit répondre OK.
📸 À capturer.
4.8 Renvoyer le certificat signé et la chaîne au WAF
PARTIE 5 — Tests depuis ton PC hôte Windows
5.1 Résoudre le nom (fichier hosts local)
Ajoute une entrée dans le fichier hosts Windows pour pointer waf.c2rt.local vers le WAF (PowerShell en administrateur) :
5.2 Installer curl si besoin
Windows 10/11 inclut curl nativement dans PowerShell. Vérifie :
5.3 Redirection et certificat
(Copie d'abord ca-chain.crt depuis PKI-CA-01 vers ton PC, par exemple avec scp depuis PowerShell : scp root@192.168.30.10:/root/pki/intermediate/chain/ca-chain.crt .)
Attendu : 301 puis 200 avec chaîne de certification validée. 📸 À capturer.
5.4 Requête légitime, en observation
En parallèle, sur WAF-NGX-01 :
→ aucune alerte ne doit apparaître.
5.5 Attaques simulées (toujours en DetectionOnly)
%20 : les versions récentes de curl.exe sous Windows (curl 8.x) appliquent un contrôle strict de l'URL (RFC 3986) et rejettent les espaces bruts avec l'erreur URL rejected: Malformed input to a URL function. L'encodage %20 est décodé normalement côté serveur et déclenche toujours la règle CRS attendue.→ ces deux requêtes doivent apparaître dans modsec_audit.log sur le WAF, avec un ID de règle CRS. 📸 À capturer.
5.6 Passage en blocage (sur WAF-NGX-01)
5.7 Re-test depuis ton PC, en blocage actif
Attendu : 403, 403, 200. 📸 À capturer.
5.8 Limitation de débit
Attendu : des 503/429 après quelques dizaines de requêtes. 📸 À capturer.
5.9 Vérifier qu'APP-SRV-01 reste injoignable en direct
→ TcpTestSucceeded : False attendu, preuve que le WAF est le seul point d'entrée.
Récapitulatif de l'ordre global
- Hyper-V — créer le switch externe (Partie 0)
- Hyper-V — créer et installer les 3 VM Debian 12, IP statiques (Partie 1)
- APP-SRV-01 — restreindre l'accès au WAF uniquement (Partie 2)
- WAF-NGX-01 — installer Nginx, générer le CSR (Partie 3.1–3.2)
- PKI-CA-01 — construire la PKI (Root + Intermediate) si pas déjà fait, puis signer le certificat du WAF et le renvoyer (Partie 4)
- WAF-NGX-01 — assembler la chaîne, installer ModSecurity/CRS, configurer TLS + reverse proxy + filtrage, mode
DetectionOnly(Partie 3.2–3.5) - PC hôte — tests de fonctionnement et d'attaque en observation (Partie 5.1–5.5)
- WAF-NGX-01 — bascule
SecRuleEngine On(Partie 5.6) - PC hôte — re-tests en blocage, rate-limiting, vérification qu'APP-SRV-01 est injoignable en direct (Partie 5.7–5.9)
Envoie-moi le message d'erreur exact (copié-collé) dès que quelque chose coince, surtout pour la partie réseau Hyper-V qui est souvent la plus délicate.
Principe
Exécute les étapes dans l'ordre, du réseau jusqu'aux tests d'attaque. Chaque étape a un résultat attendu. Dès qu'un résultat ne correspond pas, arrête-toi : c'est très probablement là qu'est le problème, inutile d'aller plus loin. Note l'étape et le message d'erreur exact pour qu'on puisse le corriger précisément.
A. Réseau de base (depuis le PC hôte, PowerShell)
✅ Attendu : réponse des 3 VM, 0% perte. ❌ Si une VM ne répond pas : vérifie qu'elle est démarrée, sa config IP (ip a en console Hyper-V), et qu'elle utilise bien Switch-LAN-TSSR.
✅ Attendu : connexion SSH réussie sur les 3.
B. APP-SRV-01
✅ Attendu : active (running), réponse HTTP/1.1 200 OK.
✅ Attendu :
Depuis le PC hôte :
✅ Attendu : TcpTestSucceeded : False (seul le WAF doit pouvoir joindre le port 80).
C. PKI-CA-01
✅ Attendu : les deux openssl x509 affichent un certificat lisible (Subject, Issuer, Validity), et le verify répond OK.
✅ Attendu : head -n 1 affiche exactement -----BEGIN CERTIFICATE-----, openssl x509 affiche bien le certificat du WAF (CN=waf.c2rt.local), et verify répond OK. ❌ Si head -n 1 n'affiche pas -----BEGIN CERTIFICATE----- : le certificat source est corrompu, il faut le régénérer (openssl ca ..., voir Partie 4.7 de la procédure principale) avant de le renvoyer au WAF.
D. WAF-NGX-01 — fichiers de certificat
✅ Attendu :
waf.c2rt.local.key→-----BEGIN PRIVATE KEY-----(ouRSA PRIVATE KEY)waf.c2rt.local.crt→-----BEGIN CERTIFICATE-----ca-chain.crt→-----BEGIN CERTIFICATE-----waf-chain.crt→-----BEGIN CERTIFICATE-----
❌ Si un de ces fichiers n'affiche pas la bonne ligne d'en-tête : il faut le retransférer depuis PKI-CA-01 (scp) et/ou reconstruire waf-chain.crt :
✅ Attendu : verify répond OK, et les deux md5 (certificat et clé privée) sont identiques — sinon la clé et le certificat ne correspondent pas (mauvaise paire).
E. WAF-NGX-01 — configuration Nginx / ModSecurity
✅ Attendu : un fichier présent référençant ngx_http_modsecurity_module.so.
✅ Attendu : main.conf contient les 3 Include, crs/ existe avec crs-setup.conf et rules/, et SecRuleEngine est réglé sur DetectionOnly (phase de test) ou On (phase de blocage, selon où tu en es).
✅ Attendu : waf-app.conf est bien lié dans sites-enabled/, et nginx -t répond :
❌ C'est l'étape critique. Si nginx -t échoue, note le message exact — Nginx ne redémarrera pas et rien ne répondra sur le WAF tant que ce n'est pas corrigé.
✅ Attendu : active (running), et les ports 80 et 443 en écoute (LISTEN).
F. Depuis le PC hôte — résolution et accès
✅ Attendu : une ligne 192.168.30.50 waf.c2rt.local.
✅ Attendu : répond depuis 192.168.30.50. Si ping échoue mais que ping 192.168.30.50 fonctionnait en étape A, le souci est uniquement la résolution de nom (fichier hosts mal écrit — vérifie l'absence de faute de frappe et l'encodage du fichier).
✅ Attendu : TcpTestSucceeded : True pour les deux. Si c'est False alors que Nginx est active (running) côté WAF (étape E), vérifie qu'il n'y a pas de pare-feu Windows ou de routage bloquant entre le PC et la VM, et confirme que le PC est bien sur le même switch externe / sous-réseau que les VM.
✅ Attendu : 301 Moved Permanently vers https://....
✅ Attendu : 200 OK, avec la chaîne de certificats validée (pas d'erreur SSL certificate problem). ❌ Si tu obtiens une erreur TLS/certificat ici alors que l'étape D était bonne côté WAF : vérifie que tu as bien recopié le ca-chain.crt à jour depuis PKI-CA-01 vers ton PC (scp root@192.168.30.10:/root/pki/intermediate/chain/ca-chain.crt .), au même moment que la dernière régénération côté WAF.
G. Test fonctionnel complet
En parallèle, sur WAF-NGX-01 :
✅ Attendu : 200 OK côté PC, rien d'alarmant dans le log.
✅ Attendu : une entrée apparaît dans modsec_audit.log avec un ID de règle CRS (mode DetectionOnly) ou un 403 direct (mode On).
✅ Attendu : TcpTestSucceeded : False — confirme que seul le WAF est exposé.
Résumé express (si tu es pressé)
Si les deux sont bons, le problème d'accès est résolu. Si nginx -t échoue, c'est toujours la cause n°1 d'un waf.c2rt.local injoignable.
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.
Les outils getfacl et setfacl sont généralement inclus dans le paquet acl. Installez-le si nécessaire :
Vérifiez que les commandes sont bien disponibles :
Créez un répertoire de travail appelé TestPermissions dans lequel nous allons appliquer les ACL :
Créez ensuite deux utilisateurs : utilisateur1 (le propriétaire) et utilisateur2 (à qui on accordera des droits via ACL) :
Attribuez utilisateur1 comme propriétaire du répertoire :
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.Avant d'ajouter des entrées ACL, consultez l'état actuel des permissions du répertoire :
La sortie devrait ressembler à ceci :
On constate qu'il n'y a que les 3 entrées classiques. utilisateur2 n'apparaît pas encore.
Utilisez setfacl pour accorder à utilisateur2 les droits de lecture et d'écriture sur le répertoire :
Détail des options utilisées :
-m— modify : ajoute ou modifie une entrée ACL existanteu:utilisateur2— cible l'utilisateur nomméutilisateur2:rw— accorde les droits de lecture (r) et d'écriture (w)
-R : sudo setfacl -R -m u:utilisateur2:rw /TestPermissionsRelancez getfacl pour confirmer que l'entrée ACL a bien été ajoutée :
La sortie devrait maintenant afficher une ligne supplémentaire pour utilisateur2 :
Deux nouvelles lignes sont apparues :
user:utilisateur2:rw-— l'entrée ACL que vous venez d'ajoutermask::rw-— le masque effectif, qui représente le maximum de droits que peuvent avoir les entrées ACL (hors propriétaire)
+ après les permissions dans un ls -l (ex : drwx------+) indique qu'une ACL est active sur ce fichier ou répertoire.Voici les commandes les plus courantes pour gérer les ACL au quotidien :
Ajouter des droits à un groupe
Supprimer l'entrée ACL d'un utilisateur
Supprimer toutes les ACL d'un fichier/dossier
Définir des ACL par défaut (héritées par les nouveaux fichiers)
Copier les ACL d'un fichier vers un autre
-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.| Commande | Description |
|---|---|
| setfacl -m u:user:rwx | Ajouter/modifier droits pour un utilisateur |
| setfacl -m g:group:rx | Ajouter/modifier droits pour un groupe |
| setfacl -x u:user | Supprimer l'entrée ACL d'un utilisateur |
| setfacl -b | Supprimer toutes les ACL |
| setfacl -R -m | Appliquer récursivement |
| setfacl -d -m | Définir des ACL par défaut (héritage) |
| getfacl fichier | Afficher toutes les ACL d'un fichier/dossier |
Les droits ACL utilisent la même notation que chmod :
r— lecturew— écriturex— exécution-— droit non accordé
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 service ssh status.Une fois SSH installé, ouvrez le fichier de configuration du démon SSH pour y apporter les modifications nécessaires :
Faites défiler jusqu'à la fin du fichier et ajoutez ces 5 lignes :
sftp seront automatiquement redirigés vers le sous-système SFTP interne, avec leur accès restreint au répertoire /home.Redémarrez le service SSH pour que les modifications prennent effet :
Créez un groupe dédié appelé sftp. Tous les utilisateurs SFTP devront appartenir à ce groupe :
Créez un nouvel utilisateur et ajoutez-le directement au groupe sftp. Dans cet exemple, l'utilisateur s'appellera sftpuser :
Définissez ensuite un mot de passe pour cet utilisateur :
Saisissez le mot de passe lorsque demandé, puis confirmez-le. Le système affichera passwd: password updated successfully en cas de succès.
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 :
700 signifie : lecture + écriture + exécution pour le propriétaire uniquement — les autres utilisateurs n'ont aucun droit sur ce dossier.Avant toute installation, assurez-vous que le système est à jour :
Installez ensuite VSFTPD :
Une fois l'installation terminée, VSFTPD sera opérationnel sur votre système Ubuntu.
Vérifiez que VSFTPD est bien en cours d'exécution :
Activez le démarrage automatique au boot :
La configuration de VSFTPD se fait via le fichier /etc/vsftpd.conf. Ouvrez-le avec votre éditeur de texte :
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 :
Ajoutez ensuite ces lignes à la fin du fichier pour le mode passif et la gestion de la liste d'utilisateurs :
Redémarrez VSFTPD pour appliquer les changements :
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.
/home/utilisateur/ftp) n'appartienne pas à l'utilisateur, mais que le sous-dossier fichiers lui appartienne — c'est là qu'il pourra écrire.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 votre serveur utilise le pare-feu ufw, autorisez les ports nécessaires pour le FTP et le mode passif :
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é :
Ajoutez ensuite les lignes suivantes à /etc/vsftpd.conf :
Dans l’interface d’administration PfSense, aller dans :
Rechercher squid et cliquer sur + Install à droite de la ligne squid.

À la fin de l’installation, le message “pfSense-pkg-squid installation successfully completed” doit s’afficher.

La configuration de Squid s’effectue via le menu :
Cliquer sur l’onglet Local Cache.

- Hard Disk Cache Size : par défaut 100 Mo. Augmenter à 1024 Mo pour 1 Go de cache.
- Hard Disk Cache Location : emplacement par défaut
/var/squid/cache.
Cliquer sur l’onglet General. Voici les options essentielles à configurer :

- Enable Squid Proxy : cocher pour activer Squid sur le pare-feu.
- Listen IP Version : [facultatif] IPv4, IPv6 ou les deux.
- Proxy Interface(s) : sélectionner LAN uniquement — ne jamais sélectionner WAN.
- Proxy Port : laisser à
3128(ne sera pas déclaré sur les clients en mode transparent). - Allow Users on Interface : cocher pour autoriser implicitement les utilisateurs du réseau LAN.
Descendre dans la page et cocher Transparent HTTP Proxy. Dans le champ Transparent Proxy Interface(s), sélectionner LAN.

Laisser Enable SSL filtering décochée pour l’instant — elle sera activée à l’étape SSL Inspection.
Continuer de descendre et activer les journaux :

- Enable Access Logging : cocher pour savoir qui fait quoi sur Internet.
- Rotate Logs : durée de conservation des logs. En milieu scolaire : 365 jours.
Dans la section Headers Handling, Language and Other Customizations :
- Visible Hostname : nom d’hôte affiché sur les pages de blocage.
- Administrator’s Email : e-mail affiché sur les pages d’erreur.
- Error Language : sélectionner
frpour les messages en français. - Suppress Squid Version : cocher pour masquer la version de Squid pour des raisons de sécurité.
Cliquer sur l’onglet ACLs dans la configuration de Squid.

- Allowed Subnets : sous-réseaux autorisés (implicite si “Allow Users on Interface” est coché).
- Unrestricted IPs : adresses IP qui contournent toutes les restrictions.
- Blacklist : domaines à bloquer — un par ligne, expressions régulières supportées.
Ajouter un domaine de test dans la Blacklist (ex : horizons21.fr) :

Sauvegarder, puis depuis un poste client tenter d’accéder au site bloqué. La page “Accès interdit” renvoyée par Squid doit s’afficher.
🔒 Configuration HTTPS — SSL Inspection
Aller dans :
Renseigner les champs et valider. Une CA est créée (ex : CA-ITCONNECT).

Retourner dans Services > Squid Proxy Server > General.
- Cocher Resolve DNS IPv4 First pour activer la résolution DNS en amont du filtrage HTTPS.
- Cocher Enable SSL filtering.
- SSL/MITM Mode : choisir Splice All — le mode le moins contraignant, ne nécessite pas de déployer le certificat sur chaque poste client.
- CA : sélectionner l’autorité de certification créée à l’étape précédente.

Sauvegarder via le bouton en bas de page.
Après activation du SSL Inspection, les postes clients qui tentent de naviguer en HTTPS obtiennent très probablement cette erreur :

Deux approches pour corriger la résolution DNS :
- Option A : Définir l’adresse IP du proxy (PfSense) comme DNS sur les postes de travail, manuellement ou via DHCP.
Attention si Active Directory : créer une règle dans le résolveur DNS PfSense pour renvoyer les requêtes du domaine AD vers le DC. - Option B : Définir l’adresse IP du contrôleur de domaine comme DNS sur les postes, et configurer PfSense comme redirecteur DNS sur le serveur AD — ainsi les requêtes Internet inconnues du DNS interne sont transmises à PfSense.

Aller dans :
Rechercher squid — le paquet squidGuard apparaît dans la liste. Cliquer sur + Install.

Une fois installé, accéder à la configuration via :
Dans l’onglet General Settings, activer les journaux :

- Enable GUI Log : cocher pour journaliser les accès dans l’interface.
- Enable log : cocher pour journaliser le filtrage des catégories et Target Categories.
Dans la section Blacklist, cocher “Check this option to enable blacklist” puis renseigner la Blacklist URL avec la liste noire de l’Université Toulouse Capitole :

Cliquer sur Save.
Aller dans l’onglet Blacklist de SquidGuard et cliquer sur le bouton Download.

Le journal affiche le progrès : Download complete → Unpack archive → Scan blacklist categories → Found 63 items → Start rebuild DB → Completed.
Cliquer sur l’onglet Common ACL. La Target Rules List affiche toutes les catégories de la blacklist Toulouse.

- Pour chaque catégorie à bloquer, passer le champ access sur deny. Exemple :
[blk_blacklists_vpn]→ deny. - Laisser Default access [all] sur allow pour autoriser tout ce qui n’est pas explicitement bloqué.
- Cocher Do not allow IP-Addresses in URL pour empêcher de contourner le filtre en tapant une IP directement.
- Cocher Use SafeSearch Engine pour activer le mode sécurisé sur Google, Bing, DuckDuckGo, Qwant, etc.
- Cocher Log en bas pour activer la journalisation de cette règle.

Cliquer sur Save.
Retourner dans General Settings, cocher “Check this option to enable SquidGuard” puis cliquer sur Apply.

Le statut doit passer à STARTED. Depuis un poste client, tenter d’accéder à un site de la catégorie bloquée (ex : nordvpn.com pour la catégorie VPN) — la connexion doit être bloquée.
server_name dans la config du site correspond au NAME du backend HAProxy). Dans la procédure ci-dessous, on utilise la méthode des ports d'écoute. Il est recommandé de combiner la correspondance via port ET Host/Server_name.1. Installation du paquet HAProxy
Dans l'interface d'administration pfSense, aller dans :
Rechercher haproxy et cliquer sur + Install à droite de la ligne haproxy.

Une fois installé, aller dans :
Dans l'onglet Settings, renseigner le champ Maximum connections à 1000.

Descendre dans la page jusqu'à la section Stats tab, 'internal' stats port. Ajouter le port 2200 dans le champ Internal stats port.

Un peu plus bas dans la page, dans la section Tuning, indiquer la taille 2048 pour l'option Max SSL Diffie-Hellman size (afin d'éviter un avertissement dans les logs HAProxy).

2. Déclarer le Backend (serveur web)
Aller dans l'onglet Backend et cliquer sur Add pour créer un nouveau backend.

Remplir les champs suivants dans la Server List :
| Champ | Valeur | Explication |
|---|---|---|
| Mode | Active | Serveur actif dans le pool |
| Name | srv-web | Nom de l'hôte serveur web pour s'y retrouver (ex: "debian-11") |
| Forwardto | Address+Port | On va interroger ce serveur via son adresse IP directement |
| Address | 192.168.30.1 | Adresse IP du serveur web (adapter à votre configuration) |
| Port | 80 | Port sur lequel est en ligne le site sur le serveur web |

Plus bas dans la page, dans la section Health checking, passer l'option Http check method sur GET.

3. Déclarer le Frontend (point d'entrée)
Aller dans l'onglet Frontend et cliquer sur Add.

Dans la section Edit HAProxy Frontend, pour le HTTP sur le port 80, on peut laisser la configuration par défaut. Vérifier que :

Descendre jusqu'à la section Default Backend, access control lists and actions.
- Name : nom de l'ACL — par exemple
AccessSite1 - Expression : choisir Host matches:, car on cherche à repérer la présence du nom de domaine dans l'en-tête HTTP Host
- Value : préciser le nom de domaine du site — par exemple
c2rt.test
- Action : sélectionner Use backend et choisir le backend créé précédemment
- Condition acl names : spécifier
AccessSite1(le nom de l'ACL que l'on vient de créer)

- Name : nom de l’ACL — par exemple
AccesSite. - Expression : choisir Host matches:, car on cherche à repérer la présence du nom de domaine dans l’URL / la requête.
- Value : préciser le nom de domaine du site — par exemple
c2rt.test.
- Action : sélectionner Use backend et choisir le backend créé précédemment — cela permet d’utiliser ce Backend lorsque la requête correspond à l’ACL.
- Condition acl names : spécifier
AccesSite— c’est le nom de l’ACL que l’on vient de créer.
AccessSite1 pour c2rt.test ET www.c2rt.test (deux lignes séparées avec le même nom d'ACL).Descendre dans la page jusqu'à la section Advanced settings. Cocher l'option "Use 'forwardfor' option" pour ajouter le champ X-Forwarded-For à l'en-tête HTTP.

SAVE → Retourner dans Settings pour activer HAProxy en cochant Enable HAProxy.
4. Configurer le fichier HOSTS et tester
Sur l'hôte client, ouvrir le Bloc Note en Administrateur et éditer le fichier HOSTS :
Ajouter la ligne suivante en bas du fichier, avec l'IP de pfSense suivie du nom de domaine :

http://c2rt.test — le site doit s'afficher via HAProxy.5. Ajouter un second site web
Pour rajouter un second site, il faut d'abord le créer sur le serveur web et le faire écouter sur un port différent du port 80. Exemple avec le port 8080 dans le fichier de configuration Nginx :

Retourner dans HAProxy → Backend → Add. Créer un second backend en indiquant cette fois le port 8080 (ou le port dédié au site 2 sur le serveur web).

Aller dans Frontend → éditer le frontend existant. Dans la section Access Control Lists and Actions, ajouter une nouvelle ACL pour le second site :
| Champ | Site 1 | Site 2 |
|---|---|---|
| Name | AccessSite1 | AccessSite2 |
| Expression | Host matches: | Host matches: |
| Value | c2rt.test | c2rt.coucou |
Dans la section Actions, ajouter une nouvelle ligne :
| Action | Parameters | Condition acl names |
|---|---|---|
| Use Backend | backend: Monsite1 | AccessSite1 |
| Use Backend | backend: Monsite2 | AccessSite2 |

Pour finir, rouvrir le fichier HOSTS en administrateur et ajouter le nom de domaine du second site :

Résultat final : les deux sites sont accessibles depuis le même HAProxy sur pfSense, chacun répondant à son nom de domaine :

192.168.67.0/24) et peut accéder au réseau local de l’entreprise (10.0.100.0/24).1. Architecture cible du VPN Client-to-Site : (une carte externe pour l'acces et une privé pour le lan)

2. Aller dans VPN > OpenVPN :

3. Cliquer sur l’onglet Wizards. Dans Type of Server, choisir Local User Access puis Next :

1. Add New CA — remplir les champs (Descriptive name, Country, State, City, Organization). La longueur de clé et la durée de vie peuvent rester par défaut :

2. Add New Certificate — créer le certificat pour le serveur VPN lui-même (Descriptive name ex : VPNserv-CERTIF, mêmes infos). Cliquer Create new Certificate :

Server Setup — informations générales :

- Description : nom du VPN (ex :
VPN_Test). - Protocol :
UDP on IPv4 only— TCP est beaucoup plus lent. - Interface :
WAN. - Local Port :
1194(port par défaut OpenVPN).
Cryptographic Settings :

- DH Parameters Length :
4096 bit(2048 est acceptable en production). - Data Encryption Algorithm :
AES-256-GCM. - Auth Digest Algorithm :
SHA512.
Tunnel Settings :

- IPv4 Tunnel Network :
192.168.67.0/24— réseau privé attribué aux clients VPN. - IPv4 Local Network :
10.0.100.0/24— réseau local accessible via le tunnel.
Dans Client Settings, ne rien modifier (DNS, NTP, WINS optionnels). Cliquer Next.
Firewall Rule Configuration — cocher les deux cases pour créer automatiquement les règles :

Le serveur est prêt, les règles WAN et OpenVPN sont créées automatiquement :

1. Aller dans System > User Manager :

2. Cliquer + Add dans la liste des utilisateurs :

3. Remplir les informations et cocher Certificate :

4. Renseigner le certificat utilisateur et cliquer Save :

1. Aller dans System > Package Manager :

2. Dans Available Packages, rechercher openvpn et installer openvpn-client-export :

3. Retourner dans VPN > OpenVPN — l’onglet Client Export est maintenant disponible :

4. Dans OpenVPN Clients, télécharger l’installeur Windows pour l’utilisateur jean :

5. Exécuter l’installeur sur la machine cliente :

1. Lancer le client OpenVPN et entrer les identifiants de l’utilisateur :

2. Vérifier avec ipconfig — une carte TAP-Windows doit apparaître avec une IP dans le tunnel (192.168.67.x) :

3. Pinguer le réseau local et accéder à une ressource web interne :

| Machine | WAN | LAN | Rôle |
|---|---|---|---|
| pfSense 1 | 192.168.12.136/24 | 192.168.2.1/24 | Site A — Initiateur |
| pfSense 2 | 192.168.12.202/24 | 192.168.3.1/24 | Site B — Répondeur |
| PC-CLIENT-01 | — | 192.168.2.10/24 | Client Site A |
| PC-CLIENT-02 | — | 192.168.3.10/24 | Client Site B |
- Réseau LAN :
192.168.2.0/24 - pfSense WAN :
192.168.12.136 - PC-CLIENT-01 :
192.168.2.10 - Commutateur Site A
- Réseau LAN :
192.168.3.0/24 - pfSense WAN :
192.168.12.202 - PC-CLIENT-02 :
192.168.3.10 - Commutateur Site B
1. Aller dans VPN > IPsec.

2. Cliquer sur + Add P1.

3. Remplir les informations générales :

- Description : saisir un nom mémo (ex :
VPN01). - Key Exchange version :
IKEv2. - Internet Protocol :
IPv4. - Interface :
WAN. - Remote Gateway : IP WAN du pfSense distant —
192.168.12.202(WAN de pfSense 2).
4. Dans la section Phase 1 Proposal (Authentication), générer la clé PSK :

- Authentication Method :
Mutual PSK. - Pre-Shared Key : cliquer Generate new Pre-Shared Key. Conserver cette clé — identique des deux côtés.
- Phase 1 Encryption : laisser par défaut (
AES 256 bits,SHA256,DH 14).
5. Cliquer Save puis Apply Changes.

Cliquer sur Show Phase 2 Entries puis + Add P2. Renseigner les réseaux :

- Description : ex :
LAN01. - Mode :
Tunnel IPv4. - Local Network :
192.168.2.0/24(LAN Site A). - Remote Network :
192.168.3.0/24(LAN Site B).
Cliquer Save puis Apply Changes.
Répéter la même procédure sur pfSense 2 en inversant les adresses :

- Remote Gateway :
192.168.12.136(WAN de pfSense 1). - Pre-Shared Key : coller la même clé que celle générée sur pfSense 1.
- Phase 2 — Local Network :
192.168.3.0/24— Remote Network :192.168.2.0/24.
Sur chacun des deux pfSense, aller dans Firewall > Rules > IPsec et ajouter une règle.

- Action :
Pass. - Interface :
IPsec. - Protocol :
ICMPpour tester (ouAnypour tout autoriser selon vos besoins).
Aller dans Status > IPsec sur chaque pfSense et cliquer sur Connect P1 and P2s.

Le statut doit passer à Established sur les deux pfSense :

- pfSense 1 : rôle Initiator — statut Established.
- pfSense 2 : rôle Responder — statut Established.
Depuis PC-CLIENT-01 (192.168.2.10), pinguer PC-CLIENT-02 (192.168.3.10) et inversement.

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ère | Mode Actif | Mode Passif (PASV) |
|---|---|---|
| Qui initie la connexion data ? | Le serveur contacte le client | Le client contacte le serveur |
| Port de données côté serveur | Port 20 | Port aléatoire défini par le serveur |
| Problèmes avec les pare-feux | Souvent bloqué (le serveur initie) | Plus compatible (le client initie) |
| Usage recommandé | Réseaux internes sans NAT | Internet, derrière un routeur NAT |
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ètre | Valeur | Description |
|---|---|---|
| anonymous_enable | YES/NO | Autorise ou interdit les connexions sans mot de passe |
| local_enable | YES/NO | Autorise les comptes locaux Linux à se connecter |
| write_enable | YES/NO | Autorise l'écriture de fichiers sur le serveur |
| chroot_local_user | YES/NO | Emprisonne l'utilisateur dans son répertoire personnel (jail) |
| userlist_enable | YES/NO | Active l'utilisation d'une liste blanche/noire d'utilisateurs |
| userlist_deny | YES/NO | NO = liste blanche (seuls les listés ont accès) |
| pasv_min_port | Nombre | Port minimal pour le mode passif |
| pasv_max_port | Nombre | Port maximal pour le mode passif |
| ssl_enable | YES/NO | Active le chiffrement FTPS (SSL/TLS) |
5. FTP vs FTPS vs SFTP
Il est important de ne pas confondre ces trois protocoles :
| Protocole | Port | Chiffrement | Description |
|---|---|---|---|
| FTP | 21 / 20 | ❌ Non | Protocole classique — données en clair sur le réseau |
| FTPS | 990 / 989 | ✅ Oui (SSL/TLS) | FTP avec couche SSL/TLS — ce que configure VSFTPD |
| SFTP | 22 | ✅ Oui (SSH) | Protocole différent — transfert via tunnel SSH, sans lien avec FTP |
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.
1. Le groupe de sécurité Active Directory
Dans la console Active Directory Utilisateurs et Ordinateurs, créer un nouveau groupe de sécurité nommé GRP-Redirection.
Ajoutez ensuite les membres souhaités dans ce groupe.
2. Le partage SMB et attribution des droits
Dans la console Gestionnaire de serveur, accédez à Services de fichiers et de stockage et créez un nouveau partage :
Options à activer :
| Option | Effet |
|---|---|
| Activer l'énumération basée sur l'accès | L'utilisateur ne voit que son propre dossier lors de la navigation |
| Autoriser la mise en cache du partage | Active la synchronisation des fichiers hors connexion |
| Principal | Accès | S'applique à |
|---|---|---|
| Système | Contrôle total | Ce dossier, sous-dossiers et fichiers |
| Administrateur | Contrôle total | Ce dossier, sous-dossiers et fichiers |
| GRP-Redirection | Lecture & Exécution, Création de dossiers | Ce dossier seulement |
| CRÉATEUR PROPRIÉTAIRE | Contrôle total | Sous-dossiers et fichiers seulement |
3. La GPO de redirection de dossiers
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).
Dans la GPO, naviguez vers :
Clic droit sur Documents → Propriétés :
| Paramètre | Valeur recommandée |
|---|---|
| Paramètre | De base — Rediriger le dossier de tout le monde vers le même emplacement |
| Option | Créer un dossier pour chaque utilisateur sous le chemin d'accès racine |
| Chemin d'accès à la racine | \\SRV-DC-01\Profiles$ |
4. Tester la redirection
Sur le poste client, ouvrir une invite de commandes ou PowerShell en tant qu'administrateur :
Reconnectez-vous avec l'utilisateur concerné et vérifiez :