dnsmasq ทิ้งคำตอบ DNS ส่วนตัว: ใช่การป้องกัน rebinding หรือไม่
คำตอบส่วนตัวอาจกระตุ้นการป้องกัน rebinding ของ dnsmasq ให้ค้นหาการปฏิเสธที่บันทึกไว้ในล็อกก่อน แล้วจำกัดข้อยกเว้นให้เหลือโดเมนเดียวแทนที่จะปิดการป้องกัน
เซิร์ฟเวอร์ DNS ของบริษัทส่งคืนที่อยู่ส่วนตัวตามที่คาดไว้ แต่การสอบถามผ่านตัวแก้ไขแบบส่งต่อในเครื่องยังล้มเหลว คำตอบมีอยู่ ซึ่งตัดโซนต้นทางและเรกคอร์ดออกไป เหลือเพียงขั้นตอนที่ตัวแก้ไขตัดสินใจว่าจะส่งคำตอบนั้นกลับให้ไคลเอนต์หรือไม่ หากตัวแก้ไขนั้นคือ dnsmasq การปฏิเสธน่าจะอยู่ในล็อกแล้ว
การได้รับคำตอบกับการเลือกจะส่งคำตอบนั้นกลับเป็นสองขั้นตอนที่ต่างกัน
เปรียบเทียบชื่อเดียวกันบนตัวแก้ไขทั้งสองตัว
บันทึกว่าแอปพลิเคชันใช้ตัวแก้ไขตัวใดจริงและชื่อโฮสต์ที่ถามอย่างแม่นยำ จากนั้นเปรียบเทียบผลลัพธ์จากต้นทางกับเหตุการณ์ของตัวแก้ไขแบบส่งต่อสำหรับชื่อเดียวกัน การไม่มีคำตอบจากต้นทาง คำตอบเชิงลบที่แคชไว้ และการปฏิเสธที่บันทึกไว้ ต้องแก้ไขสามวิธีที่ต่างกัน
ที่อยู่ที่เห็นในการสอบถามวินิจฉัยโดยตรงไม่ได้พิสูจน์ว่าแอปพลิเคชันได้รับผ่านเส้นทางปกติของตน การสอบถามทั้งสองอาจออกจากตัวแก้ไขต่างกัน หรือจากตัวแก้ไขเดียวกันภายใต้นโยบายที่ต่างกัน บันทึกผลทั้งสองก่อนตั้งสมมติฐาน เพราะในขั้นตอนนี้เองที่ผู้คนสลับอันหนึ่งแทนอีกอัน การเปรียบเทียบคือการวินิจฉัยทั้งหมด
อ่านการปฏิเสธไม่ใช่อาการ
ตัวเลือก stop-dns-rebind ของ dnsmasq ปฏิเสธคำตอบที่อยู่ส่วนตัวที่ตรงเงื่อนไขซึ่งมาจากต้นทาง และบันทึกไว้เมื่อทำเช่นนั้น การป้องกันนี้มีอยู่ด้วยเหตุผลที่ดี ชื่อสาธารณะที่จู่ ๆ ก็แปลงเป็นที่อยู่ส่วนตัวคือการโจมตี rebinding แบบคลาสสิก แต่ก็ตัดกับบริการที่เป็นส่วนตัวโดยเจตนา ซึ่งเป็นกรณีของคุณ
ค้นหาการปฏิเสธในล็อกก่อนเปลี่ยนแปลงสิ่งใด เพราะข้อความระบุกลไก
หากไม่มีการปฏิเสธและไม่มีคำตอบจากต้นทาง การป้องกัน rebinding ก็ไม่ใช่ปัญหาของคุณ และการปิดมันจะเป็นการเปลี่ยนแปลงที่ไม่แก้อะไรเลยและเพิ่มการเปิดรับความเสี่ยง นั่นแย่กว่าความล้มเหลวเดิม เพราะมันถอดการควบคุมออกและทิ้งข้อบกพร่องไว้ ยืนยันบรรทัดล็อกที่เฉพาะเจาะจงก่อน แล้วจึงตัดสินใจ
จำกัดข้อยกเว้นให้เหลือโดเมนเดียว
สำหรับโดเมนที่ตรวจสอบแล้ว คู่มือ dnsmasq มีข้อยกเว้นที่จำกัดเฉพาะโดเมนแทนสวิตช์ทั้งระบบ
rebind-domain-ok=corp.example
โดเมนข้างต้นเป็นเพียงตัวอย่าง ใช้โดเมนบริหารที่คุณดูแลจริง และทำความเข้าใจขอบเขตการจับคู่ของตัวเลือกก่อนนำไปใช้ เพราะกฎส่วนต่อท้ายครอบคลุมมากกว่าโฮสต์เดียวที่ทดสอบ ตัวสร้างการกำหนดค่าของเราเตอร์อาจแสดงการตั้งค่าเดียวกันผ่านตัวควบคุมของตนเองแทนคำสั่งดิบ ทั้งสองทางใช้ได้ตราบใดที่ขอบเขตที่ได้เป็นสิ่งที่คุณตั้งใจ
ข้อยกเว้นจากการตรวจจับ rebinding ทำเพียงสิ่งเดียว คือปล่อยให้คำตอบของโดเมนนั้นผ่านไป
มันไม่ กำหนดค่าตัวส่งต่อ split-DNS ไม่ทำให้ต้นทางที่เข้าถึงไม่ได้เข้าถึงได้ และไม่สร้างเส้นทางไปยังที่อยู่ที่ส่งคืน แต่ละข้อเป็นข้อกำหนดแยกที่มีลายเซ็นความล้มเหลวของตัวเอง และแต่ละข้อล้มเหลวในไคลเอนต์ต่างกัน
ตรวจสอบโดยไม่ถอดขอบเขตออก
สอบถามชื่อโฮสต์อีกครั้งผ่านเส้นทางส่งต่อ แล้วเชื่อมต่อกับบริการด้วยการตรวจสอบตัวตนตามปกติ ข้อยกเว้น DNS ไม่ใช่เหตุผลให้ยอมรับใบรับรองที่ไม่คาดคิด และความล้มเหลวทั้งสองแยกยากเมื่อทั้งคู่ปรากฏเป็นข้อผิดพลาดของเบราว์เซอร์ ทดสอบชื่อและบริการแยกกัน มีเพียงหนึ่งในสองที่เป็นปัญหา DNS
เก็บเหตุผลของข้อยกเว้นไว้ข้างการกำหนดค่า พร้อมวันที่และผู้รับผิดชอบ
ตรวจสอบซ้ำเมื่อบริการส่วนตัวย้ายที่หรือโดเมนเปลี่ยน การปิดการป้องกันทั่วทั้งระบบจะเปลี่ยนวิธีจัดการคำตอบที่ไม่เกี่ยวข้อง และยังคงทิ้งความล้มเหลวของเส้นทางหรือบริการไว้หาก rebinding ไม่เคยเป็นสาเหตุ