Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रणाली >> Windows Server

Windows Server पर DNS क्वेरी लॉगिंग सक्षम करना और लॉग फ़ाइल पार्स करना

इस लेख में, हम दिखाएंगे कि Windows Server चलाने वाले DNS सर्वर पर सभी उपयोगकर्ता क्वेरीज़ के लिए DNS लॉगिंग कैसे सक्षम करें, DNS लॉग्स को कैसे पार्स और विश्लेषण करें। मुझे इस कार्य का सामना तब करना पड़ा जब मुझे एक ब्रांच ऑफिस में एक पुराने Active Directory डोमेन कंट्रोलर को डीकमीशन करना पड़ा और मुझे यह समझने की आवश्यकता थी कि कौन से डिवाइस अभी भी DNS सर्वर का उपयोग कर रहे थे। DNS लॉग सक्षम करने और उसका विश्लेषण करने के बाद, मैं डिवाइसेज को ढूंढने और उन्हें अन्य DNS सर्वर्स का उपयोग करने के लिए पुनर्कॉन्फ़िगर करने में सक्षम हुआ। साथ ही, यह विधि आपके Active Directory नेटवर्क में संदिग्ध गतिविधि वाले होस्ट्स को खोजने में मदद करेगी (दुर्भावनापूर्ण URL एक्सेस करना, बॉटनेट होस्ट्स, आदि)।

बेशक, आप अपने DNS होस्ट पर पोर्ट 53 पर ट्रैफिक कैप्चर करने के लिए Wireshark, Microsoft Network Monitor, या pktmon इंस्टॉल कर सकते हैं, लेकिन Windows Server पर बिल्ट-इन DNS क्वेरी लॉगिंग का उपयोग करना आसान है।

डिफ़ॉल्ट रूप से, Windows Server पर DNS लॉगिंग अक्षम है। इसे सक्षम करने के लिए:

  1. DNS Manager स्नैप-इन (dnsmgmt.msc) खोलें और उस DNS सर्वर से कनेक्ट करें जिसे आप चाहते हैं;
  2. इसके गुण खोलें और Debug Logging टैब पर जाएं;
  3. Log packets for debugging विकल्प सक्षम करें;
  4. फिर आप लॉगिंग विकल्प कॉन्फ़िगर कर सकते हैं: DNS पैकेट दिशा चुनें, एक प्रोटोकॉल (UDP और/या TCP), पैकेट प्रकार (साधारण DNS क्वेरीज़, अपडेट्स, या नोटिफिकेशन्स);
  5. Filter packets by IP address विकल्प का उपयोग करके, आप उन IP पतों को निर्दिष्ट कर सकते हैं जिनके लिए इनकमिंग या आउटगोइंग पैकेट्स लॉग करने हैं (यह लॉग आकार को काफी कम करने की अनुमति देता है);
  6. Log file path and name बॉक्स में, उस टेक्स्ट फ़ाइल का नाम निर्दिष्ट करें जिसमें आप सभी घटनाओं को लॉग करना चाहते हैं। डिफ़ॉल्ट रूप से, DNS लॉग का आकार 500MB तक सीमित है। इस तक पहुंचने के बाद, पुराने DNS लुकअप इवेंट्स नए वाले से ओवरराइट हो जाएंगे।

साथ ही, आप PowerShell का उपयोग करके DNS क्वेरी लॉगिंग सक्षम कर सकते हैं या वर्तमान सेटिंग्स प्राप्त कर सकते हैं:

Get-DnsServerDiagnostics

ध्यान दें कि अत्यधिक लोडेड Windows DNS होस्ट्स पर, DNS क्वेरी लॉगिंग CPU, RAM, और स्टोरेज पर अतिरिक्त भार डाल सकती है (डिस्क प्रदर्शन पर्याप्त होना चाहिए)।

फिर किसी भी कंप्यूटर से अपने सर्वर के विरुद्ध DNS क्वेरी चलाएं। उदाहरण के लिए, यदि हमारे Windows Server चलाने वाले DNS होस्ट का IP पता 192.168.13.10 है:

nslookup woshub.com 192.168.13.10

या PowerShell का उपयोग करके DNS पता हल करने का प्रयास करें:

Resolve-DnsName -Name woshub.com -Server 192.168.13.10

