Comment gérer les règles de pare-feu Windows avec PowerShell

Contenu

Logo Powershell

Windows contient un pare-feu avancé robuste, mais facile à utiliser, et avec PowerShell 7 nous pouvons facilement configurer le pare-feu à partir de la ligne de commande. Cet article couvre les commandes courantes utilisées dans le pare-feu Windows et où elles peuvent être utilisées.

Le module NetSecurity est ok documenté. Veuillez noter que cet article ne s'applique qu'au système d'exploitation Windows. Pour les autres systèmes d'exploitation, il existe d'autres outils de ligne de commande qui peuvent être utilisés pour effectuer le même type de fonctions, Quoi UFW O IPTables fr Linux.

Chargement du NetSecurity Module

Les NetSecurity Le module, intégré et proposé par Microsoft, Contient toutes les fonctionnalités indispensables à ajouter, supprimer et modifier les règles de pare-feu. Pour charger le module, il suffit d'importer le module comme indiqué ci-dessous.

Import-Module -Name 'NetSecurity'

Liste des règles de pare-feu existantes

L'applet de commande, Get-NetFirewallRule affichera toutes les règles de pare-feu existantes. Il y a beaucoup de, par défaut, donc pour le prouver, nous prenons le premier 10.

Get-NetFirewallRule | Select-Object DisplayName, Enabled, Direction, Action -First 10

De nombreuses propriétés sont renvoyées par Get-NetFirewallRule. Même si nous n'énumérons qu'une seule des propriétés ci-dessus, fonctionnement Get-NetFirewallRule | Select-Object * -First 1, listera tous les disponibles.

Créer une nouvelle règle de pare-feu

