Rilis BIND DNS Server 9.18.0 dengan dukungan untuk DNS-over-TLS dan DNS-over-HTTPS

Setelah dua tahun pengembangan, konsorsium ISC telah merilis rilis stabil pertama dari cabang baru yang besar dari server DNS BIND 9.18. Dukungan untuk cabang 9.18 akan diberikan selama tiga tahun hingga kuartal ke-2 tahun 2025 sebagai bagian dari siklus dukungan yang diperpanjang. Dukungan untuk cabang 9.11 akan berakhir pada bulan Maret, dan dukungan untuk cabang 9.16 pada pertengahan tahun 2023. Untuk mengembangkan fungsionalitas BIND versi stabil berikutnya, cabang eksperimental BIND 9.19.0 telah dibentuk.

Rilis BIND 9.18.0 terkenal karena implementasi dukungan untuk DNS over HTTPS (DoH, DNS over HTTPS) dan DNS over TLS (DoT, DNS over TLS), serta mekanisme XoT (XFR-over-TLS) untuk transfer konten DNS yang aman antar server (zona pengirim dan penerima melalui XoT didukung). Dengan pengaturan yang sesuai, satu proses bernama kini dapat melayani tidak hanya kueri DNS tradisional, namun juga kueri yang dikirim menggunakan DNS-over-HTTPS dan DNS-over-TLS. Dukungan klien untuk DNS-over-TLS dibangun ke dalam utilitas dig, yang dapat digunakan untuk mengirim permintaan melalui TLS ketika tanda "+tls" ditentukan.

Implementasi protokol HTTP/2 yang digunakan di DoH didasarkan pada penggunaan perpustakaan nghttp2, yang disertakan sebagai ketergantungan perakitan opsional. Sertifikat untuk DoH dan DoT dapat diberikan oleh pengguna atau dibuat secara otomatis pada waktu startup.

Pemrosesan permintaan menggunakan DoH dan DoT diaktifkan dengan menambahkan opsi "http" dan "tls" ke arahan pendengaran. Untuk mendukung DNS-over-HTTP yang tidak terenkripsi, Anda harus menentukan “tls none” di pengaturan. Kunci ditentukan di bagian "tls". Port jaringan default 853 untuk DoT, 443 untuk DoH, dan 80 untuk DNS-over-HTTP dapat diganti melalui parameter tls-port, https-port, dan http-port. Misalnya:

tls local-tls { file kunci "/path/to/priv_key.pem"; file sertifikat "/path/to/cert_chain.pem"; }; http lokal-http-server { titik akhir { "/dns-query"; }; }; pilihan { https-port 443; dengarkan port 443 tls local-tls http server saya {apa saja;}; }

Salah satu fitur implementasi DoH di BIND adalah kemampuan untuk memindahkan operasi enkripsi TLS ke server lain, yang mungkin diperlukan dalam kondisi di mana sertifikat TLS disimpan di sistem lain (misalnya, di infrastruktur dengan server web) dan dipelihara oleh personel lain. Dukungan untuk DNS-over-HTTP yang tidak terenkripsi diterapkan untuk menyederhanakan proses debug dan sebagai lapisan untuk meneruskan ke server lain di jaringan internal (untuk memindahkan enkripsi ke server terpisah). Di server jarak jauh, nginx dapat digunakan untuk menghasilkan lalu lintas TLS, mirip dengan cara pengikatan HTTPS diatur untuk situs web.

Fitur lainnya adalah integrasi DoH sebagai transportasi umum yang dapat digunakan tidak hanya untuk menangani permintaan klien ke penyelesai, tetapi juga saat berkomunikasi antar server, saat mentransfer zona oleh server DNS otoritatif, dan saat memproses kueri apa pun yang didukung oleh DNS lain. transportasi.

Di antara kekurangan yang dapat dikompensasi dengan menonaktifkan build dengan DoH/DoT atau memindahkan enkripsi ke server lain, komplikasi umum dari basis kode menonjol - server HTTP bawaan dan perpustakaan TLS ditambahkan, yang berpotensi mengandung kerentanan dan bertindak sebagai vektor serangan tambahan. Selain itu, saat menggunakan DoH, lalu lintas meningkat.