DNS लुकअप क्वेरी ने अनुरोधित होस्ट का क्लाइंट IP पता लौटाया।

आइए सुनिश्चित करें कि क्वेरी DNS सर्वर लॉग में दिखाई दी है।

इसे करने के लिए, क्लाइंट IP पते (192.168.13.130) द्वारा टेक्स्ट लॉग फ़ाइल खोजें। आप लॉग फ़ाइल को नोटपैड में खोल सकते हैं या PowerShell का उपयोग करके grep कर सकते हैं:

get-content "C:\Logs\dc01dns.log" | Out-String -Stream | Select-String "192.168.13.130"

यहाँ एक इवेंट उदाहरण है:

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)

जैसा कि आप देख सकते हैं, नाम (8)woshub(2)com(0) को हल करने के लिए एक DNS क्वेरी क्लाइंट 192.168.13.130 से UDP पर प्राप्त (rcv) हुई थी, फिर DNS सर्वर ने सफलतापूर्वक (NOERROR) इसका जवाब दिया (snd)।

सभी फ़ील्ड्स फ़ाइल की शुरुआत में वर्णित हैं:

Field # Information Values ------- ----------- ------ 1 Date 2 Time 3 Thread ID 4 Context 5 Internal packet identifier 6 UDP/TCP indicator 7 Send/Receive indicator 8 Remote IP 9 Xid (hex) 10 Query/Response R = Response blank = Query 11 Opcode Q = Standard Query N = Notify U = Update ? = Unknown 12 Flags (hex) 13 Flags (char codes) A = Authoritative Answer T = Truncated Response D = Recursion Desired R = Recursion Available 14 ResponseCode 15 Question Type 16 Question Name

विशिष्ट फॉर्मेट के कारण, ऐसे DNS लॉग फ़ाइल को मैन्युअली पार्स और विश्लेषण करना कठिन है। इसलिए आपको Get-DNSDebugLog.ps1 स्क्रिप्ट का उपयोग करके DNS क्वेरी लॉग को अधिक सुविधाजनक फॉर्मेट में बदलने की आवश्यकता है।

यह PowerShell स्क्रिप्ट मेरी नहीं है, लेकिन यह वर्तमान में TechNet Scriptcenter में उपलब्ध नहीं है, इसलिए मैंने इसे अपने GitHub रिपॉजिटरी में सहेजा है: https://github.com/maxbakhub/winposh/blob/main/Get-DNSDebugLog.ps1।

फ़ाइल को अपने डिस्क पर डाउनलोड करें। फिर वर्तमान कंसोल सत्र में PowerShell स्क्रिप्ट्स को निष्पादित करने की अनुमति दें:

Set-ExecutionPolicy -Scope Process Unrestricted

Get-DNSDebugLog.ps1 से फ़ंक्शन को अपने सत्र में इम्पोर्ट करें:

. C:\ps\Get-DNSDebugLog.ps1

फिर DNS लॉग को अधिक सुविधाजनक फॉर्मेट में बदलें:

Get-DNSDebugLog -DNSLog C:\Logs\dc01dns.log | format-table

या आप आगे के विश्लेषण के लिए Excel में CSV फ़ाइल में परिणाम निर्यात कर सकते हैं (या आप PowerShell से सीधे Excel फ़ाइल एक्सेस कर सकते हैं और उसमें वांछित DNS क्वेरीज़ लिख सकते हैं)।

Get-DNSDebugLog -DNSLog C:\Logs\dc01dns.log | Export-Csv C:\log\ProperlyFormatedDNSLog.csv –NoTypeInformation

आप फ़ाइल को Excel में निर्यात कर सकते हैं और DNS क्वेरीज़ का विश्लेषण करने के लिए इसका उपयोग कर सकते हैं (फ़ाइल में होस्ट IP पते और DNS नाम होते हैं जिन्हें उन्होंने आपके DNS सर्वर से अनुरोध किया था)।

