Брандмауэр Windows является встроенным инструментов операционной системы Windows. С его помощью можно создавать правила, чтобы, к примеру, заблокировать доступ определенного приложения к Интернету. В этой статье показано, как управлять правилами брандмауэра Windows с помощью PowerShell.
Вы можете легко настроить правила брандмауэра Windows с помощью графического интерфейса брандмауэра Windows. Он доступен с Панели управления или по команде [Пуск – Выполнить – wf.msc].
Но если требуется выполнять однотипную настройку на множестве компьютеров без централизованного управления, намного удобнее будет использовать PowerShell.
Разберёмся как это делается.
Брандмауэр Windows включает в себя три типа профилей:
- Частный профиль
- Гостевой (или общедоступный) профиль
- Профиль домена
По умолчанию все эти профили включены.
Для управления правилами брандмауэра Windows через PowerShell, вам понадобится несколько различных командлетов, входящих в модель NetSecurity. Посмотреть доступные командлеты можно командой:
Get-Command -Module NetSecurity
И надо всегда помнить, что запускать интерфейс PowerShell надо с правами локального администратора!
Для просмотра конфигурации профиля брандмауэра Windows, используйте команду:
Get-NetFirewallProfile -Name <имя профиля>
Для параметра Name доступны значения: Private, Public и Domain.
Включение и отключение брандмауэр Windows с помощью
PowerShell
Чтобы отключить брандмауэр Windows для всех профилей, используйте команду:
Set-NetFirewallProfile -All -Enabled False
Для отключения определённого профиля, вместо директивы -All используется директива -Name с указанием имени профиля. К примеру:
Set-NetFirewallProfile -Profile Domain -Enabled False
Аналогично, для включения профиля надо передать директиве -Enabled значение True.
Для проверки состояния профиля можно использовать команду:
Get-NetFirewallProfile | Format-Table Name, Enabled
Создание правил брандмауэра Windows и управление ими с помощью PowerShell
Теперь давайте посмотрим, как создавать правила брандмауэра Windows и управлять ими с помощью PowerShell.
Для создания нового правила брандмауэра Windows, вам необходимо использовать следующий командлет New-NetFirewallRule.
Допустим, вы хотите заблокировать программе доступ к Интернету в вашем профиле Wi-Fi. Для этого достаточно выполнить команду:
New-NetFirewallRule -Program «путь к программе» -Action Block -Profile <имя профиля> -DisplayName "Удобное и понятное имя правила" -Description "Описание правила" -Direction Outbound
Приведенная выше команда создаст исходящее правило (Outbound) для указанной программы.
Например, если вы хотите заблокировать доступ для MS Word:
New-NetFirewallRule -Program "C:\Program Files\Microsoft Office\Office16\WINWORD.EXE" -Action Block -Profile Domain -DisplayName "MS Word - блокировка доступа" -Description "Блокировка исходящего сетевого взаимодействия для MS Word" -Direction Outbound
С помощью Powershell и брандмауэра Windows можно блокировать и отдельные сайты. Но для этого надо знать все возможные IP-адреса для сайта. Получить список IP-адресов можно командой:
nslookup <имя веб-сайта>
После чего добавить правило:
New-NetFirewallRule -DisplayName "Блокировка сайта <имя сайта>" -Direction Outbound -LocalPort Any -Protocol Any -Action Block -RemoteAddress IP1, IP2
Включение, отключение и удаление правила брандмауэра с помощью Windows PowerShell
Существующие правила можно включать (enable), отключать (disable) и удалять (remove).
Для этого используются командлеты:
Enable-NetFirewallRule -DisplayName <имя правила>
Disable-NetFirewallRule -DisplayName <имя правила>
Remove-NetFirewallRule -DisplayName <имя правила>
Просмотр правила брандмауэра Windows в PowerShell
Чтобы просмотреть правила блокировки исходящего трафика, созданные вами в брандмауэре Windows, вам необходимо использовать следующую команду:
Get-NetFirewallRule -Action Block -Enabled True -Direction Outbound
Варьируя параметры директив -Action, -Enabled, -Direction, можно создавать различные выборки для всестороннего анализа.