DNS-logboekregistratie inschakelen en analyseren op Windows Server
Dit hele proces kan behoorlijk wat hoofdbrekens opleveren als je probeert uit te zoeken welke apparaten je DNS-server nog steeds pingen of als er verdachte activiteiten doorheen glippen. Soms heb je gewoon een manier nodig om de DNS-query’s in realtime te bekijken, zonder te verdrinken in Wireshark-captures of afhankelijk te zijn van tools van derden. Het inschakelen van DNS-debuglogging en het analyseren van die logs kan een hoop problemen voorkomen, vooral bij het uitfaseren van oude servers of het opsporen van malafide apparaten. Deze aanpak is eigenlijk vrij eenvoudig – tenminste als je de initiële configuratie eenmaal hebt voltooid.
Hoe schakel ik DNS-foutopsporingslogboekregistratie in?
De meeste mensen vergeten dat DNS-logging niet standaard is ingeschakeld, wat het nut ervan tenietdoet als je query’s wilt volgen. Het voordeel is dat je een gedetailleerd overzicht krijgt van alle DNS-transacties: wie wat opvraagt en wanneer. Dit is handig bij het oplossen van DNS-problemen, het opsporen van ongeautoriseerde DNS-activiteit of bij de voorbereiding op het buitenbedrijf stellen van een server. Je kunt overzichtelijke, tekstgebaseerde logs verwachten die je later snel kunt doorzoeken of analyseren. Vreemd genoeg kan het inschakelen van logging op sommige servers de CPU-belasting licht verhogen, dus houd dit in de gaten als je server al zwaar belast is.
- Open DNS Manager door het programma te starten
dnsmgmt.mscof via Server Manager > Tools > DNS. - Klik met de rechtermuisknop op uw DNS-server en selecteer Eigenschappen.
- Ga naar het tabblad Foutopsporingslogboekregistratie.
- Controleer logpakketten voor foutopsporing. Dit is de schakelaar waarmee u logboekregistratie kunt inschakelen.
- Configureer uw voorkeuren: kies het DNS-protocol (UDP/TCP) en de pakkettypen (zoals eenvoudige query’s, updates en meldingen).
- Als u de logboeken wilt beperken tot bepaalde clients, gebruikt u de optie ‘Pakketten filteren op IP-adres’.
- Stel de locatie van het logbestand in bij ‘Pad en naam van het logbestand’. Dit is doorgaans iets als
C:\DNSLogs\dns_debug.log. Houd er rekening mee dat logbestanden groot kunnen worden – Windows hanteert standaard een limiet van 500 MB – dus plan voldoende schijfruimte in.
DNS-logbestanden controleren en beheren
Eenmaal ingeschakeld, kunt u DNS-query’s genereren vanaf elke machine, bijvoorbeeld met behulp van nslookupof PowerShellResolve-DnsName. Stel dat het IP-adres van uw DNS-server 192.168.13.10 is. Het uitvoeren van nslookup woshub.com 192.168.13.10of Resolve-DnsName -Name woshub.com -Server 192.168.13.10zou logbestanden moeten opleveren waarin de query in het logbestand wordt weergegeven.
Om te controleren of het is vastgelegd, hoeft u alleen maar het logbestand te doorzoeken. Bijvoorbeeld met PowerShell:
get-content "C:\DNSLogs\dns_debug.log" | Out-String | Select-String "192.168.13.130"
Dit zou het IP-adres van de client moeten detecteren en de details van het verzoek weergeven, zoals tijd, type query, enz. In sommige configuraties is dit niet direct beschikbaar; het hangt af van de grootte van het logbestand, de serverbelasting, enz. De logvermeldingen zien er meestal als volgt uit:
11/17/2021 6:00:00 AM 0D0C PACKET 00000272D98DD0B0 UDP Rcv 192.168.13.130 0002 Q [0001 D NOERROR] A (8)woshub(2)com(0)
Het ziet er vrij technisch uit, maar het bevat precies de informatie die je nodig hebt: wie de vraag stelde, wat er gevraagd werd en de status van het antwoord. Als je dit te omslachtig vindt om handmatig te lezen, zijn er scripts beschikbaar die deze logs kunnen parseren of omzetten naar een overzichtelijker formaat.
DNS-logboeken transformeren en analyseren
Hier wordt het een beetje ingewikkeld. Die logbestanden zijn een nachtmerrie om te lezen als je patronen of boosdoeners probeert te vinden. Scripts zoals Get-DNSDebugLog.ps1 bieden uitkomst. Dit script zet de ruwe logbestanden om in een gestructureerde tabel of CSV-bestand voor een eenvoudigere analyse. Kopieer het script naar je computer, voer het uit Set-ExecutionPolicy -Scope Process Unrestrictedom scripts toe te staan, importeer het vervolgens .C:\ps\Get-DNSDebugLog.ps1en stuur je logbestanden er als volgt doorheen:
Get-DNSDebugLog -DNSLog C:\DNSLogs\dns_debug.log | format-table
Je kunt de uitvoer ook exporteren naar CSV en analyseren in Excel, wat veel gebruiksvriendelijker is. Gebruik hiervoor Export-Csvin plaats van format-table. Op deze manier krijg je snel een overzicht van wie je DNS-query’s uitvoert, hoe vaak en welke hostnamen ze opvragen. Het is verrassend handig om vreemde activiteiten of oude apparaten die nog steeds verbinding maken met je server te detecteren.
Een andere, vrij robuuste optie is het gebruik van Log Parser 2.2. Deze tool kan DNS-logs analyseren en gedetailleerde statistieken leveren, zoals welke clients het vaakst query’s uitvoeren of welke domeinen het populairst zijn. In één configuratie werkte het uitstekend, hoewel het wat omslachtig is, dus verwacht wat experimenteren.
Samenvatting
Het inschakelen van DNS-debuglogging en het analyseren van de logs is misschien niet de meest aantrekkelijke technische taak, maar het is vaak wel de snelste manier om te begrijpen wat er achter de schermen gebeurt. Of je nu oude infrastructuur uitfaseert, op zoek bent naar verdachte activiteiten of gewoon de boel opruimt, deze methode biedt een helder beeld.
Samenvatting
- Schakel foutopsporingslogboekregistratie in via DNS Manager met gedetailleerde opties.
- Gebruik PowerShell of Kladblok om logboeken te bekijken en te controleren op query’s.
- Zet logbestanden om in een beheersbaar formaat met scripts zoals Get-DNSDebugLog.ps1.
- U kunt desgewenst logbestanden analyseren met Log Parser 2.2 voor een geavanceerdere analyse.
- Overweeg centrale tools voor logbeheer voor grotere systemen.
Hopelijk bespaart deze aanpak je een hoop kopzorgen de volgende keer dat je probeert te achterhalen welk apparaat nog steeds met je DNS communiceert. In mijn ervaring is het, mits goed geconfigureerd, behoorlijk betrouwbaar en krijg je een goed inzicht zonder al te veel met Wireshark te hoeven rommelen.