Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article fournit des conseils complets pour le déploiement de Zero Trust DNS (ZTDNS) dans des environnements Windows 11 Entreprise, y compris les étapes obligatoires, les options de configuration et les considérations relatives au déploiement.
Conditions préalables
Avant de déployer ZTDNS, vérifiez que votre environnement répond aux exigences suivantes :
Configuration requise
- build Windows 11 : l’appareil doit exécuter la dernière build de Windows 11 Entreprise ou Windows 11 Éducation.
- Privilèges d’administrateur : toutes les commandes de configuration ZTDNS nécessitent un accès au niveau de l’administrateur.
- Serveur DNS chiffré accessible : le serveur DNS chiffré doit être accessible à partir de l’appareil.
Configuration requise du serveur DNS de protection
Pour que les serveurs DNS soient compatibles avec ZTDNS, ils doivent répondre aux exigences suivantes :
- Prise en charge du DNS chiffré : doit prendre en charge les protocoles DNS sur HTTPS (DoH) ou DNS sur TLS (DoT).
- Application de la stratégie : doit uniquement résoudre les noms de domaine autorisés en fonction des stratégies de l’organisation.
- Authentification du client à l’aide de mTLS (facultatif) : doit prendre en charge le protocole TLS mutuel (mTLS) pour les stratégies de résolution par client à l’aide de certificats clients.
Exceptions manuelles
Certaines applications et services qui n’utilisent pas DNS pour découvrir des points de terminaison nécessitent l’autorisation manuelle d’exceptions pour que les plages d’adresses IP nécessaires continuent à fonctionner une fois que ZTDNS est activé. Les applications Microsoft 365 comme Exchange, SharePoint, Teams et Office nécessitent des exceptions manuelles pour les plages d’adresses IP répertoriées ici.
Modes de déploiement
ZTDNS prend en charge deux modes opérationnels :
- Mode audit : journalise tous les comportements ZTDNS attendus sans réellement bloquer le trafic sortant. Ce mode permet aux administrateurs de comprendre les modèles de trafic avant l’application complète. Fortement recommandé pour les tests et la validation initiaux, il offre une visibilité sur les scénarios de blocage potentiels sans interrompre la connectivité réseau.
- Mode d’application : bloque activement le trafic non approuvé tout en conservant une journalisation complète. Activez uniquement le mode d’application après avoir soigneusement testé le mode d’audit et confirmé que toutes les exceptions requises sont configurées.
Déploiement de ZTDNS à l’aide de netsh
Procédez comme suit pour déployer ZTDNS :
Étape 1 : Configurer les paramètres DNS de l’application
Vérifiez que toutes les applications utilisent le client DNS Windows au lieu d’implémentations DNS personnalisées :
- Microsoft Edge : Configurer la stratégie BuiltInDnsClientEnabled pour désactiver le client DNS personnalisé
- Google Chrome : Configurer la stratégie BuiltInDnsClientEnabled pour désactiver le client DNS personnalisé
- Autres applications : passez en revue et configurez des paramètres similaires pour d’autres navigateurs et applications à l’aide de leurs clients DNS personnalisés
Étape 2 : Ajouter des exceptions d’autorisation manuelles
Avant d’activer ZTDNS, configurez des exceptions pour les applications qui nécessitent des connexions IP directes :
Services Microsoft 365
Ajoutez des exceptions pour les services Microsoft 365 qui nécessitent des exceptions d’autorisation manuelles pour maintenir la connectivité.
netsh ztdns add exception name=M365Services description="Microsoft 365 IP ranges" subnets=192.0.2.128/25,198.51.100.0/24,3fff::/48,3fff:123::/38
Applications de téléconférence
Les applications de téléconférence comme Teams utilisent WebRTC, qui négocie les adresses IP des homologues dans un tunnel TLS et n’a aucune visibilité DNS. Ces sous-réseaux IP sont également documentés publiquement et doivent autoriser manuellement des exceptions pour que l’application fonctionne avec ZTDNS.
netsh ztdns add exception name=TeamsWebRTC description="Teams WebRTC IP ranges" subnets=3fff::/48,3fff:123::/38
Exceptions d’application personnalisée
Les applications et services personnalisés essentiels à la productivité des employés qui ne découvrent pas de points de terminaison via DNS ou n’utilisent pas d’adresses IP codées en dur nécessitent l’autorisation manuelle des exceptions pour fonctionner correctement après l’activation de ZTDNS.
netsh ztdns add exception name=AppName description="Description of AppName" subnets=192.0.2.128/25,198.51.100.0/24,3fff::/48,3fff:123::/38
Étape facultative : Authentification du client avec mTLS
Si votre serveur DNS approuvé prend en charge l’authentification client à l’aide du protocole TLS mutuel (mTLS) :
Configurer des autorités de certification approuvées
Définissez des hachages de certificat d’autorité de certification approuvé pour valider le certificat du serveur DNS :
netsh ztdns set trustedca certhashes=00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff,11112233445566778899aabbccddeeff00112233445566778899aabbccddeeff
Configurer des certificats clients
Définissez les hachages de certificat client et les OID d’utilisation de clé étendue (EKU) :
netsh ztdns set clientcert certhashes=00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff,00112233445566778899aabbccddeeff00112233 ekus=1.3.6.1.4.1.311.64.256,1.3.6.1.4.1.311.64.255
Étape 3 : Configurer un serveur DNS approuvé
Ajoutez un ou plusieurs serveurs DNS de protection qui prennent en charge DoH ou DoT :
Serveur DNS sur HTTPS (DoH)
netsh ztdns add server type=doh address=203.0.113.0 template=https://doh.resolver.example/dns-query priority=0
Serveur DNS sur TLS (DoT)
netsh ztdns add server type=dot address=2001:db8::1 hostname=dot.resolver.example priority=1
Étape 4 : Activer ZTDNS en mode audit
Important : Commencez toujours par le mode audit pour valider la configuration avant d’activer l’application :
netsh ztdns set state enable=yes audit=yes
Cette commande active la journalisation ZTDNS sans bloquer le trafic, ce qui vous permet de :
- Identifier les applications qui peuvent nécessiter des exceptions
- Valider la configuration du serveur DNS
- Surveiller les modèles de trafic avant l’application
Étape 5 : Surveiller et valider
Après avoir activé le mode audit :
- Surveiller les journaux ZTDNS pour les modèles de trafic bloqué
- Ajouter des exceptions en fonction des besoins
- Vérifier que toutes les applications critiques fonctionnent correctement
- Examiner et ajuster les stratégies de résolution de noms sur un serveur DNS approuvé
Étape 6 : Activer le mode d’application
Après des tests approfondis en mode audit, activez l’application :
netsh ztdns set state enable=yes audit=no
Étape 7 : Redémarrage (recommandé)
Bien qu’un redémarrage ne soit pas nécessaire pour activer la fonctionnalité ZTDNS, nous vous recommandons de redémarrer l’appareil après l’activation de ZTDNS pour vous assurer que les applications ne continuent pas à utiliser des adresses IP mises en cache que ZTDNS ne connaît pas ou pour arrêter les connexions existantes qui n’ont pas été approuvées par la stratégie.
Déploiement de ZTDNS à l’aide de JSON
Pour simplifier la gestion de la configuration ZTDNS, envisagez de déployer ZTDNS à l’aide d’un fichier JSON avec toutes les configurations nécessaires.
Afficher les paramètres actuels au format JSON
netsh ztdns show settings
Enregistrer la configuration dans un fichier JSON (exécution via PowerShell)
netsh ztdns show settings | Out-File ztdns_config.json
Configurer à l’aide d’un fichier JSON
netsh ztdns set settings json=ztdns_config.json
Modifier l’état du service ZTDNS à l’aide de JSON
netsh ztdns set state json=state_config.json
Exemple de configuration JSON
L’exemple suivant montre un exemple complet de fichier de configuration JSON :
{
"config": {
"flags": 511,
"enableZtdns": "whenready",
"auditMode": false,
"blockLocalIps": false,
"allowHostsFile": false,
"enableForwarder": false,
"maxRecordAge": 86400,
"allowICSDHCPserver": false,
"serviceNameRefreshTimeout": 1800
},
"rules": {
"app_name": {
"description": "Exception for app_name",
"flags": 0,
"subnets": ["192.0.2.1", "2001:db8::/64"]
},
"app_name2": {
"description": "Exception for app_name2",
"flags": 0,
"subnets": ["192.0.2.1", "2001:db8::/64"]
}
},
"clientCerts": {
"flags": 0,
"hashes": ["00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff", "00112233445566778899aabbccddeeff00112233"],
"ekus": ["1.3.6.1.4.1.311.64.256", "1.3.6.1.4.1.311.64.255"]
},
"trustedCas": {
"flags": 0,
"hashes": ["00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff", "11112233445566778899aabbccddeeff00112233445566778899aabbccddeeff"]
},
"servers": {
"1.1.1.1": {
"flags": 0,
"priority": 0,
"dot": {
"hostname": null,
"port": 853
}
},
"8.8.8.8": {
"flags": 0,
"priority": 0,
"doh": {
"template": "https://test.com/dns-query",
"port": 443
}
}
},
"message": "The operation completed successfully.",
"status": 0
}
Paramètres de configuration JSON
-
enableZtdns : défini sur
yes,noouwhenready(active lorsque les conditions préalables sont remplies) - auditMode : valeur booléenne pour le mode audit (true = audit, false = application)
- blockLocalIps : contrôle le trafic vers les adresses des ordinateurs locaux
- allowHostsFile : autorise le trafic vers les entrées dans le fichier hôtes Windows
- enableForwarder : permet à localhost de recevoir les requêtes DNS effectuées par les clients DNS d’application et de les transférer au serveur DNS approuvé via ZTDNS
- maxRecordAge : durée maximale (en secondes) pendant laquelle une adresse IP reste dans la liste autorisée après la résolution DNS
- serviceNameRefreshTimeout : délai entre les actualisations de la récupération du nom de service
Redémarrer (recommandé)
Bien qu’un redémarrage ne soit pas nécessaire pour activer la fonctionnalité ZTDNS, nous vous recommandons de redémarrer l’appareil après l’activation de ZTDNS pour vous assurer que les applications ne continuent pas à utiliser des adresses IP mises en cache que ZTDNS ne connaît pas ou pour arrêter les connexions existantes qui n’ont pas été approuvées par la stratégie.
Désactivation de ZTDNS
Si vous rencontrez des problèmes de connectivité inattendus lors du déploiement de ZTDNS :
netsh ztdns set state enable=no audit=no
Cette commande désactive immédiatement l’application de ZTDNS et restaure la connectivité réseau normale.