Parole chiave dinamiche di Windows Firewall

Importante

Questo articolo descrive le funzionalità o le impostazioni disponibili in anteprima. Il contenuto è soggetto a modifiche e può avere dipendenze da altre funzionalità o servizi in anteprima.

Windows Firewall include una funzionalità denominata parole chiave dinamiche, che semplifica la configurazione e la gestione di Windows Firewall.

Con le parole chiave dinamiche, è possibile definire un set di intervalli di indirizzi IP, nomi di dominio completi (FQDN) e opzioni di risoluzione automatica , a cui possono fare riferimento una o più regole del firewall.

Configurare parole chiave dinamiche

Per configurare parole chiave dinamiche, è possibile usare:

  • Firewall CSP, che può essere usato con una soluzione mobile Gestione dispositivi (MDM) come Microsoft Intune
  • Windows PowerShell

Suggerimento

Microsoft Intune offre un'esperienza di gestione semplificata denominata gruppi di impostazioni riutilizzabili. Per altre informazioni, vedere Aggiungere gruppi di impostazioni riutilizzabili ai profili per le regole del firewall.

Questo articolo descrive come configurare parole chiave dinamiche usando Windows PowerShell.

Parole chiave dinamiche e nomi di dominio completi (FQDN)

Le parole chiave dinamiche possono essere configurate definendo un set di intervalli di indirizzi IP o FQDN. Di seguito sono riportati alcuni aspetti importanti da considerare quando si usano I FQDN:

  • Il supporto fqdn consente di ridurre il sovraccarico della gestione delle regole IP in cui gli indirizzi IP sono dinamici e cambiano frequentemente
  • I nomi FQDN non sostituiscono gli indirizzi IP in tutti gli scenari. Gli indirizzi IP devono essere usati quando possibile, per motivi di sicurezza e prestazioni
    • Le regole FQDN possono influire sulle prestazioni dell'endpoint, causate dalla latenza DNS e da altri fattori
    • FQDN non è un servizio DNS sicuro. La risoluzione FQDN usa la configurazione DNS predefinita dell'endpoint
  • Una regola FQDN richiede che venga eseguita una query DNS per risolvere tale FQDN in un indirizzo IP. Il traffico verso gli indirizzi IP deve generare una query DNS per le regole FQDN
    • Le limitazioni includono: siti Web a cui si accede tramite proxy, servizi DNS sicuri, alcune configurazioni del tunnel VPN, indirizzi IP memorizzati nella cache nell'endpoint
  • Anche se i nomi di dominio parzialmente qualificati (PQDN) sono consentiti, i nomi FQDN sono preferiti. I * caratteri jolly sono supportati per gli host, ad esempio *.contoso.com

Due esempi di regole FQDN sono:

  • Blocca tutto il traffico in uscita e in ingresso per impostazione predefinita e consenti traffico in uscita specifico
  • Bloccare tutto il traffico in ingresso per impostazione predefinita e bloccare il traffico in uscita specifico

Nota

Le regole FQDN in ingresso non sono supportate in modo nativo. Tuttavia, è possibile usare script di pre-idratazione per generare voci IP in ingresso per le regole.

Attenzione

La configurazione predefinita di Bloccato per le regole in uscita può essere considerata per determinati ambienti altamente sicuri. Tuttavia, la configurazione della regola in ingresso non deve mai essere modificata in modo da consentire il traffico per impostazione predefinita.

In ambienti con sicurezza elevata, è necessario mantenere un inventario di tutte le app. I record devono includere se un'app richiede la connettività di rete. Gli amministratori devono creare nuove regole specifiche per ogni app che necessita di connettività di rete ed eseguire il push centralizzato di tali regole usando una soluzione di gestione dei dispositivi.

Funzioni e limitazioni note

La funzionalità FQDN di Windows Firewall usa il driver di callout esterno di Protezione rete per controllare le risposte DNS in cui la query DNS corrisponde alle regole FQDN. Alcune funzioni e limitazioni importanti della funzionalità sono:

  • Il componente Protezione rete non esegue periodicamente query DNS. È necessaria un'applicazione per eseguire una query DNS
  • Windows Firewall scarica tutti gli indirizzi IP risolti archiviati al riavvio del dispositivo
  • La protezione di rete non controlla in modo sincrono la risposta DNS, in quanto non contiene il pacchetto UDP durante l'ispezione. Il risultato è una potenziale condizione in cui un'applicazione, dopo aver ricevuto la risposta DNS, tenta di connettersi, ma viene bloccata se è più veloce dell'aggiornamento della regola del firewall
    • In genere, le applicazioni hanno una logica di ripetizione dei tentativi per una connessione non riuscita iniziale e di conseguenza il problema è trasparente per l'utente finale
    • In alcuni casi un componente potrebbe non avere una logica di ripetizione dei tentativi alla connessione iniziale non riuscita. Che è risolto in due modi:
      • L'utente può accedere all'aggiornamento nell'applicazione in uso e deve connettersi correttamente
      • Gli amministratori possono usare gli script di preidratazione in modo tattile, in cui questa condizione si verifica nel proprio ambiente

