Управление правилами брандмауэра с помощью PowerShell в Windows — CloudSavvy IT

Логотип Powershell

Windows содержит надежный, но простой в использовании, усовершенствованный брандмауэр, а с помощью PowerShell 7 мы можем легко настроить брандмауэр из командной строки. В этой статье рассматриваются распространенные команды, используемые в брандмауэре Windows, и способы их использования.

Модуль NetSecurity хорошо документированный, Имейте в виду, что эта статья относится только к операционной системе Windows. Для других операционных систем существуют другие инструменты командной строки, которые можно использовать для выполнения функций такого же типа, как UFW или же IPTables в линуксе

Загрузка NetSecurity модуль

NetSecurity Модуль, встроенный и предлагаемый Microsoft, содержит все функции, необходимые для добавления, удаления и изменения правил брандмауэра. Чтобы загрузить модуль, просто импортируйте модуль, как показано ниже.

Import-Module -Name 'NetSecurity'

Список существующих правил брандмауэра

Командлет, Get-NetFirewallRule покажет все существующие правила брандмауэра. По умолчанию их много, поэтому для демонстрации мы выводим первые 10.

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

Есть много свойств, которые возвращаются Get-NetFirewallRule, Хотя мы перечислили только свойства выше, работает Get-NetFirewallRule | Select-Object * -First 1, перечислю все доступные.

Создать новое правило брандмауэра

Существует много разных способов создания нового правила брандмауэра, но команда, которая делает это, [Net-NewFirewallRule](), Основные свойства, которые необходимо заполнить:

  • DisplayName — понятное имя правила брандмауэра
  • Direction — стоит ли блокировать трафик, выходящий из компьютера Outbound или заходит в компьютер Inbound
  • Action — Какие действия предпринять, если соблюдено правило, Allow или же Block

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

New-NetFirewallRule @Params
Если Name параметр не используется, тогда используется случайный GUID. DisplayName может быть читаемым человеком, но Name Сам назначил случайный GUID.

Изменить существующее правило брандмауэра

Что если мы хотим изменить существующее правило, не удаляя и не воссоздавая правило полностью. Для этого мы должны запустить Set-NetFirewallRuleи позволит нам при необходимости изменить правило брандмауэра.

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

Set-NetFirewallRule @Params

Другие полезные способности, которые Set-NetFirewallRule Имеет способность работать с несколькими правилами одновременно. Это можно сделать, разместив правила по одному из трех параметров.

  • NameЭто значение по умолчанию, и если имена задаются через конвейер или строковый массив, то каждое из них будет действовать.
  • DisplayNameПохожий на NameНесколько конвейерных объектов или строковый массив изменят эти правила соответственно.
  • DisplayGroup или же GroupЕсли правила сгруппированы, все эти сгруппированные правила могут быть применены сразу.

Удалить существующее правило брандмауэра

Наконец, мы хотели бы удалить существующее правило, так как оно может больше не понадобиться. Для этого запустите команду Remove-NetFirewallRule, Когда вы делаете это, часто разумно использовать WhatIf параметр, чтобы убедиться, что правило является правильным для удаления.

Remove-NetFirewallRule -DisplayName "Block WINS"

Важно отметить, что Remove-NetFirewallRule Можно удалить несколько правил одновременно. Пример такого типа функциональности приведен ниже. Приведенное ниже правило удалит все отключенные правила, содержащиеся в политике firewall_gpo в ad.local.test домен.

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

Полезная команда, но потенциально опасная, выполняется Remove-NetFirewallFule сам по себе, который удаляет все статические локальные правила брандмауэра, которые были созданы. Если у вас есть объект групповой политики домена, который определяет правила брандмауэра, он удалит все, которые могут конфликтовать с этими правилами, определенными объектом групповой политики.

Дополнительная функциональность

Есть много других команд, доступных в NetSecurity модуль. Хотя мы не рассмотрим их все здесь, ниже показаны несколько заметных команд, чтобы продемонстрировать, насколько обширен модуль.

  • Copy-NetFirewallRuleЭта команда скопирует существующее правило брандмауэра и все связанные фильтры в одно или другое хранилище политик.
  • Disable-NetFirewallRuleЭто отключит ранее включенное правило брандмауэра. Правило все еще будет существовать, но не будет активно изменять любые сетевые данные. Если вы запустите эту команду без каких-либо параметров, она отключит все активные правила на целевом компьютере. Рекомендуется всегда запускать эту команду с WhatIf параметр, если он не нацелен на конкретное правило или набор правил.
  • Enable-NetFirewallRuleКак Disable-NetFirewallRuleЭта команда активирует ранее отключенное правило или набор правил. Если эта команда выполняется без каких-либо параметров, она активирует все ранее отключенные правила. Рекомендуется всегда запускать эту команду с WhatIf параметр, если он не нацелен на конкретное правило или набор правил.
  • Get-NetFirewallProfileЭта команда показывает текущие настроенные параметры для указанного профиля, такие как Domain, Private, или же Public профили.
  • Get-NetFirewallSettingГлобальные настройки брандмауэра можно получить с помощью Get-NetFirewallSetting команда. Эти параметры включают такие параметры, как параметры сертификата, очереди пакетов или списки авторизации.
  • Rename-NetFirewallRuleЧтобы переименовать существующее правило брандмауэра, используйте Rename-NetFirewallRule команда. Это полезно, если правило было создано без указанного имени, в результате чего в качестве имени получался случайный идентификатор GUID, и было бы предпочтительно назначить удобочитаемое имя.
  • Set-NetFirewallProfileЧтобы установить конкретные настройки для отдельных профилей, используйте Set-NetFirewallProfile команда. Это позволяет каждому профилю иметь различные настройки.
  • Set-NetFirewallSettingЭта команда настраивает поведение глобального брандмауэра, которое применяется независимо от используемого в данный момент сетевого профиля.
  • Show-NetFirewallRuleЭта вспомогательная команда покажет правила брандмауэра и связанные с ними объекты в отформатированном списке.

В модуле содержится обширная функциональность IPSec. Выше перечислены команды, которые работают в стандартных настройках брандмауэра Windows.

Вывод

Существует много доступных команд для управления брандмауэром Windows. В этой статье рассматриваются только некоторые из них, в частности наиболее важные команды для быстрого просмотра, создания, изменения и удаления правил брандмауэра. Даже сложные конфигурации брандмауэра могут быть выполнены строго через командную строку, используя NetSecurity Модуль PowerShell!

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован.