WireGuard tidak menolak DNS: menyajikan zon BIND peribadi
Jabat tangan membawa kunci dan IP yang dibenarkan, tidak pernah membawa penyelesai. Berikut zon BIND 9 peribadi siap pakai serta dasar klien setiap pautan yang membuatnya menyelesaikan.
Anda menghidupkan WireGuard, terowong melalukan trafik, dan nama dalaman masih tidak diselesaikan. Langkah seterusnya biasanya mencari tetapan DNS dalam konfigurasi WireGuard, seolah-olah rakan sebaya boleh menolak penyelesai seperti yang dilakukan sesetengah VPN lain. Ia tidak boleh. Jabat tangan membawa kunci, alamat antara muka dan IP yang dibenarkan, dan ia tiada medan untuk pelayan DNS atau domain carian. Dasar penyelesai tinggal pada klien, dan di situlah pembetulannya.
Terowong dan penyelesai ialah kontrak berasingan
WireGuard sengaja kecil. Ia menggerakkan paket untuk alamat yang anda senaraikan dan mengesahkan rakan sebaya; segala-galanya di atas lapisan itu ialah reka bentuk anda. OpenVPN boleh menolak dhcp-option DNS kerana saluran kawalannya membawa konfigurasi, dan perbezaan itu menjatuhkan orang yang berpindah antara keduanya.
Jadi terowong yang berfungsi tidak memberitahu apa-apa tentang penyelesaian nama. Klien boleh mempunyai laluan sempurna ke 10.90.0.1 dan masih menghantar pertanyaannya kepada penyelesai awam, itulah sebabnya gejala kelihatan seperti “VPN merosakkan DNS” padahal DNS tidak pernah dihalakan ke VPN.
Sajikan zon tanpa menjadi penyelesai rekursif
Bahagian pelayan ialah zon berwibawa kecil, bukan penyelesai umum. Dalam contoh ini get laluan ialah 10.90.0.1, klien ialah 10.90.0.0/24, dan aplikasi yang anda pedulikan menjawab pada 10.60.0.20.
Gabungkan tetapan ini ke dalam blok options sedia ada dan bukan mencipta blok kedua:
options {
listen-on { 127.0.0.1; 10.90.0.1; };
listen-on-v6 { none; };
allow-query { 127.0.0.1; 10.90.0.0/24; };
allow-transfer { none; };
recursion no;
};Kemudian isytiharkan zon dan failnya:
zone "corp.example" {
type primary;
file "/etc/bind/db.corp.example";
};$TTL 300
@ IN SOA ns.corp.example. hostmaster.corp.example. ( 1 3600 600 604800 300 )
@ IN NS ns.corp.example.
ns IN A 10.90.0.1
portal IN A 10.60.0.20Sahkan sebelum memuat semula, kerana ralat sintaks semasa memuat mematikan seluruh pelayan untuk setiap zon yang dilayaninya:
named-checkconf
named-checkzone corp.example /etc/bind/db.corp.exampleBuka UDP dan TCP 53 hanya pada antara muka VPN. Menerbitkan kuasa peribadi pada antara muka awam mengundang kedua-dua pertanyaan dan penghitungan, dan allow-transfer harus kekal tertutup melainkan pelayan sekunder benar-benar memerlukannya.
Halakan klien ke arahnya, setiap pautan
Andaikan NetworkManager memiliki sambungan dan systemd-resolved ialah penyelesai. Baca dasar sedia ada dahulu, terutamanya mana-mana domain penghalaan akar, kerana entri ~. akan mengatasi apa yang anda akan tambah.
nmcli connection modify wg-office +ipv4.dns 10.90.0.1
nmcli connection modify wg-office +ipv4.dns-search '~corp.example'Tilde ialah aksara penting. Ia menandakan domain sebagai laluan sahaja: nama di bawah corp.example pergi ke pelayan DNS pautan ini, dan domain tidak ditambah sebagai akhiran carian nama pendek. Tanpanya, menaip portal mula menyelesaikan portal.corp.example, yang memudahkan anda dan mengejutkan semua orang lain. Simpan tilde di dalam tanda petik, kerana yang tanpa petik ialah pengembangan shell yang menunggu untuk menunjuk ke direktori rumah anda.
Gunakan perubahan melalui pengurus yang memiliki antara muka, kemudian sambung semula sambungan. Jangan mulakan contoh wg-quick kedua untuk antara muka yang sama; dua pemilik akan bertengkar tentang laluan dan salah satunya akan menang pada saat terburuk.
Sahkan laluan sebelum nama
Tanya nama itu dari klien dan sahkan kedua-dua jawapan dan pelayan yang menghasilkannya:
resolvectl query portal.corp.exampleJika itu memulangkan 10.60.0.20, kontrak DNS selesai. Jika ia tamat masa, periksa dahulu laluan ke 10.90.0.1, kemudian peraturan tembok api, kemudian allow-query pada pelayan. Kegagalan penyelesaian nama dalam persediaan ini hampir selalu kebolehcapaian atau ACL, bukan fail zon. Bekerja dari klien ke luar, kerana pelayan tidak boleh memberitahu anda mengapa pertanyaan tidak pernah tiba.
Ingat bahawa aplikasi masih memerlukan laluannya sendiri dan kebenaran perkhidmatannya sendiri. Nama yang telah diselesaikan tetapi menunjuk ke alamat yang tidak boleh dicapai ialah kegagalan lain dalam pakaian yang sama.
Apa yang masih belum automatik
Aplikasi dengan logik penyelesai sendiri mengabaikan penyelesai sistem sepenuhnya, dan berapa banyak pun nmcli tidak mengubahnya. Pemasangan yang mengesahkan DNSSEC memerlukan reka bentuk sauh kepercayaan yang jelas untuk zon peribadi; jawapannya bukan arahan menyeluruh untuk mematikan pengesahan. Uji dengan perisian klien yang sama yang dijalankan oleh pengguna anda, bukan dengan alat yang kebetulan menggunakan penyelesai sistem. Jurang antara keduanya ialah keseluruhan laporan pepijat.
Armada boleh mengautomasikan dasar klien ini melalui sistem peruntukan mereka, tetapi dasar itu kekal sebagai objek berasingan dengan pemilik. Rujukan BIND 9 merangkumi kawalan mendengar dan pertanyaan yang digunakan di atas, dan itulah tempat yang betul untuk mengesahkan tingkah laku untuk versi yang anda pasang.
Langkah seterusnya: tambahkan kenaikan nombor siri zon dan arahan semakan ke dalam prosedur perubahan anda, supaya suntingan rekod tidak boleh sampai ke pengeluaran tanpa diperiksa.