[DNS Sécurité] Configurer DNSSec et la signature des zones DNS

 

Principe de DNSSec

DNSSec est un mécanisme de sécurité permettant de signer les enregistrements DNS d'une zone afin de protéger votre environnement. La signature permet de réduire le risque de d'empoisonnement du cache du client DNS et d'éviter certaines attaques de type Man In The Middle.

DNSSEC est comparable à une autorité de certification qui utiliserait des certificats pour faire de la signature. 

En premier lieu, on utilise des clés de chiffrement asymétrique et il faut définir une racine de confiance que nous appellerons ancre de confiance. Une ancre de confiance est une information associée à une zone DNS. L'ancre de confiance permettra de valider la signature des enregistrements de ressources. Vous faites confiance à l'enregistrement DNS validé, car vous faites confiance à l'ancre, comme pour une autorité de certification.

Pour utiliser DNSSEC, il faut signer la zone. Lors de la signature de la zone, il faut définir un maître des clés. Le maître des clés est en général, dans un environnement Active Directory, un contrôleur de domaine spécifique. Comme pour les rôles de maitres d'opération dans Active Directory, il est possible de transférer ce rôle sur un autre serveur. Le maître des clés définit une clé KSK (KeySigningKey) qui sera utilisée pour signer une clé de zone (ZSK).

En correspondance de la clé privé permettant de signer la zone (ZSK), il existe une clé publique stocké dans un enregistrement DNSKEY qui permettra de valider les signatures.

 

Activer la prise en charge de DNSSec

Sur Windows 2012 R2, il existe une option pour activer DNSSEC dans les propriétés du serveur.

Cette option n'est pas visible sur 2016 et 2019. DNSSEC est activé par défaut sur 2016 et 2019.

Il est possible de le vérifier en utilisant une des deux commandes suivantes :

DnsCmd.exe /info /enablednssec

 

(Get-DnsServerSetting).EnableDnsSec

 

 

Signer une ZONE DNS

 

Pour signer une zone sur un serveur DNS Windows, ouvrez la console « DnsMGMT.msc ». Ouvrez « Zone de recherche directe » et faites un clic droit sur la zone en question. Sélectionnez DNSSEC puis signer la zone.

Sur la page d'accueil de l'assistant de signature de zone, cliquez sur « suivant »

 

Sur la page « options de signature », vous pouvez signer la zone sans vous préoccuper des paramètres, ou personnaliser les paramètres de signature. Dans cet exemple, nous allons suivre les paramètres personnalisés.

Sélectionnez l'option selon votre choix, puis cliquez sur « suivant ».

Si vous utilisez les paramètres par défaut, il faut faudra activer la publication des ancres d'approbations, que nous verrons plus loin.

 

Avant de signer la zone, il faut définir un serveur qui sera le maître des clés. Par défaut, il est proposé d'utiliser le contrôleur de domaine en cours d'utilisation. Sélectionnez un autre serveur si vous le souhaitez puis cliquer sur « suivant ».

Lisez le message ci-dessous et cliquez sur « suivant ».

Sur la page clé KSK, si vous n'avez pas déjà une clé, cliquez sur ajouter.

Vous pouvez utiliser les paramètres par défaut ou augmenter la robustesse de la clé. Une option permet d'enregistrer la clé privée dans Active Directory s'il s'agit d'une zone intégré Active Directory. Cela facilitera le transfert du maître de clé, surtout dans le cas où celui-ci serait indisponible. Une fois renseigné, cliquez sur OK et sur la page précédente cliquez sur « suivant ».

Il faudra maintenant définir la clé ZSK pour signer la zone. Lisez le message ci-dessous puis cliquez sur « suivant »

Comme pour la clé KSK, il faut ajouter une clé ZSK. Cliquez sur « ajouter », puis valider la clé en cliquant sur « OK » puis « suivant »

 

La zone signée contiendra différents enregistrements dont des enregistrements NSEC. Les enregistrements NSEC seront utilisés pour répondre à un client lorsqu'aucun n'enregistrement a été trouvé. NSEC3 est plus sécurisé que NSEC.

Sur la dernière page, cochez la case « Activer la distribution des ancres d'approbations pour cette zone » et cliquez sur « suivant ». Nous verrons plus loin qu'il est possible d'activer la distribution des ancres par après.

 

Sur la page « paramètres de signature », laissez les valeurs par défaut et cliquez sur « suivant ».

Sur la page « Extensions de sécurité DNSSec », lisez le résumé et cliquez sur suivant.

Sur le message, ci-dessous indiquant que la zone a bien été signée, cliquez sur « terminer ».

 

Si vous avez utilisé les paramètres par défaut, il vous faudra activer la publication des ancres de signature. Pour cela, faites un clic droit sur la zone, puis « DNSSEC », puis « propriétés ».

 

Sur la page « Ancre d'approbation », cocher la case « Activer la distribution des ancres d'approbations pour cette zone ».

Dans une zone DNS signée, chaque enregistrement DNS dispose d'un enregistrement correspondant DNS particulier (RRSIG).

On y retrouve également, la clé DNSKey incluant la clé publique permettant de valider les enregistrements DNS. D'autre clé comme NSEC permettent de signer les réponses négatives des recherches DNS. Cela évitera à un client de se retrouver avec une fausse réponse, si aucun n'enregistrement n'existe dans la zone pour le nom demandé.

Dans la partie « point d'approbation », ouvrir les dossiers correspondants aux noms de votre domaine, vous retrouverez la publication des ancres d'approbations.

Votre zone est signée, mais par défaut les postes clients accepte les enregistrements non signés. Pour activer la validation des signatures des enregistrements DNS, vous devez activer cette option à l'aide des stratégies de groupes sur les postes de votre domaine.

Sur un contrôleur de domaine pour votre domaine, ouvrez la console de gestion des stratégies de groupe (GPMC.msc). Créer une nouvelle stratégie, par exemple « stratégie DNSSEC ».

Allez à la page suivante « configuration ordinateur\stratégies\paramètres Windows\Stratégies de résolution de noms ». Dans créer des règles, sélectionnez « suffixe » sur la question « A quelle espace de nom s'applique cette règle ».

Déployer la stratégie de validation

 

 

Il vous suffira de lier la GPO au conteneur cible.

Vous pouvez vous connecter sur votre poste client et effectuer un gpupdate /force, afin de vous assurer que la GPO est bien prise en compte.

Avec la commande PowerShell suivante vous pourrez vérifier l'application des paramètres de la GPO :

Get-DnsClientNrptPolicy -Effective

Nous pouvons voir entre autres que le paramètre « DnsSecValidationRequired » est bien défini sur « True »

Vous pouvez retrouver les informations sur les stratégies du client DNS dans le registre a l'emplacement suivant :

Ordinateur\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient\DnsPolicyConfig\

La commande « Resolve-DNS » avec l'option « DNSSECOK », nous permet d'afficher les informations de signatures de l'enregistrement. Si la signature n'est pas valide, la commande renvoi une erreur.

 

Vous retrouverez dans le lien suivant une démonstration de DNSSec :

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/hh831411(v=ws.11)

Theme: 

Systeme: 

Annee: