WireGuard ले DNS पुश गर्दैन: निजी BIND जोन सेवा गर्दै
ह्यान्डशेकले कुञ्जी र अनुमति दिइएका IP बोक्छ, कहिल्यै रिजोल्भर बोक्दैन। यहाँ तयार निजी BIND 9 जोन र त्यसलाई समाधान गराउने प्रत्येक लिङ्कको ग्राहक नीति छ।
तपाईंले WireGuard उठाउनुभयो, टनेलले ट्राफिक पास गर्छ, र आन्तरिक नाम अझै समाधान हुँदैन। अर्को कदम सामान्यतया WireGuard कन्फिगरेसनमा DNS सेटिङ खोज्नु हो, जसरी कुनै पियरले रिजोल्भर पुश गर्न सक्छ जसरी केही अन्य VPN गर्छन्। सक्दैन। ह्यान्डशेकले कुञ्जी, इन्टरफेस ठेगाना र अनुमति दिइएका IP बोक्छ, र यसमा DNS सर्भर वा खोज डोमेनका लागि कुनै फिल्ड छैन। रिजोल्भर नीति ग्राहकमा बस्छ, र सुधार त्यहीँ हो।
टनेल र रिजोल्भर छुट्टाछुट्टै करार हुन्
WireGuard जानाजान सानो छ। तपाईंले सूचीबद्ध गर्नुभएका ठेगानाका लागि यसले प्याकेट सार्छ र पियरहरू प्रमाणित गर्छ; त्यो तहमाथिको सबै तपाईंको डिजाइन हो। OpenVPN dhcp-option DNS पुश गर्न सक्छ किनकि यसको नियन्त्रण च्यानलले कन्फिगरेसन बोक्छ, र यही भिन्नताले दुईबीच घुम्नेहरूलाई अलमल्याउँछ।
त्यसैले काम गर्ने टनेलले नाम समाधानबारे केही भन्दैन। ग्राहकसँग 10.90.0.1 सम्म उत्तम मार्ग हुन सक्छ र उसले आफ्ना प्रश्नहरू सार्वजनिक रिजोल्भरमा पठाइरहन सक्छ, त्यसैले लक्षण “VPN ले DNS बिगार्यो” जस्तो देखिन्छ, जबकि DNS कहिल्यै VPN तिर निर्देशित भएको थिएन।
पुनरावृत्ति रिजोल्भर नबनी जोन सेवा गर्नुहोस्
सर्भर पक्ष एउटा सानो आधिकारिक जोन हो, सामान्य रिजोल्भर होइन। यो उदाहरणमा गेटवे 10.90.0.1 हो, ग्राहकहरू 10.90.0.0/24 हुन्, र तपाईंलाई महत्त्वपूर्ण अनुप्रयोगले 10.60.0.20 मा जवाफ दिन्छ।
दोस्रो ब्लक बनाउनुको सट्टा यी सेटिङहरू विद्यमान options ब्लकमा मिसाउनुहोस्:
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;
};त्यसपछि जोन र यसको फाइल घोषणा गर्नुहोस्:
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.20पुनः लोड गर्नुअघि प्रमाणित गर्नुहोस्, किनकि लोड हुँदा वाक्यरचना त्रुटिले यसले सेवा गर्ने हरेक जोनका लागि पूरै सर्भर तल पार्छ:
named-checkconf
named-checkzone corp.example /etc/bind/db.corp.exampleUDP र TCP 53 केवल VPN इन्टरफेसमा खोल्नुहोस्। सार्वजनिक इन्टरफेसमा निजी अधिकार प्रकाशित गर्दा प्रश्न र गणना दुवैलाई निम्तो दिन्छ, र allow-transfer द्वितीयकलाई साँच्चै आवश्यक नभएसम्म बन्द रहनुपर्छ।
ग्राहकलाई त्यसतर्फ निर्देशित गर्नुहोस्, प्रत्येक लिङ्कका लागि
जडान NetworkManager को स्वामित्वमा छ र रिजोल्भर systemd-resolved हो भनी मान्नुहोस्। पहिले विद्यमान नीति पढ्नुहोस्, विशेषगरी कुनै मूल राउटिङ डोमेन, किनकि ~. प्रविष्टिले तपाईंले थप्न लागेको कुरालाई उछिन्छ।
nmcli connection modify wg-office +ipv4.dns 10.90.0.1
nmcli connection modify wg-office +ipv4.dns-search '~corp.example'टिल्डे महत्त्वपूर्ण अक्षर हो। यसले डोमेनलाई केवल-मार्ग भनी चिन्ह लगाउँछ: corp.example मुनिका नामहरू यो लिङ्कको DNS सर्भरमा जान्छन्, र डोमेन छोटो नाम खोज प्रत्ययका रूपमा थपिँदैन। यो बिना, portal टाइप गर्दा portal.corp.example समाधान हुन थाल्छ, जो तपाईंका लागि सुविधाजनक र बाँकी सबैका लागि अचम्मको हुन्छ। टिल्डे उद्धरण चिन्हभित्र राख्नुहोस्, किनकि उद्धरण नभएको एउटा शेल विस्तार हो जो तपाईंको गृह निर्देशिकातर्फ संकेत गर्न पर्खिरहेको हुन्छ।
इन्टरफेसको स्वामित्व भएको प्रबन्धकमार्फत परिवर्तन लागू गर्नुहोस्, त्यसपछि जडान पुनः जोड्नुहोस्। एउटै इन्टरफेसका लागि दोस्रो wg-quick इन्स्टेन्स सुरु नगर्नुहोस्; दुई स्वामीले मार्गहरूका लागि लड्नेछन् र तिनीहरूमध्ये एक सबैभन्दा नराम्रो क्षणमा जित्नेछ।
नामभन्दा पहिले मार्ग प्रमाणित गर्नुहोस्
ग्राहकबाट नाम सोध्नुहोस् र जवाफ तथा त्यो उत्पादन गर्ने सर्भर दुवै पुष्टि गर्नुहोस्:
resolvectl query portal.corp.exampleयदि यसले 10.60.0.20 फर्काउँछ भने DNS करार पूरा भयो। यदि समय सकिन्छ भने, पहिले 10.90.0.1 को मार्ग, त्यसपछि फायरवाल नियम, त्यसपछि सर्भरमा allow-query जाँच्नुहोस्। यो सेटअपमा नाम समाधानका असफलता लगभग सधैं पहुँच वा ACL हुन्, जोन फाइल होइन। ग्राहकबाट बाहिरतर्फ काम गर्नुहोस्, किनकि कुनै प्रश्न किन कहिल्यै आएन भनी सर्भरले तपाईंलाई भन्न सक्दैन।
याद राख्नुहोस् अनुप्रयोगलाई अझै आफ्नै मार्ग र आफ्नै सेवा अनुमति चाहिन्छ। पहुँच नहुने ठेगानातर्फ संकेत गर्ने समाधान भएको नाम त्यही लुगामा अर्को असफलता हो।
अझै स्वचालित नभएका कुरा
आफ्नै रिजोल्भर तर्क भएका अनुप्रयोगहरूले प्रणाली रिजोल्भरलाई पूर्ण रूपमा बेवास्ता गर्छन्, र जति पनि nmcli भए पनि त्यसले बदल्दैन। DNSSEC प्रमाणित गर्ने तैनाथीहरूलाई निजी जोनका लागि स्पष्ट ट्रस्ट एङ्कर डिजाइन चाहिन्छ; प्रमाणीकरण बन्द गर्ने सर्वव्यापी निर्देशन उत्तर होइन। तपाईंका प्रयोगकर्ताले चलाउने उही ग्राहक सफ्टवेयरसँग परीक्षण गर्नुहोस्, संयोगवश प्रणाली रिजोल्भर प्रयोग गर्ने उपकरणसँग होइन। ती दुईबीचको फरक नै पूरै बग रिपोर्ट हो।
फ्लीटहरूले आफ्नो प्रोभिजनिङ प्रणालीमार्फत यो ग्राहक नीति स्वचालित बनाउन सक्छन्, तर नीति स्वामी भएको छुट्टै वस्तु रहन्छ। BIND 9 सन्दर्भ ले माथि प्रयोग गरिएका सुन्ने र प्रश्न नियन्त्रणहरू समेट्छ, र तपाईंको स्थापित संस्करणका लागि व्यवहार पुष्टि गर्ने सही ठाउँ त्यही हो।
अर्को कदम: जोनको क्रमिक संख्या वृद्धि र जाँच आदेशहरू तपाईंको परिवर्तन प्रक्रियामा थप्नुहोस्, ताकि कुनै रेकर्ड सम्पादन नजाँची उत्पादनसम्म पुग्न नसकोस्।