Powershell – изменяем фильтры адресов в правилах фаэрвола


В продолжение темы Наводим порядок с правилами фаэвола для Remote Desktop.

Ситуация: есть политика GPO для администраторов, которая применяется к серверам и добавляет правила фаэрвола разрешающие доступ по RDP к ним; в правилах указан список адресов (Remote Address), с которых разрешён доступ.

Задача: изменить список адресов Remote Address правил фаэрвола группы Remote Desktop

Например, появился новый администратор, и надо добавить его адрес.

Более общая ситуация: есть политика GPO для администраторов, которая применяется к серверам и добавляет правила фаэрвола разрешающие доступ к различным службам на серверах (RDP,EventLog,Shares, DCOM, WMI и т.д.); все правила имеют одинаковый список адресов (Remote Address), с которых разрешён доступ.

Задача: изменить список адресов Remote Address для всех правил фаэрвола в политике

Проблема заключается в том, что в групповой политике может быть несколько десятков правил, и править вручную каждое правило, например, добавляя ip-адрес нового администратора, очень трудоёмко.

Начиная с версии Windows Server 2012 существуют командлеты Powershell, которые позволяют модифицировать правила Windows Firewall with Advanced Security. В том числе возможно редактировать правила фаэрвола в доменной групповой политике.

Ниже пример скрипта для решения поставленных задач:


# Кэшируем политику
# формат: домен\ИмяПолитикиКакВоснасткеGroupPolicyManagement
$name_gpo =  "domain.ru\SERVERpolicy"
$gpo_cache = Open-NetGPO $name_gpo

# Получаем список правил
# все правила
#Get-NetFirewallRule -GPOSession $gpo_cache | 
# правила из группы Remote Desktop
Get-NetFirewallRule -GPOSession $gpo_cache -DisplayGroup "Remote Desktop" | 
    # Для каждого правила получаем его фильтр
    Get-NetFirewallAddressFilter | 
    % { # Для каждого фильтра изменяем список удаленных адресов (с которых разрешается подключение)
        $_.RemoteAddress = $_.RemoteAddress + "172.1.1.1"; $_ 
    } |
    # Записываем изменение в кэш политики
    Set-NetFirewallAddressFilter

# Сохраняем политику
Save-NetGPO $name_gpo
Реклама

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

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: