Affichage des articles dont le libellé est DNS. Afficher tous les articles
Affichage des articles dont le libellé est DNS. Afficher tous les articles

lundi 30 mars 2015

Configuration de DNSSEC sur un serveur 2012 en powershell

Bien le bonjour,

Voici comment configurer le DNSSEC en powershell sur un Windows serveur 2012.

#Définir le nom de la zone
$zonename =  "secure.domaine.tld"

#Création d'une zone intégrée à l'AD avec une réplication dans la forêt.
Add-DnsServerPrimaryZone -Name $zonename -ReplicationScope Forest

#Ajout d'enregistrement dans la zone
Add-DnsServerResourceRecord -ZoneName $zonename -A -Name mail -IPv4Address 10.0.0.5
Add-DnsServerResourceRecord -ZoneName $zonename -MX -Name . -MailExchange mail.domaine.tld -Preference 10

#Définir ou redéfinir le maitre des clés pour la zone
Reset-DnsServerZoneKeyMasterRole -ZoneName $zonename -KeyMasterServer dc2.domaine.tld -SeizeRole -Force

#Définir la méthode utilisée pour les RR non existants (nsec ou nsec3)
#Set-DnsServerDnsSecZoneSetting -ZoneName $zonename -DenialOfExistence NSec
Set-DnsServerDnsSecZoneSetting -ZoneName $zonename -DenialOfExistence NSec3 -DistributeTrustAnchor DnsKey -DSRecordGenerationAlgorithm Sha256 -EnableRfc5011KeyRollover $False -NSec3HashAlgorithm RsaSha1

#Création de la clé KSK pour NSEC3
Add-DnsServerSigningKey -ZoneName $zonename -Type KeySigningKey -CryptoAlgorithm RsaSha1NSec3 -KeyLength 2048

#Création de la clé ZSK pour NSEC3
Add-DnsServerSigningKey -ZoneName $zonename -Type ZoneSigningKey -CryptoAlgorithm RsaSha1NSec3 -KeyLength 1024

#Signer la zone
Invoke-DnsServerZoneSign -ZoneName $zonename -Force

Prochain article sur la mise en place d'un serveur WSUS via Powershell sur un serveur 2012.

Salutation,
Guillaume

jeudi 26 mars 2015

DNSSEC et chaine d'approbation

Bien le bonjour,

Petit point sur le DNSSEC qui est utilisé pour aider à protéger les requêtes DNS de l’interception et de la falsification.
Il utilise des clés de chiffrement et des signatures numériques pour vérifier que les réponses DNS sont valides et emploie un certain nombre de nouveaux enregistrements de ressource pour signer et publier des clés :

  • DNSKEY : Publie la clé publique de la zone.
  • Delegation Signer (DS) :  Enregistrement de délégation de zone qui contient le hachage de la clé publique d'une zone enfant. Cet enregistrement est signé par la clé privée de la zone parente.
  • Resource Record Signature (RRSIG) : Contient une signature pour un jeu d'enregistrements DNS
  • Next Secure (NSEC) : Authentifie le fait que l'hôte n'existe pas.
  • NSEC3 : Hache de l'enregistrement NSEC.

Schéma de la chaîne d’approbation DNSSEC
Schéma de la chaîne d’approbation DNSSEC
Schéma de la chaîne d’approbation DNSSEC

Vous pouvez utiliser les sites suivant pour afficher les informations DNSSEC sur la zone souhaitée :

Prochain article sur la mise en place du DNSSEC sur un Windows serveur 2012 en powershell.

Salutation,
Guillaume

mercredi 4 mars 2015

Configurer le nettoyage DNS via powershell

Bien le bonjour,

Voici les cmdlets powershell pour configurer le nettoyage DNS

#Définir et activer le nettoyage des enregistrements sur le serveur pour toutes les nouvelles zones par défaut avec un interval de 7 jours
Set-DnsServerScavenging -ApplyOnAllZones -ScavengingState $True -ScavengingInterval 7.00:00:00

#Afficher la configuration du nettoyage des enregistrements du serveur
Get-DnsServerScavenging

#Définir et activer le nettoyage des enregistrements sur une zone en spécifiant le serveur primaire autorisé à effectuer le nettoyage
set-DnsServerZoneAging -Name domaine.tld -Aging $true -RefreshInterval 7.00:00:00 -noRefreshInterval 7.00:00:00 -ScavengeServers 10.0.0.4

#Afficher la configuration de l'actualisation des enregistrements d'une zone
Get-DnsServerzoneaging -name domaine.tld

#Afficher les enregistrements elligibles au nettoyage
Get-ADObject -Filter * -searchbase 'CN=MicrosoftDNS,DC=ForestDnsZones,DC=domaine,DC=tld' -Properties dNSTombstoned,name,whenchanged  | Where {($_.dNSTombstoned -eq $true) -and ($_.name -NotLike "_*")}

#Lancer le nettoyage manuellement

Start-DnsServerScavenging -force -Verbose


Prochain article, le DNSSec sous Windows serveur 2012

Salutation,
Guillaume

lundi 2 mars 2015

Fonctionnement du nettoyage des enregistrements DNS sur un windows serveur

Bien le bonjour,

L'article d'aujourd'hui porte sur le fonctionnement du nettoyage des enregistrements DNS sur un windows serveur pour les zones intégrées à Active Directory.
Cette fonctionnalité permet de supprimer les enregistrements obsolètes (n'ayant pas eu de mises à jour depuis X temps).
Seuls les enregistrement dynamiques sont affectés, ceux disposant d'une valeur dans la colonne horodatage.

Pour bien comprendre le fonctionnement du nettoyage des enregistrements DNS, il est nécessaire de prendre en compte plusieurs éléments :
-          Actualisation : Modification de l'horodatage
-          Mise à jour : Modification de l'enregistrement (implique l'actualisation)
-          L'enregistrement est mis à jour ou actualisé :
·         IP modifiée, ajoutée ou supprimée dans la configuration TCP/IP
·         Baux d'adresse modifié ou renouvelé par le DHCP
·         L'utilisation de la commande ipconfig /registerdns ou Register-DnsClient
·         Au démarrage du poste
-          L'intervalle de non actualisation : Défini sur une zone, indique la durée pendant laquelle l'enregistrement ne peut être actualisé. Débute à partir de la dernière définition de l'horodatage. Cette option permet de limiter le nombre de modification et donc de réplication de l'AD.
-          L'intervalle d'actualisation : Défini sur une zone, indique la durée pendant laquelle l'enregistrement peut être mis à jour ou actualisé. Une fois cette durée expirée, l'enregistrement est considéré comme obsolète.

-          Le délai de nettoyage automatique : Défini sur le serveur, indique à quel moment le serveur supprime les enregistrements considérés comme obsolètes.

Fonctionnement du nettoyage :
Schéma de fonctionnement du nettoyage automatique du DNS
Schéma de fonctionnement du nettoyage automatique du DNS

Prochain article sur la configuration du nettoyage via powershell.

Salutation,
Guillaume

vendredi 27 février 2015

Configuration DNS Globalnamezone via powershell sur un serveur 2012

Bien le bonjour,

Aujourd'hui, un article sur l'implémentation d'une technologie apparue avec 2008 serveur, la globalnamezone (GNZ) et que l'on va configurer sur un windows serveur 2012 en powershell.

La GNZ permet de faire le même travail que le serveur WINS (ancêtre du DNS), c'est à dire effectuer une résolution de nom unique (nom simple, donc sans nom de domaine), une résolution de nom complétant le protocole Netbios dans les environnement multi-réseau physique.
Le but étant de définitivement supprimer ce service WINS qui est de plus en plus que ponctuellement utilisé.

Une fois la GNZ créée, il est nécessaire d'ajouter des enregistrements pour chaque nom devant être résolu par des vieux systèmes d'exploitation (NT4, 95, 98...).

#Je considère que le rôle DNS est installé
#Activez la GNZ
Set-DnsServerGlobalNameZone -Enable:$true

#Création de la GNZ
add-dnsserverprimaryzone -name GlobalNames -ReplicationScope forest -DynamicUpdate None

#Création d'un enregistrement
Add-DnsServerResourceRecordA -zone GlobalNames -name test -IPv4address 10.0.0.4

#Permet de privilégié la recherche dans la GNZ
set-DnsServerGlobalNameZone -GlobalOverLocal $true

Prochain article sur la gestion du vieillissement des enregistrements DNS via powershell.

Salutation, Guillaume

mercredi 25 février 2015

Création d'une zone primaire et secondaire sur un Windows serveur 2012

Bien le bonjour,

Un article sur la mise en place d'une zone primaire et secondaire sur un Windows serveur 2012 via powershell

#Rappel sur le fonctionnement DNS primaire/secondaire
Lors de la mise en place d'un serveur secondaire pour une zone, il est nécessaire que le primaire autorise le transfert de zone vers le secondaire.
Le secondaire possédera une copie en lecture seule de la zone primaire (aucune modification ne peut être effectuée à partir du secondaire sur la zone). Note : Ce principe ne s'applique pas si la zone est intégrée à Active Directory.
Les mises à jours de zone sont dépendantes du numéro de série qui s'incrémente à chaque modification dans la zone.
Pour la mise à jour de la zone, le serveur secondaire contacte le primaire et vérifie le numéro de série de la zone et le compare au numéro de série de la zone qu'il détient:
- Si le numéro de série du primaire est supérieur à celui du secondaire alors le secondaire demande un transfert de zone
- Si le numéro de série du primaire est inférieur et égal à celui du secondaire alors ce dernier ne fait pas de mise à jour.
Fonctionnement DNS primaire/secondaire
Fonctionnement DNS primaire/secondaire
##Information sur les éléments utilisés dans les commandes
#Serveur DNS primaire
Nom : srv-1.domaine.tld
IP : 10.0.0.10

#Serveur DNS secondaire
Nom : srv-2.domaine.tld
IP : 10.0.0.11

Nom de la zone DNS : domaine.tld


##Création d'une zone primaire directe stockée dans un fichier :
#Commandes à exécuter sur le serveur DNS primaire
Install-WindowsFeature DNS -IncludeManagementTools -IncludeAllSubFeature
Add-DnsServerPrimaryZone domaine.tld -ZoneFile domaine.tld.dns
#Ajouter un enregistrement NS pour le serveur DNS secondaire :
Add-DnsServerResourceRecord -NS -ZoneName domaine.tld -Name "." -NameServer srv2.domaine.tld
#Puis autoriser le transfert de zone et la notification vers les serveurs NS secondaires
Set-DnsServerPrimaryZone domaine.tld -SecureSecondaries TransferToZoneNameServer -Notify Notify

##Création d'une zone secondaire
#Commandes à exécuter sur le serveur DNS secondaire :
Install-WindowsFeature DNS -IncludeManagementTools -IncludeAllSubFeature
Add-DnsServerSecondaryZone domaine.tld -ZoneFile domaine.tld.dns -MasterServers 10.0.0.10
#Vérifier si le secondaire possède une copie des enregistrements de la zone 
Get-DnsServerResourceRecord domaine.tld
#Au besoin, forcer le transfert de zone
Start-DnsServerZoneTransfer -Name "domaine.tld"

Prochain article, Mise en place d'une globalname zone

Salutation, Guillaume

lundi 23 février 2015

Schéma de fonctionnement d'une résolution DNS avec une zone de stub

Bien le bonjour,

Aujourd'hui, petit point sur la zone de stub.
Le principe d'une zone de stub est de pouvoir contacter directement un serveur (NS) en charge de la zone.
Pour créer se type de zone, il faut le nom de la zone ainsi que l'ip d'un serveur (NS) DNS de la zone.
Cette commande permet de récupérer les serveurs NS de google.fr
Resolve-Dnsname -name google.fr -type NS

On l'utilise, tout comme le redirecteur conditionnel, souvent pour les relations d'approbations de domaine Active Directory.
Une zone de stub à la différence d'une zone secondaire ne nécessite pas une autorisation du serveur DNS primaire de la zone.
Une zone de stub ne contient que les enregistrements DNS suivant :
- SOA
- NS
- A permettant résoudre les noms associés aux SOA et NS

Schéma de fonctionnement d'une résolution DNS avec une zone de stub
Schéma de fonctionnement d'une résolution DNS avec une zone de stub

Prochain article, mise en place d'un serveur DNS primaire et secondaire dans un environnement Microsoft 2012 via powershell.

Salutation,
Guillaume

vendredi 20 février 2015

Schéma de fonctionnement d'une résolution DNS avec redirecteur conditionnel

Bien le bonjour,

Précédemment l'article portait sur le fonctionnement d'une résolution DNS avec redirecteur, je vais présenter le cas du fonctionnement d'une résolution DNS avec redirecteur conditionnel.
Un redirecteur conditionnel peut être utilisé pour faire en sorte que pour le domaine spécifié, un autre serveur DNS se charge de la requête.
Il est principalement utilisé pour les relations d'approbation dans un domaine Active Directory (cela permet de contacter directement un serveur DNS en charge de la zone) ou pour des raisons de sécurité.
Dans l'exemple un redirecteur conditionnel est définit sur le serveur local pour google.fr.
Toutes les requêtes DNS sont gérées par le serveur DNS local exceptées celle de google.fr qui sont renvoyées à un autre serveur DNS qui est en charge d'effectuer la requête.

Schéma de fonctionnement d'une résolution DNS avec redirecteur conditionnel
Schéma de fonctionnement d'une résolution DNS avec redirecteur conditionnel
Prochain article, fonctionnement de la zone de stub.

Salutation,
Guillaume

mercredi 18 février 2015

Schéma de fonctionnement d'une résolution DNS avec redirecteur

Bien le bonjour,

Après le schéma du fonctionnement d'une requête DNS classique, voici le schéma de la même requête mais un serveur DNS configuré en redirecteur.
Dans cette configuration, le serveur DNS se comporte comme un client DNS et demande à un autre serveur DNS de faire le travail.
La configuration d'un serveur DNS en redirecteur peut être utilisé :
- Pour des raisons de sécurité : seul 1 ou 2 serveurs DNS sont autorisés à effectuer des requêtes sur internet)
- Pour limiter les flux DNS sortants sur le net : Utile si vous vous retrouver avec plus de 50 serveurs DNS sur votre réseau (vive les formations systèmes et réseau) et que votre box/routeur déclare forfait face à tout cela (nombre de connexions maximales gérées atteintes, même pas un problème de bande passante...).

Schéma de fonctionnement d'une résolution DNS avec redirecteur
Schéma de fonctionnement d'une résolution DNS avec redirecteur

Prochain article, Schéma de fonctionnement d'une résolution DNS avec redirecteur conditionnel cette fois.

Salutation,
Guillaume

lundi 16 février 2015

Schéma de fonctionnement d'une résolution DNS classique

Bien le bonjour,

Voici un schéma illustrant les étapes d'une résolution DNS classique.
Le schéma ne prend pas en compte le cache DNS côté client et côté serveur DNS local.
Toutes les requêtes sont effectuées en UDP sur le port 53.

Schéma de fonctionnement d'une résolution DNS classique
Schéma de fonctionnement d'une résolution DNS classique
Prochain article, schéma de fonctionnement d'une résolution DNS avec un serveur DNS configuré en redirecteur.

Salutation,
Guillaume


vendredi 13 février 2015

Powershell DNS - Les commandes côté client

Bien le bonjour,

Pour aujourd'hui, un petit point sur les commandes powershell permettant de gérer le DNS côté client

#Afficher le cache DNS
Get-dnsclientcache

#Afficher les enregistrement du cache DNS issues du fichier hosts
Get-DnsClientCache -TimeToLive 86400
#Vider le cache dns
Clear-DnsClientCache

#Affiche la liste des suffixes DNS
Get-DnsClient

#Enregistrer l'ip au niveau du serveur DNS
Register-DnsClient

#Afficher la liste des serveurs dns
Get-DnsClientServerAddress

#Vérifier la résolution de nom
Resolve-Dnsname

#Effectuer une requête pour un type d'enregistrement précis
Resolve-Dnsname google.fr -type NS

#Effectuer une requête en n'utilisant que le DNS (pas d'utilisation du cache, du netbios ou LLMNR)
Resolve-DnsName www.google.fr -dnsOnly

#Effectuer une requête en n'utilisant DNSSEC
Resolve-DnsName www.google.fr -dnssecok

Pour le reste get-help Resolve-DnsName

Prochain article, schéma des étapes d'une résolution DNS classique

Salutation,
Guillaume

jeudi 17 mars 2011

Résoudre le problème wpad sur un DNS windows

En charge de l'implémentation d'un proxy (squid + squidguard), je me suis aperçu d'un problème lors de la mise en place de la méthode utilisant le DNS pour indiquer l'emplacement du fichier de configuration automatique du proxy "WPAD".
La méthode est simple, il faut créer un enregistrement A ou un alias pointant sur le serveur contenant le fameux fichier wpad.dat et avec pour nom wpad.
Une fois créé, dans les 2 cas, impossible de résoudre wpad alors que tous les autres enregistrements fonctionnaient parfaitement.

Après quelques recherches, je suis tombé sur Managing the Global Query Block List
Pour des raisons de sécurité certains noms sont bloqués et notamment isatap et wpad.
Pour le vérifier exécuter la commande :
dnscmd ip_du_serveur_dns /info /globalqueryblocklist

La liste des noms bloqués s'affiche.

Pour débloquer le nom wpad, je suis allé dans la base de registre :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters\GlobalQueryBlockList

Il suffit de supprimer les valeurs que l'on souhaite débloquer dans la clé.

Une fois effectué, j'ai redémarré le service DNS.

And it works!!