Управление правилами брандмауэра с помощью PowerShell в Windows – CloudSavvy IT
Windows содержит надежный, но простой в использовании, усовершенствованный брандмауэр, а с помощью PowerShell 7 мы можем легко настроить брандмауэр из командной строки. В этой статье рассматриваются распространенные команды, используемые в брандмауэре Windows, и способы их использования.
Модуль NetSecurity хорошо документированный, Имейте в виду, что эта статья относится только к операционной системе Windows. Для других операционных систем существуют другие инструменты командной строки, которые можно использовать для выполнения функций такого же типа, как UFW
или же IPTables
в линуксе
Загрузка NetSecurity
модуль
NetSecurity
Модуль, встроенный и предлагаемый Microsoft, содержит все функции, необходимые для добавления, удаления и изменения правил брандмауэра. Чтобы загрузить модуль, просто импортируйте модуль, как показано ниже.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
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!
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)