Сегодня пройдемся по 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
Get-NetConnectionProfile | Select Name,NetworkCategory
ReplyDelete