- Aperçu
- Conventions de variables
- Étape 1 : Comprendre les profils et le plan d’application
- Étape 2 : Définir les stratégies de base (comportement par défaut)
- Étape 3 : Opérer et gérer les règles du pare-feu
- Étape 4 : Journalisation et audit
- Étape 5 : Gestion centralisée via GPO
- Étape 6 : Vérifications périodiques et dépannage
- Conclusion
Aperçu
Cet article explique comment configurer Windows Defender Firewall (anciennement Windows Firewall) sur Windows Server. Il couvre la conception des profils (Domaine, Privé, Public), l’optimisation des stratégies d’entrée/sortie, la collecte et l’analyse des journaux, ainsi que l’administration centralisée via GPO et scripts pour une exploitation pratique.
Conventions de variables
| Variable | Exemple | Description |
|---|---|---|
<<SERVER_NAME>> |
SRV-CORE01 |
Nom de l’hôte cible |
<<LOG_PATH>> |
C:\FirewallLogs\pfirewall.log |
Chemin du journal du pare-feu |
<<OU_NAME>> |
Servers |
Nom de l’OU |
Étape 1 : Comprendre les profils et le plan d’application
Windows Defender Firewall comporte trois profils :
| Profil | Usage | Environnement typique |
|---|---|---|
| Domaine | Réseaux rejoints à Active Directory | LAN d’entreprise, VPN |
| Privé | Réseau de confiance isolé | Tests, réseaux fermés |
| Public | Réseau non fiable | Wi-Fi public, lab/VM |
Chaque profil est configurable indépendamment et bascule automatiquement selon l’identifiant réseau.
Commande de vérification :
# État et stratégies par défaut de chaque profil
Get-NetFirewallProfile | Select-Object Name, Enabled, DefaultInboundAction, DefaultOutboundAction
Étape 2 : Définir les stratégies de base (comportement par défaut)
Par défaut, Windows Defender Firewall bloque l’entrée et autorise la sortie.
Conservez ce comportement ou introduisez un contrôle explicite de la sortie selon le besoin.
# Définir explicitement la stratégie par défaut
Set-NetFirewallProfile -Profile Domain,Private,Public `
-DefaultInboundAction Block `
-DefaultOutboundAction Allow `
-NotifyOnListen True
Note : En environnements sensibles, utilisez
-DefaultOutboundAction Blocket autorisez uniquement les flux sortants nécessaires (p. ex. DNS, NTP, WSUS) — approche « liste blanche ».
Étape 3 : Opérer et gérer les règles du pare-feu
Lister et filtrer
# Toutes les règles
Get-NetFirewallRule
# Rechercher les règles contenant "RDP"
Get-NetFirewallRule | Where-Object DisplayName -Like "*RDP*"
# Uniquement les règles actives
Get-NetFirewallRule | Where-Object Enabled -eq "True"
Créer de nouvelles règles
# Autoriser l’entrée RDP (TCP/3389) pour le profil Domaine
New-NetFirewallRule -DisplayName "Allow RDP (Domain)" `
-Direction Inbound -Protocol TCP -LocalPort 3389 `
-Action Allow -Profile Domain
# Autoriser la sortie NTP (UDP/123)
New-NetFirewallRule -DisplayName "Allow NTP Outbound" `
-Direction Outbound -Protocol UDP -LocalPort 123 `
-Action Allow -Profile Domain,Private,Public
Paramètres : exemples et formats
| Élément | Paramètre | Exemple | Valeurs/format acceptés |
|---|---|---|---|
| Direction | -Direction |
Inbound / Outbound |
Inbound, Outbound |
| Action | -Action |
Allow / Block |
Allow, Block |
| Protocole | -Protocol |
TCP / UDP / ICMPv4 / ICMPv6 / Any |
Comme indiqué ; ICMP détaillable via -IcmpType |
| Port local | -LocalPort |
80 / 1024-2048 / 80,443,8080 |
Port unique, plage, liste CSV |
| Port distant | -RemotePort |
53 / 1000-2000 / 53,67,68 |
Port unique, plage, liste CSV |
| Adresse distante | -RemoteAddress |
192.168.1.1 / 192.168.0.0/24 / Any |
IP, CIDR, plage, liste, Any |
| Adresse locale | -LocalAddress |
10.0.0.1 / 10.0.0.0/16 / Any |
IP, CIDR, plage, liste, mots-clés spéciaux, Any |
| Programme | -Program |
C:\Program Files\App\App.exe |
Chemin complet de l’exécutable |
| Service | -Service |
W32Time |
Nom du service Windows |
| Profil | -Profile |
Domain,Private |
Combinaison de Domain, Private, Public |
| Type d’interface | -InterfaceType |
Ethernet / Wireless / RemoteAccess |
Types supportés |
Ex. : autoriser HTTP depuis une IP de confiance
New-NetFirewallRule -DisplayName "Allow HTTP from Trusted IP" `
-Direction Inbound -Protocol TCP -LocalPort 80 `
-RemoteAddress 192.168.1.100 `
-Action Allow -Profile Domain,Private
Ex. : règle sortante basée sur un programme
New-NetFirewallRule -DisplayName "Allow Outbound for App.exe" `
-Direction Outbound -Program "C:\Program Files\App\App.exe" `
-Action Allow -Profile Domain,Private,Public
Ex. : règle entrante basée sur un service
New-NetFirewallRule -DisplayName "Allow Service XYZ Inbound" `
-Direction Inbound -Service "W32Time" `
-Action Allow -Profile Domain,Private
Ex. : bloquer la sortie via interface Wi-Fi
New-NetFirewallRule -DisplayName "Block Outbound on Wireless" `
-Direction Outbound -InterfaceType Wireless `
-Action Block -Profile Public
Modifier, (dés)activer et supprimer des règles
# Désactiver
Disable-NetFirewallRule -DisplayName "Allow RDP (Domain)"
# Activer
Enable-NetFirewallRule -DisplayName "Allow RDP (Domain)"
# Modifier (ex. : limiter à Domain et Private)
Set-NetFirewallRule -DisplayName "Allow RDP (Domain)" -Profile Domain,Private
# Supprimer
Remove-NetFirewallRule -DisplayName "Allow RDP (Domain)"
Exporter/Importer l’ensemble de règles
# Export de la stratégie du pare-feu
netsh advfirewall export "C:\Backup\FirewallPolicy.wfw"
# Import de la stratégie du pare-feu
netsh advfirewall import "C:\Backup\FirewallPolicy.wfw"
Étape 4 : Journalisation et audit
Consignez les autorisations/refus et surveillez les anomalies.
# Journaliser Allow et Block, taille max. 32 Mo
Set-NetFirewallProfile -Profile Domain,Private,Public `
-LogAllowed True -LogBlocked True `
-LogFileName "<<LOG_PATH>>" -LogMaxSizeKilobytes 32767
Lecture en temps réel :
Get-Content "<<LOG_PATH>>" -Tail 20 -Wait
Attention :
LogAllowed=Trueaccroît le volume de journaux. En production, limitez-le aux profils critiques (p. ex. Public) et mettez en place rotation/archivage.
La limite de-LogMaxSizeKilobytesest 32767 KB ; au-delà, erreur.
Étape 5 : Gestion centralisée via GPO
Les paramètres du pare-feu peuvent être modifiés et automatisés par GPO via les cmdlets du module GroupPolicy.
Cmdlets clés : Set-GPRegistryValue, Get-GPO, New-GPO, New-GPLink, Set-GPInheritance.
Créer un GPO et appliquer la journalisation du profil Domaine
-
Créer ou récupérer le GPO
$gpo = New-GPO -Name "Firewall-Policy-Domain"Pour éditer un GPO existant :
Get-GPO -Name "<NOM_DU_GPO>". -
Appliquer les valeurs via les clés Registre du GPO
# Activer la journalisation pour le profil Domaine Set-GPRegistryValue -Name $gpo.DisplayName ` -Key "HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\DomainProfile" ` -ValueName "EnableLogging" -Type DWord -Value 1 # Chemin et taille du journal Set-GPRegistryValue -Name $gpo.DisplayName ` -Key "HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\DomainProfile\Logging" ` -ValueName "LogFilePath" -Type String -Value "%systemroot%\system32\logfiles\firewall\pfirewall.log" Set-GPRegistryValue -Name $gpo.DisplayName ` -Key "HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\DomainProfile\Logging" ` -ValueName "LogFileSize" -Type DWord -Value 32767
Ces paramètres prennent effet lorsque le GPO est lié à une OU via
New-GPLink.
Lier à l’OU (New-GPLink)
Fournissez le DN de l’OU (ou du domaine) à -Target.
Import-Module ActiveDirectory
$gpo = Get-GPO -Name "Firewall-Policy-Domain"
# Rechercher l’OU par nom et récupérer son DN
$ou = Get-ADOrganizationalUnit -LDAPFilter '(name=<<OU_NAME>>)' `
-SearchBase (Get-ADDomain).DistinguishedName -SearchScope Subtree |
Select-Object -First 1
$ouDn = $ou.DistinguishedName
# Lier le GPO à l’OU (activé ; Enforced optionnel)
New-GPLink -Name $gpo.DisplayName -Target $ouDn -LinkEnabled Yes -Enforced No
Prérequis : modules ActiveDirectory et GroupPolicy (RSAT) sur le poste d’administration.
Étape 6 : Vérifications périodiques et dépannage
# Règles effectivement actives
Get-NetFirewallRule | Where-Object {$_.Enabled -eq "True"} |
Select-Object DisplayName, Direction, Action, Profile
# Test de connectivité de port
Test-NetConnection -ComputerName <<SERVER_NAME>> -Port 3389
Conclusion
Windows Defender Firewall fournit une défense réseau robuste sur Windows Server. En combinant contrôle explicite du trafic entrant/sortant, analyse des journaux et gestion centralisée/automatisée via GPO et PowerShell, vous obtenez visibilité et sécurité conformes au hardening et adaptées à l’ère du zero trust.
