การเรียกคืน DNS ไม่ปลอดภัย แต่จำเป็นสำหรับแอปพลิเคชันภายในหรือไม่


16

ในการจัดการ Windows Server 2008 เซิร์ฟเวอร์จะโฮสต์ DNS (เป็น nameserver) สำหรับบางโดเมนรวมถึงการโฮสต์แอปพลิเคชันบางตัวที่สามารถเข้าถึงได้แบบสาธารณะ

การสแกนความปลอดภัยได้ระบุว่าการกำหนดค่า DNS ไม่ปลอดภัยเนื่องจากอนุญาตการสอบถามซ้ำ

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

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

ขอบคุณที่สละเวลา!

คำตอบ:


11

มันเป็นความคิดที่ดีที่จะไม่ให้การทำงานค้นหา recursive กับอินเทอร์เน็ตทั้งหมดดังนั้นการกำหนดค่าเซิร์ฟเวอร์ DNS ของคุณต่อการค้นหาคำตอบเดียวที่มันเป็นสิทธิ์สำหรับเป็นสิ่งที่ดีTM

บนพื้นผิวที่มันเสียงเหมือนข้อสรุปที่คุณได้มาถึงในวรรคสุดท้ายของคุณเป็นหนึ่งที่ดี: กำหนดค่าของตัวเองตั้งค่า TCP / IP ของเซิร์ฟเวอร์ที่จะใช้เซิร์ฟเวอร์ DNS ที่เป็นผู้มีอำนาจที่จะให้การค้นหา recursive กระบวนการเซิร์ฟเวอร์ DNS ไม่ได้ใช้เซิร์ฟเวอร์ DNS ที่กำหนดค่าในการตั้งค่า TCP / IP บน NIC ของคอมพิวเตอร์เซิร์ฟเวอร์สำหรับสิ่งใดโดยเฉพาะ แต่จะส่งต่อการร้องขอ (หรือใช้คำแนะนำราก) ตามการกำหนดค่าเซิร์ฟเวอร์ DNS

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


14

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

ไม่ใช่กับเซิร์ฟเวอร์ DNS ของ Microsoft นั่นไม่ใช่

ด้วยเซิร์ฟเวอร์ DNS ของ ISC BIND หนึ่งสามารถหลบสิ่งต่าง ๆ ด้วยมุมมอง เซิร์ฟเวอร์ DNS ของ Microsoft ไม่มีกลไกดังกล่าว ดังนั้นสำหรับอินสแตนซ์ที่กำหนดใด ๆ ของเซิร์ฟเวอร์ Microsoft DNS เราต้องเลือกว่าจะเป็นเซิร์ฟเวอร์ DNS เนื้อหาสาธารณะหรือเซิร์ฟเวอร์ DNS พร็อกซีในไซต์ ไม่สามารถหลบสิ่งต่าง ๆ และหลอกว่าเป็นเซิร์ฟเวอร์ประเภทต่าง ๆ ไปยังไคลเอนต์ DNS ที่แตกต่างกัน

บริการ / เครื่องมือทดสอบความปลอดภัยค่อนข้างถูกต้อง มันเป็นวิธีที่ดีที่สุดที่จะได้ให้บริการ proxy - ใด ๆชนิดของการบริการพร็อกซี่: ไม่ว่าจะเป็น HTTP บริการ proxy, บริการ DNS พร็อกซี่หรือบริการ SMTP ส่ง - ส่วนที่เหลือของอินเทอร์เน็ตยื่นเว็บไซต์ของตัวเองหนึ่ง คุณควรมีเซิร์ฟเวอร์แยกต่างหาก : เซิร์ฟเวอร์ DNS เนื้อหาที่เผยแพร่ข้อมูล DNS สาธารณะของคุณเกี่ยวกับชื่อโดเมนที่คุณลงทะเบียนให้กับทุกคนบนอินเทอร์เน็ต และเซิร์ฟเวอร์ DNS พร็อกซีท้องถิ่นที่ทำงานหนักของการแก้ปัญหาการสืบค้นในนามของคอมพิวเตอร์ของ LAN / องค์กรของคุณเท่านั้นที่สามารถเข้าถึงเครื่องที่องค์กรของคุณ / บน LAN ของคุณ ด้วยเซิร์ฟเวอร์ DNS ของ Microsoft นี่ไม่ใช่เรื่องง่ายโดยเฉพาะ

