Comment utiliser le pare-feu de Windows Server

Avant de procéder directement à la configuration du pare-feu, quelques mots sur son comportement par défaut. Contrairement à Ubuntu, où le pare-feu UFW par défaut est initialement inactif, sur Windows Server, le pare-feu est initialement activé. La logique suivante est mise en œuvre à l'intérieur : bloquer toutes les connexions entrantes sauf celles explicitement autorisées (par exemple, RDP est autorisé par défaut). Les connexions sortantes sont autorisées, sauf celles explicitement interdites.
Le pare-feu Windows permet de créer plusieurs profils avec différentes règles et, si nécessaire, de basculer rapidement entre eux. Par défaut, trois profils sont créés :
- Profil de domaine,
- Profil privé,
- Profil public.
Le profil de domaine est destiné aux ordinateurs et serveurs opérant dans le domaine AD (Active Directory). Le profil privé convient aux systèmes situés dans un segment de réseau protégé. Le profil public est applicable pour travailler dans des réseaux publics avec le niveau maximum de menaces externes.
L'administrateur système peut pré-sélectionner un ensemble de règles pour chaque profil qui sera le plus efficace pour chacun des scénarios listés. Cela aidera à protéger le serveur contre les attaques en changeant simplement le profil du pare-feu. Veuillez noter que l'ensemble des règles pour chaque profil peut être différent en fonction du rôle actuel du serveur.
Il existe plusieurs façons de gérer les règles du pare-feu. La manière la plus simple de le faire est d'utiliser la console WF (Windows Firewall avec sécurité avancée). La gestion est également possible en utilisant la GPMC (Console de gestion des stratégies de groupe) ou via des commandes Powershell. Commençons par la dernière méthode.
Gestion des règles via Powershell
De nombreux guides sur la configuration d'un pare-feu à l'aide de PowerShell incluent les commandes netsh firewall et netsh advfirewall firewall. Ces deux commandes sont en état de désuétude depuis longtemps, nous vous recommandons donc d'utiliser une méthode plus moderne. Powerhell, à partir de la version 5.1, dispose d'un module NetSecurity intégré contenant de nombreuses cmdlets (commandes natives Powershell). Vous pouvez les répertorier en utilisant la commande suivante :
Get-Command -Module NetSecurity
Chacune des cmdlets répertoriées vous aide à gérer de manière flexible tous les paramètres du pare-feu. D'abord, regardons quelle commande vous pouvez utiliser pour activer ou désactiver le pare-feu :
Set-NetFirewallProfile -All -Enabled True
Dans cette commande, l'argument -All signifie appliquer tous les profils disponibles. Vous pouvez également définir un profil spécifique, par exemple, -Profile Private. Pour désactiver complètement le pare-feu, utilisez la même commande ; il suffit de changer la valeur -Enabled en -False :
Set-NetFirewallProfile -All -Enabled False
Lorsque le pare-feu est activé, toutes les règles s'appliquent à toutes les interfaces réseau du système. Dans ce cas, il est possible de désactiver un profil pour une interface spécifique en utilisant la cmdlet Set-NetFirewallProfile :
Set-NetFirewallProfile -Name Public -DisabledInterfaceAliases "Ethernet0"
La même cmdlet vous aidera à modifier d'autres paramètres de profil, en particulier à activer la journalisation et à configurer ses paramètres, tels que la taille et le chemin vers le fichier de journal.
Les cmdlets avec NetFirewallRule dans leur nom sont responsables de la gestion des règles du pare-feu. Dans ce cas, une cmdlet séparée fonctionne pour chaque action. Par exemple, pour créer une nouvelle règle, vous devez utiliser la commande New-NetFirewallRule, et pour supprimer une règle, utilisez Remove-NetFirewallRule. C'est facile à retenir et généralement très logique.
Supposons que vous voulez limiter la possibilité de se connecter en RDP à un serveur depuis une seule adresse IP spécifique (par exemple, 10.0.0.2) :
New-NetFirewallRule -DisplayName "AllowRDP" -RemoteAddress 10.0.0.2 -Direction Inbound -Protocol TCP -LocalPort 3389 -Action Allow
Mais que faire si vous avez besoin d'autoriser les connexions au serveur non pas depuis une adresse spécifique, mais depuis une plage d'adresses? Dans ce cas, vous devez procéder comme suit : d'abord définir une variable et lui attribuer les valeurs de la plage d'adresses, puis spécifier une variable au lieu d'une adresse spécifique. Assignons à la variable $allowedips la plage 10.0.0.2-10.0.0.254 :
$allowedips = @("10.0.0.2-10.0.0.254")
Vous pouvez maintenant appliquer la règle :
New-NetFirewallRule -DisplayName "AllowRDP" -RemoteAddress $allowedips -Direction Inbound -Protocol TCP -LocalPort 3389 -Action Allow
Imaginons que vous n'avez pas une plage d'adresses, mais un registre dédié d'adresses qui doivent être autorisées à se connecter en RDP au serveur. Pour éviter de créer des règles une par une, vous pouvez les charger dans un fichier texte (une adresse par ligne) et ensuite mettre toutes les valeurs dans une variable. Et aussi, comme dans la règle précédente, spécifiez cette variable comme la valeur -RemoteAddress. Par exemple, nous avons téléchargé la liste des adresses dans le fichier C:\Users\Administrator\Downloads\AllowedIPs.txt
Lisez le fichier et mettez son contenu dans la variable $allowedlist :
$allowedlist = Get-Content C:\Users\Administrator\Downloads\AllowedIPs.txt
Créez une règle :
New-NetFirewallRule -DisplayName "AllowRDP" -RemoteAddress $allowedlist -Direction Inbound -Protocol TCP -LocalPort 3389 -Action Allow
C'est une façon très pratique d'automatiser le pare-feu Windows avec d'autres systèmes. Par exemple, vous pouvez collecter automatiquement une liste d'adresses IP attribuées à des utilisateurs légitimes et n'autoriser les connexions aux systèmes d'entreprise qu'à partir de ces adresses. De telles solutions facilitent grandement la vie et réduisent considérablement le temps passé à gérer les autorisations.
Powershell dispose d'outils puissants pour afficher facilement les données. Si vous souhaitez voir quelles règles de pare-feu sont actuellement activées pour les connexions entrantes, vous pouvez utiliser cette commande :
Get-NetFirewallRule -Action Allow -Enabled True -Direction Inbound |
Format-Table -Property Name,
@{Name='Protocol';Expression={($PSItem | Get-NetFirewallPortFilter).Protocol}},
@{Name='LocalPort';Expression={($PSItem | Get-NetFirewallPortFilter).LocalPort}},
@{Name='RemotePort';Expression={($PSItem | Get-NetFirewallPortFilter).RemotePort}},
@{Name='RemoteAddress';Expression={($PSItem | Get-NetFirewallAddressFilter).RemoteAddress}},
Enabled,Profile,Direction,Action
Gestion des règles via WF
La deuxième façon de configurer le pare-feu est la console standard Windows Defender Firewall with Advanced Security. Pour l'utiliser, il suffit d'appuyer sur la séquence de touches Win + R et d'entrer la commande wf.msc
La fenêtre de la console qui s'ouvre peut être divisée en trois sections. La section de gauche permet à l'administrateur système de choisir d'éditer les règles de trafic sortant ou entrant, les règles de sécurité de connexion et les paramètres de surveillance. La section du milieu affichera les règles ou les paramètres eux-mêmes. La section de droite affiche les actions disponibles en fonction des règles ou des paramètres sélectionnés.