Ingatlah bahwa DNS-over-HTTPS dapat berguna untuk mencegah kebocoran informasi tentang nama host yang diminta melalui server DNS penyedia, melawan serangan MITM dan spoofing lalu lintas DNS (misalnya, saat menghubungkan ke Wi-Fi publik), melawan pemblokiran di tingkat DNS (DNS-over-HTTPS tidak dapat menggantikan VPN dalam melewati pemblokiran yang diterapkan di tingkat DPI) atau untuk mengatur pekerjaan ketika tidak mungkin mengakses server DNS secara langsung (misalnya, saat bekerja melalui proxy). Jika dalam situasi normal permintaan DNS langsung dikirim ke server DNS yang ditentukan dalam konfigurasi sistem, maka dalam kasus DNS-over-HTTPS permintaan untuk menentukan alamat IP host dienkapsulasi dalam lalu lintas HTTPS dan dikirim ke server HTTP, di mana penyelesai memproses permintaan melalui Web API.

“DNS over TLS” berbeda dengan “DNS over HTTPS” dalam penggunaan protokol DNS standar (biasanya digunakan port jaringan 853), dibungkus dalam saluran komunikasi terenkripsi yang diatur menggunakan protokol TLS dengan pemeriksaan validitas host melalui sertifikat TLS/SSL yang disertifikasi oleh otoritas sertifikasi. Standar DNSSEC yang ada menggunakan enkripsi hanya untuk mengautentikasi klien dan server, tetapi tidak melindungi lalu lintas dari intersepsi dan tidak menjamin kerahasiaan permintaan.

Beberapa inovasi lainnya:

  • Menambahkan pengaturan tcp-receive-buffer, tcp-send-buffer, udp-receive-buffer dan udp-send-buffer untuk mengatur ukuran buffer yang digunakan saat mengirim dan menerima permintaan melalui TCP dan UDP. Pada server yang sibuk, meningkatkan buffer masuk akan membantu menghindari paket dijatuhkan selama puncak lalu lintas, dan menguranginya akan membantu menghilangkan penyumbatan memori dengan permintaan lama.
  • Kategori log baru “rpz-passthru” telah ditambahkan, yang memungkinkan Anda mencatat tindakan penerusan RPZ (Zona Kebijakan Respons) secara terpisah.
  • Di bagian kebijakan respons, opsi “nsdname-wait-recurse” telah ditambahkan, ketika disetel ke “tidak”, aturan RPZ NSDNAME diterapkan hanya jika server nama otoritatif yang ada di cache ditemukan untuk permintaan tersebut, jika tidak maka Aturan RPZ NSDNAME diabaikan, namun informasi diambil di latar belakang dan berlaku untuk permintaan berikutnya.
  • Untuk record dengan tipe HTTPS dan SVCB, pemrosesan bagian “TAMBAHAN” telah diterapkan.
  • Menambahkan jenis aturan kebijakan pembaruan khusus - krb5-subdomain-self-rhs dan ms-subdomain-self-rhs, yang memungkinkan Anda membatasi pembaruan data SRV dan PTR. Blok kebijakan pembaruan juga menambahkan kemampuan untuk menetapkan batasan jumlah catatan, individual untuk setiap jenis.
  • Menambahkan informasi tentang protokol transport (UDP, TCP, TLS, HTTPS) dan awalan DNS64 ke output utilitas dig. Untuk tujuan debugging, dig telah menambahkan kemampuan untuk menentukan pengenal permintaan tertentu (dig +qid= ).
  • Menambahkan dukungan untuk perpustakaan OpenSSL 3.0.
  • Untuk mengatasi masalah fragmentasi IP saat memproses pesan DNS besar yang diidentifikasi oleh DNS Flag Day 2020, kode yang menyesuaikan ukuran buffer EDNS ketika tidak ada respons terhadap permintaan telah dihapus dari penyelesai. Ukuran buffer EDNS sekarang disetel ke konstan (ukuran edns-udp) untuk semua permintaan keluar.
  • Sistem build telah dialihkan menggunakan kombinasi autoconf, automake dan libtool.
  • Dukungan untuk file zona dalam format "peta" (peta format masterfile) telah dihentikan. Pengguna format ini disarankan untuk mengonversi zona ke format mentah menggunakan utilitas bernama-compilezone.
  • Dukungan untuk driver DLZ (Dynamically Loadable Zones) yang lebih lama telah dihentikan, digantikan oleh modul DLZ.
  • Dukungan membangun dan menjalankan untuk platform Windows telah dihentikan. Cabang terakhir yang bisa diinstal di Windows adalah BIND 9.16.

Sumber: opennet.ru

Tambah komentar