DNS रिज़ॉल्वर लॉग बनाम VPN कनेक्शन लॉग: हर एक में क्या रहता है
रिज़ॉल्वर उन नामों को दर्ज करता है जिनका उत्तर देने को उससे कहा गया; VPN अपने ही कार्यान्वयन से टनल की घटनाएँ दर्ज करता है। एक प्रतिधारण नीति दूसरी को कवर नहीं करती।
DNS रिज़ॉल्वर लॉग और VPN कनेक्शन लॉग दोनों नेटवर्क रिकॉर्ड हैं, दोनों उपयोगी हैं और एक-दूसरे के विकल्प नहीं हैं। रिज़ॉल्वर उन नामों को प्राप्त करता है जिनका उत्तर देने को उससे कहा गया। VPN एंडपॉइंट टनल कनेक्शन संभालता है और वह दर्ज करता है जो उसके कार्यान्वयन ने उनके बारे में दर्ज करना चुना। वे एक ही इमारत में हो सकते हैं, एक ही टीम द्वारा संचालित हो सकते हैं और एक ही गोपनीयता सूचना के अंतर्गत आ सकते हैं, फिर भी वे अलग-अलग पहचानकर्ताओं और अलग-अलग प्रतिधारण के साथ अलग-अलग घटनाओं का वर्णन करते हैं। एक को दूसरा मानकर पढ़ना ही वह रास्ता है जिस पर जाँच भटक जाती है।
दो लॉग, दो घटनाएँ
रिज़ॉल्वर की एक प्रविष्टि नामकरण के बारे में एक प्रश्न का उत्तर देती है: इस क्लाइंट ने इस समय इस नाम का अनुरोध किया, और उत्तर यह था। VPN की एक प्रविष्टि कनेक्टिविटी के बारे में प्रश्न का उत्तर देती है: इस पीयर ने टनल स्थापित किया या खो दिया, उसे यह पता सौंपा गया, और जाने से पहले उसने लगभग इतना डेटा स्थानांतरित किया। इनमें से कोई भी HTTPS सत्र के भीतर उपयोगकर्ता ने क्या किया इसका रिकॉर्ड नहीं है, और कोई भी दूसरे का स्थान नहीं लेता।
इस अंतर का वादों के लिए व्यावहारिक परिणाम है। यह कथन कि VPN प्रदाता टनल गतिविधि दर्ज नहीं करता, उस रिज़ॉल्वर के बारे में कुछ नहीं कहता जो वह देता है, और रिज़ॉल्वर की प्रतिधारण नीति टनल से कौन जुड़ा इस बारे में कुछ नहीं कहती। हर दावा अपने ही ऑपरेटर और अपने ही सिस्टम का है।
कोई भी लॉग पढ़ने से पहले क्वेरी का पीछा करें
क्वेरी किसी रिज़ॉल्वर तक तभी पहुँचती है जब पथ वास्तव में उससे पूछता है। कोई एप्लिकेशन ऑपरेटिंग सिस्टम के रिज़ॉल्वर का उपयोग कर सकता है, अपना एन्क्रिप्टेड DNS क्लाइंट चला सकता है, या कैश किया गया उत्तर पढ़कर कुछ भी न भेज सकता है। इसलिए कुछ न दिखाने वाला रिज़ॉल्वर लॉग इस बात का प्रमाण नहीं है कि कोई नाम कभी इस्तेमाल नहीं हुआ; यह प्रमाण है कि इस रिज़ॉल्वर से नहीं पूछा गया।
resolvectl status
dig @127.0.0.53 build.corp.example +qr
journalctl -u systemd-resolved -n 20 --no-pager
वह अंतिम कमांड स्थानीय रिज़ॉल्वर की अपनी जर्नल पढ़ता है, जो अपस्ट्रीम सर्वर के लॉग के समान नहीं है। यदि आपकी क्वेरियाँ DNS over HTTPS से किसी प्रदाता तक जाती हैं, तो स्थानीय स्टब कुछ न दिखा सकता है जबकि प्रदाता के पास पूरा रिकॉर्ड है, और प्रदाता अलग नीति वाला अलग ऑपरेटर है।
हर रिकॉर्ड क्या दिखा सकता है और क्या नहीं
| Record | Typically shows | Does not show |
|---|---|---|
| Resolver log | Queried name, client address, time, response | Which page was fetched, or what the tunnel did |
| VPN connection log | Peer identity, assigned address, connect and disconnect times, volume | Which name the application asked for |
| Application or proxy log | Requests, status codes, sometimes full URLs | Resolved addresses for every dependency |
इन्हें जोड़ना ही असली काम है, और इन्हें जोड़ना हमेशा संभव नहीं है। क्लाइंट पते दर्ज करने वाले रिज़ॉल्वर की तुलना उस VPN से की जा सकती है जो किसी ज्ञात पूल से पते आवंटित करता है, और वह तुलना किसी पूछे गए नाम और किसी टनल के बीच एक विश्वसनीय कड़ी बनाती है, जो दो रिकॉर्ड के बीच की कड़ी ही रहती है, किसी व्यक्ति का रिकॉर्ड नहीं।
एन्क्रिप्टेड DNS परिवहन बदलता है, एंडपॉइंट पर दृश्यता नहीं। रिज़ॉल्वर अभी भी वह प्रश्न प्राप्त करता है जिसका वह उत्तर देता है, जैसा कि RFC 8484 स्पष्ट करता है, और उस रिज़ॉल्वर पर प्रतिधारण प्रोटोकॉल का गुण नहीं बल्कि नीति का निर्णय है।
जहाँ स्प्लिट DNS और कैश कहानी को उलझाते हैं
एक से अधिक रिज़ॉल्वर सामान्य है। स्प्लिट-DNS डिज़ाइन आंतरिक नामों को आंतरिक सर्वर पर और बाकी सब कुछ सार्वजनिक सर्वर पर भेजता है, इसलिए एक ही जाँच में ऐसे दो लॉग शामिल हो सकते हैं जिन्हें कभी जोड़ने के लिए नहीं सोचा गया था और ऐसी दो प्रतिधारण सेटिंग्स जिन्हें कभी तुलना के लिए नहीं सोचा गया था। दोनों में क्वेरियाँ दिखना इस बात का प्रमाण है कि डिज़ाइन काम करता है, रिसाव का प्रमाण नहीं।
कैश दूसरी दिशा में काटता है। किसी लोकप्रिय नाम का उत्तर घंटों तक कैश से दिया जा सकता है, इसलिए रिज़ॉल्वर का रिकॉर्ड पहली क्वेरी दिखाता है और फिर कुछ नहीं, जबकि उपयोगकर्ता का एप्लिकेशन उसी नाम को खुशी-खुशी हल करता रहता है। किसी निश्चित समय के बाद प्रविष्टियों का न होना इसका अर्थ नहीं है कि उस समय के बाद किसी ने नाम का उपयोग नहीं किया।
पृष्ठभूमि ट्रैफ़िक तीसरा विकृति है। बूट पर टेलीमेट्री नाम हल करने वाला फ़ोन, खोज सुझाव डोमेन हल करने वाला ब्राउज़र, और हर घंटे चेक-इन करने वाला अपडेटर—सभी रिज़ॉल्वर लॉग में उस नाम के साथ दिखते हैं जो वास्तव में आपके लिए मायने रखता है। उस लॉग में मात्रा ध्यान नहीं है, और क्वेरियाँ गिनना विज़िट गिनना नहीं है। रिज़ॉल्वर लॉग प्रश्नों का रिकॉर्ड है, और प्रश्न बनाना सस्ता है।
प्रतिधारण के प्रश्न अलग-अलग पूछें
हर सिस्टम के लिए तीन प्रश्न पूछें: कौन एकत्र करता है, क्या एकत्र होता है, और कितने समय तक वह रखा जाता है. फिर पूछें कि इसे कौन पढ़ सकता है और किस प्रक्रिया के अंतर्गत। DNS over HTTPS पर RFC 8484 की चर्चा अच्छी याद दिलाती है कि एन्क्रिप्टेड परिवहन एंडपॉइंट को हटाता नहीं, और ऑपरेटर का अपना दस्तावेज़ीकरण ही इस बारे में एकमात्र भरोसेमंद कथन है कि वह एंडपॉइंट क्या रखता है।
जब गोपनीयता के बारे में “VPN” पर दावा किया जाता है, तो उसे स्वीकार करने से पहले घटकों में बाँटें: टनल ऑपरेटर, टनल द्वारा दिया गया रिज़ॉल्वर, वे कोई भी अपस्ट्रीम रिज़ॉल्वर जिन तक ये क्वेरियाँ पहुँचती हैं, और डिवाइस पर मौजूद एप्लिकेशन। हर एक का अपना उत्तर है, और जो दावा एक के लिए सही है वह नियमित रूप से ऐसे दोहराया जाता है जैसे वह चारों को कवर करता हो।
समस्या-निवारण के लिए वही विभाजन इस्तेमाल करें। पूछें कि किस एप्लिकेशन ने क्वेरी की और किस रिज़ॉल्वर ने उसका उत्तर दिया, फिर उस लॉग को देखें जो वास्तव में उस घटना का मालिक है. दूसरे लॉग से अनुमान लगाना एक मिनट बचाता है और एक दोपहर का खर्च करता है।