Palavras-chave dinâmicas do Firewall do Windows

Importante

Este artigo descreve recursos ou configurações que estão em versão prévia. O conteúdo está sujeito a alterações e pode ter dependências de outros recursos ou serviços em versão prévia.

O Firewall do Windows inclui uma funcionalidade chamada palavras-chave dinâmicas, que simplifica a configuração e o gerenciamento do Firewall do Windows.

Com palavras-chave dinâmicas, você pode definir um conjunto de intervalos de endereços IP, FQDNs (nomes de domínio totalmente qualificados) e opções de autoresolution , às quais uma ou mais regras de Firewall podem se referir.

Configurar palavras-chave dinâmicas

Para configurar palavras-chave dinâmicas, você pode usar:

  • CSP do firewall, que pode ser usado com uma solução MDM (mobile Gerenciamento de Dispositivos) como Microsoft Intune
  • Windows PowerShell

Dica

Microsoft Intune oferece uma experiência de gerenciamento simplificada chamada grupos de configurações reutilizáveis. Para obter mais informações, consulte Adicionar grupos de configurações reutilizáveis a perfis para regras de Firewall.

Este artigo descreve como configurar palavras-chave dinâmicas usando Windows PowerShell.

Palavras-chave dinâmicas e nomes de domínio totalmente qualificados (FQDN)

As palavras-chave dinâmicas podem ser configuradas definindo um conjunto de intervalos de endereços IP ou FQDNs. Aqui estão coisas importantes a serem consideradas ao usar FQDNs:

  • O suporte do FQDN é para reduzir a sobrecarga do gerenciamento de regras DE IP em que os endereços IP são dinâmicos e mudam com frequência
  • FQDNs não são uma substituição para endereços IP em todos os cenários. Os endereços IP devem ser usados quando possível, por motivos de segurança e desempenho
    • As regras FQDN podem afetar o desempenho no ponto de extremidade, causado pela latência DNS e outros fatores
    • O FQDN não é um serviço DNS seguro. A resolução FQDN usa a configuração DNS padrão do ponto de extremidade
  • Uma regra FQDN exige que uma consulta DNS aconteça para que esse FQDN seja resolvido em um endereço IP. O tráfego para endereços IP deve gerar uma consulta DNS para regras FQDN
    • As limitações incluem: sites acessados por proxy, serviços DNS seguros, determinadas configurações de túnel VPN, IPs armazenados em cache no ponto de extremidade
  • Embora PQDNs (nomes de domínio parcialmente qualificados) sejam permitidos, os FQDNs são preferenciais. Há suporte para curingas * para hosts, por exemplo *.contoso.com

Dois exemplos de regras FQDN são:

  • Bloquear todas as saídas e entradas por padrão e permitir tráfego de saída específico
  • Bloquear toda a entrada por padrão e bloquear algum tráfego de saída específico

Observação

As regras FQDN de entrada não têm suporte nativo. No entanto, é possível usar scripts de pré-hidratação para gerar entradas DE IP de entrada para as regras.

Cuidado

A configuração padrão de Regras bloqueadas para saída pode ser considerada para determinados ambientes altamente seguros. No entanto, a configuração da regra de entrada nunca deve ser alterada de uma maneira que permita o tráfego por padrão.

Em ambientes de alta segurança, um inventário de todos os aplicativos deve ser mantido. Os registros devem incluir se um aplicativo requer conectividade de rede. Os administradores devem criar novas regras específicas para cada aplicativo que precisa de conectividade de rede e empurrar essas regras centralmente, usando uma solução de gerenciamento de dispositivos.

Funções e limitações conhecidas

O recurso FQDN do Firewall do Windows usa o driver de chamada externo da Proteção de Rede para inspecionar respostas DNS em que a consulta DNS corresponde às regras do FQDN. Algumas funções e limitações importantes do recurso são:

  • O componente Proteção de Rede não executa periodicamente consultas DNS. Ele requer um aplicativo para executar uma consulta DNS
  • O Firewall do Windows libera todos os endereços IP resolvidos armazenados na reinicialização do dispositivo
  • A proteção de rede não inspeciona de forma síncrona a resposta DNS, pois não contém o pacote UDP durante a inspeção. O resultado é uma condição potencial em que um aplicativo, após receber a resposta DNS, tenta se conectar, mas é bloqueado se for mais rápido que a atualização da regra de firewall
    • Geralmente, os aplicativos têm lógica de repetição para uma conexão com falha inicial e, como resultado, o problema é transparente para o usuário final
    • Na ocasião, um componente pode não ter lógica de repetição na falha de conexão inicial. O que é resolvido de duas maneiras:
      • O usuário pode acessar a atualização no aplicativo que está usando e ele deve se conectar com êxito
      • Os administradores podem usar os scripts de pré-hidratação com tato, onde essa condição está ocorrendo em seu ambiente

