Keluaran BIND DNS Server 9.18.0 dengan sokongan untuk DNS-over-TLS dan DNS-over-HTTPS

Selepas dua tahun pembangunan, konsortium ISC telah mengeluarkan keluaran stabil pertama cawangan baharu utama pelayan DNS BIND 9.18. Sokongan untuk cawangan 9.18 akan disediakan selama tiga tahun sehingga suku ke-2 2025 sebagai sebahagian daripada kitaran sokongan lanjutan. Sokongan untuk cawangan 9.11 akan berakhir pada bulan Mac, dan sokongan untuk cawangan 9.16 pada pertengahan 2023. Untuk membangunkan kefungsian versi stabil seterusnya BIND, cawangan percubaan BIND 9.19.0 telah dibentuk.

Keluaran BIND 9.18.0 terkenal kerana pelaksanaan sokongan untuk DNS melalui HTTPS (DoH, DNS melalui HTTPS) dan DNS melalui TLS (DoT, DNS atas TLS), serta mekanisme XoT (XFR-over-TLS) untuk pemindahan selamat kandungan DNS. zon antara pelayan (zon penghantaran dan penerimaan melalui XoT disokong). Dengan tetapan yang sesuai, satu proses bernama kini boleh melayani bukan sahaja pertanyaan DNS tradisional, tetapi juga pertanyaan yang dihantar menggunakan DNS-over-HTTPS dan DNS-over-TLS. Sokongan pelanggan untuk DNS-over-TLS terbina dalam utiliti penggalian, yang boleh digunakan untuk menghantar permintaan melalui TLS apabila bendera "+tls" ditentukan.

Pelaksanaan protokol HTTP/2 yang digunakan dalam DoH adalah berdasarkan penggunaan perpustakaan nghttp2, yang disertakan sebagai kebergantungan pemasangan pilihan. Sijil untuk DoH dan DoT boleh disediakan oleh pengguna atau dijana secara automatik pada masa permulaan.

Pemprosesan permintaan menggunakan DoH dan DoT didayakan dengan menambahkan pilihan "http" dan "tls" pada arahan dengar. Untuk menyokong DNS-over-HTTP yang tidak disulitkan, anda harus menentukan "tls none" dalam tetapan. Kekunci ditakrifkan dalam bahagian "tls". Port rangkaian lalai 853 untuk DoT, 443 untuk DoH dan 80 untuk DNS-over-HTTP boleh ditindih melalui parameter tls-port, https-port dan http-port. Sebagai contoh:

tls local-tls { key-file "/path/to/priv_key.pem"; fail-sijil "/path/to/cert_chain.pem"; }; http local-http-server { endpoints { "/dns-query"; }; }; pilihan { https-port 443; listen-on port 443 tls local-tls http myserver {mana-mana;}; }

Salah satu ciri pelaksanaan DoH dalam BIND ialah keupayaan untuk memindahkan operasi penyulitan untuk TLS ke pelayan lain, yang mungkin diperlukan dalam keadaan di mana sijil TLS disimpan pada sistem lain (contohnya, dalam infrastruktur dengan pelayan web) dan dikekalkan. oleh kakitangan lain. Sokongan untuk DNS-over-HTTP yang tidak disulitkan dilaksanakan untuk memudahkan penyahpepijatan dan sebagai lapisan untuk pemajuan ke pelayan lain pada rangkaian dalaman (untuk mengalihkan penyulitan ke pelayan yang berasingan). Pada pelayan jauh, nginx boleh digunakan untuk menjana trafik TLS, sama seperti cara pengikatan HTTPS diatur untuk tapak web.

Ciri lain ialah penyepaduan DoH sebagai pengangkutan umum yang boleh digunakan bukan sahaja untuk mengendalikan permintaan pelanggan kepada penyelesai, tetapi juga semasa berkomunikasi antara pelayan, apabila memindahkan zon oleh pelayan DNS yang berwibawa, dan semasa memproses sebarang pertanyaan yang disokong oleh DNS lain. mengangkut.

Antara kelemahan yang boleh dikompensasikan dengan melumpuhkan binaan dengan DoH/DoT atau mengalihkan penyulitan ke pelayan lain, komplikasi umum asas kod menonjol - pelayan HTTP terbina dalam dan perpustakaan TLS ditambah, yang berpotensi mengandungi kelemahan dan bertindak sebagai vektor tambahan untuk serangan. Juga, apabila menggunakan DoH, trafik meningkat.

