VPN DNS फ़िल्टर: नाम ब्लॉक करने से विज्ञापन ब्लॉक नहीं होते
dnsmasq नियम नामों का उत्तर NXDOMAIN से देता है; यह पृष्ठ को कभी नहीं पढ़ता। विज्ञापन हटाने का वादा करने से पहले इसकी तुलना क्लाइंट-साइड ब्लॉकर के काम से करें।
dnsmasq की एक पंक्ति किसी नाम का उत्तर NXDOMAIN से दे सकती है, और पूरी क्रियाविधि इतनी ही है। यह कभी HTML नहीं पढ़ती, किसी अनुरोध का पथ नहीं देखती और यह भी नहीं देखती कि कोई एप्लिकेशन पहले से खोले गए कनेक्शन का क्या करता है। इसलिए इसकी तुलना ब्राउज़र एक्सटेंशन से करना दो अलग कामों की तुलना है। एक तय करता है कि कोई नाम हल होगा या नहीं; दूसरा तय करता है कि उसके बाद क्या होगा।
नाम फ़िल्टर वास्तव में क्या नियंत्रित करता है
आखिरी स्लैश के बाद कुछ न हो, ऐसा address=/metrics.example/ विकल्प रिज़ॉल्वर को उस नाम और उसके सबडोमेन के लिए NXDOMAIN लौटाने पर मजबूर करता है। पता खाली छोड़ना ही महत्वपूर्ण हिस्सा है: इससे क्लाइंट को किसी असंबंधित प्रतिस्थापन सर्वर पर भेजने या लूपबैक पते को असली गंतव्य बताने से बचा जाता है। dnsmasq का नियमावली इस रूप को रीडायरेक्ट नहीं, बल्कि नकारात्मक उत्तर के रूप में बताता है।
नियम जो कुछ भी कर सकता है, वह इसी एक निर्णय से आता है। जो क्लाइंट इस रिज़ॉल्वर से पूछता है उसे नकारात्मक उत्तर मिलता है; जो क्लाइंट किसी दूसरे रिज़ॉल्वर से पूछता है उसे वही मिलता है जो वह रिज़ॉल्वर कहता है। फ़िल्टर को इस बात का पता नहीं होता कि एप्लिकेशन कौन-सा पथ, क्वेरी स्ट्रिंग या खाता इस्तेमाल करता।
यह बारीकी मायने रखती है, क्योंकि एक होस्टनाम अक्सर कई मकसद पूरे करता है। साइन-इन एंडपॉइंट, तस्वीरें और ट्रैकिंग एक ही डोमेन साझा कर सकते हैं, और पूरा नाम हटाने वाला नियम उसके साथ कोई कार्यप्रवाह भी हटा सकता है। नाम-स्तर की नीति को यह सौदा स्वीकार करना होगा या अधिक सीमित नाम चुनने होंगे।
क्लाइंट-साइड ब्लॉकर कहाँ अलग है
ब्राउज़र एक्सटेंशन अनुरोध को बाहर जाने से पहले देखता है, इसलिए वह URL पथ से मिलान कर सकता है, किसी खास अनुरोध को रद्द कर सकता है और उस तत्व को छिपा सकता है जो परिणाम दिखाता। यह example.com/article को अनुमति देते हुए example.com/ads/ को अस्वीकार कर सकता है, जिसे कोई DNS उत्तर व्यक्त नहीं कर सकता। पथ-स्तर का यह दृष्टिकोण वही क्षमता है जो रिज़ॉल्वर के पास बिल्कुल नहीं है। इसी वजह से एक उपकरण के लिए बनी फ़िल्टर सूची दूसरे में शायद ही एक जैसा व्यवहार करती है।
कीमत दायरा है। वह सुरक्षा एक ब्राउज़र के भीतर, एक प्रोफ़ाइल में, एक डिवाइस पर रहती है, और उपयोगकर्ता के दूसरे एप्लिकेशन पर जाते ही गायब हो जाती है। गेटवे पर सेट DNS फ़िल्टर हर उस डिवाइस को कवर करता है जो गेटवे का रिज़ॉल्वर इस्तेमाल करता है, उन डिवाइसों सहित जहाँ कोई एक्सटेंशन इंस्टॉल नहीं हो सकता।
दोनों में से कोई भी इंतज़ाम अपने आप में पूरा नहीं है। DNS फ़िल्टर उस पहचानकर्ता को नहीं हटा सकता जो पृष्ठ पहले ही भेज चुका है, और ब्राउज़र एक्सटेंशन उस एप्लिकेशन की रक्षा नहीं कर सकता जो उसे कभी लोड नहीं करता।
रिज़ॉल्वर का पथ ही तय करता है कि इनमें से कुछ लागू होता है या नहीं
VPN DNS सर्वर की घोषणा करके भी हर क्वेरी नहीं पा सकता। एन्क्रिप्टेड DNS सेट किया ब्राउज़र, अपना रिज़ॉल्वर रखने वाला एप्लिकेशन, या गेटवे को छोड़ने वाले नेटवर्क पथ पर रखा डिवाइस—सब कहीं और देखेंगे। मोबाइल प्लेटफ़ॉर्म अब प्राइवेट-DNS सेटिंग दे रहे हैं जो टनल के सुझाव को चुपचाप दरकिनार कर देती है।
इसलिए नीति नहीं, पथ जाँचें। गेटवे से सीधे इच्छित रिज़ॉल्वर से पूछें, फिर किसी क्लाइंट से पूछकर तुलना करें, और फिर देखें कि जिस नाम को ब्लॉक होना चाहिए वह उपयोगकर्ता के चलाए एप्लिकेशन में सचमुच विफल होता है या नहीं।
कैश किए उत्तर और खुले सॉकेट इसे शोरगुल भरा बना देते हैं। जो पृष्ठ अपने संसाधन पहले ही लोड कर चुका है वह नियम बदलने के बाद भी चलता रहेगा, इसलिए पुराने टैब को फिर से लोड करने से बेहतर परीक्षण नया कनेक्शन है।
परिणाम का दावा करने से पहले दोनों दिशाएँ जाँचें
जानबूझकर ब्लॉक किया गया एक दस्तावेज़ी नाम, अनुमत एक सार्वजनिक नाम और सेवा को ज़रूरी एक निजी नाम इस्तेमाल करें:
$ dig +short metrics.example @10.40.0.53
$ dig +short example.com @10.40.0.53
$ dig +short intranet.corp.internal @10.40.0.53
ब्लॉक किए नाम के लिए खाली उत्तर, सार्वजनिक नाम के लिए सामान्य पता और आंतरिक नाम के लिए निजी पता—मिलकर दिखाते हैं कि फ़िल्टरिंग, अपस्ट्रीम रिज़ॉल्यूशन और स्थानीय रिकॉर्ड सब काम कर रहे हैं। अगर तीनों विफल हों, तो आप फ़िल्टर नहीं, अपस्ट्रीम या लिसनर की समस्या देख रहे हैं।
आप भीतर जो भी प्रकाशित करें, दावे को सीमित रखें। यह रिज़ॉल्वर पर डोमेन फ़िल्टरिंग है, सामग्री निरीक्षण नहीं, पथ फ़िल्टरिंग नहीं और यह वादा भी नहीं कि कोई ट्रैक नहीं हो रहा। नीति का स्वामी, अपवाद का मार्ग और क्वेरी रखने की अवधि नियमों के साथ लिखें, क्योंकि हर खोज लॉग करने वाले फ़िल्टर की अपनी निजता लागत होती है।