Поделиться через


Ключевые слова динамического брандмауэра Windows

Важно.

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

Брандмауэр Windows включает функцию, называемую динамическими ключевыми словами, которая упрощает настройку брандмауэра Windows и управление ими.

С помощью динамических ключевых слов можно определить набор диапазонов IP-адресов, полных доменных имен (FQDN) и параметров авторесольюции , на которые может ссылаться одно или несколько правил брандмауэра.

Настройка динамических ключевых слов

Чтобы настроить динамические ключевые слова, можно использовать:

  • Брандмауэр CSP, который можно использовать с решением mobile Управление устройствами (MDM), например с Microsoft Intune
  • Windows PowerShell

Совет

Microsoft Intune предлагает упрощенный интерфейс управления, называемый группами повторно используемых параметров. Дополнительные сведения см. в статье Добавление групп повторно используемых параметров в профили для правил брандмауэра.

В этой статье описывается настройка динамических ключевых слов с помощью Windows PowerShell.

Динамические ключевые слова и полные доменные имена (FQDN)

Динамические ключевые слова можно настроить, определив набор диапазонов IP-адресов или полных доменных имен. Ниже приведены важные моменты, которые следует учитывать при использовании полных доменных имен.

  • Поддержка полного доменного имени позволяет сократить затраты на управление правилами IP-адресов, в которых IP-адреса являются динамическими и часто меняются.
  • Полные доменные имена не являются заменой IP-адресов во всех сценариях. IP-адреса должны использоваться по возможности для обеспечения безопасности и производительности.
    • Правила полного доменного имени могут влиять на производительность конечной точки, вызванную задержкой DNS и другими факторами.
    • Полное доменное имя не является безопасной службой DNS. Разрешение полного доменного имени использует конфигурацию DNS по умолчанию конечной точки.
  • Правило полного доменного имени требует выполнения запроса DNS, чтобы это полное доменное имя было разрешено в IP-адрес. Трафик к IP-адресам должен создавать ЗАПРОС DNS для правил полного доменного имени
    • Ограничения: веб-сайты, доступ к которых осуществляется через прокси-сервер, защищенные службы DNS, определенные конфигурации VPN-туннеля, кэшированные IP-адреса в конечной точке.
  • Хотя разрешены частично полные доменные имена (PQDN), рекомендуется использовать полные доменные имена. Подстановочные знаки * поддерживаются для узлов, например *.contoso.com

Ниже приведены два примера правил полного доменного имени.

  • Блокировать все исходящие и входящий трафик по умолчанию и разрешать определенный исходящий трафик
  • Блокировать все входящие по умолчанию и блокировать определенный исходящий трафик

Примечание.

Правила полного доменного имени для входящего трафика изначально не поддерживаются. Однако можно использовать скрипты предварительной гидратации для создания входящих IP-записей для правил.

Предостережение

Конфигурация по умолчанию заблокирована для правил исходящего трафика может рассматриваться для некоторых сред с высоким уровнем безопасности. Однако конфигурацию правила для входящего трафика никогда не следует изменять таким образом, чтобы трафик по умолчанию разрешался.

В средах с высоким уровнем безопасности необходимо вести инвентаризацию всех приложений. Записи должны содержать сведения о том, требуется ли приложению сетевое подключение. Администраторы должны создавать новые правила, характерные для каждого приложения, которому требуется сетевое подключение, и отправлять эти правила централизованно, используя решение для управления устройствами.

Функции и известные ограничения

Функция полного доменного имени брандмауэра Windows использует внешний драйвер выноски защиты сети для проверки ответов DNS, где запрос DNS соответствует правилам полного доменного имени. Ниже приведены некоторые важные функции и ограничения функции.

  • Компонент защиты сети не периодически выполняет ЗАПРОСы DNS. Требуется, чтобы приложение выполняло ЗАПРОС DNS.
  • Брандмауэр Windows сбрасывает все сохраненные разрешенные IP-адреса при перезапуске устройства
  • Защита сети не проверяет ответ DNS синхронно, так как она не содержит пакет UDP во время проверки. Результатом является потенциальное условие, при котором приложение после получения ответа DNS пытается подключиться, но блокируется, если это происходит быстрее, чем обновление правила брандмауэра.
    • Как правило, в приложениях есть логика повторных попыток для первоначального неудачного подключения, и в результате проблема становится прозрачной для конечного пользователя.
    • Иногда у компонента может не быть логики повторных попыток при первоначальном подключении. Это решается двумя способами:
      • Пользователь может выполнить обновление в приложении, которое он использует, и он должен успешно подключиться.
      • Администраторы могут тактично использовать скрипты предварительного восстановления , если это условие возникает в их среде.

Требования к функциям полного доменного имени

Ниже приведены требования к функции полного доменного имени.

  • Microsoft Defender Антивирусная программа должна быть включена и запущена версия 4.18.2209.7 платформы или более поздняя.
  • Защита сети должна находиться в режиме блокировки или аудита . Дополнительные сведения см. в разделе Проверка включения защиты сети.
  • Dns по протоколу HTTPS (DoH) должен быть отключен. Чтобы настроить предпочитаемый браузер, можно использовать следующие параметры:
  • Применяются параметры разрешения DNS устройства по умолчанию. Эта функция не обеспечивает безопасность DNS или изменения функциональных возможностей

    Совет

    Вы также можете скачать файл ADMX оттуда, следовать инструкциям и настроить его с помощью gpedit.msc для локального тестирования.

Управление динамическими ключевыми словами с помощью Windows PowerShell

