เป็นไปได้ไหมที่จะสร้างเซิร์ฟเวอร์ DNS หลักของคุณเอง?


14

ฉันอยากรู้. ฉันได้อ่านเกี่ยวกับวิธีการที่ผู้ให้บริการอินเทอร์เน็ตและคนกลางของเราบันทึกและติดตามคำขอ DNS ทั้งหมดโดยทั่วไปทิ้งร่องรอยของเกล็ดขนมปังในบันทึกจำนวนมากและอนุญาตให้ DNS หักหลังเพื่อวัตถุประสงค์ในการโฆษณา (ฉันกำลังมองหาคุณ Cox Communications!)

โดยไม่คำนึงถึงวิธีการอื่น ๆ เพื่อความเป็นส่วนตัว / ความปลอดภัยฉันต้องการทราบเป็นพิเศษหากเป็นไปได้ที่จะเรียกใช้เซิร์ฟเวอร์ DNS ในเครือข่ายท้องถิ่นของคุณเอง _that มีข้อมูลโซนของเซิร์ฟเวอร์ DNS ราก (สำหรับ .com, .net ,. ) โดเมน)

ฉันรู้ว่าคุณสามารถตั้งค่า DNS ที่เพียงแค่จับคู่เครื่องในโดเมนของคุณ แต่เป็นไปได้หรือไม่ที่จะขอสำเนา / ถ่ายโอนข้อมูล root DNS ที่จะจัดเก็บไว้ในเซิร์ฟเวอร์ DNS ของคุณเองเพื่อให้คุณสามารถเลี่ยงการออกไปอินเทอร์เน็ตสำหรับ DNS ข้อมูลทั้งหมดสำหรับการท่องเว็บ?

ฉันหวังว่าฉันจะชัดเจน ฉันไม่ต้องการให้เซิร์ฟเวอร์ DNS ของฉันมีเฉพาะข้อมูลเกี่ยวกับเครือข่ายภายในของฉัน - ฉันต้องการให้มีข้อมูลซ้ำกันที่เซิร์ฟเวอร์ DNS อินเทอร์เน็ตขนาดใหญ่มี แต่ฉันต้องการข้อมูลนั้นในเซิร์ฟเวอร์ DNS ของฉัน

มีบางอย่างที่เหมือนกับการถ่ายโอนโซน BGP แต่สำหรับ DNS

อัปเดต: มีผลิตภัณฑ์ / ซอฟต์แวร์ OSS ใดที่สามารถ "ขูด" ข้อมูลนี้จากเครือข่าย DNS ภายนอกไปยังแคชโลคัลในปริมาณมากเพื่อให้พร้อมเมื่อคุณต้องการและแคชเมื่อคุณร้องขอบันทึกโดเมนอย่างชัดเจนหรือไม่

คำตอบ:


12

DNS โดยการออกแบบไม่สามารถเปิดใช้งานการคัดลอกที่เชื่อถือได้ของทุกโซนเนื่องจากใช้ระบบการตั้งชื่อแบบลำดับชั้น

เซิร์ฟเวอร์รากมีสิทธิ์ในการระบุเซิร์ฟเวอร์ที่รับผิดชอบโดเมนระดับบนสุด (TLD) ที่เป็นปัญหา ตัวอย่างเช่นการแก้ไขwww.example.netก่อนอื่นจะทำการสอบถามเซิร์ฟเวอร์รูทเพื่อระบุเนมเซิร์ฟเวอร์ที่.netเชื่อถือได้ .netnameserver จะระบุ nameserver สิทธิ์สำหรับที่แล้วจะกลับมาบันทึกexample.netwww.example.net

คุณไม่สามารถดาวน์โหลดสำเนาของทุกโซนได้ อย่างไรก็ตามคุณสามารถเรียกใช้แคชเนมเซิร์ฟเวอร์ในเครื่องได้ เนมเซิร์ฟเวอร์แคชจะจัดเตรียมสำเนาของระเบียนทั้งหมดที่แก้ไขซึ่งหมดอายุโดยใช้ Time To Live (TTL) ที่ระบุสำหรับบันทึก กรุณาเก็บไว้ในใจว่าคำอธิบายของฉันเป็นคำอธิบายที่ง่ายของโปรโตคอล DNS ซึ่งสามารถได้รับการสำรวจในรายละเอียดโดยการอ่านคำจำกัดความในการร้องขอสำหรับข้อคิดเห็น

ในขณะที่การหลีกเลี่ยงการลักลอบ NXDOMAINสามารถทำได้โดยการเรียกใช้แคชในเครื่องโปรดทราบว่าการรับส่งข้อมูลความละเอียด DNS ทั้งหมดจะยังคงถูกส่งผ่านการเชื่อมต่ออินเทอร์เน็ตของคุณโดยไม่มีการเข้ารหัส ISP ของคุณอาจตรวจสอบปริมาณการใช้งานนั้นและยังคงเห็นการสื่อสาร สัญญาที่คุณทำไว้กับ ISP ของคุณรวมถึงกฎหมายในประเทศของคุณจะเป็นวิธีการขั้นสุดท้ายในการกำหนดวิธีการสื่อสารของคุณ สัญญาของ ISP ของคุณจะรวมถึงข้อกำหนดในการให้บริการนโยบายความเป็นส่วนตัวและสัญญาเพิ่มเติมใด ๆ ที่คุณอาจมีกับ ISP ของคุณ

การใช้โปรโตคอลที่เข้ารหัสเป็นหนึ่งในวิธีที่ดีที่สุดในการประกันข้อมูลของคุณจากการดักฟังระหว่างการขนส่ง อย่างไรก็ตามแม้จะไม่มีการรับประกันว่าจะไม่มีการเปิดเผยตัวตน มีโพรโทคอลเพิ่มเติมเช่นTorและFreenetซึ่งพยายามที่จะแนะนำการไม่เปิดเผยตัวตนให้กับอินเทอร์เน็ต


1
คำตอบง่ายๆคือไม่คุณทำไม่ได้ คำตอบทางเทคนิคอยู่เหนือคำตอบของ Warner ไม่มีเซิร์ฟเวอร์หนึ่งชุดที่มีข้อมูล DNS ทั้งหมด .. เซิร์ฟเวอร์รูทเพียงอ้างถึงเซิร์ฟเวอร์ TLD ใดเซิร์ฟเวอร์หนึ่งที่อ้างถึงคำขอเพิ่มเติมในบรรทัด
เร็กซ์

1
ISP บางแห่งมีวิธีปิดการใช้งานการจี้ NXDOMAIN ISP บางแห่งมีกลไกที่อิงกับคุกกี้ (โง่และปลอม) เพื่อ "ปิด" NXDOMAIN hijacking นอกจากนี้ยังมีเซิร์ฟเวอร์ชื่อทางเลือกที่สามารถใช้แทนเซิร์ฟเวอร์ชื่อของ ISP
Brian

3

บางสิ่ง:

หากคุณกำหนดค่าเซิร์ฟเวอร์ของคุณเพื่อใช้คำแนะนำรูทแทนที่จะใช้ตัวส่งต่อคุณไม่ต้องกังวลกับปัญหาของ MITM (อย่างน้อยก็จาก ISP และ DNS ของผู้ลักลอบเข้า) สำหรับการแก้ไข DNS ภายนอกทั้งหมดเซิร์ฟเวอร์ของคุณจะค้นหาคำแนะนำรากซึ่งจะแนะนำคุณไปยังเซิร์ฟเวอร์ gTLD สำหรับโดเมนระดับสูงที่เป็นปัญหา (.com, ฯลฯ ) ซึ่งจะอ้างอิงถึงเซิร์ฟเวอร์ NS สำหรับโดเมนที่เป็นปัญหา .

หากคุณต้องการสร้างรูทเซิร์ฟเวอร์ของคุณเองคุณสามารถทำได้อย่างแน่นอนแม้ว่าฉันจะไม่เห็นว่าคุณจะทำได้ดีแค่ไหน นี่คือวิธีที่คุณทำบนเซิร์ฟเวอร์ Windows DNS:

ดาวน์โหลดไฟล์DNS root zoneและบันทึกเป็น root.dns ในไดเรกทอรี% systemroot% \ system32 \ dns บนเซิร์ฟเวอร์ DNS Windows ของคุณใช้วิซาร์ดการสร้างโซน DNS เพื่อสร้างโซนการค้นหาไปข้างหน้าใหม่ที่ชื่อว่า "" (โดยไม่ใส่เครื่องหมายอัญประกาศ) ให้ยกเลิกการเลือกตัวเลือกเพื่อสร้าง AD integrated zone พิมพ์ "." สำหรับชื่อโซน (โดยไม่ใส่เครื่องหมายอัญประกาศ) ให้เลือกตัวเลือกเพื่อใช้ไฟล์ที่มีอยู่และฟิลด์ชื่อไฟล์โซนจะถูกเติมด้วยชื่อ root.dns โดยอัตโนมัติ (หากไม่ได้พิมพ์ไว้) ให้ปล่อยให้ตัวเลือกไม่ใช่ อนุญาตการอัปเดตแบบไดนามิกตามที่เป็นอยู่ให้คลิกปุ่มเสร็จสิ้นหลังจากที่คุณขี่จักรยานผ่านแต่ละขั้นตอนของตัวช่วยสร้าง ตอนนี้คุณมีรูทเซิร์ฟเวอร์พร้อมโซนและเรคคอร์ดโซนสำหรับเซิร์ฟเวอร์ gTLD ทั้งหมด

โปรดทราบว่าสิ่งนี้จะปิดใช้งานตัวเลือกการส่งต่อและรูทคำแนะนำบนเซิร์ฟเวอร์ (เนื่องจากเซิร์ฟเวอร์ของคุณตอนนี้เป็นเซิร์ฟเวอร์รูท) และโปรดทราบว่าหากข้อมูล gTLD เปลี่ยนไปเซิร์ฟเวอร์ของคุณจะไม่สามารถสังเกตเห็นการเปลี่ยนแปลงเหล่านั้นได้


ไม่มีอะไรที่จะหยุด ISP จากการขโมย IP ของเซิร์ฟเวอร์ราก (ยกเว้น DNSsec) ... นอกจากนั้นถูกต้อง
Chris S

1

สำหรับเซิร์ฟเวอร์ที่เกี่ยวข้องอย่างใกล้ชิดมีการถ่ายโอนโซน ฟังก์ชั่นเหล่านี้เหมือนกับประกาศ BGP เพื่อเหตุผลด้านความปลอดภัยโดยปกติแล้วสิ่งเหล่านี้จะถูกบล็อกสำหรับเซิร์ฟเวอร์อื่น ๆ

หากคุณเรียกใช้เซิร์ฟเวอร์ชื่อแคชมันจะคัดลอกรายการเซิร์ฟเวอร์หลักและในไม่ช้าก็มีรูทสำหรับ. com, .net ฯลฯ มีเหตุผลที่ดีมากที่ DNS ถูกแจกจ่าย ไม่เช่นนั้นทุกคนจะทำงานกับข้อมูลที่ล้าสมัย ขนาดของฐานข้อมูลจะค่อนข้างใหญ่และข้อมูลส่วนใหญ่ที่คุณไม่สนใจ

มีตัวเลือกในการลดความเสี่ยงของการวางยา DNS และข้อตกลงซอฟต์แวร์ที่ดีกับปัญหาตามที่รู้จัก มีองค์กรที่ทำงานในการให้ข้อมูลที่ถูกสุขอนามัยซึ่งสามารถใช้เป็นผู้ให้บริการต้นน้ำ สิ่งเหล่านี้จะกรองความพยายามที่เป็นพิษออกไป ดูที่การใช้ OpenDNS หรือ google เป็นผู้ให้บริการต้นน้ำ

โซน DNS รากลงนามแล้วและฉันเห็นเซิร์ฟเวอร์อีเมลของฉันรายงานว่ามีการเซ็นชื่อข้อมูล DNS มากขึ้น รายงานการลงชื่อ DNS เป็นข้อกำหนดสำหรับ IPV6 DNS ที่ได้รับการเซ็นชื่อทำให้การวางยาแคชยากมาก แต่เพิ่มความยากลำบากในการจัดการ DNS


1

คุณสามารถตั้งค่าเซิร์ฟเวอร์ของคุณเองและทำให้เป็นสิทธิ์สำหรับรูท แต่ฉันไม่รู้ว่าคุณสามารถเติมข้อมูลล่วงหน้าได้ด้วยโซนไฟล์ของรูทเซิร์ฟเวอร์ คุณไม่สามารถร้องขอ zonetransfer ได้ดังนั้นฉันคิดว่าคุณจะต้องเติมเต็มด้วยการเก็บแคชของคุณ

แก้ไข root.hints บนเนมเซิร์ฟเวอร์อื่นของคุณเพื่อชี้ไปยังรูทเซิร์ฟเวอร์ส่วนตัวของคุณและเริ่มทำการทดสอบ

แต่พึงระลึกไว้ว่าเซิร์ฟเวอร์รูทจะรู้ได้เฉพาะเซิร์ฟเวอร์ที่อนุญาตสำหรับ TLD เท่านั้น คุณจะต้องสร้างลำดับชั้นของเซิร์ฟเวอร์ใหม่ทั้งหมดซึ่งดูเหมือนจะเป็นงานที่เป็นไปไม่ได้


0

ใช่หนึ่งในคุณสมบัติของเซิร์ฟเวอร์ DNS คือการแคชในเครื่องของการสืบค้นที่ร้องขอบ่อยครั้งและมักจะข้าม ttl ที่ระบุ

แน่นอนคุณสามารถเรียกใช้คุณเอง DNS ไม่มีปัญหา แต่เซิร์ฟเวอร์รูทและเซิร์ฟเวอร์โดเมนระดับบนสุดคุณจะต้องถามลุงแซม

การบันทึกการร้องขอ dns ทั้งหมดเป็นไปได้ แต่จะเสียสติ


แต่การใช้แคชจะบ่งบอกว่าคุณต้องส่งคำร้องขอ DNS สำหรับโดเมนที่มีปัญหาซึ่งเอาชนะจุดประสงค์ทั้งหมดของการพยายามร้องขอ DNS ท้องถิ่นทั้งหมด (หรือส่วนใหญ่) เท่านั้น
pythonnewbie

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.