Windows Server 2022: bloccare gli accessi ai domini Microsoft ed eliminare gli Event ID 1014 (DNS)

In ambienti isolati da Internet, Windows Server 2022 può generare numerosi Event ID 1014 (DNS) durante tentativi di contattare domini Microsoft. Questa guida operativa mostra come eliminare o ridurre tali eventi tramite GPO, WSUS/KMS interni, regole di firewall, sinkhole DNS e audit mirati.

Indice

Panoramica del problema

Evento coinvolto: Microsoft‑Windows‑DNS Client EventsID 1014“Name resolution for the name … timed out”.

Scenario tipico: server Windows Server 2022 senza accesso a Internet (o con DNS interni che non inoltrano verso l’esterno) provano a risolvere FQDN quali login.live.com, microsoft.com, windows.net, microsoftonline.com, office.com, ctldl.windowsupdate.com, time.windows.com e altri endpoint di telemetria, attivazione, aggiornamento e convalida certificati. La richiesta fallisce con timeout e viene registrato l’evento 1014.

Obiettivo: impedire o minimizzare i tentativi di connessione verso Internet e, in parallelo, pulire i log senza compromettere patching, sicurezza e licensing.

Principi guida

  • Centralizzare i blocchi (DNS/Firewall) per evitare configurazioni manuali su ogni host.
  • Selezionare con cura cosa disabilitare: aggiornamenti, firme antimalware e attivazione devono continuare a funzionare tramite infrastrutture interne (WSUS, KMS/AVMA, repository di firme).
  • Preferire una risposta DNS immediata (NXDOMAIN o sinkhole locale) al posto del timeout: riduce drasticamente gli Event ID 1014.
  • Verificare gli effetti con strumenti di monitoraggio (Event Viewer, packet capture) prima e dopo ogni modifica.

Soluzioni operative a colpo d’occhio

Area d’interventoAzione praticaNote / eventuali impattiComandi / Policy utili
Servizi WindowsDisabilitare componenti che chiamano Microsoft quando non necessari. Esempi: Windows Update (se non c’è WSUS), Telemetry/Diagnostic Data, Delivery Optimization, Windows Error Reporting. Per licensing, usare KMS interno o AVMA.Riduce drasticamente richieste verso domini MS. Verificare dipendenze (patching, protezioni, licensing).services.msc → disabilitare DiagTrack, valutare DoSvc, WerSvc
GPO Telemetry: Allow Telemetry = 0
Attivazione: KMS/AVMA all’interno.
Firewall locale o di reteRegole in uscita per bloccare IP/ASN Microsoft (lato perimeter o host). Meglio usare firewall di bordo con categorie “Microsoft” o liste IP aggiornate.Metodo centralizzato; valutare l’impatto su servizi legittimi futuri.New-NetFirewallRule -DisplayName "Block-Microsoft-Egress" -Direction Outbound -Action Block -RemoteAddress <lista IP/ASN>
File hosts (workaround mirato)Aggiungere 127.0.0.1 login.live.com, ecc. solo per test o eccezioni.Veloce ma non scalabile; evitare in ambienti grandi.notepad C:\Windows\System32\drivers\etc\hosts
DNS interno / sinkholeRestituire NXDOMAIN o instradare verso una “black‑hole” creando zone interne autorevoli per FQDN/domìni mirati (es. zona login.live.com o live.com con record vuoti).Elegante e centralizzato; elimina i 1014 perché il client riceve una risposta immediata (no timeout).PowerShell DNS: Add-DnsServerPrimaryZone -Name "login.live.com" -DynamicUpdate None
Attività pianificate e servizi terziAudit con Task Scheduler e servizi; disabilitare job che contattano Internet (es. Office Click‑to‑Run, updater di terze parti).Elimina chiamate residue non coperte da GPO/DNS/Firewall.Get-ScheduledTask / Disable-ScheduledTask; Get-Service / Set-Service
Monitoraggio e validazionePacket capture (Wireshark/pktmon), Event Viewer filtrato su 1014; metriche prima/dopo le modifiche.Fondamentale per capire l’origine esatta e validare la riduzione eventi.Get-WinEvent -LogName "Microsoft-Windows-DNS Client Events/Operational" -FilterXPath '*[System[(EventID=1014)]]'

Percorso consigliato passo‑passo

Raccogliere evidenze e dominî principali

Prima di toccare configurazioni, estrarre i FQDN più ricorrenti nei 1014:

# Top FQDN 1014 delle ultime 48 ore
$ev = Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-DNS Client Events/Operational'; Id=1014; StartTime=(Get-Date).AddHours(-48)}
$names = $ev | ForEach-Object { if ($ -and $.Message) { ($_.Message -split 'name\s+')[1] -split '\s' | Select-Object -First 1 } }
$names | Group-Object | Sort-Object Count -Descending | Select-Object Name,Count | Format-Table -Auto

Annotare i dominî (es. .microsoft.com, .windowsupdate.com, .windows.net, .microsoftonline.com, *.office.com, login.live.com, ctldl.windowsupdate.com, time.windows.com).

Stabilizzare Windows Update tramite WSUS

Se i server devono aggiornarsi in assenza di Internet, usare un WSUS interno. Nella GPO dei server, impostare:

  • Specify intranet Microsoft update service locationEnabled e URL WSUS (http/https).
  • Do not connect to any Windows Update Internet locationsEnabled.
  • Configure Automatic Updates → pianificazione adatta alla manutenzione.
  • Delivery OptimizationDownload Mode = Bypass.

Queste impostazioni impediscono chiamate a .windowsupdate.com, .microsoft.com e riducono 1014 correlati all’update.

Ridurre Telemetry e comunicazioni non essenziali

Per Windows Server 2022, applicare le seguenti policy GPO (Computer Configuration → Administrative Templates):

AmbitoPolicyValore
Windows Components → Data Collection and Preview BuildsAllow TelemetryDisabled (0)
Windows Components → Delivery OptimizationDownload ModeBypass
System → Internet Communication Management → Internet Communication settingsTurn off Windows Error ReportingEnabled
Windows Components → Windows Defender Antivirus → MAPSJoin Microsoft MAPS, Cloud-delivered protection, Automatic sample submissionDisabled (se l’ambiente è chiuso)

Valutare inoltre la disabilitazione dei seguenti servizi dove appropriato:

# Telemetry (DiagTrack), Delivery Optimization, Windows Error Reporting
Set-Service diagtrack -StartupType Disabled -ErrorAction SilentlyContinue
Set-Service dosvc     -StartupType Disabled -ErrorAction SilentlyContinue
Set-Service wersvc    -StartupType Disabled -ErrorAction SilentlyContinue

Nota: in ambienti con Defender attivo e aggiornato via WSUS/SMB, disabilitare solo le componenti cloud; mantenere motore e pianificazioni di scansione.

Attivazione: KMS o AVMA

Per evitare chiamate all’attivazione online (activation.sls.microsoft.com e simili), configurare:

  • KMS interno: registrare la chiave KMS sul KMS host (slmgr /ipk <KMS‑HOST‑KEY>; slmgr /ato) e puntare i client al KMS (slmgr /skms kms.contoso.local:1688).
  • AVMA per VM su Hyper‑V: usare la chiave AVMA corretta per l’edizione della VM (slmgr /ipk <AVMA‑KEY>); l’host Datacenter autentica l’attivazione all’interno dell’host.

NTP interno

Se vedi richieste a time.windows.com, definisci un server NTP aziendale e imposta w32time sui server:

w32tm /config /manualpeerlist:"ntp1.contoso.local ntp2.contoso.local" /syncfromflags:manual /update
net stop w32time &amp; net start w32time
w32tm /resync /force

Root Certificate Update in ambiente chiuso

La “Automatic Root Certificates Update” tenta di scaricare root/CRL da Internet. In ambienti chiusi:

  • GPO: Turn off Automatic Root Certificates UpdateEnabled.
  • Gestire i Trusted Root Certification Authorities via GPO aziendale.
  • Valutare con attenzione le OCSP/CRL checks: disabilitarle globalmente riduce sicurezza; meglio pubblicare CRL interne per i certificati aziendali.

DNS sinkhole: il metodo più pulito contro i 1014

