การเปิดตัว BIND DNS Server 9.18.0 พร้อมรองรับ DNS-over-TLS และ DNS-over-HTTPS

หลังจากสองปีของการพัฒนา ISC consortium ได้เปิดตัวเวอร์ชันเสถียรครั้งแรกของสาขาใหม่ที่สำคัญของเซิร์ฟเวอร์ BIND 9.18 DNS การสนับสนุนสำหรับสาขา 9.18 จะมีให้เป็นเวลาสามปีจนถึงไตรมาสที่ 2 ของปี 2025 ซึ่งเป็นส่วนหนึ่งของวงจรการสนับสนุนที่ขยายออกไป การสนับสนุนสาขา 9.11 จะสิ้นสุดในเดือนมีนาคม และการสนับสนุนสาขา 9.16 ในช่วงกลางปี ​​2023 เพื่อพัฒนาฟังก์ชันการทำงานของ BIND เวอร์ชันเสถียรถัดไป ได้มีการสร้างสาขาทดลอง BIND 9.19.0 ขึ้นมา

การเปิดตัว BIND 9.18.0 มีความโดดเด่นสำหรับการดำเนินการรองรับ DNS ผ่าน HTTPS (DoH, DNS ผ่าน HTTPS) และ DNS ผ่าน TLS (DoT, DNS ผ่าน TLS) รวมถึงกลไก XoT (XFR-over-TLS) เพื่อการถ่ายโอนเนื้อหา DNS อย่างปลอดภัย โซนระหว่างเซิร์ฟเวอร์ (รองรับทั้งโซนการส่งและรับผ่าน XoT) ด้วยการตั้งค่าที่เหมาะสม กระบวนการที่ระบุชื่อเดียวสามารถให้บริการไม่เพียงแต่การสืบค้น DNS แบบดั้งเดิมเท่านั้น แต่ยังรวมถึงการสืบค้นที่ส่งโดยใช้ DNS-over-HTTPS และ DNS-over-TLS อีกด้วย การสนับสนุนไคลเอ็นต์สำหรับ DNS-over-TLS มีอยู่ในยูทิลิตี้ dig ซึ่งสามารถใช้เพื่อส่งคำขอผ่าน TLS เมื่อระบุแฟล็ก "+tls"

การใช้งานโปรโตคอล HTTP/2 ที่ใช้ใน DoH ขึ้นอยู่กับการใช้ไลบรารี nghttp2 ซึ่งรวมไว้เป็นการพึ่งพาแอสเซมบลีเสริม ผู้ใช้สามารถจัดเตรียมใบรับรองสำหรับ DoH และ DoT หรือสร้างโดยอัตโนมัติเมื่อถึงเวลาเริ่มต้น

การประมวลผลคำขอโดยใช้ DoH และ DoT ถูกเปิดใช้งานโดยการเพิ่มตัวเลือก "http" และ "tls" ให้กับคำสั่ง Listen-on หากต้องการรองรับ DNS-over-HTTP ที่ไม่ได้เข้ารหัส คุณควรระบุ "tls none" ในการตั้งค่า คีย์ถูกกำหนดไว้ในส่วน "tls" พอร์ตเครือข่ายเริ่มต้น 853 สำหรับ DoT, 443 สำหรับ DoH และ 80 สำหรับ DNS-over-HTTP สามารถแทนที่ได้ผ่านพารามิเตอร์ tls-port, https-port และ http-port ตัวอย่างเช่น:

tls local-tls { คีย์ไฟล์ "/path/to/priv_key.pem"; ไฟล์ใบรับรอง "/path/to/cert_chain.pem"; }; http local-http-server { ปลายทาง { "/dns-query"; }; }; ตัวเลือก { https-พอร์ต 443; พอร์ตการฟัง 443 tls local-tls http myserver {ใด ๆ ;}; }

