Главная

Friday, 8 October 2021

Настройка Windows Firewall с помощью PowerShell.

Всем привет.

Сегодня пройдемся по Firewall с помощью PowerShell в описании Сергея Яремчука. Оригинал был напечатан в журнале "Системный администратор", № 2014/12.

В будущих релизах Windows Microsoft планирует отказаться от использования утилит netsh; для настройки сетевых функций и Windows Firewall будут применяться только командлеты PowerShell.

В Windows Server 2012 и Windows 8 доступен соответствующий модуль NetSecurity, содержащий 27 командлетов для настройки брандмауэра Windows в режиме повышенной безопасности WFAS (Windows Firewall with Advanced Security), охватывающих все возможные настройки и полностью заменяющих netsh advfirewall.

Просмотреть их список очень просто:

PS> Import-Module NetSecurity

PS> Get-Command -Noun "*Firewall*"

Узнать подробную информацию по работе каждого можно с помощью командлета Get-Help. Знакомство упрощает то, что названия командлетов пересекаются с командами netsh. Разберем некоторые примеры. Смотрим текущие установки профилей:

PS> Get-NetFirewallProfile

Включаем все профили (Domain, Public, Private).

PS> Set-NetFirewallProfile -All -Enabled True

Вместо параметра All можем указать конкретный профиль:

PS> Set-NetFirewallProfile -Profile Domain -Enabled True

Установим для профиля Domain блокировку всех входящих как действие по умолчанию:

PS> Set-NetFirewallProfile –Name Domain –DefaultInboundAction Block


Командлет Set-NetFirewallProfile позволяет настроить все параметры профиля: журналирование, добавить IP, порт, протокол и многое другое. Например, можем исключить Ethernet-интерфейс из профиля Public, добавляем правило:

PS> Set-NetFirewallProfile -name Public -DisabledInterfaceAliases Ethernet

Все манипуляции с правилами производятся с помощью семи командлетов *-NetFirewallRule. Для просмотра установленных правил используем командлет Get-NetFirewallRule. Например, выберем только блокирующие правила:

PS> Get-NetFirewallRule -Enabled true -Action block

Создадим правило, блокирующее исходящие соединения для IE в двух профилях.

PS> New-NetFirewallRule -Program "C:\Program Files\Internet Explorer\iexplore.exe" -Action Block -Profile Domain, Private -DisplayName "Block IE" -Description "Block IE" -Direction Outbound

PS> New-NetFirewallRule -DisplayName "Allow Inbound OpenVPN Client" -Direction Inbound -LocalPort 1194 -Protocol UDP -Action Allow

Правило может содержать и прочие атрибуты – порт, протокол, интерфейс, направление, путь к программе и т.п. Для примера добавим к правилу протокол, порт и IP удаленной и локальной системы.

PS> Set-NetFirewallRule -DisplayName "Block IE" -Protocol TCP -RemotePort 80 -RemoteAddress "192.168.1.1" -LocalAddress "192.168.1.10"

Смотрим команды:

PS> Get-NetFirewallRule -DisplayName “*IE*”

Отключается правило очень просто:

PS> Disable-NetFirewallRule -DisplayName "Block IE"

Для удаления используется командлет RemoveNetfirewall-Rule. Параметр -DisplayGroup позволяет группировать правила, чтобы в дальнейшем задавать параметры сразу всем правилам в группе.

PS> Set-NetFirewallRule -DisplayGroup "Windows Firewall Remote Management" -Enabled True


1 comment:

  1. Get-NetConnectionProfile | Select Name,NetworkCategory

    ReplyDelete

А что вы думаете по этому поводу?