Par défaut, les paramètres globaux du pare-feu sont affichés, en particulier les profils actifs et des informations succinctes sur la logique actuelle du pare-feu. Si vous créez un ensemble de paramètres une fois, vous pouvez facilement le cloner sur un autre serveur ou même l'appliquer à plusieurs serveurs contrôlés à la fois, par exemple, dans un domaine. Pour cela, vous pouvez utiliser les options d'importation et d'exportation des paramètres.
Lorsque vous cliquez sur Exporter la politique, le système télécharge toutes les règles dans un fichier spécial avec l'extension WFW. Ce fichier peut être importé sur un autre serveur dans la même console. De plus, les règles de ce fichier peuvent être fusionnées avec l'ensemble actuel de règles dans le cadre des paramètres de stratégie de groupe, via la console système correspondante. Mais d'abord, jetons un coup d'œil à l'interface et créons une seule règle pour le trafic entrant.
Faites un clic droit sur Inbound Rules et sélectionnez New Rule :

Ensuite, il y a 4 options possibles pour le fonctionnement de la règle. Le pare-feu Windows peut être configuré pour fonctionner avec une application spécifique. C'est très pratique lorsqu'une application peut ouvrir des ports aléatoires dans une certaine plage. Donc, au lieu de restreindre le trafic aux plages de ports, vous pouvez choisir une application spécifique et le pare-feu se chargera de s'assurer que les règles appliquées sont respectées.
La deuxième option convient pour autoriser ou refuser l'accès sur un port spécifique ou une plage de ports. L'option la plus simple, mais elle ne prendra pas en compte l'application qui utilisera le port spécifié. La troisième option (Prédéfini) déverrouillera une liste déroulante avec des ensembles de paramètres typiques. Cela peut faire gagner beaucoup de temps lors de l'exécution de tâches typiques.
Et enfin, la dernière option (Personnalisé), donne à l'administrateur la possibilité de créer une règle arbitraire avec n'importe quelle combinaison de paramètres disponibles. Cependant, vous devez faire très attention à ne pas bloquer accidentellement votre accès à distance au serveur. Comme exemple, nous montrerons comment créer une règle qui autorise les connexions sur le port 7777, sur lequel un service préalablement lancé est en cours d'exécution. Sélectionnez l'élément Port :