มันจะยากโดยเฉพาะอย่างยิ่งหากเครื่องของคุณเป็นตัวควบคุมโดเมน คุณระบุว่าเครื่องนี้สามารถเข้าถึงได้โดยตรงจากอินเทอร์เน็ตทั้งหมด ถ้าเครื่องดังกล่าวเป็นตัวควบคุมโดเมนแล้วคุณควรคิดใหม่องค์กรเครือข่ายของคุณในขณะนี้ คุณต้องการเปิดเผยบริการภายในที่น่ากลัวต่อสาธารณชนไม่ใช่เพียงแค่บริการ DNS proxy ดังนั้นเรามาลองสมมุติว่านี่ไม่ใช่ตัวควบคุมโดเมน

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

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

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

อ่านเพิ่มเติม


เขียนดีมาก
Nic

ฉันขอขอบคุณข้อมูลขอบคุณ! ฉันกำลังทำงานกับโครงสร้างพื้นฐานขนาดเล็กที่นี่ดังนั้นทางออกที่นำเสนอจึงเกินความจริงสำหรับสถานการณ์นี้
ilasno

ขอให้ทราบอย่างรวดเร็วว่านี่ไม่เป็นความจริงอีกต่อไป ณ Server 2016 - ปัจจุบัน Windows สนับสนุน DNS แบบแยกส่วนรวมถึงตัวเลือกในการ จำกัด การค้นหาแบบเรียกซ้ำโดยขึ้นอยู่กับที่อยู่ของลูกค้า อย่างไรก็ตามการตั้งค่าเซิร์ฟเวอร์อิสระสำหรับคำขอสาธารณะยังคงเป็นตัวเลือกที่ตรงไปตรงมามากขึ้น
บ๊อบ

5

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

แอปพลิเคชันสามารถใช้เซิร์ฟเวอร์ DNS ที่กำหนดค่าในคุณสมบัติ TCP / IP ของ NIC ที่เกี่ยวข้องซึ่งสามารถกำหนดค่าให้ใช้เซิร์ฟเวอร์ DNS ใดก็ได้ที่จะทำการสอบถามซ้ำ (เช่นเซิร์ฟเวอร์ DNS ของ Google) เซิร์ฟเวอร์ DNS ที่กำหนดค่าในคุณสมบัติ TCP / IP ของ NIC ที่เกี่ยวข้องไม่จำเป็นต้องชี้ไปที่เซิร์ฟเวอร์ DNS ที่ทำงานบนเซิร์ฟเวอร์เดียวกันนั้น


0

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

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

นี่เป็นตัวอย่างของการกำหนดค่า Cisco ที่ฉันใช้:

ip dns view default
 dns forwarder 192.168.0.xx (internal DNS server)
 domain round-robin

ip dns view-list default
 view default 1
  restrict name-group 1

ip dns name-list 1 permit abc.com
ip dns name-list 1 permit def.com
ip dns name-list 1 permit anyotherdomainthatyouhost.com
ip dns name-list 1 permit 3.2.1.in-addr.arpa (needed for reverse PTR lookups)

interface fastethernet0/0 (the interface where the IP address is that will host DNS)
 ip dns view-group default
 ip address 1.2.3.4 secondary (use the public facing IP you will use to host DNS)

ip dns server

นอกจากนี้อย่าลืมอนุญาตให้แพ็กเก็ต DNS เข้าสู่เราเตอร์ที่มีรายการเข้าถึงเช่น:

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