ตัวกรอง DNS ของ VPN: การบล็อกชื่อไม่ได้บล็อกโฆษณา
กฎ dnsmasq ตอบชื่อด้วย NXDOMAIN มันไม่เคยอ่านหน้าเว็บ เปรียบเทียบกับสิ่งที่ตัวบล็อกฝั่งไคลเอนต์ทำก่อนสัญญาว่าจะลบโฆษณา
บรรทัด dnsmasq เพียงบรรทัดเดียวตอบชื่อด้วย NXDOMAIN ได้ และนั่นคือกลไกทั้งหมด มันไม่เคยอ่าน HTML ไม่เคยตรวจเส้นทางคำขอ และไม่เคยเห็นว่าแอปพลิเคชันทำอะไรกับการเชื่อมต่อที่เปิดไว้แล้ว การเปรียบเทียบกับส่วนขยายเบราว์เซอร์จึงเป็นการเปรียบเทียบงานสองอย่างที่ต่างกัน อย่างหนึ่งตัดสินว่าชื่อจะถูกแปลงหรือไม่ อีกอย่างตัดสินว่าเกิดอะไรขึ้นหลังจากนั้น
ตัวกรองชื่อควบคุมอะไรจริง ๆ
ตัวเลือก address=/metrics.example/ ที่ไม่มีอะไรต่อท้ายสแลชสุดท้าย ทำให้ตัวแปลงชื่อตอบ NXDOMAIN สำหรับชื่อนั้นและโดเมนย่อย การปล่อยที่อยู่ว่างไว้คือส่วนสำคัญ เพราะหลีกเลี่ยงการส่งไคลเอนต์ไปยังเซิร์ฟเวอร์ทดแทนที่ไม่เกี่ยวข้อง หรือการแกล้งทำว่า loopback เป็นปลายทางจริง คู่มือ 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
คำตอบว่างสำหรับชื่อที่ถูกบล็อก ที่อยู่ปกติสำหรับชื่อสาธารณะ และที่อยู่ส่วนตัวสำหรับชื่อภายใน ร่วมกันแสดงว่าการกรอง การแปลงชื่อต้นทาง และเรกคอร์ดภายในทำงาน ถ้าทั้งสามล้มเหลว คุณกำลังดูปัญหาต้นทางหรือตัวรับฟัง ไม่ใช่ตัวกรอง
รักษาข้อกล่าวอ้างให้แคบในทุกสิ่งที่เผยแพร่ภายใน นี่คือการกรองโดเมนบนตัวแปลงชื่อ ไม่ใช่การตรวจเนื้อหา ไม่ใช่การกรองเส้นทาง และไม่ใช่คำสัญญาว่าไม่มีใครถูกติดตาม ระบุเจ้าของนโยบาย เส้นทางยกเว้น และระยะเวลาเก็บคำถามพร้อมกับกฎ เพราะตัวกรองที่บันทึกทุกการค้นหามีต้นทุนความเป็นส่วนตัวของตัวเอง