หนึ่งในคุณสมบัติของการใช้งาน DoH ใน BIND คือความสามารถในการย้ายการดำเนินการเข้ารหัสสำหรับ TLS ไปยังเซิร์ฟเวอร์อื่น ซึ่งอาจจำเป็นในเงื่อนไขที่เก็บใบรับรอง TLS ไว้ในระบบอื่น (เช่น ในโครงสร้างพื้นฐานที่มีเว็บเซิร์ฟเวอร์) และดูแลรักษา โดยบุคลากรคนอื่นๆ มีการนำการสนับสนุน DNS-over-HTTP ที่ไม่ได้เข้ารหัสมาใช้เพื่อลดความซับซ้อนของการดีบักและเป็นเลเยอร์สำหรับการส่งต่อไปยังเซิร์ฟเวอร์อื่นบนเครือข่ายภายใน (สำหรับการย้ายการเข้ารหัสไปยังเซิร์ฟเวอร์แยกต่างหาก) บนเซิร์ฟเวอร์ระยะไกล สามารถใช้ nginx เพื่อสร้างการรับส่งข้อมูล TLS ได้ เช่นเดียวกับวิธีจัดระเบียบการเชื่อมโยง HTTPS สำหรับเว็บไซต์

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

ในบรรดาข้อบกพร่องที่สามารถชดเชยได้โดยการปิดการใช้งานบิลด์ด้วย DoH/DoT หรือการย้ายการเข้ารหัสไปยังเซิร์ฟเวอร์อื่น ความซับซ้อนทั่วไปของฐานโค้ดนั้นโดดเด่น - มีการเพิ่มเซิร์ฟเวอร์ HTTP ในตัวและไลบรารี TLS ซึ่งอาจประกอบด้วย ช่องโหว่และทำหน้าที่เป็นพาหะเพิ่มเติมสำหรับการโจมตี นอกจากนี้เมื่อใช้ DoH ปริมาณการใช้ข้อมูลจะเพิ่มขึ้น

ขอให้เราจำไว้ว่า DNS-over-HTTPS จะมีประโยชน์ในการป้องกันการรั่วไหลของข้อมูลเกี่ยวกับชื่อโฮสต์ที่ร้องขอผ่านเซิร์ฟเวอร์ DNS ของผู้ให้บริการ ต่อสู้กับการโจมตี MITM และการปลอมแปลงการรับส่งข้อมูล DNS (เช่น เมื่อเชื่อมต่อกับ Wi-Fi สาธารณะ) การตอบโต้ การบล็อกที่ระดับ DNS (DNS-over-HTTPS ไม่สามารถแทนที่ VPN ในการเลี่ยงผ่านการบล็อกที่ดำเนินการในระดับ DPI) หรือสำหรับการจัดระเบียบงานเมื่อไม่สามารถเข้าถึงเซิร์ฟเวอร์ DNS โดยตรง (เช่น เมื่อทำงานผ่านพรอกซี) หากในสถานการณ์ปกติ คำขอ DNS ถูกส่งโดยตรงไปยังเซิร์ฟเวอร์ DNS ที่กำหนดไว้ในการกำหนดค่าระบบ ในกรณีของ DNS-over-HTTPS คำขอเพื่อกำหนดที่อยู่ IP ของโฮสต์จะถูกห่อหุ้มในการรับส่งข้อมูล HTTPS และส่งไปยังเซิร์ฟเวอร์ HTTP โดยที่ ตัวแก้ไขจะประมวลผลคำขอผ่าน Web API

“DNS over TLS” แตกต่างจาก “DNS over HTTPS” ในการใช้โปรโตคอล DNS มาตรฐาน (โดยปกติจะใช้พอร์ตเครือข่าย 853) ซึ่งรวมอยู่ในช่องทางการสื่อสารที่เข้ารหัสซึ่งจัดโดยใช้โปรโตคอล TLS พร้อมการตรวจสอบความถูกต้องของโฮสต์ผ่านใบรับรอง TLS/SSL ที่ได้รับการรับรอง โดยหน่วยงานออกใบรับรอง มาตรฐาน DNSSEC ที่มีอยู่ใช้การเข้ารหัสเพื่อตรวจสอบสิทธิ์ไคลเอ็นต์และเซิร์ฟเวอร์เท่านั้น แต่ไม่ได้ป้องกันการรับส่งข้อมูลจากการสกัดกั้น และไม่รับประกันการรักษาความลับของคำขอ