Creare zone DNS autorevoli per i nomi che vuoi “assorbire” evita il timeout: il resolver ottiene una risposta immediata (NXDOMAIN o IP sinkhole) e non registra l’evento 1014. Due strategie:

  1. Zona per FQDN specifico (consigliata): es. login.live.com, settings-win.data.microsoft.com, v10.events.data.microsoft.com. La zona non contiene record A/CNAME (o include un record A verso un IP sinkhole interno).
  2. Zona per dominio base (più invasiva): es. live.com, windows.net, microsoftonline.com. Utile quando molteplici sottodomini generano traffico, ma richiede attenzione perché può interrompere funzionalità collaterali.

Esempi con PowerShell (DNS Server module):

# Zona mirata per un solo FQDN: risponde NXDOMAIN a tutto sotto login.live.com
Add-DnsServerPrimaryZone -Name "login.live.com" -DynamicUpdate None

Zona per dominio base con wildcard che punta a sinkhole (opzionale)

Add-DnsServerPrimaryZone -Name "windows.net" -DynamicUpdate None
Add-DnsServerResourceRecordA -ZoneName "windows.net" -Name "*" -IPv4Address "10.254.254.254" -TimeToLive 01:00:00

(Facoltativo) record @ per l'apice della zona se vuoi una risposta esplicita

Add-DnsServerResourceRecordA -ZoneName "windows.net" -Name "@" -IPv4Address "10.254.254.254" -TimeToLive 01:00:00 

Consiglio: preferisci NXDOMAIN (nessun record nella zona) se vuoi semplicemente eliminare i timeout. Se usi un IP sinkhole, registra quell’IP sul firewall con una regola “black‑hole” (DROP) per evitare tentativi TCP.

Firewall: egress filtering sensato

Il firewall di Windows non gestisce wildcard FQDN in modo nativo per le regole basate su “Remote Address”; per bloccare nomi, affidati a DNS sinkhole o a un proxy/firewall perimetrale in grado di filtrare per categoria/FQDN. Lato host, puoi comunque definire blocchi IP (utile per endpoint stabili come CDN o ASN noti):

# Esempio: blocco di IP/ASN raccolti dal monitoraggio
New-NetFirewallRule -DisplayName "Block-Egress-Microsoft" -Direction Outbound -Action Block `
  -RemoteAddress 13.64.0.0/11,20.33.0.0/16,20.190.0.0/16,40.64.0.0/10 `
  -Profile Any -Enabled True

Best practice: applica i blocchi IP al perimetro (firewall aziendale) dove puoi gestire liste dinamiche/ASN; usa il firewall host come cintura di sicurezza.

Attività pianificate e servizi di terze parti

Molte connessioni nascono da job e updater non evidenti. Esegui un audit e disabilita ciò che non serve:

# Elenco di attività note (CEIP/Compatibilità/Consolidator) e disabilitazione
Get-ScheduledTask | Where-Object {$_.TaskName -match 'CEIP|Customer|Consolidator|ProgramDataUpdater|Compatibility'} |
  Disable-ScheduledTask -ErrorAction SilentlyContinue

Office Click-to-Run (se non usato sui server)

Stop-Service ClickToRunSvc -ErrorAction SilentlyContinue
Set-Service  ClickToRunSvc -StartupType Disabled 

Defender: firme offline o percorso interno

Se usi Microsoft Defender su server isolati:

  • Configura un percorso interno (SMB/HTTP) per le definizioni (Define the order of sources for security intelligence updates → prima UNC interna).
  • Usa WSUS per distribuire Security intelligence updates.
  • Disabilita MAPS/Cloud‑delivered protection per evitare traffico verso *.wdcp.microsoft.com e simili.

Implementazioni dettagliate

GPO: impostazioni chiave (riassunto)