Mari kita ingat bahawa DNS-over-HTTPS boleh berguna untuk mencegah kebocoran maklumat tentang nama hos yang diminta melalui pelayan DNS penyedia, memerangi serangan MITM dan penipuan trafik DNS (contohnya, apabila menyambung ke Wi-Fi awam), melawan menyekat pada peringkat DNS (DNS-over-HTTPS tidak boleh menggantikan VPN dalam memintas penyekatan yang dilaksanakan pada peringkat DPI) atau untuk mengatur kerja apabila mustahil untuk mengakses pelayan DNS secara langsung (contohnya, apabila bekerja melalui proksi). Jika dalam keadaan biasa permintaan DNS dihantar terus ke pelayan DNS yang ditakrifkan dalam konfigurasi sistem, maka dalam kes DNS-over-HTTPS permintaan untuk menentukan alamat IP hos dirangkumkan dalam trafik HTTPS dan dihantar ke pelayan HTTP, di mana penyelesai memproses permintaan melalui API Web.

"DNS melalui TLS" berbeza daripada "DNS melalui HTTPS" dalam penggunaan protokol DNS standard (port rangkaian 853 biasanya digunakan), dibungkus dalam saluran komunikasi yang disulitkan yang dianjurkan menggunakan protokol TLS dengan semakan kesahihan hos melalui sijil TLS/SSL yang diperakui oleh pihak berkuasa pensijilan. Standard DNSSEC sedia ada menggunakan penyulitan hanya untuk mengesahkan klien dan pelayan, tetapi tidak melindungi trafik daripada pemintasan dan tidak menjamin kerahsiaan permintaan.

Beberapa inovasi lain:

  • Menambah tetapan tcp-receive-buffer, tcp-send-buffer, udp-receive-buffer dan udp-send-buffer untuk menetapkan saiz penimbal yang digunakan semasa menghantar dan menerima permintaan melalui TCP dan UDP. Pada pelayan yang sibuk, meningkatkan penimbal masuk akan membantu mengelakkan paket digugurkan semasa puncak trafik, dan mengurangkannya akan membantu menghilangkan penyumbatan memori dengan permintaan lama.
  • Kategori log baharu "rpz-passthru" telah ditambahkan, yang membolehkan anda log secara berasingan tindakan pemajuan RPZ (Zon Dasar Tindak Balas).
  • Dalam bahagian dasar tindak balas, pilihan "nsdname-wait-recurse" telah ditambahkan, apabila ditetapkan kepada "tidak", peraturan RPZ NSDNAME digunakan hanya jika pelayan nama berwibawa yang terdapat dalam cache ditemui untuk permintaan, jika tidak, Peraturan RPZ NSDNAME diabaikan, tetapi maklumat itu diambil di latar belakang dan digunakan untuk permintaan berikutnya.
  • Untuk rekod dengan jenis HTTPS dan SVCB, pemprosesan bahagian "TAMBAHAN" telah dilaksanakan.
  • Menambahkan jenis peraturan dasar kemas kini tersuai - krb5-subdomain-self-rhs dan ms-subdomain-self-rhs, yang membolehkan anda mengehadkan kemas kini rekod SRV dan PTR. Blok dasar kemas kini juga menambah keupayaan untuk menetapkan had pada bilangan rekod, individu untuk setiap jenis.
  • Menambahkan maklumat tentang protokol pengangkutan (UDP, TCP, TLS, HTTPS) dan awalan DNS64 pada output utiliti gali. Untuk tujuan penyahpepijatan, dig telah menambah keupayaan untuk menentukan pengecam permintaan tertentu (dig +qid= ).
  • Menambah sokongan untuk perpustakaan OpenSSL 3.0.
  • Untuk menangani isu dengan pemecahan IP apabila memproses mesej DNS besar yang dikenal pasti oleh DNS Flag Day 2020, kod yang melaraskan saiz penimbal EDNS apabila tiada respons kepada permintaan telah dialih keluar daripada penyelesai. Saiz penimbal EDNS kini ditetapkan kepada malar (edns-udp-size) untuk semua permintaan keluar.
  • Sistem binaan telah ditukar kepada menggunakan gabungan autoconf, automake dan libtool.
  • Sokongan untuk fail zon dalam format "peta" (peta format fail induk) telah dihentikan. Pengguna format ini disyorkan untuk menukar zon kepada format mentah menggunakan utiliti bernama-compilezone.
  • Sokongan untuk pemacu DLZ (Zon Boleh Dimuat Secara Dinamik) yang lebih lama telah dihentikan, digantikan dengan modul DLZ.
  • Membina dan menjalankan sokongan untuk platform Windows telah dihentikan. Cawangan terakhir yang boleh dipasang pada Windows ialah BIND 9.16.

Sumber: opennet.ru

Tambah komen