WireGuard चलाने वाला एक हब हर समूह के लिए अलग इंटरफ़ेस या राउटिंग तालिका के बिना पीयर समूहों को अलग रख सकता है। दो तंत्र यह काम करते हैं, और इन्हें मिला देना ही वह सामान्य कारण है जिससे कोई नीति सही दिखती है और कुछ नहीं करती। एक परत तय करती है कि कौन स्रोत पता दावा कर सकता है। दूसरी तय करती है कि वह पैकेट कहाँ जा सकता है।

दो काम, अलग रखे गए

टनल परत एक संकीर्ण प्रश्न का उत्तर देती है: क्या इस पीयर की कुंजी ने इस आंतरिक स्रोत पते को अधिकृत किया। फ़ॉरवर्डिंग परत एक व्यापक प्रश्न का उत्तर देती है: क्या यह पैकेट उस गंतव्य की ओर निकल सकता है। कोई भी दूसरे के प्रश्न का उत्तर नहीं देती, और कोई भी अकेली पूरी पहुँच नीति नहीं है।

इसी बँटवारे के कारण कोई पीयर प्रमाणित और सही पते वाला होकर भी ऐसे होस्ट तक नहीं पहुँच सकता जहाँ उसे नहीं पहुँचना चाहिए। यह उलटी बात भी समझाता है: सब कुछ अनुमति देने वाला फ़ायरवॉल नियम इस बारे में कुछ सिद्ध नहीं करता कि कौन किस पते का दावा कर सकता है।

दोनों परतों को साथ डिज़ाइन करें, फिर दोनों को जाँचें। जो कॉन्फ़िगरेशन एक परत पर सही और दूसरी पर अनजाँचा है, वह डिफ़ॉल्ट के अनुसार खुला या बंद विफल होता है।

हर पीयर को केवल उसका अपना पता दें

बहु-होस्ट पीयर आपको सर्वर पक्ष पर पूरी समूह श्रेणी देने के लिए ललचाते हैं। वह अनुमति स्रोत-पते का दावा है, इसलिए कोई समझौता किया गया या गलत कॉन्फ़िगर किया गया क्लाइंट श्रेणी का कोई भी पता प्रस्तुत कर सकता है और टनल उसे स्वीकार कर लेगा। अपने आंतरिक पते के लिए हर पीयर को /32 दें। समूह श्रेणियाँ केवल क्लाइंट पर सेट करें, जहाँ वे वर्णन करती हैं वह क्लाइंट किन गंतव्यों तक पहुँच सकता है न कि वह किन स्रोतों का उपयोग कर सकता है।

तब फ़ायरवॉल ऐसे स्रोत से मिलान करता है जिस पर वह भरोसा कर सके। समूह की श्रेणी के लिए लिखा गया नियम अब भी उपयोगी समूहीकरण है, और वह तभी अर्थपूर्ण होता है जब कोई भी अकेला पीयर किसी दूसरे सदस्य का पता दावा न कर सके।

वह फ़ॉरवर्ड नीति लिखें जो समूहों को अलग करती है

यहाँ की रोचक ट्रैफ़िक उसी टनल इंटरफ़ेस से आती और जाती है, इसलिए वह होस्ट के इनपुट पथ को नहीं, फ़ॉरवर्ड पथ को पार करती है। नियम होस्ट का स्वामित्व रखने वाले जिस भी फ़ायरवॉल प्रबंधक की मौजूदा फ़ॉरवर्ड श्रृंखला में जाते हैं, और वे पूरा नियम-समूह नहीं, टुकड़े हैं।

iifname "wg0" oifname "wg0" ip saddr 10.66.10.0/24 ip daddr 10.66.10.0/24 accept
iifname "wg0" oifname "wg0" ip saddr 10.66.20.0/24 ip daddr 10.66.20.0/24 accept
iifname "wg0" oifname "wg0" drop

पहले दो नियम हर समूह के भीतर ट्रैफ़िक की अनुमति देते हैं। अंतिम उस इंटरफ़ेस को पार करने वाला बाकी सब कुछ अवरुद्ध करता है, और यही समूहों के बीच अलगाव पैदा करता है। ज़रूरत हो तो दूसरे पता-परिवार के लिए स्पष्ट नियम जोड़ें, क्योंकि IPv4 के लिए लिखा गया ड्रॉप IPv6 के व्यवहार को न अधिकृत करता है न वर्णित करता है।

क्रम तय करता है कि नीति लागू होती है या नहीं

नियमों का क्रम टुकड़े से अधिक मायने रखता है। स्थापित कनेक्शन स्वीकार करने वाला एक सामान्य नियम यदि इन प्रविष्टियों से पहले रखा गया है, तो पुराना अंतर-समूह प्रवाह चलता रहता है, इसलिए अलगाव केवल नए कनेक्शन पर लागू होता है। फिर से लोड करने से पहले तय करें कि इन दोनों में से कौन-सा परिणाम चाहिए।

स्वीकृति का निर्णय भी एक ही हुक पर श्रृंखलाओं के बीच हमेशा अंतिम नहीं होता। यदि कोई दूसरी आधार श्रृंखला बाद में चलती है, तो प्रभावी नीति संयोजन है, इसलिए आपने जो फ़ाइल संपादित की उसके बजाय काउंटर देखें। काउंटर उपलब्ध सबसे सस्ता प्रमाण हैं। जिस नियम में पैकेट गणना नहीं है वह मेल नहीं खाता, और जो नियम मेल खाता है जबकि बाद की श्रृंखला स्वीकार करती है, वह आपको बताता है कि ड्रॉप गलत जगह पर है।

फ़ाइलों की संख्या नहीं, मैट्रिक्स जाँचें

अपेक्षित परिणामों का एक छोटा मैट्रिक्स बनाएँ और हर प्रकोष्ठ जाँचें। समूह A से समूह A तक काम करना चाहिए, समूह B से समूह B तक काम करना चाहिए, और A से B तक नहीं, दोनों दिशाओं में और दोनों पता-परिवारों के लिए यदि आप उनका समर्थन करते हैं।

nft list ruleset
wg show wg0 allowed-ips
ping -c 2 10.66.10.5
conntrack -L -s 10.66.20.7 2>/dev/null | head

पहले दो दिखाते हैं कि क्या कॉन्फ़िगर है। गलत समूह के सदस्य से ping दिखाता है कि वास्तव में क्या होता है। conntrack सूची दिखाती है कि पुराना प्रवाह अब भी स्वीकार हो रहा है या नहीं, और इसी तरह अलगाव का बदलाव चुपचाप लागू होने में विफल रहता है।

हब पर होस्ट सेवाएँ और उसके पीछे के LAN तक पहुँच अलग नीति वाले अलग पथ हैं। दर्ज करें कि मैट्रिक्स उनमें से किन्हें कवर करता है, क्योंकि केवल पीयर-से-पीयर ट्रैफ़िक जाँचने वाला परीक्षण उनमें से किसी के बारे में कुछ नहीं कहता।

संबंधित लेख