Как управлять правилами брандмауэра Windows с помощью PowerShell — CloudSavvy IT

Логотип Powershell

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

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

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

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

Модуль импорта-имя «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 — понятное имя правила брандмауэра.
  • Направление — блокировать ли исходящий или входящий в компьютер входящий трафик.
  • Действие — какое действие предпринять, если правило соблюдается, разрешить или заблокировать.

$ Params = @ {«DisplayName» = ‘Блокировать WINS’ «Direction» = ‘Inbound’ «Action» = ‘Блокировать’ «RemoteAddress» = ‘WINS’}

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

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

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

$ Params = @ {«DisplayName» = ‘Блокировать WINS’ «Action» = ‘Разрешить’} Set-NetFirewallRule @Params

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

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

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

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

Remove-NetFirewallRule -DisplayName «Блокировать WINS»

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

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

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

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

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

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

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

Заключение

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

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

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *