Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

Chapitre 817 minIntermédiaire

DHCP et DNS : pfSense ou Active Directory ?

Par Josselyn C., prof de BTS SIO. Mis à jour le .

À la fin de ce chapitre, tu sauras

  • répartir le DHCP et le DNS entre pfSense et Active Directory, et le justifier ;
  • configurer le relais DHCP et les règles qui l'accompagnent ;
  • utiliser le serveur DHCP Kea de pfSense là où il n'y a pas d'annuaire ;
  • régler le résolveur Unbound, ses substitutions et les redirecteurs de l'AD.

4 exercices corrigés1 schéma

pfSense sait distribuer des adresses (serveur DHCP Kea), relayer les demandes vers un autre serveur (relais DHCP) et résoudre les noms (résolveur DNS Unbound). Dans un réseau qui a un Active Directory, c'est pourtant l'annuaire qui garde le DHCP et le DNS des postes : pfSense relaie le DHCP et résout les noms d'Internet pour le compte des contrôleurs de domaine. Ce chapitre explique cette répartition, configure le relais, le résolveur et ses substitutions, et montre les cas où le DHCP de pfSense est le bon choix.

Qui fait quoi chez Sorbier

ServiceQui le rendPour quiPourquoi
DHCP des VLAN internes (POSTES, ENTREPOT, TELEPHONIE)Le DHCP de l'AD (srv-ad et srv-ad2, en basculement)Postes, terminaux, téléphonesLes baux s'inscrivent dans le DNS de l'annuaire, les options sont gérées avec le reste du domaine, et le basculement entre les deux serveurs assure la continuité
DHCP du Wi-Fi invité (VISITEURS)Le DHCP de l'AD, étendue dédiéeVisiteurspfSense ne peut pas être à la fois serveur et relais DHCP (voir plus bas)
Transport des demandes DHCPpfSense, relais DHCPTous les VLAN clientsUne diffusion DHCP ne traverse pas un routeur
DHCP de l'entrepôt de MâconLe DHCP de l'AD, rôle installé sur srv-maconPostes et terminaux de MâconMême règle qu'au siège : là où il y a un annuaire, il garde le DHCP. srv-macon est dans le réseau de ses clients (pas de relais) et continue de servir si le tunnel tombe ; il n'est pas installé sur le RODC dc-macon, pour ne pas ajouter de rôle à un contrôleur de domaine
DNS de Mâcondc-macon (copie en lecture seule de la zone de l'annuaire)Postes et terminaux de MâconLes noms internes se résolvent sur place, même tunnel coupé ; dc-macon fait suivre les noms d'Internet au pfSense de Mâcon
DNS des noms internes (ad.sorbier.example)Le DNS de l'ADPostes, serveurs, ADMINIl fait autorité sur la zone de l'annuaire et ses enregistrements SRV ; sans lui, pas d'ouverture de session
DNS des noms d'InternetpfSense, résolveur Unbound, interrogé par les contrôleurs de domaineTout le monde, indirectementUn seul point de sortie DNS, filtrable par pfBlockerNG (chapitre 12)
DNS des visiteurs et de la DMZpfSense, résolveur UnboundVISITEURS, DMZCes zones n'ont aucune raison de joindre un contrôleur de domaine

Le fonctionnement du DHCP et du DNS de Windows Server (étendues, options, basculement, zones, redirecteurs) est dans le cours Windows Server ; ce chapitre traite ce qui se configure sur pfSense.

Le relais DHCP

Un client DHCP qui démarre ne connaît rien : il envoie un DHCPDISCOVER en diffusion, à l'adresse 255.255.255.255. Une diffusion ne franchit pas un routeur : srv-ad, dans le VLAN 20, n'entend jamais les postes du VLAN 10. Le relais DHCP de pfSense capte la diffusion sur l'interface POSTES, la transmet en unicast à srv-ad en y inscrivant l'adresse de l'interface qui l'a reçue (192.168.10.126, le champ giaddr), et srv-ad choisit l'étendue dont le réseau contient cette adresse.

DHCPPosteVLAN 10pfSenserelais DHCP192.168.10.126srv-ad .177srv-ad2 .181étendue .64/261. DISCOVERen diffusion2. en unicastgiaddr .1263. OFFER au relais4. OFFER au posteDNSPosteVLAN 10srv-adDNS de l'ADpfSenseUnbound .190Internettous les nomsautres nomsad.sorbier.exampleil répond lui-mêmeVisiteurs, DMZinterrogent pfSense
Le relais DHCP de pfSense transmet les demandes à l'annuaire ; l'annuaire fait suivre au pare-feu les noms d'Internet

Services > DHCP Relay :

ChampValeur chez Sorbier
EnableCoché
Downstream InterfacesPOSTES, ENTREPOT, VISITEURS, TELEPHONIE (les interfaces dont on relaie les clients ; pas SERVEURS, ADMIN ni DMZ, en adresses fixes)
CARP Status VIPVide pour l'instant ; avec deux pare-feu, l'adresse virtuelle CARP qui désigne le pare-feu actif (chapitre 13)
Append circuit ID and agent ID to requestsDécoché ; coché, il ajoute le numéro de l'interface d'arrivée, utile si le serveur DHCP sait s'en servir
Upstream Servers192.168.10.177, puis Add : 192.168.10.181

Les règles qui vont avec. Le relais ajoute tout seul, sur chaque interface relayée, la règle qui accepte les diffusions DHCP des clients. Deux flux restent à autoriser :

  • le renouvellement : à la moitié de son bail, un client renouvelle en unicast, directement auprès du serveur qui le lui a donné (192.168.10.177, UDP 67), sans passer par le relais. Ce flux traverse le pare-feu : d'où l'UDP 67 dans l'alias PORTS_AD_UDP des postes et la règle « Renouvellement DHCP » des onglets ENTREPOT et TELEPHONIE (chapitre 5) ;
  • les réponses du serveur au relais : srv-ad répond à l'adresse inscrite par le relais (192.168.10.126, UDP 67), qui est une adresse du pare-feu ; la règle 2 de l'onglet SERVEURS l'autorise.

Pour VISITEURS, on n'autorise pas le renouvellement en unicast : un visiteur n'a aucune raison de joindre un contrôleur de domaine. Son renouvellement échoue à la moitié du bail ; à 87,5 % du bail, le client passe en rebinding et redemande en diffusion, que le relais transmet. Le bail est renouvelé, sans un seul flux direct du Wi-Fi invité vers l'annuaire.

Ces tentatives de renouvellement direct, répétées entre 50 % et 87,5 % du bail, sont refusées par la règle 3 de l'onglet VISITEURS (« Isolation de l'interne ») et apparaissent dans le journal : c'est attendu. Pour ne pas les compter comme des attaques (Wazuh alerte sur une rafale de blocages depuis une même source, chapitre 15), ajoute entre les règles 2 et 3 une règle Reject, UDP, source VISITEURS subnets, destination SRV_DC, port 67, non journalisée, description « Renouvellement DHCP direct (attendu) ».