साथ ही, आप DNS लॉग फ़ाइल को पार्स और विश्लेषण करने के लिए Log Parser 2.2 (https://docs.microsoft.com/en-us/archive/blogs/secadv/parsing-dns-server-log-to-track-active-clients) का उपयोग कर सकते हैं। उदाहरण के लिए, नीचे दी गई कमांड प्रत्येक IP पते से DNS क्वेरीज़ की संख्या प्रदर्शित करेगी:

LogParser.exe -i:TSV -nskiplines:30 -headerRow:off -iSeparator:space -nSep:1 -fixedSep:off -rtp:-1 "SELECT field9 AS IP, REVERSEDNS(IP) AS Name, count(IP) as QueryCount FROM "C:\Logs\dc01dns.log" WHERE field11 = 'Q' GROUP BY IP ORDER BY QueryCount DESC"

इस उदाहरण में, हमने DNS लॉग एकत्र करने के लिए टेक्स्ट फ़ाइलों का उपयोग किया। Windows Server 2012 और नए में, आप DNS क्वेरीज़ को सीधे Event Viewer (Microsoft-Windows-DNS-Server/Audit) में लॉग कर सकते हैं। लेकिन मेरी राय में, टेक्स्ट DNS लॉग्स का विश्लेषण करना बहुत आसान है।

बेशक, यदि आप कई सर्वर्स पर DNS क्वेरीज़ लॉग करना चाहते हैं, तो लॉग्स एकत्र, स्टोर और प्रोसेस करने के लिए एक विशेष समाधान का उपयोग करना बेहतर है, जैसे Splunk, ELK, Graylog, या Azure Log Analytics।

DNS क्वेरी लॉग सक्षम करने और उसका विश्लेषण करने के बाद, मुझे उन डिवाइसेज के IP पते मिले जो अभी भी DNS सर्वर का उपयोग कर रहे थे और उन्हें अन्य DNS सर्वर्स पर पुनर्कॉन्फ़िगर किया। यदि पुराने DC में कोई FSMO भूमिकाएं नहीं हैं, तो आप इसे हटा सकते हैं (यहां AD उपयोगकर्ता लॉगऑन इवेंट्स मायने नहीं रखते)।

  1. विंडोज 10 पर DLNA सर्वर सक्षम करें: चरण-दर-चरण गाइड विंडोज 10 पर DLNA सर्वर सक्षम करें: चरण-दर-चरण गाइड

    DLNA सर्वर क्या है और विंडोज 10 पर इसे कैसे सक्षम करें: कुछ समय पहले तक लोग फिल्में या गाने अपने टीवी पर देखने के लिए DVD, ब्लू-रे आदि का उपयोग करते थे, लेकिन अब आपको CD या DVD खरीदने की आवश्यकता नहीं है। ऐसा इसलिए है क्योंकि अब आप अपने पीसी को सीधे अपने टीवी से कनेक्ट कर सकते हैं और अपनी पसंद की को

  1. विंडोज 11 पर DNS सेटिंग्स बदलने की चरण-दर-चरण गाइड विंडोज 11 पर DNS सेटिंग्स बदलने की चरण-दर-चरण गाइड

    इंटरनेट से जुड़ने और एक्सेस करने की बात आती है, तो DNS या डोमेन नेम सिस्टम अत्यंत महत्वपूर्ण है क्योंकि यह डोमेन नामों को IP एड्रेस पर मैप करता है। यह आपको किसी वेबसाइट को खोजने के लिए IP एड्रेस के बजाय techcult.com जैसे नाम का उपयोग करने की अनुमति देता है। संक्षेप में, यह इंटरनेट फोनबुक है, जो उपयो

  1. विंडोज 11 में DNS सर्वर बदलने की स्टेप-बाय-स्टेप गाइड: बेहतर सुरक्षा के लिए विंडोज 11 में DNS सर्वर बदलने की स्टेप-बाय-स्टेप गाइड: बेहतर सुरक्षा के लिए

    अगर आप अपनी गोपनीयता बढ़ाना चाहते हैं तो अपने विंडोज 11 PC/लैपटॉप पर DNS सेटिंग्स कॉन्फ़िगर करना आवश्यक है। चाहे कोई वेबपेज खोला जा रहा हो या कोई ऐप बैकग्राउंड में किसी सर्वर से कनेक्ट करने का प्रयास कर रहा हो, यह आपके कंप्यूटर पर सभी इंटरनेट इंटरैक्शन को सुरक्षित करेगा। अगर आप इस क्षेत्र में नए हैं