Agence web » Actualités du digital » Gestion des règles de pare-feu avec PowerShell sous Windows

Gestion des règles de pare-feu avec PowerShell sous Windows

Windows contient un pare-feu avancé robuste mais facile à utiliser, et en utilisant 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 bien documenté. N'oubliez pas que cet article s'applique uniquement au système d'exploitation Windows. Pour d'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, comme UFW ou IPTables sous Linux.

Chargement du NetSecurity Module

le NetSecurity , intégré et proposé par Microsoft, contient toutes les fonctionnalités nécessaires pour ajouter, supprimer et modifier des règles de pare-feu. Pour charger le module, importez simplement 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 en a beaucoup, par défaut, donc pour démontrer, nous sortons les 10 premiers.

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

De nombreuses propriétés sont renvoyées par Get-NetFirewallRule. Bien que nous ne répertorions que les propriétés ci-dessus, l'exécution Get-NetFirewallRule | Select-Object * -First 1, liste tous les éléments 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 le fait est (Net-NewFirewallRule)(). Les propriétés de base à remplir sont:

  • DisplayName – Le nom convivial de la règle de pare-feu
  • Direction – S'il faut bloquer le trafic quittant l'ordinateur Outbound ou venir dans l'ordinateur Inbound
  • Action – Quelle action entreprendre si la règle est respectée, Allow ou Block

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

New-NetFirewallRule @Params
Si la Name n'est pas utilisé, alors un GUID aléatoire est utilisé. le DisplayName peut être lisible par l'homme, mais la Name lui-même attribué 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 entièrement la règle. Pour ce faire, nous devons exécuter le Set-NetFirewallRule, et nous permettra de modifier la règle de pare-feu si nécessaire.

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

Set-NetFirewallRule @Params

Autres capacités utiles que le Set-NetFirewallRule a est la capacité de fonctionner sur plusieurs règles à la fois. Cela peut être fait en localisant les règles par l'un des trois paramètres.

  • NameIl s'agit de la valeur par défaut et si les noms sont définis via le pipeline ou un tableau de chaînes, chacun agira.
  • DisplayNameSemblable à Name, plusieurs objets pipelinés ou un tableau de chaînes modifieront ces règles en conséquence.
  • DisplayGroup ou GroupSi les règles sont regroupées, toutes ces règles regroupées peuvent être appliquées en même temps.

Supprimer une règle de pare-feu existante

Enfin, nous souhaitons supprimer la règle existante car elle pourrait ne plus être nécessaire. Pour ce faire, exécutez la commande Remove-NetFirewallRule. Dans ce cas, il est souvent judicieux d'utiliser le WhatIf pour vérifier que la règle est la bonne à supprimer.

Remove-NetFirewallRule -DisplayName "Block WINS"

Il est important de noter que le Remove-NetFirewallRule peut supprimer plusieurs règles à la fois. Un exemple de ce type de fonctionnalité est ci-dessous. La règle ci-dessous supprimera toutes les règles désactivées contenues dans la politique firewall_gpo dans le ad.local.test domaine.

Remove-NetFirewallRule -Enabled 'False' -PolicyStore 'ad.local.test\firewall_gpo'

Une commande utile, mais potentiellement dangereuse, est en cours d'exécution Remove-NetFirewallFule par lui-même, ce qui supprime toutes les règles de pare-feu local statique qui ont été créées. Si vous avez un objet de stratégie de groupe de domaine qui définit des règles de pare-feu, cela supprimera tout ce qui peut entrer en conflit avec ces règles définies par l'objet de stratégie de groupe.

Fonctionnalité supplémentaire

Il existe de nombreuses autres commandes disponibles dans le NetSecurity module. Bien que nous ne les couvrions pas tous ici, quelques commandes notables sont présentées ci-dessous pour démontrer l'étendue du module.

  • 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 existera toujours, mais ne modifiera pas activement les données réseau. Si vous exécutez cette commande sans aucun paramètre, elle désactivera toutes les règles actives sur l'ordinateur cible. Il est conseillé de toujours exécuter cette commande avec le WhatIf si elle ne cible pas une règle ou un ensemble de règles spécifique.
  • Enable-NetFirewallRuleComme le Disable-NetFirewallRule, cette commande activera une règle ou un ensemble de règles précédemment désactivées. Si cette commande est exécutée sans aucun paramètre, elle activera toutes les règles précédemment désactivées. Il est conseillé de toujours exécuter cette commande avec le WhatIf si elle ne cible pas une règle ou un ensemble de règles spécifique.
  • Get-NetFirewallProfileCette commande affiche les options actuellement configurées pour un profil spécifié, telles que le Domain, Private, ou Public profils.
  • Get-NetFirewallSettingLes paramètres globaux du pare-feu peuvent être récupérés à l'aide du Get-NetFirewallSetting commander. Ces paramètres incluent des options telles que les options de certificat, la mise en file d'attente des paquets ou les 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écifié, recevant ainsi un GUID aléatoire comme son nom, et il est préférable qu'un nom lisible par l'homme soit attribué.
  • Set-NetFirewallProfilePour définir des paramètres spécifiques pour des profils individuels, utilisez le Set-NetFirewallProfile commander. Cela permet à chaque profil d'avoir des paramètres distincts.
  • 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'assistance 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 répertoriées ci-dessus sont celles qui fonctionnent sur les paramètres standard du pare-feu Windows.

Conclusion

Il existe de nombreuses commandes disponibles pour gérer le pare-feu Windows. Cet article ne concerne que quelques-unes d'entre elles, notamment les commandes les plus importantes pour répertorier, créer, modifier et supprimer rapidement des règles de pare-feu. Même les configurations de pare-feu complexes peuvent être effectuées strictement via la ligne de commande en utilisant NetSecurity Module PowerShell!

★★★★★