Requisiti delle funzionalità FQDN

Di seguito sono riportati i requisiti per la funzionalità FQDN:

  • Microsoft Defender Antivirus deve essere attivato ed eseguire la versione 4.18.2209.7 della piattaforma o versione successiva.
  • Protezione di rete deve essere in modalità di blocco o di controllo . Per altre informazioni, vedere Controllare se la protezione di rete è abilitata.
  • Dns su HTTPS (DoH) deve essere disabilitato. Per configurare il browser preferito, è possibile usare le impostazioni seguenti:
  • Si applicano le impostazioni di risoluzione DNS predefinite del dispositivo. Questa funzionalità non fornisce modifiche alla sicurezza o alla funzionalità DNS

    Suggerimento

    È anche possibile scaricare il file ADMX da qui, seguire le istruzioni e configurarlo tramite gpedit.msc per i test locali.

Gestire parole chiave dinamiche con Windows PowerShell

In questa sezione vengono forniti alcuni esempi su come gestire le parole chiave dinamiche usando Windows PowerShell. Alcuni aspetti importanti da considerare quando si usano parole chiave dinamiche sono:

  • Tutti gli oggetti parola chiave dinamici devono avere un identificatore univoco (GUID) per rappresentarli
  • Una regola del firewall può usare parole chiave dinamiche invece di definire in modo esplicito gli indirizzi IP per le relative condizioni
  • Una regola del firewall può usare sia parole chiave dinamiche che intervalli di indirizzi definiti in modo statico
  • Un oggetto parola chiave dinamico può essere riutilizzato in più regole del firewall
  • Se una regola del firewall non dispone di indirizzi remoti configurati, la regola non viene applicata. Ad esempio, se una regola è configurata con solo AutoResolve oggetti non ancora risolti
  • Se una regola usa più parole chiave dinamiche, la regola viene applicata per tutti gli indirizzi attualmente risolti. La regola viene applicata anche se sono presenti oggetti non risolti. Quando viene aggiornato un indirizzo di parola chiave dinamico, tutti gli oggetti regola associati hanno gli indirizzi remoti aggiornati
  • Windows non applica alcuna dipendenze tra una regola e un indirizzo di parola chiave dinamico e entrambi gli oggetti possono essere creati per primi. Una regola può fare riferimento agli ID parola chiave dinamici che non esistono ancora, nel qual caso la regola non viene applicata
  • È possibile eliminare un indirizzo di parola chiave dinamico, anche se è in uso da una regola del firewall

Consenti in uscita

Ecco uno script di esempio per consentire un fqdn da PowerShell. Sostituire il valore della $fqdn variabile con il nome di dominio completo da bloccare (riga 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

È possibile creare indirizzi di parole chiave dinamici con il AutoResolve parametro impostato su $true o $false. Se AutoResolve è impostato su $true, Windows tenta di risolvere la parola chiave in un indirizzo IP.

Blocca in uscita

Ecco uno script di esempio per bloccare un fqdn da PowerShell. Sostituire il valore della $fqdn variabile con il nome di dominio completo da bloccare (riga 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

Visualizzare le regole di risoluzione automatica e gli indirizzi IP risolti associati

In questo esempio viene illustrato come visualizzare tutti gli indirizzi di parole chiave dinamiche con il AutoResolve parametro impostato su $true e gli indirizzi IP risolti associati.

Get-NetFirewallDynamicKeywordAddress -AllAutoResolve

Nota

Gli indirizzi IP non verranno popolati fino a quando non viene osservata la query DNS.

Idratare le regole FQDN

Gli script di esempio seguenti leggono la configurazione corrente di Windows Firewall, estrae le regole basate su FQDN ed eseguono la risoluzione DNS in ogni dominio. Il risultato è che gli indirizzi IP per tali regole vengono "preidrati".

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

Uno script simile può essere usato per eseguire la risoluzione DNS usando nslookup.exe:

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

Se si usa nslookup.exe, è necessario creare una regola del firewall in uscita quando si usa il blocco di tutte le posizioni in uscita . Ecco il comando per creare la regola in uscita per 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

Bloccare tutti i nomi in uscita e consentire alcuni FQDN

Nell'esempio successivo viene analizzato un elenco di applicazioni per la valutazione fqdn. I nomi FQDN elencati negli script sono stati osservati durante l'ispezione del traffico al primo avvio di Microsoft Edge.

Importante

Non si tratta di un elenco completo né di una raccomandazione. Si tratta di un esempio di come un'applicazione deve essere valutata per garantire la connettività e la funzione appropriate.

Per altre informazioni sui requisiti di Microsoft Edge per la connettività Internet, vedere l'elenco degli endpoint di 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
}

Per altre informazioni sui cmdlet di PowerShell usati per gestire le parole chiave dinamiche, vedere:

Per informazioni sulla struttura dell'API, vedere Parole chiave dinamiche del firewall.