
Le DHCP est un service fondamental, mais aussi une cible potentielle d’abus. Sur un hôte Windows Server Core, il est possible de le configurer, sécuriser et superviser intégralement via PowerShell, sans interface graphique. Ce guide va au-delà de l’installation standard en intégrant : le filtrage dynamique, les audits d’échec d’attribution, la signature des logs, la surveillance à distance via WEF et l’export vers SIEM.
1. Installation et autorisation du rôle DHCP
Install-WindowsFeature -Name DHCP -IncludeManagementTools
Add-DhcpServerInDC -DnsName srv-dhcp01.corp.lan -IpAddress 10.10.1.10
Le serveur est ainsi autorisé à émettre sur le réseau dans un environnement Active Directory sécurisé.
2. Création et validation d’une étendue avec exclusion
Add-DhcpServerv4Scope -Name "LAN-A" -StartRange 10.10.1.100 -EndRange 10.10.1.200 -SubnetMask 255.255.255.0 -State Active
Add-DhcpServerv4ExclusionRange -ScopeId 10.10.1.0 -StartRange 10.10.1.150 -EndRange 10.10.1.160
Les adresses critiques (imprimantes, équipements sensibles) sont exclues pour éviter tout chevauchement IP.
3. Activer le filtrage d’adresses MAC dynamiquement
Set-DhcpServerv4FilterList -Allow
$macs = @("00-11-22-33-44-55", "66-77-88-99-AA-BB")
foreach ($mac in $macs) {
Add-DhcpServerv4Filter -List Allow -MacAddress $mac -Description "Machine autorisée $mac"
}
Empêche tout équipement non enregistré d’obtenir une adresse IP.
4. Configuration avancée des options de client (DNS, PXE, NTP)
Set-DhcpServerv4OptionValue -ScopeId 10.10.1.0 -OptionId 66 -Value "10.10.1.30" # TFTP server pour PXE
Set-DhcpServerv4OptionValue -ScopeId 10.10.1.0 -DnsServer 10.10.1.5 -DnsDomain corp.lan
Set-DhcpServerv4OptionValue -ScopeId 10.10.1.0 -OptionId 42 -Value "10.10.1.6" # Serveur NTP
Ajoute les services nécessaires au déploiement automatisé et à la synchronisation.
5. Activation du logging signé et traçabilité complète
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\DHCPServer\Parameters" -Name "DhcpLogFilePath" -Value "C:\\Logs\\DHCP"
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\DHCPServer\Parameters" -Name "DhcpLogDiskSpaceCheckInterval" -Value 15
Les logs peuvent être scellés et monitorés via checksum par un outil externe (type Wazuh ou NXLog).
6. Surveiller les baux et échecs via PowerShell distant
Invoke-Command -ComputerName srv-dhcp01 -ScriptBlock {
Get-DhcpServerv4Lease | Where-Object { $_.AddressState -ne 'Active' } | Format-Table IPAddress, HostName, AddressState
}
Utile pour repérer les pannes de distribution ou tentatives échouées d’attribution frauduleuse.
7. Activer l’audit DHCP dans le journal Windows
auditpol /set /subcategory:"Logon" /success:enable /failure:enable
wecutil qc # Configuration rapide du collecteur WEF
Les journaux peuvent être redirigés vers un SIEM ou serveur central pour corrélation avec d’autres événements de sécurité.
8. Export automatique quotidien des baux pour analyse
Get-DhcpServerv4Lease | Export-Csv -Path "\\SIEM-SERVER\logs\dhcp\leases_$(Get-Date -Format yyyyMMdd).csv" -NoTypeInformation
Chaque fichier est horodaté et prêt à être ingéré par un pipeline de sécurité (ELK, Splunk, Wazuh).
Conclusion
Un serveur DHCP ne se limite pas à distribuer des adresses. Il doit faire partie intégrante du dispositif de cybersécurité. En ligne de commande, les administrateurs peuvent le configurer de manière fine, scriptable, avec contrôle d’accès, filtrage, surveillance, et export régulier vers les plateformes d’analyse de logs. C’est une brique critique de toute infrastructure durcie.