Il existe de nombreuses façons de créer une nouvelle règle de pare-feu, mais la commande qui fait cela est [Net-NewFirewallRule](<https://docs.microsoft.com/en-us/powershell/module/netsecurity/new-netfirewallrule?view=win10-ps>). Les propriétés de base qui doivent être complétées sont:

  • DisplayName – Le nom convivial de la règle de pare-feu.
  • Direction – Soit pour bloquer le trafic sortant de l'ordinateur. Outbound ou entrer dans l'ordinateur Inbound
  • Action – Quelle action prendre si la règle est respectée, Allow O Block

$Params = @{ "DisplayName" = 'Block WINS' "Direction" = 'Inbound' "Action" = 'Block' "RemoteAddress" = 'WINS' }

New-NetFirewallRule @Params
Si il Name le paramètre n'est pas utilisé, alors un GUID aléatoire est utilisé. Les DisplayName peut être lisible par l'homme, mais le Name a reçu un GUID aléatoire.

Modifier une règle de pare-feu existante

Que faire si nous voulons modifier une règle existante sans supprimer et recréer complètement la règle? Pour le faire, nous devons exécuter le Set-NetFirewallRule, et cela nous permettra de modifier la règle de pare-feu au besoin.

$Params = @{
	"DisplayName"   = 'Block WINS'
	"Action"        = 'Allow'
}

Set-NetFirewallRule @Params

D'autres compétences utiles que le Set-NetFirewallRule a est la capacité de fonctionner avec plusieurs règles en même temps. Cela peut être fait en localisant les règles par l'un des trois paramètres.

  • NameC'est la valeur par défaut et si les noms sont définis via un tube ou un tableau de chaînes, chacun d'eux sera agi sur.
  • DisplayNameSemblable à Name, plusieurs objets en pipeline ou un tableau de chaînes modifieront ces règles en conséquence.
  • DisplayGroup O GroupSi les règles sont groupées, toutes ces règles groupées peuvent être appliquées en même temps.

Supprimer une règle de pare-feu existante

Finalement, nous souhaitons supprimer la règle existante, puisqu'il est possible qu'il ne soit plus nécessaire. Pour faire ceci, exécuter la commande Remove-NetFirewallRule. Quand c'est le cas, il est souvent conseillé d'utiliser le WhatIf paramètre pour vérifier que la règle est correcte à supprimer.

Remove-NetFirewallRule -DisplayName "Block WINS"

Il est essentiel de faire attention à ce que le Remove-NetFirewallRule peut supprimer plusieurs règles en même temps. Ci-dessous un exemple de ce type de fonctionnalité. La règle suivante supprimera toutes les règles désactivées contenues dans la stratégie firewall_gpo dans le ad.local.test domaine.

Remove-NetFirewallRule -Enabled 'False' -PolicyStore 'ad.local.testfirewall_gpo'

Une commande utile est en cours d'exécution, mais potentiellement dangereux Remove-NetFirewallFule par soi-même, qui supprime toutes les règles de pare-feu locales statiques qui ont été créées. Si vous avez un GPO de domaine qui définit des règles de pare-feu, cela supprimera ceux qui pourraient entrer en conflit avec ces règles définies par l'objet de stratégie de groupe.

Fonctionnalité supplémentaire

De nombreuses autres commandes sont disponibles dans le NetSecurity module. Même si nous ne les couvrons pas tous ici, ci-dessous sont quelques commandes notables pour montrer à quel point le module est énorme.

  • Copy-NetFirewallRuleCette commande copiera une règle de pare-feu existante et tous les filtres associés dans le même magasin de stratégies ou dans un autre.
  • Disable-NetFirewallRuleCela désactivera une règle de pare-feu précédemment activée. La règle continuera d'exister, mais ne modifiera pas activement les données du réseau. Si vous exécutez cette commande sans aucun paramètre, désactivera toutes les règles actives sur l'ordinateur cible. Il est recommandé de toujours exécuter cette commande avec le WhatIf paramètre s'il ne cible pas une règle ou un ensemble de règles spécifique.
  • Enable-NetFirewallRuleComme lui Disable-NetFirewallRule, cette commande activera une règle précédemment désactivée ou un ensemble de règles. Si cette commande est exécutée sans aucun paramètre, activera toutes les règles précédemment désactivées. Il est recommandé de toujours exécuter cette commande avec le WhatIf paramètre s'il ne cible pas une règle ou un ensemble de règles spécifique.
  • Get-NetFirewallProfileCette commande affiche les alternatives actuellement configurées pour un profil spécifié, comme lui Domain, Private, O Public profils.
  • Get-NetFirewallSettingLes paramètres globaux du pare-feu peuvent être récupérés à l'aide de la Get-NetFirewallSetting commander. Ces paramètres incluent des options telles que les options de certificat, file d'attente de paquets ou listes d'autorisation.
  • Rename-NetFirewallRulePour renommer une règle de pare-feu existante, Utilisez le Rename-NetFirewallRule commander. Ceci est utile si une règle a été créée sans nom spécifique, donc un GUID aléatoire est reçu comme nom, et il est préférable d'avoir un nom lisible par l'homme attribué.
  • Set-NetFirewallProfilePour déterminer des paramètres spécifiques pour des profils individuels, utiliser el Set-NetFirewallProfile commander. Cela permet à chaque profil d'avoir des configurations différentes.
  • Set-NetFirewallSettingCette commande configure les comportements de pare-feu globaux qui s'appliquent quel que soit le profil réseau actuellement utilisé..
  • Show-NetFirewallRuleCette commande d'aide affichera les règles de pare-feu et leurs objets associés dans une liste formatée.

Il y a une fonctionnalité IPSec étendue contenue dans le module. Les commandes listées précédemment sont celles qui fonctionnent dans la configuration standard du pare-feu Windows.

conclusion

Il existe de nombreuses commandes disponibles pour gérer le pare-feu Windows. Ce post n'en aborde que quelques-uns, en particulier les commandes les plus importantes à lister, créer, modifier et effacer rapidement les règles de pare-feu. Même les configurations de pare-feu complexes peuvent être réalisées strictement via la ligne de commande en utilisant le NetSecurity Module PowerShell!

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.