Les étendues correspondantes se créent sur srv-ad (cours Windows Server), une par VLAN relayé, avec la passerelle pfSense en option 003. L'étendue des visiteurs a des particularités :

powershell
# Étendue du Wi-Fi invité : bail court, DNS du pare-feu, pas le DNS de l'annuaire
Add-DhcpServerv4Scope -Name "VLAN40-VISITEURS" -StartRange 192.168.10.1 -EndRange 192.168.10.59 `
    -SubnetMask 255.255.255.192 -LeaseDuration 04:00:00 -State Active
Set-DhcpServerv4OptionValue -ScopeId 192.168.10.0 -Router 192.168.10.62 -DnsServer 192.168.10.62 -DnsDomain "invites.sorbier.example" -Force

-Force saute la vérification du serveur DNS : sans lui, la commande interroge 192.168.10.62 sur le port 53 depuis srv-ad et échoue, parce que srv-ad n'a pas le droit d'interroger l'adresse VISITEURS du pare-feu (règles 1 et 4 de l'onglet SERVEURS), et c'est voulu. La plage s'arrête à .59 : .60 et .61 sont gardées pour les deux pare-feu en grappe du chapitre 13, .62 est la passerelle. Le DNS est celui du pare-feu : les visiteurs ne doivent pas connaître les noms internes, et l'option de niveau étendue l'emporte sur l'option serveur qui distribue les contrôleurs de domaine aux autres VLAN.

Le serveur DHCP de pfSense, là où il n'y a pas d'annuaire

Chez Sorbier, aucun réseau interne n'est concerné : le siège a srv-ad et srv-ad2, Mâcon a srv-macon. Le serveur DHCP de pfSense sert là où il n'y a pas d'annuaire : une maquette de TP avant l'installation du Windows Server, un petit local sans serveur, un réseau invité dans une structure qui n'a pas d'AD. Il utilise le moteur Kea choisi au chapitre 2.

Exemple : ta maquette, avant l'arrivée du contrôleur de domaine. Services > DHCP Server, onglet POSTES (192.168.10.126/26) :

ChampValeur
EnableCoché
Address Pool Range192.168.10.65 à 192.168.10.115 (la plage dynamique du plan d'adressage)
DNS ServersVide : pfSense distribue l'adresse de son interface, donc son résolveur
GatewayVide : pfSense distribue l'adresse de son interface
Domain Namead.sorbier.example, le futur domaine
Default Lease Time86 400 secondes (un jour)
DHCP Static MappingsUne réservation par imprimante : adresse MAC, adresse IP hors de la plage dynamique (de .116 à .125), nom

Le jour où le Windows Server arrive, on crée les étendues sur lui, on désactive le serveur DHCP de pfSense sur toutes les interfaces et on active le relais. Status > DHCP Leases liste les baux attribués : adresse, adresse MAC, nom, fin du bail.

Le résolveur DNS Unbound

pfSense contient deux services DNS : le résolveur (DNS Resolver, Unbound), activé par défaut, et le redirecteur (DNS Forwarder, dnsmasq), plus ancien. On n'en garde qu'un : le résolveur.

Services > DNS Resolver > General Settings :

ChampValeur conseilléeEffet
Enable DNS resolverCoché
Network InterfacesAll (défaut)Unbound répond sur toutes les interfaces ; les règles décident qui l'interroge
Outgoing Network InterfacesAll (défaut)Unbound émet chaque requête par l'interface qui mène au serveur interrogé
DNSSECCochéVérifie les signatures des zones signées : une réponse falsifiée est rejetée
DNS Query ForwardingDécochéUnbound résout lui-même, en partant des serveurs racines ; coché, il fait suivre à des serveurs choisis (ceux de l'opérateur, un service filtrant), éventuellement en DNS sur TLS
DHCP RegistrationDécoché chez SorbierInscrit les baux du DHCP de pfSense dans le résolveur ; utile sur un réseau sans annuaire, où pfSense distribue les adresses

L'onglet Access Lists n'a pas besoin d'être touché : pfSense autorise automatiquement les réseaux de ses interfaces internes à interroger le résolveur, et refuse les autres.

Les substitutions de domaine. Le pare-feu lui-même, les visiteurs ou la DMZ peuvent avoir besoin de résoudre un nom interne (le pare-feu, pour envoyer ses journaux ou interroger l'annuaire par un nom plutôt que par une adresse). Une substitution de domaine (Domain Override) dit à Unbound : « pour ce domaine, demande à ce serveur ». Services > DNS Resolver > Domain Overrides > Add : Domain ad.sorbier.example, Lookup Server IP Address 192.168.10.177 (puis une seconde entrée vers 192.168.10.181). Faire de même pour la zone inverse 10.168.192.in-addr.arpa, pour que les journaux du pare-feu affichent des noms.

Les substitutions d'hôte (Host Overrides) donnent une réponse fixe pour un nom précis, comme suivi.sorbier.example vers l'adresse privée de srv-web au chapitre 6.

Les contrôleurs de domaine font suivre à pfSense

Les postes interrogent les contrôleurs de domaine pour tous les noms. Ceux-ci répondent eux-mêmes pour ad.sorbier.example et font suivre le reste à un redirecteur : le résolveur de pfSense, à son adresse de l'interface SERVEURS.

powershell
# Sur srv-ad et srv-ad2 : pfSense comme unique redirecteur, sans repli sur les serveurs racines
Set-DnsServerForwarder -IPAddress 192.168.10.190 -UseRootHint $false
Get-DnsServerForwarder

À Mâcon, même schéma à l'échelle du site : dc-macon répond pour ad.sorbier.example avec sa copie en lecture seule de la zone et fait suivre le reste au résolveur de son pare-feu, Set-DnsServerForwarder -IPAddress 192.168.20.254 -UseRootHint $false.

Avec -UseRootHint $false, un contrôleur de domaine qui n'obtient pas de réponse du redirecteur n'essaie pas de résoudre seul sur Internet : il n'a donc besoin d'aucun accès DNS direct vers l'extérieur, et la règle 1 de l'onglet SERVEURS (contrôleurs vers SERVEURS address, port 53) suffit. En contrepartie, si pfSense tombe, la résolution des noms d'Internet s'arrête : c'est un argument de plus pour doubler le pare-feu (chapitre 13).

Ce montage a trois avantages :

  • un seul point de sortie DNS : aucun poste ne parle à un DNS d'Internet ; un logiciel malveillant qui veut utiliser son propre résolveur est bloqué par les règles et apparaît dans les journaux ;
  • un filtrage commun : les listes de blocage de pfBlockerNG s'appliquent à toutes les machines, internes comme invitées ;
  • des journaux DNS au même endroit : les requêtes vers des domaines malveillants se voient sur le pare-feu.

L'heure

L'heure suit le même schéma. Le contrôleur de domaine qui porte le rôle d'émulateur PDC prend l'heure à l'extérieur (règle 8 de l'onglet SERVEURS, UDP 123) ; les postes et les serveurs membres la prennent aux contrôleurs de domaine ; pfSense et la DMZ ont le service NTP du pare-feu (Services > NTP) ; à Mâcon, dc-macon suit la hiérarchie du domaine à travers le tunnel (UDP 123 vers les contrôleurs du siège), et les machines du site la prennent à dc-macon. Tous les journaux sont ainsi à la même heure, condition pour les corréler dans Wazuh.

Exercices

Exercice 1 sur 4 Le poste sans adresse Réussi À revoir

Le VLAN 30 (ENTREPOT) vient d'être ajouté au relais DHCP de pfSense. Un terminal obtient l'adresse 169.254.12.40.

  1. Que signifie cette adresse ?
  2. Le journal DHCP de pfSense montre que la demande a été relayée vers 192.168.10.177. Quelles sont les deux causes possibles côté serveur ?
  3. Le journal du pare-feu montre ce blocage sur SERVEURS : 192.168.10.177:67 -> 192.168.10.158:67 UDP. Corrige.
Voir la réponseMasquer la réponse de l'exercice 1
  1. Une adresse APIPA (169.254.0.0/16) : le client n'a reçu aucune réponse DHCP et s'est attribué une adresse de lien local. Il ne peut joindre personne hors de son segment.
  2. Aucune étendue pour 192.168.10.128/27 sur srv-ad (le serveur reçoit la demande avec giaddr 192.168.10.158 et ne trouve pas de réseau correspondant), ou l'étendue existe mais est désactivée ou épuisée. (Un serveur non autorisé dans l'annuaire ne répondrait à aucun VLAN.)
  3. La réponse du serveur au relais, adressée à l'adresse ENTREPOT du pare-feu, est bloquée : il manque la règle Pass, UDP, source SRV_DC, destination This Firewall (self), port 67, sur l'onglet SERVEURS, au-dessus du refus vers le pare-feu.

Tu avais trouvé ?

Exercice 2 sur 4 Serveur ou relais ? Réussi À revoir

Un étudiant monte une maquette : pfSense, un VLAN des postes et un VLAN des serveurs avec un Windows Server qui fait DHCP. Il active le serveur DHCP de pfSense sur le VLAN invités, puis veut activer le relais pour le VLAN des postes : pfSense refuse.

  1. Pourquoi ?
  2. Propose deux solutions et choisis-en une.
Voir la réponseMasquer la réponse de l'exercice 2
  1. pfSense ne peut pas faire fonctionner le serveur DHCP et le relais DHCP en même temps : le relais exige que le serveur DHCP soit désactivé sur toutes les interfaces.
  2. (a) Désactiver le serveur DHCP de pfSense sur le VLAN invités et créer une étendue invités sur le serveur Windows, relayée par pfSense, avec un bail court et le DNS du pare-feu en option 006. (b) Laisser pfSense servir les invités et donner au serveur Windows une carte dans chaque VLAN à servir : c'est à éviter, car un contrôleur de domaine multirésident pose des problèmes de DNS et le relie directement à plusieurs zones, contournant le pare-feu. On retient (a). (Avec OPNsense, mélanger serveur et relais selon l'interface serait possible.)

Tu avais trouvé ?

Exercice 3 sur 4 Les noms d'Internet ne répondent plus Réussi À revoir

Après une mise à jour, les postes ouvrent leur session (le domaine fonctionne), mais aucun site Internet ne s'ouvre : « adresse introuvable ». nslookup www.service-public.fr 192.168.10.177 échoue ; nslookup www.service-public.fr 192.168.10.190, lancé depuis srv-ad, répond correctement.

  1. Que conclus-tu de chaque test ?
  2. Que vérifies-tu sur srv-ad ?
Voir la réponseMasquer la réponse de l'exercice 3
  1. Le contrôleur de domaine ne sait plus résoudre les noms d'Internet, alors que le résolveur de pfSense, interrogé directement depuis srv-ad, fonctionne : le flux et la règle 1 de l'onglet SERVEURS sont bons. Le problème est sur srv-ad, dans la façon dont il fait suivre les questions.
  2. Les redirecteurs : Get-DnsServerForwarder doit afficher 192.168.10.190 ; s'ils ont été effacés (et que UseRootHint est à False), le serveur n'a plus aucun moyen de résoudre. Corriger avec Set-DnsServerForwarder -IPAddress 192.168.10.190 -UseRootHint $false, puis vider le cache (Clear-DnsServerCache) et retester.

Tu avais trouvé ?

Exercice 4 sur 4 Préparer le DNS de Mâcon Réussi À revoir

À Mâcon (192.168.20.0/24), srv-macon distribue les adresses et donne 192.168.20.10 (dc-macon) comme serveur DNS. Le pfSense de Mâcon a l'adresse LAN 192.168.20.254.

  1. Un terminal demande srv-gestion.ad.sorbier.example, puis www.service-public.fr. Qui répond à chaque question ? Que configures-tu sur dc-macon ?
  2. Le pfSense de Mâcon doit lui-même résoudre les noms de l'annuaire, en interrogeant dc-macon ou srv-ad, au siège, si dc-macon ne répond pas. Que configures-tu sur ce pare-feu ? Quel piège y a-t-il pour les requêtes qui partent vers le siège ?
Voir la réponseMasquer la réponse de l'exercice 4
  1. Pour srv-gestion.ad.sorbier.example, dc-macon répond lui-même : il héberge une copie en lecture seule de la zone intégrée à l'annuaire, qui se résout sur place même si le tunnel tombe. Pour www.service-public.fr, dc-macon fait suivre au résolveur du pfSense de Mâcon : Set-DnsServerForwarder -IPAddress 192.168.20.254 -UseRootHint $false. Sur ce pfSense, dc-macon et le pare-feu sont dans le même réseau LAN : la règle de l'onglet LAN qui autorise DC_MACON vers LAN address port 53 suffit, rien ne traverse le tunnel.
  2. Deux substitutions de domaine, Services > DNS Resolver > Domain Overrides : Domain ad.sorbier.example, Lookup Server IP Address 192.168.20.10, puis une seconde entrée pour le même domaine vers 192.168.10.177. Unbound ne suit pas d'ordre entre les deux : il répartit les requêtes entre les serveurs qui répondent assez vite, donc une partie part vers srv-ad. Celles-là traversent le tunnel, dont la phase 2 couvre 192.168.10.0/24 ↔ 192.168.20.0/24 : une requête émise depuis l'adresse WAN du pare-feu n'y correspondrait pas. Dans Services > DNS Resolver, règle Outgoing Network Interfaces sur LAN seulement : Unbound émet alors toutes ses requêtes depuis 192.168.20.254, adresse couverte par le tunnel (le NAT sortant traduit celles qui partent vers Internet). Avec plusieurs interfaces cochées, Unbound choisirait l'adresse source au hasard à chaque requête, et une partie partirait encore de l'adresse WAN. Côté siège, la règle de l'onglet IPsec « DNS de l'annuaire » (192.168.20.0/24 vers SRV_DC, port 53, chapitre 10) couvre cette requête.

Tu avais trouvé ?

Chapitre terminé !

Fais les 4 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : VPN nomade sur pfSense : OpenVPN et WireGuardRevoir le sommaire du cours