PercorsoPolicyImpostazioneEffetto atteso
Windows Components → Windows UpdateSpecify intranet Microsoft update service locationEnabled (http(s)://wsus…)Evita contatti con Windows Update pubblico
Windows Components → Windows UpdateDo not connect to any Windows Update Internet locationsEnabledBlocca fallback allo store/Windows Update
Windows Components → Data Collection and Preview BuildsAllow TelemetryDisabled (0)Stop raccolta diagnostica verso cloud
Windows Components → Delivery OptimizationDownload ModeBypassEvita connessioni DO esterne
System → Internet Communication ManagementTurn off Windows Error ReportingEnabledNon invia report a Microsoft
Windows Defender AV → MAPSCloud-delivered protection / MAPS / Sample submissionDisabledNessun contatto cloud antimalware
System → Time ServiceGlobal NTP settingsPeer interniNiente chiamate a time.windows.com

DNS sinkhole con GUI (DNS Manager)

  1. Apri DNS Manager sul server che ospita il DNS interno.
  2. Click destro su Forward Lookup ZonesNew Zone….
  3. Scegli Primary Zone, non permettere aggiornamenti dinamici.
  4. Inserisci il nome della zona (es. login.live.com oppure windows.net).
  5. Opzione A: non aggiungere record → qualsiasi query riceve una risposta autorevole “non esiste” (NXDOMAIN).
    Opzione B: aggiungi un record A * verso un IP sinkhole interno non routabile.

Pro‑tip: preferisci zone per FQDN mirati (ad es. settings-win.data.microsoft.com) quando vuoi bloccare un solo endpoint senza toccare l’intero dominio (data.microsoft.com).

Firewall host: esempi pratici

# Blocca tutto il traffico in uscita verso una lista IP (modulare)
$msRanges = @(
  "13.64.0.0/11",   # esempio Azure/Microsoft
  "20.33.0.0/16",
  "20.190.0.0/16",
  "40.64.0.0/10"
)
New-NetFirewallRule -DisplayName "Block-Microsoft-Ranges" -Direction Outbound -Action Block `
  -RemoteAddress ($msRanges -join ",") -Profile Any

(Facoltativo) loggare i drop

Set-NetFirewallProfile -All -LogBlocked True -LogFileName "C:\Windows\System32\LogFiles\Firewall\pfirewall.log" 

Nota: gli intervalli IP cambiano. Mantenerli aggiornati a mano è oneroso; per questo i blocchi IP vanno preferibilmente delegati al firewall perimetrale o sostituiti da un sinkhole DNS.

Analisi e verifica

Event Viewer: apri Applications and Services Logs → Microsoft → Windows → DNS Client Events → Operational, filtra su 1014 e confronta i conteggi prima/dopo le modifiche.

# Conteggio 1014 per giorno negli ultimi 7 giorni
1..7 | ForEach-Object {
  $start=(Get-Date).Date.AddDays(-$_)
  $end  =$start.AddDays(1)
  $n = (Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-DNS Client Events/Operational'; Id=1014; StartTime=$start; EndTime=$end}).Count
  [PSCustomObject]@{ Data=$start.ToString('yyyy-MM-dd'); Event1014=$n }
} | Format-Table -Auto

Packet capture: su server con restrizioni puoi usare pktmon (nativo) per intercettare DNS/HTTPS:

# Cattura base
pktmon start --capture --comp nics --pkt-size 0
Start-Sleep -Seconds 600
pktmon stop
pktmon etl2pcap pktmon.etl -o capture.pcapng

Domande frequenti

È meglio NXDOMAIN o un IP sinkhole (es. 10.254.254.254)?

NXDOMAIN è più “pulito”: il client riceve subito la risposta autorevole e smette di ritentare (niente timeout → niente Event 1014). L’IP sinkhole può essere utile se vuoi contare/vedere i tentativi lato firewall, ma richiede una regola DROP (o black‑hole) per evitare handshake e log aggiuntivi.

Posso creare una zona microsoft.com e stop?

È possibile, ma sconsigliato come prima mossa: potresti inibire risoluzioni necessarie (CRL/OCSP di certificati, scenari di attivazione, diagnostica). Meglio agire per FQDN critici o per domini secondari (windows.net, microsoftonline.com) dopo un’analisi dei log.

Il file hosts basta?

È un workaround utile per test o su pochi server. In produzione è oneroso e fragile: nessuna visibilità centrale e rischio di conflitti. Preferisci DNS o GPO.

Perché continuano comparire pochi 1014 anche dopo le modifiche?

Di solito sono residui da servizi terzi (agent, updater), dal primo riavvio post‑GPO o da host che risolvono nomi non ancora coperti dalle zone sinkhole. Riesegui l’analisi dei log per identificare i nuovi FQDN e aggiungili alle zone mirate.

Esempi di set minimo di FQDN/zone da considerare

Adatta la lista al tuo ambiente, partendo dai log reali:

  • Aggiornamenti: ctldl.windowsupdate.com, windowsupdate.com, delivery.mp.microsoft.com
  • Telemetry/Diagnostica: settings-win.data.microsoft.com, v10.events.data.microsoft.com
  • Accedi/Identità: login.live.com, login.microsoftonline.com
  • Cloud generico: .windows.net, .microsoft.com (usare con prudenza)
  • Office/Click‑to‑Run: officeclient.microsoft.com, config.office.com, officecdn.microsoft.com
  • NTP: time.windows.com

Checklist operativa

  1. Raccogli i FQDN più chiamati (Event 1014 e/o packet capture).
  2. Imposta WSUS e abilita le policy che impediscono fallback a Internet.
  3. Riduci Telemetry e disabilita servizi non essenziali (DiagTrack, WerSvc, DoSvc).
  4. Configura NTP interno e spegni le dipendenze da time.windows.com.
  5. Valuta Root/CRL e gestisci le radici via GPO; evita update cloud.
  6. Applica DNS sinkhole per i FQDN/domini osservati.
  7. Completa con firewall in uscita (perimetro e, all’occorrenza, host).
  8. Audita task e servizi di terze parti.
  9. Configura Defender con sorgenti di firme interne.
  10. Verifica il calo degli Event 1014 e affina la lista delle zone sinkhole.

Rischi e mitigazioni

RischioDescrizioneMitigazione
Interruzione funzionalitàBlocco troppo ampio (es. zona microsoft.com)Parti da FQDN mirati, test a ondate, monitora i log applicativi
Defender non aggiornatoMancato download delle firmeWSUS/UNC interno per definizioni; workflow di import manuale periodico
LicensingAttivazione fallitaKMS/AVMA in sede; verifica stato con slmgr /dli
Time driftOra non sincronizzataNTP interno ridondato; monitoraggio w32tm /query /status
Manutenzione liste IPBlocchi IP obsoletiPreferire DNS sinkhole e controlli a livello perimetrale

Playbook rapido: eliminare i 1014 in meno di un ciclo di manutenzione

  1. Esegui l’estrazione dei FQDN dai log 1014.
  2. Applica (o verifica) GPO: WSUS interno + Do not connect…, Telemetry=0, DO=Bypass, WER off.
  3. Configura NTP interno per i server.
  4. Crea 3–5 zone mirate per i top FQDN e lascia vuote (NXDOMAIN).
  5. Riavvia il servizio DNS client o il server (se appropriato) e ipconfig /flushdns.
  6. Monitora per 24–48h: i 1014 dovrebbero calare sensibilmente.
  7. Facoltativo: aggiungi un IP sinkhole e una regola DROP per visibilità sui tentativi residui.

Esempi di comandi utili

# Flush cache e verifica
ipconfig /flushdns
Get-DnsClientCache | Select-Object -First 20

Stato time service

w32tm /query /status
w32tm /query /configuration

Stato attivazione

slmgr /dli
slmgr /xpr

Eventi 1014 recenti con estrazione del nome

Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-DNS Client Events/Operational'; Id=1014; StartTime=(Get-Date).AddDays(-1)} |
Select-Object TimeCreated, @{n='Name';e={($_.Message -split 'for the name\s+')[1] -split '\s' | Select-Object -First 1}} 

Conclusioni

In un ambiente Windows Server 2022 senza Internet, gli Event ID 1014 sono sintomo di componenti che tentano (invano) la risoluzione di domini Microsoft. La combinazione di GPO ben impostate (WSUS/KMS/NTP/Telemetry), sinkhole DNS per i FQDN più rumorosi, filtri egress e un audit accurato delle attività pianificate consente di eliminare i timeout DNS e mantenere i log puliti, senza rinunciare a patching, sicurezza e compliance di licensing.


Indicazioni supplementari

  1. Sincronizzazione NTP: se i server cercano time.windows.com, impostare un server NTP interno o disabilitare la sincronizzazione esterna tramite w32time.
  2. Root Certificate Update: disabilitare l’attività/feature “Auto Root Update” se l’ambiente è chiuso e distribuire le radici via GPO.
  3. Aggiornamenti delle firme Defender: se usate Microsoft Defender, configurare un percorso interno (WSUS o UNC) o pianificare import manuali delle definizioni.

Implementando in combinazione GPO, WSUS/KMS interni, blocchi firewall/DNS e un audit accurato dei servizi, gli eventi 1014 dovrebbero cessare senza compromettere le funzionalità essenziali del sistema.

Indice