นวัตกรรมอื่นๆ:

  • เพิ่มการตั้งค่า tcp-receive-buffer, tcp-send-buffer, udp-receive-buffer และ udp-send-buffer เพื่อกำหนดขนาดของบัฟเฟอร์ที่ใช้เมื่อส่งและรับคำขอผ่าน TCP และ UDP บนเซิร์ฟเวอร์ที่ไม่ว่าง การเพิ่มบัฟเฟอร์ขาเข้าจะช่วยหลีกเลี่ยงแพ็กเก็ตที่จะลดลงในช่วงที่มีการรับส่งข้อมูลสูงสุด และการลดจำนวนบัฟเฟอร์ขาเข้าจะช่วยกำจัดการอุดตันของหน่วยความจำด้วยคำขอเก่า
  • มีการเพิ่มหมวดหมู่บันทึกใหม่ “rpz-passthru” ซึ่งช่วยให้คุณสามารถบันทึกการดำเนินการส่งต่อ RPZ (โซนนโยบายการตอบสนอง) แยกต่างหาก
  • ในส่วนนโยบายการตอบกลับได้มีการเพิ่มตัวเลือก "nsdname-wait-recurse" เมื่อตั้งค่าเป็น "ไม่" กฎ RPZ NSDNAME จะถูกนำไปใช้ก็ต่อเมื่อพบเนมเซิร์ฟเวอร์ที่เชื่อถือได้ซึ่งมีอยู่ในแคชสำหรับคำขอ มิฉะนั้น กฎ RPZ NSDNAME ถูกละเว้น แต่ข้อมูลจะถูกดึงออกมาในเบื้องหลังและนำไปใช้กับคำขอที่ตามมา
  • สำหรับบันทึกที่มีประเภท HTTPS และ SVCB จะมีการใช้การประมวลผลส่วน "เพิ่มเติม"
  • เพิ่มประเภทกฎนโยบายการอัปเดตที่กำหนดเอง - krb5-subdomain-self-rhs และ ms-subdomain-self-rhs ซึ่งช่วยให้คุณสามารถจำกัดการอัปเดตระเบียน SRV และ PTR บล็อกนโยบายการอัปเดตยังเพิ่มความสามารถในการกำหนดขีดจำกัดจำนวนเรกคอร์ด แต่ละรายการสำหรับแต่ละประเภท
  • เพิ่มข้อมูลเกี่ยวกับโปรโตคอลการขนส่ง (UDP, TCP, TLS, HTTPS) และคำนำหน้า DNS64 ไปยังเอาต์พุตของยูทิลิตี้ dig เพื่อวัตถุประสงค์ในการแก้ไขจุดบกพร่อง dig ได้เพิ่มความสามารถในการระบุตัวระบุคำขอเฉพาะ (dig +qid= ).
  • เพิ่มการรองรับไลบรารี OpenSSL 3.0
  • เพื่อแก้ไขปัญหาการกระจายตัวของ IP เมื่อประมวลผลข้อความ DNS ขนาดใหญ่ที่ระบุโดย DNS Flag Day 2020 โค้ดที่ปรับขนาดบัฟเฟอร์ EDNS เมื่อไม่มีการตอบสนองต่อคำขอจะถูกลบออกจากตัวแก้ไข ขณะนี้ขนาดบัฟเฟอร์ EDNS ถูกตั้งค่าเป็นค่าคงที่ (edns-udp-size) สำหรับคำขอขาออกทั้งหมด
  • ระบบบิลด์ได้รับการเปลี่ยนมาใช้การผสมผสานระหว่าง autoconf, automake และ libtool
  • การสนับสนุนไฟล์โซนในรูปแบบ "แผนที่" (แผนที่รูปแบบไฟล์หลัก) ถูกยกเลิกแล้ว ขอแนะนำให้ผู้ใช้รูปแบบนี้แปลงโซนเป็นรูปแบบดิบโดยใช้ยูทิลิตี้ชื่อคอมไพล์โซน
  • การสนับสนุนไดรเวอร์ DLZ (Dynamically Loadable Zones) รุ่นเก่าถูกยกเลิกแล้ว และแทนที่ด้วยโมดูล DLZ
  • การสนับสนุนการสร้างและดำเนินการสำหรับแพลตฟอร์ม Windows ถูกยกเลิกแล้ว สาขาสุดท้ายที่สามารถติดตั้งบน Windows คือ BIND 9.16

ที่มา: opennet.ru

เพิ่มความคิดเห็น