Dans la boîte de dialogue suivante, vous pouvez sélectionner quel protocole la règle utilisera, et aussi spécifier les numéros des ports individuels et des plages :

Ensuite, vous devez indiquer au système quoi faire avec les connexions arrivant sur les ports précédemment spécifiés. Vous pouvez autoriser ou refuser la connexion. Séparément, il est possible d'autoriser la connexion si elle est protégée par IPsec :

Vous devez ensuite sélectionner quel profil de sécurité la règle que vous créez doit être ajoutée. Vous pouvez sélectionner un ou plusieurs profils :

Il reste la dernière étape où vous pouvez définir un nom spécifique et une description pour la nouvelle règle, après quoi vous devez cliquer sur le bouton Terminer :

La règle créée peut être activée ou désactivée dans la section de droite à l'aide des éléments Enable Rule et Disable Rule :

Gestion des règles via GPMC
Cette méthode fonctionne bien si les mêmes paramètres de pare-feu doivent être distribués sur plusieurs serveurs. Dans ce cas, bien sûr, vous devez tenir compte du fait que le serveur doit agir en tant que contrôleur de domaine. Pour commencer, vous devez ouvrir la console de gestion des stratégies de groupe en appuyant sur la combinaison de touches Win + R et en entrant la commande gpmc.msc. Ouvrez un arbre de domaine, puis faites un clic droit sur Default Domain Policy > Edit

Dans la section de gauche, sélectionnez Configuration de l'ordinateur > Stratégies > Modèles administratifs > Réseau > Connexions réseau > Windows Defender > Pare-feu > Profil de domaine

Définissez la politique Windows Defender Firewall: Protéger toutes les connexions réseau sur le statut Enabled :

Allez à Configuration de l'ordinateur > Paramètres Windows > Paramètres de sécurité et ouvrez les propriétés de Windows Firewall with Advanced Security :

Pour chacun des trois onglets de profil par défaut (Domaine, Privé et Public), changez l'état du pare-feu en On (recommandé). Vous pouvez y changer la logique des profils à celle souhaitée :

Dans la même boîte de dialogue, vous pouvez activer l'option de journalisation, qui est désactivée par défaut. Cela vous permet de suivre les paquets qui ont été rejetés par le pare-feu ou, par exemple, les connexions qui ont été autorisées par les règles du pare-feu et qui ont été établies avec succès. Sauf indication contraire, le fichier de journal est enregistré ici :
%SYSTEMROOT%\System32\logfiles\firewall\pfirewall.log

En ayant étendu la liste des options disponibles dans le Windows Defender Firewall with Advanced Security, vous verrez la structure de la console déjà familière décrite ci-dessus. Ici, vous pouvez gérer les règles de trafic entrant et sortant, ainsi qu'importer et exporter des règles au format WFW :

Voir aussi :
Mis à jour: 28.03.2025
Publié: 22.07.2024