Requisitos do recurso FQDN

Veja a seguir os requisitos para o recurso FQDN:

  • Microsoft Defender Antivírus deve ser ativado e executando a versão 4.18.2209.7 da plataforma ou posterior.
  • A Proteção de Rede deve estar no modo de bloqueio ou auditoria . Para obter mais informações, consulte Verificar se a proteção de rede está habilitada.
  • O DNS por HTTPS (DoH) deve ser desabilitado. Para configurar seu navegador preferencial, você pode usar as seguintes configurações:
  • As configurações de resolução DNS padrão do dispositivo se aplicam. Esse recurso não fornece alterações de segurança ou funcionalidade do DNS

    Dica

    Você também pode baixar o arquivo ADMX de lá, seguir as instruções e configurá-lo por meio de gpedit.msc para testes locais.

Gerenciar palavras-chave dinâmicas com Windows PowerShell

Esta seção fornece alguns exemplos de como gerenciar palavras-chave dinâmicas usando Windows PowerShell. Algumas coisas importantes a serem consideradas ao usar palavras-chave dinâmicas são:

  • Todos os objetos de palavra-chave dinâmicos devem ter um GUID (identificador exclusivo) para representá-los
  • Uma regra de firewall pode usar palavras-chave dinâmicas em vez de definir explicitamente endereços IP para suas condições
  • Uma regra de firewall pode usar palavras-chave dinâmicas e intervalos de endereços definidos estaticamente
  • Um objeto de palavra-chave dinâmico pode ser reutilizado em várias regras de firewall
  • Se uma regra de firewall não tiver endereços remotos configurados, a regra não será imposta. Por exemplo, se uma regra estiver configurada apenas AutoResolve com objetos que ainda não foram resolvidos
  • Se uma regra usar várias palavras-chave dinâmicas, a regra será imposta para todos os endereços que estão resolvidos no momento . A regra é imposta mesmo que haja objetos não resolvidos. Quando um endereço de palavra-chave dinâmico é atualizado, todos os objetos de regra associados têm seus endereços remotos atualizados
  • O Windows não impõe nenhuma dependência entre uma regra e um endereço de palavra-chave dinâmico e qualquer objeto pode ser criado primeiro. Uma regra pode fazer referência a IDs dinâmicas de palavra-chave que ainda não existem, nesse caso, a regra não é imposta
  • Você pode excluir um endereço de palavra-chave dinâmico, mesmo que ele esteja em uso por uma regra de firewall

Permitir saída

Aqui está um script de exemplo para permitir um FQDN do PowerShell. Substitua o valor da $fqdn variável pelo FQDN que você deseja bloquear (linha nº 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

Endereços de palavra-chave dinâmicos podem ser criados com o AutoResolve parâmetro definido como $true ou $false. Se AutoResolve estiver definido como $true, o Windows tentará resolve o palavra-chave para um endereço IP.

Bloquear saída

Aqui está um script de exemplo para bloquear um FQDN do PowerShell. Substitua o valor da $fqdn variável pelo FQDN que você deseja bloquear (linha nº 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

Exibir regras de resolve automática e endereços IP resolvidos associados

Este exemplo mostra como exibir todos os endereços de palavra-chave dinâmicos que têm o AutoResolve parâmetro definido como $true e os endereços IP resolvidos associados.

Get-NetFirewallDynamicKeywordAddress -AllAutoResolve

Observação

Os endereços IP não serão preenchidos até que a consulta DNS seja observada.

Hidratar regras FQDN

Os scripts de exemplo a seguir leem a configuração atual do Firewall do Windows, extraem regras baseadas em FQDN e executam a resolução DNS em cada domínio. O resultado é que os endereços IP dessas regras são "prehidratados".

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

Um script semelhante pode ser usado para executar a resolução DNS usando nslookup.exe:

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

Se estiver usando nslookup.exe, você deverá criar uma regra de firewall de saída ao usar a postura de saída do bloco . Aqui está o comando para criar a regra de saída para 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

Bloquear todas as saídas e permitir alguns FQDNs

No próximo exemplo, uma lista de aplicativos é analisada para avaliação do FQDN. Os FQDNs listados nos scripts foram observados ao inspecionar o tráfego no primeiro lançamento do Microsoft Edge.

Importante

Esta não é uma lista completa nem uma recomendação. É um exemplo de como um aplicativo deve ser avaliado para garantir a conectividade e a função adequadas.

Para saber mais sobre os requisitos do Microsoft Edge para conectividade com a Internet, confira lista de permissões para pontos de extremidade do 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
}

Para obter mais informações sobre os cmdlets do PowerShell usados para gerenciar palavras-chave dinâmicas, consulte:

Para obter informações sobre a estrutura da API, consulte Palavras-chave dinâmicas do Firewall.