В этом разделе приведено несколько примеров управления динамическими ключевыми словами с помощью Windows PowerShell. При использовании динамических ключевых слов следует учитывать несколько важных моментов:

  • Все динамические объекты ключевое слово должны иметь уникальный идентификатор (GUID) для их представления
  • Правило брандмауэра может использовать динамические ключевые слова вместо явного определения IP-адресов для своих условий.
  • Правило брандмауэра может использовать как динамические ключевые слова, так и статически определенные диапазоны адресов.
  • Динамический объект ключевое слово можно повторно использовать в нескольких правилах брандмауэра.
  • Если правило брандмауэра не имеет настроенных удаленных адресов, оно не применяется. Например, если правило настроено только AutoResolve для объектов, которые еще не разрешены
  • Если правило использует несколько динамических ключевых слов, оно применяется для всех адресов, которые в настоящее время разрешены. Правило применяется, даже если есть неразрешенные объекты. При обновлении динамического ключевое слово адреса для всех связанных объектов правил обновляются удаленные адреса.
  • Windows не применяет зависимости между правилом и динамическим адресом ключевое слово, и любой из объектов можно создать сначала. Правило может ссылаться на динамические идентификаторы ключевое слово, которые еще не существуют. В этом случае правило не применяется.
  • Динамический адрес ключевое слово можно удалить, даже если он используется правилом брандмауэра.

Разрешить исходящий трафик

Ниже приведен пример сценария, разрешающего полное доменное имя из PowerShell. Замените значение переменной $fqdn полным доменным именем, которое необходимо заблокировать (строка 1):

$fqdn = 'contoso.com'
$id = '{' + (new-guid).ToString() + '}'
New-NetFirewallDynamicKeywordAddress -id $id -Keyword $fqdn -AutoResolve $true
New-NetFirewallRule -DisplayName "allow $fqdn" -Action Allow -Direction Outbound -RemoteDynamicKeywordAddresses $id

Динамические адреса ключевое слово можно создать с параметром AutoResolve или $true$false. Если AutoResolve задано значение $true, Windows пытается разрешить ключевое слово в IP-адрес.

Блокировать исходящий трафик

Ниже приведен пример сценария для блокировки полного доменного имени из PowerShell. Замените значение переменной $fqdn полным доменным именем, которое необходимо заблокировать (строка 1):

$fqdn = 'contoso.com'
$id = '{' + (new-guid).ToString() + '}'
New-NetFirewallDynamicKeywordAddress -id $id -Keyword $fqdn -AutoResolve $true
New-NetFirewallRule -DisplayName "block $fqdn" -Action Block -Direction Outbound -RemoteDynamicKeywordAddresses $id

Отображение правил автоматического разрешения и связанных разрешенных IP-адресов

В этом примере показано, как отобразить все динамические ключевое слово адреса, для AutoResolve которых параметр имеет значение $true и связанные разрешенные IP-адреса.

Get-NetFirewallDynamicKeywordAddress -AllAutoResolve

Примечание.

IP-адреса не заполняются до тех пор, пока не будет соблюден запрос DNS.

Гидратация правил полного доменного имени

Следующие примеры скриптов считывают текущую конфигурацию брандмауэра Windows, извлекают правила на основе полного доменного имени и выполняют разрешение DNS для каждого домена. В результате IP-адреса для этих правил получаются "предварительно подготовленными".

Get-NetFirewallDynamicKeywordAddress -AllAutoResolve |`
ForEach-Object {
  if(!$_.Keyword.Contains("*")) {
    Write-Host "Getting" $_.Keyword
    resolve-dnsname -Name $_.Keyword -DNSOnly | out-null
  }
}

Аналогичный скрипт можно использовать для выполнения разрешения DNS с помощью nslookup.exe:

Get-NetFirewallDynamicKeywordAddress -AllAutoResolve |`
ForEach-Object {
  if(!$_.Keyword.Contains("*")) {
    Write-Host "Getting" $_.Keyword
    nslookup $_.Keyword
  }
}

При использовании nslookup.exeнеобходимо создать правило брандмауэра для исходящего трафика при использовании блокировки всех исходящих подключений. Ниже приведена команда для создания правила для исходящего трафика для nslookup.exe:

$appName = 'nslookup'
$appPath = 'C:\Windows\System32\nslookup.exe'
New-NetFirewallRule -DisplayName "allow $appName" -Program $appPath -Action Allow -Direction Outbound -Protocol UDP -RemotePort 53

Блокировка всех исходящих подключений и разрешение некоторых полных доменных имен

В следующем примере список приложений анализируется для оценки полного доменного имени. Полные доменные имена, перечисленные в скриптах, наблюдались при проверке трафика при первом запуске Microsoft Edge.

Важно.

Это не полный список и не рекомендация. Это пример того, как приложение должно быть оценено для обеспечения правильного подключения и функции.

Дополнительные сведения о требованиях Microsoft Edge для подключения к Интернету см. в списке разрешений для конечных точек Microsoft Edge.

$domains = @(
    '*.microsoft.com',
    '*.msftconnecttest.com',
    'assets.msn.com',
    'client.wns.windows.com',
    'config.edge.skype.com',
    'ctldl.windowsupdate.com',
    'dns.msftncsi.com',
    'login.live.com',
    'ntp.msn.com'
)

foreach ($domain in $domains) {
    $id = '{' + (New-Guid).ToString() + '}'
    New-NetFirewallDynamicKeywordAddress -Id $id -Keyword $domain -AutoResolve $true
    New-NetFirewallRule -DisplayName "allow $domain" -Action Allow -Direction Outbound -RemoteDynamicKeywordAddresses $id
}

Дополнительные сведения о командлетах PowerShell, используемых для управления динамическими ключевыми словами, см. в следующих разделах:

Сведения о структуре API см. в разделе Ключевые слова для динамических брандмауэров.