
Scripts PowerShell pour créer automatiquement des règles pour le pare-feu Windows

Une solution entièrement automatisée pour le pare-feu Windows avec PowerShell
Windows Firewall Ruleset configure automatiquement le pare-feu Windows et applique des règles de pare-feu restrictives spécifiques au système cible et aux logiciels installés sur le système.
Le statut de ce projet est encore alpha, cliquez sur le badge "status" ci-dessus pour en savoir plus.
Ce projet se compose de deux parties principales : les règles de pare-feu et l'infrastructure de pare-feu, comme suit :
Les règles du pare-feu Windows sont triées dans des scripts PowerShell individuels selon :
Comme par exemple :
L'infrastructure de pare-feu se compose de plusieurs modules PowerShell, scripts et documentation utilisés pour recueillir des informations sur l'environnement pertinentes pour construire et déployer un pare-feu spécialisé pour le système cible, telles que :
Ainsi, ce dépôt est un bon point de départ pour étendre facilement votre pare-feu en y ajoutant d'autres règles et fonctionnalités selon vos souhaits.
Il existe actuellement plus de 800 règles de pare-feu, plus de 10 modules avec plus de 100 fonctions, plusieurs scripts et une bonne partie de documentation utile.
Vous pouvez choisir interactivement les règles que vous souhaitez et ne déployer que celles-ci, ou vous pouvez automatiser le processus et déployer toutes les règles et paramètres nécessaires à votre pare-feu.
La configuration détaillée du pare-feu est un processus chronophage, nécessite beaucoup de dépannage, les changements exigent des tests et un audit de sécurité, et cela empire si vous devez déployer un pare-feu sur des centaines ou des milliers d'ordinateurs distants, par exemple tous les ordinateurs peuvent ne pas avoir les mêmes logiciels ou les mêmes exigences de restriction.
Contrairement aux règles de pare-feu dans le panneau de configuration, ces règles sont chargées dans le pare-feu GPO (Stratégie de groupe locale), ce qui signifie que les modifications des paramètres système ou les programmes aléatoires qui installent des règles dans le cadre de leur processus d'installation n'auront aucun effet sur le pare-feu, sauf si vous faites explicitement une exception.
Les règles basées sur des programmes et des services vérifieront la signature numérique de leur fichier exécutable spécifié et seront analysées sur VirusTotal si la signature numérique est absente ; pour des raisons de sécurité, la règle n'est pas créée ou chargée dans le pare-feu si cette vérification échoue. (peut être forcé)
La sortie par défaut est "bloquer" sauf s'il existe une règle permettant le trafic réseau. Dans la plupart des pare-feux, cela n'est pas possible sauf si vous maintenez des règles pour chaque programme ou service possible. Grâce à cette collection de règles, définir la sortie par défaut sur bloquer nécessite très peu ou pas de travail supplémentaire.
Contrairement au scénario habituel, vous saurez quelles règles n'ont plus d'effet ou sont redondantes en raison, par exemple, d'un programme désinstallé, d'un service système manquant qui n'existe plus, d'un exécutable renommé après une mise à jour Windows et de raisons similaires.
Contrairement aux règles de pare-feu Windows prédéfinies, ces règles sont plus restrictives, par exemple liées à des comptes d'utilisateurs explicites, applicables à des ports spécifiques, des interfaces réseau, des exécutables spécifiques, des services, etc., le tout étant appris automatiquement du système cible.
La mise à jour, le filtrage ou la recherche de règles et d'attributs tels que les ports, les adresses et autres est beaucoup plus facile car ces règles sont dans des scripts ; vous pouvez utiliser des outils d'éditeur tels que regex, multicursor ou CTRL + F pour effectuer des opérations en masse sur vos règles, ce qui n'est pas possible dans une interface utilisateur de pare-feu en raison des limitations de l'interface.
Ce projet Windows Firewall Ruleset est sous licence MIT.
Certains scripts, fichiers ou modules ne sont pas sous licence MIT ou peuvent avoir leurs propres détenteurs de droits d'auteur ; pour cette raison, les avis de licence et de droit d'auteur sont conservés "par fichier".
Le tableau suivant liste les systèmes d'exploitation sur lesquels Windows Firewall Ruleset a été testé
sigcheck64.exe (Hautement recommandé) Télécharger sigcheckTous les systèmes Windows 10.0 (Majeure 10, Mineure 0) et supérieurs, à l'exception des éditions Home, sont pris en charge, mais seules les éditions listées dans le tableau ci-dessus ont été testées.
La colonne "Version" liste les versions testées, mais seules les dernières versions des builds continuent d'être testées.
Une liste d'autres systèmes et fonctionnalités pris en charge mais non testés se trouve dans L'avenir
PowerShell Core n'est pas intégré à Windows, vous devrez l'installer séparément ou utiliser Windows PowerShell qui fait partie du système d'exploitation.
.NET Framework version min. 4.5 est requis si vous utilisez Windows PowerShell (édition Desktop) au lieu de PowerShell Core.
Windows 10 est livré avec min .NET 4.6 (qui inclut .NET 4.5), et Windows 11 est livré avec min .NET 4.8
sigcheck64.exe (ou la version 32 bits sigcheck.exe) est un outil de vérification de signature numérique que vous pouvez télécharger depuis le site Microsoft et doit être placé soit dans le répertoire C:\tools, soit dans la variable d'environnement %PATH%.
Windows Firewall Ruleset l'utilisera pour effectuer une analyse de malware en ligne basée sur le hachage sur VirusTotal pour chaque exécutable qui n'est pas signé numériquement avant qu'une règle de pare-feu ne soit créée pour cet exécutable.
Ce n'est qu'une recommandation ; s'il n'y a pas de dans , on vous proposera de le télécharger et si vous refusez, aucune analyse de malware n'est effectuée.
En utilisant cette fonctionnalité, vous acceptez les , la et les
Pour le moment, ce pare-feu est testé et conçu pour les ordinateurs de bureau/serveurs Windows les plus récents et cela fonctionne ; l'utiliser sur des systèmes plus anciens nécessite un travail supplémentaire.
Les tests sont effectués sur Windows 64 bits ; une petite fraction des règles ne fonctionnera pas sur un système 32 bits et nécessite un ajustement. La fonctionnalité complète pour un système 32 bits est en cours de développement.
Pour l'instant, vous pouvez charger les règles sur un système 32 bits sans problème, à l'exception de quelques règles probablement non pertinentes pour votre configuration.
Pour savoir comment utiliser ce pare-feu sur des systèmes Windows plus anciens tels que Windows 7 ou Windows Server 2008, consultez Prise en charge héritée
Voici de brefs avertissements et avis dont l'utilisateur novice doit prendre connaissance avant de déployer le pare-feu.
Vous pourriez perdre la connectivité Internet pour certains de vos programmes ou, dans de rares cas, même perdre complètement la connectivité Internet ; si cela se produit, vous pouvez soit autoriser temporairement le réseau sortant dans la GPO, soit exécuter
.\Scripts\Reset-Firewall.ps1 -Remoting -Service, pour réinitialiser le pare-feu GPO aux valeurs par défaut du système, supprimer toutes les règles et restaurer WinRM et les services modifiés aux valeurs par défaut du système.
(après cela, un redémarrage de PowerShell est nécessaire)
Dans le répertoire docs se trouve ResetFirewall.md, un guide sur la façon de le faire manuellement, à la main, si pour une raison quelconque vous ne pouvez pas exécuter le script, ou si le script ne résout pas vos problèmes.
Vos règles existantes ne seront pas supprimées, sauf si vous avez des règles dans la GPO avec exactement les mêmes noms de groupe que les règles de cet ensemble de règles. Cependant, cela ne s'applique pas à Scripts\Reset-Firewall.ps1 qui effacera complètement les règles GPO et ne laissera que celles du panneau de configuration.
Si vous voulez être sûr à 100%, veuillez exporter vos règles GPO comme expliqué dans Exportation\Importation de règles
Il vous sera demandé quelles règles charger (si vous sélectionnez le déploiement interactif, voir plus tard). Pour minimiser les problèmes de connectivité Internet, vous devriez déployer au moins toutes les règles génériques de réseau et liées à l'OS appelées "CoreNetworking", "ICMP", "WindowsSystem", "WindowsServices", "Multicast", y compris toutes les règles pour lesquelles vous avez des programmes installés sur le système. N'ignorez pas non plus IPv6, Windows a besoin d'IPv6 même si vous êtes sur un réseau IPv4.
Il sera facile de supprimer ce dont vous n'avez pas besoin dans la GPO, plutôt que de fouiller plus tard dans le code pour trouver ce que vous avez manqué.
La configuration par défaut définira le comportement global du pare-feu qui n'est pas configurable dans la GPO, comme et ou les paramètres globaux . Si vous avez besoin d'une configuration spécifique, veuillez consulter et jeter un œil à . Notez que est automatiquement appelé par
Charger des règles dans une GPO vide devrait être très rapide, mais charger dans une GPO qui contient déjà des règles sera nettement plus lent (dépend du nombre de règles existantes dans la GPO)
Toutes les erreurs et avertissements seront enregistrés dans le répertoire Logs. Vous pouvez consulter ces journaux plus tard si vous souhaitez résoudre un problème. La plupart des avertissements et même certaines erreurs peuvent être ignorés en toute sécurité. Dans certains cas, vous voudrez peut-être résoudre les erreurs si possible.
Toute règle qui entraîne "Accès refusé" lors du chargement doit être rechargée en exécutant à nouveau le script spécifique. Voir FAQ pour plus d'informations sur les raisons pour lesquelles cela peut se produire.
Si le dépôt a été téléchargé manuellement, transféré depuis un autre ordinateur ou support, vous devriez d'abord débloquer tous les fichiers du dépôt pour éviter les questions OUI/NON intempestives pour chaque script exécuté, en exécutant Scripts\Unblock-Project.ps1.
Le script maître Scripts\Deploy-Firewall.ps1 le fait si vous oubliez, mais les questions initiales OUI/NON seront toujours présentes dans ce cas.
Si vous avez activé la "protection contre les ransomwares" (dans Windows Defender), assurez-vous d'autoriser soit pwsh.exe (édition Core) soit powershell.exe (édition Desktop) ou les deux, sinon des erreurs se produisent en mode développement lors de l'installation des modules.
Si le code du dépôt est téléchargé dans un dossier sous la protection contre les ransomwares, tout peut être bloqué.
La console PowerShell peut nécessiter un redémarrage pour que les modifications de "Contrôle d'accès aux dossiers" prennent effet.
Par défaut, les règles sont créées pour le groupe Utilisateurs tandis que pour le groupe seulement si nécessaire. Il est recommandé d'avoir un compte utilisateur standard pour une utilisation quotidienne pour des raisons de sécurité.
Si vous êtes administrateur et que vous ne souhaitez pas créer de compte standard sur votre ordinateur, vous devrez modifier la variable dans et spécifier .
Si vous n'avez pas de clés SSH et d'autres configurations nécessaires pour cloner via SSH, clonez avec HTTPS ou téléchargez simplement le fichier zip de la version depuis Releases, puis pour la dernière version sous "assets", téléchargez le fichier zip.
Ces étapes supposent que vous avez téléchargé un fichier zip depuis la section "assets" sous "Releases".
Extrayez l'archive téléchargée quelque part. Ces étapes supposent que vous avez extrait le fichier zip (répertoire racine du dépôt) directement dans le lecteur racine C:\.
Si vous souhaitez utiliser Windows PowerShell, voir Comment ouvrir Windows PowerShell
Sinon, la procédure pour PowerShell Core et Windows PowerShell est similaire :
Ouvrez le dossier extrait, faites un clic droit dans un espace vide et il y a une option pour exécuter PowerShell Core en tant qu'administrateur (suppose que vous avez activé le menu contextuel lors de l'installation de PowerShell Core) ; sinon, ouvrez-le manuellement.
Si vous n'avez pas de menu contextuel PowerShell, déplacez-vous vers le lecteur racine C:\ en exécutant les deux lignes suivantes (tapez ou copiez/collez les commandes et appuyez sur Entrée pour chacune), c'est là que vous avez extrait votre fichier zip téléchargé
c:
cd \
cd dans le dossier téléchargé :
cd WindowsFirewallRuleset*
Pour voir la politique d'exécution actuelle, tapez la commande suivante et appuyez sur Entrée :
(astuce : vous pouvez utiliser la touche TAB pour la complétion automatique en tapant)
Si vous avez besoin d'aide pour décider d'exécuter ou non un ensemble de règles, tapez ? lorsque vous êtes invité à exécuter
l'ensemble de règles et appuyez sur Entrée pour obtenir plus d'informations.
Si, pour une raison quelconque, vous souhaitez interrompre et annuler le déploiement (par exemple pour en recommencer un nouveau), appuyez sur
CTRL + C sur votre clavier pendant que PowerShell est actif et redémarrez la console PowerShell.
Suivez les instructions de l'invite (par exemple, appuyez sur Entrée pour accepter l'action par défaut), cela prendra environ 15 minutes de votre attention.
REMARQUE : Si le compte Administrateur utilise un compte Microsoft pour se connecter à l'ordinateur, vous serez invité à fournir des identifiants, qui doivent être l'adresse e-mail et le mot de passe Microsoft, que vous utilisiez Windows Hello ou non. Spécifier un code PIN par exemple ne fonctionnera pas et les autres méthodes d'authentification Windows Hello ne sont pas prises en charge.
Si des identifiants invalides sont fournis, vous obtiendrez une erreur indiquant Access is denied.
Si cela se produit, vous devrez redémarrer la console PowerShell et réessayer.
Pour plus d'informations sur la nécessité de cette opération, voir FAQ
Si vous rencontrez des erreurs, vous pouvez soit les ignorer, soit mettre à jour le script qui a produit l'erreur, puis réexécuter ce script spécifique plus tard.
Une fois terminé, vous souhaiterez peut-être ajuster certaines règles dans la stratégie de groupe locale.
Toutes les règles ne sont pas activées par défaut ou vous souhaiterez peut-être basculer le comportement par défaut Autoriser/Refuser.
Les règles peuvent ne pas couvrir tous les programmes installés sur votre système, auquel cas les règles manquantes doivent être
créées.
Maintenant, testez votre connexion Internet (par exemple avec un navigateur Web ou un autre programme). Si vous ne parvenez pas à vous connecter à Internet après avoir déployé ces règles, vous avez plusieurs options :
docs pour plus d'options de dépannage et de documentationLa section suivante donne quelques conseils pour gérer facilement le pare-feu
Le script Deploy-Firewall.ps1 prend en charge plusieurs paramètres pour vous permettre de personnaliser l'automatisation du déploiement
comme suit :
- Pour procéder étape par étape et être invité à confirmer les règles à charger
et à tenter de résoudre les problèmes à la volée, exécutez:```powershell
.\Scripts\Deploy-Firewall.ps1 -Interactive
Deploy-Firewall sans paramètres:```powershell
.\Scripts\Deploy-Firewall.ps1Pour apprendre la signification des paramètres afin de pouvoir les combiner par vous-même, consultez le commentaire du script `Deploy-Firewall.ps1` ou exécutez la commande suivante :```powershell
Get-Help .\Scripts\Deploy-Firewall.ps1 -Detailed
Il existe deux méthodes pour gérer les règles GPO :
Utiliser la stratégie de groupe locale, cette méthode vous donne une liberté limitée sur ce que vous pouvez faire avec les règles de ce dépôt, comme les désactiver, modifier certains attributs ou ajouter de nouvelles règles.
Pour plus d'informations voir : Gérer le pare-feu GPO
Modifier les scripts PowerShell, cette méthode vous donne un contrôle total, vous pouvez modifier ou supprimer les règles existantes sans restriction ou en ajouter de nouvelles.
Quel que soit votre plan ou votre configuration, vous voudrez sûrement effectuer un travail supplémentaire comme personnaliser les règles, ou ajouter de nouvelles règles pour des programmes non encore couverts par ce pare-feu.
Les règles sont chargées dans la stratégie de groupe locale, si lors de la configuration du pare-feu vous avez accepté la création d'un raccourci vers la console de gestion personnalisée du pare-feu, vous pouvez exécuter ce raccourci, sinon suivez les étapes mentionnées dans Gérer le pare-feu GPO
Pour plus d'informations sur GPO voir : Configurer les paramètres de stratégie de sécurité
Si vous souhaitez déployer uniquement des règles spécifiques, il existe deux manières de le faire :
Exécutez Scripts\Deploy-Firewall.ps1 et choisissez Yes uniquement pour les ensembles de règles souhaités, sinon choisissez No et appuyez sur Entrée pour passer l'ensemble de règles actuel.
Dans la console PowerShell, naviguez cd vers le répertoire contenant le script d'ensemble de règles souhaité et exécutez le script individuel.
Par exemple cd .\Rules\IPv4\Outbound\Software suivi de .\Adobe.ps1 pour charger les règles pour Adobe.
Vous voudrez peut-être exécuter Scripts\Complete-Firewall.ps1 ensuite pour appliquer le comportement par défaut du pare-feu s'il n'est pas déjà défini, ou vous pouvez le faire manuellement dans GPO mais avec un pouvoir limité.
« pouvoir limité » signifie que Scripts\Complete-Firewall.ps1 configure certains paramètres de pare-feu qui ne peuvent pas être ajustés dans l'interface graphique du pare-feu.
Dans les deux cas, toutes les règles qui correspondent au groupe d'ensembles de règles, DisplayGroup, seront supprimées avant de charger les règles dans GPO.
Pour l'instant, il existe trois options pour supprimer les règles de pare-feu :
La façon la plus simple est de sélectionner toutes les règles que vous souhaitez supprimer dans GPO, de cliquer droit et de supprimer.
Pour supprimer des règles selon un fichier, il existe une fonction à cet effet, située dans :
Modules\Ruleset.Firewall\Public\Remove-FirewallRule.ps1
cependant vous devez d'abord exporter le pare-feu vers un fichier avant de l'utiliser.
Pour revenir à votre ancien état de pare-feu (celui du panneau de configuration), vous devrez supprimer toutes les règles de GPO et définir toutes les propriétés sur Not configured après avoir cliqué droit sur le nœud :
Windows Defender Firewall with Advanced Security - Local Group Policy Object
La suppression de toutes les règles ou le retour à l'état précédent peut également être effectué avec Scripts\Reset-Firewall.ps1
Notez que vous devrez également réimporter vos règles GPO exportées si vous en aviez.
Si vous souhaitez exporter des règles depuis GPO, deux méthodes sont disponibles :
Exporter dans la stratégie de groupe locale en cliquant sur le menu Export Policy..., après avoir cliqué droit sur le nœud :
Windows Defender Firewall with Advanced Security - Local Group Policy Object
Pour exporter avec PowerShell, exécutez Scripts\Backup-Firewall.ps1
Si vous souhaitez personnaliser votre exportation, consultez la fonction Export-RegistryRule située dans le module Ruleset.Firewall, qui vous permet de personnaliser votre exportation presque comme vous le souhaitez.
Si vous souhaitez importer des règles, l'importation via GPO est la même que pour l'exportation, et pour importer avec PowerShell, exécutez simplement Scripts\Restore-Firewall.ps1 qui récupérera vos fichiers d'exportation précédents.
Pour personnaliser votre exportation/importation, veuillez consulter Modules\Ruleset.Firewall\Public, où vous trouverez une description sur la façon d'utiliser les fonctions du module d'exportation/importation.
REMARQUE : La fonction Export-FirewallRule est vraiment lente, il est conseillé d'exécuter la fonction Export-RegistryRule à la place, qui est aussi rapide que possible.
Cette section et ses fonctionnalités sont actuellement expérimentales et pas complètement terminées, pour le moment le déploiement sur un seul ordinateur distant est pris en charge.

Dans le déploiement à distance du pare-feu, au moins deux ordinateurs sont impliqués,
l'un est appelé ordinateur de gestion (client) et tous les autres sont appelés ordinateurs gérés (serveurs).
Les scripts sont exécutés par l'administrateur sur l'ordinateur de gestion, et le pare-feu est ensuite déployé ou configuré sur plusieurs ordinateurs serveurs simultanément.
Pour les détails d'implémentation, voir le module Modules\Ruleset.Remote
REMARQUE : La fonctionnalité de session à distance n'est pas exclusive au déploiement à distance du pare-feu, le déploiement sur localhost nécessite par conception une configuration WinRM et PS remoting fonctionnelle également.
Avant que le déploiement à distance puisse être effectué, l'ordinateur distant (serveur) doit être configuré pour accepter la connexion, voici un exemple sur la façon d'établir une connexion SSL :
Pour autoriser l'exécution, configurez le service WinRM et le registre distant sur l'ordinateur serveur en exécutant :
REMARQUE : Si vous utilisez PowerShell Core, omettez -Protocol HTTPS de Enable-WinRMServer ci-dessous, cela activera à la fois HTTP et HTTPS, ce qui est une solution de contournement temporaire pour que le module de compatibilité fonctionne dans une session distante.```powershell
Set-ExecutionPolicy -Scope LocalMachine RemoteSigned Set-Location C:\Path\to\WindowsFirewallRuleset Import-Module .\Modules\Ruleset.Remote Enable-WinRMServer -Protocol HTTPS -KeepDefault -Confirm:$false Enable-RemoteRegistry -Confirm:$false
Après avoir effectué ces étapes, dans le répertoire `\Exports` vous trouverez un fichier de certificat SSL (*.cer) qui doit être copié sur l'ordinateur de gestion, également dans le répertoire `\Exports`.\
Par défaut, un certificat SSL auto-signé est créé si l'ordinateur serveur n'en possède pas déjà un.
**REMARQUE :** La configuration manuelle de l'ordinateur serveur n'est effectuée qu'une seule fois lors de l'installation initiale, inutile de la répéter pour les déploiements ultérieurs.
L'étape suivante consiste à passer à l'ordinateur de gestion et à exécuter les scripts comme souhaité, par exemple :```powershell
# On management computer
cd C:\Path\to\WindowsFirewallRuleset\Scripts
Deploy-Firewall -Domain "RemoteComputerName"
Les deux ensembles de commandes ci-dessus doivent être exécutés dans la même édition de PowerShell, par ex. si le serveur a été configuré dans PowerShell Core, le client a également besoin de PowerShell Core pour le déploiement.
Si le serveur ou l'ordinateur de gestion est une station de travail (par ex. pas un serveur Windows ou membre d'un domaine), son profil réseau doit être défini sur privé.
Le déploiement à distance peut être personnalisé en détail aux emplacements suivants :
Modules\Ruleset.Remote\Scripts\WinRMSettings.ps1Modules\Ruleset.Remote\Scripts\*Firewall.psscModules\Ruleset.Remote\Public\Register-SslCertificate.ps1Modules\Ruleset.Remote\Scripts\SessionSettings.ps1Pour plus d'informations et des conseils de dépannage, voir aussi Aide sur le remoting
Pour tout support, signalement de problème, suggestion ou personnalisation de ce dépôt et méthodes de mise à jour périodique de ce pare-feu, veuillez vous référer à SUPPORT.md
Les fonctionnalités suivantes sont souhaitées et pourraient être disponibles à un moment donné dans le futur :
Administration à distance du pare-feu
Ensembles complets de règles de pare-feu pour les éditions Windows Server et les systèmes dédiés de passerelle.
Analyse du registre à la demande ou planifiée pour valider l'intégrité de la politique de filtrage du pare-feu active et des paramètres du pare-feu
Fonctionnalité complète pour les éditions suivantes non encore testées de Windows 10.0
Fonctionnalité pour les systèmes x86
Une bonne partie du code est dédiée à fournir une solution automatisée pour construire et définir un pare-feu spécialisé pour le système cible et les utilisateurs, minimisant ainsi le besoin de faire quoi que ce soit manuellement, ce qui vous fait gagner un temps d'administration précieux.
| OS | Édition | Version | Architecture |
|---|
| Windows 10 | Pro | 1809 - 22H2 | x64 |
| Windows 10 | Pro Education | 20H2 | x64 |
| Windows 10 | Enterprise | 1809 - 20H2 | x64 |
| Windows 10 | Education | 20H2 - 22H2 | x64 |
| Windows 11 | Pro Education | 21H2 | x64 |
| Windows 11 | Pro | 22H2 - 23H2 | x64 |
| Windows 11 | Enterprise | 22H2 | x64 |
| Windows Server 2019 | Essentials | 1809 | x64 |
| Windows Server 2019 | Standard | 1809 | x64 |
| Windows Server 2019 | Datacenter | 1809 | x64 |
| Windows Server 2022 | Standard | 21H2 | x64 |
| Windows Server 2022 | Datacenter | 21H2 | x64 |
sigcheck64.exePATHVous voudrez peut-être avoir git pour vérifier les mises à jour, basculer facilement entre les branches ou contribuer au code.
VS Code est l'éditeur préféré et recommandé pour naviguer dans le code et/ou modifier les scripts selon vos besoins ou pour contribuer.
Si vous obtenez VSCode, vous aurez également besoin de l'extension PowerShell pour la navigation dans le code et les fonctionnalités du langage PowerShell.
Pour naviguer et éditer du code avec VSCode, PSScriptAnalyzer est fortement recommandé, sinon l'expérience d'édition peut se comporter étrangement en raison de divers paramètres du dépôt.
Il n'y a pas d'exigences matérielles, mais si vous prévoyez d'écrire et de déboguer du code, il est recommandé d'avoir au moins 8 Go de mémoire et un disque SSD pour travailler confortablement sur le projet. Sinon, pour simplement déployer des règles sur votre pare-feu personnel, moins que cela fonctionnera très bien.
Stateful FTPPPTPIPSecScripts\Complete-Firewall.ps1Set-NetFirewallSettingScripts\Complete-Firewall.ps1Scripts\Deploy-Firewall.ps1Certains scripts nécessitent que vous (carte réseau) soyez connecté au réseau, par exemple pour déterminer l'adresse de diffusion IPv4. (Sinon, des erreurs peuvent être générées)
Tout sur le système doit être à jour, car sinon certaines règles peuvent être ignorées ou incorrectes. Cela inclut les mises à jour Windows, les applications du Microsoft Store et tous les autres logiciels.
AdministrateursDefaultGroupConfig\ProjectSettings.ps1AdministratorsVoir SecurityAndPrivacy.md pour plus d'informations sur les raisons pour lesquelles l'utilisation d'un compte administrateur n'est pas recommandée pour des raisons de sécurité.
Votre compte administratif utilisé pour déployer le pare-feu doit avoir un mot de passe défini.
Les mises à jour de logiciels ou de Windows peuvent renommer les exécutables ou leurs emplacements, et les comptes d'utilisateurs peuvent être renommés par l'administrateur. Par conséquent, il est important de recharger certaines règles de temps en temps selon les besoins pour mettre à jour le pare-feu en fonction des modifications système qui peuvent survenir à tout moment. Ce comportement est appelé Régression logicielle
Avant de déployer le pare-feu, il est recommandé de mettre à jour le système et les programmes utilisateur sur l'ordinateur cible, y compris les applications du Windows Store, surtout si le système vient d'être installé, car les mettre à jour plus tard peut nécessiter de recharger certaines règles.
Get-ExecutionPolicy
Rappelez-vous le résultat de la commande ci-dessus. Notez que PowerShell Core par défaut est RemoteSigned tandis que Windows PowerShell par défaut est Restricted sur les éditions non serveur.
Définissez la politique d'exécution sur unrestricted pour pouvoir débloquer les fichiers du projet.
(Notez que RemoteSigned fonctionnera seulement une fois que les scripts sont débloqués)
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
Il vous sera peut-être demandé d'accepter le changement de politique d'exécution ; si c'est le cas, tapez Y et appuyez sur Entrée pour accepter.
Pour plus d'informations, voir À propos des politiques d'exécution
À ce stade, vous devez d'abord "débloquer" tous les fichiers du dépôt en exécutant un script appelé
Scripts\Unblock-Project.ps1, d'ailleurs, les fichiers du dépôt ont été bloqués par Windows pour empêcher les utilisateurs d'exécuter du code de script non fiable téléchargé depuis Internet :
.\Scripts\Unblock-Project.ps1
Si demandé, assurez-vous que votre réponse est R c'est-à-dire [R] Exécuter une fois autant de fois que nécessaire pour débloquer le projet. (environ jusqu'à 8 fois)
Une fois les fichiers du dépôt débloqués, changez la politique d'exécution en RemoteSigned :
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
Il vous sera peut-être à nouveau demandé d'accepter le changement de politique d'exécution ; tapez Y et appuyez sur Entrée pour accepter.
Les règles pour des programmes tels que votre navigateur Web, jeux, etc. dépendent de variables d'installation.
La plupart des chemins sont recherchés automatiquement et les variables sont mises à jour de manière transparente ; sinon, vous obtenez un avertissement et une description sur la façon de résoudre le problème.
Si nécessaire, vous pouvez trouver ces variables d'installation dans des scripts individuels dans le répertoire Rules.
Il est recommandé de fermer toutes les consoles de gestion MMC telles que gpedit.msc ou secpol.msc avant d'exécuter le script maître à l'étape suivante.
Revenez à la console PowerShell et exécutez l'une des deux commandes Deploy-Firewall ci-dessous :
Pour déployer le pare-feu automatiquement avec le moins d'invites possible, exécutez :
.\Scripts\Deploy-Firewall.ps1 -Force
Sinon, pour être invité interactivement à choisir les règles à charger, exécutez :
.\Scripts\Deploy-Firewall.ps1
```Appuyez sur Entrée et des questions vous seront posées, par exemple sur le type de règles que vous souhaitez.\
Comme condition préalable au déploiement du pare-feu, certains services système ont été démarrés et configurés
en démarrage automatique. Dans le répertoire Logs, vous trouverez Services_<DATE>.log pour vous aider à restaurer ces services
à leur état par défaut si vous le souhaitez.
Par exemple, le service Windows Remote Management ne doit pas s'exécuter s'il n'est pas nécessaire
(la valeur par défaut est "Manuel" en démarrage)