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

पहले प्रवाह लिखें, फिर तय करें कि कौन-सी व्यवस्था वाकई हर एक को लागू कर सकती है। वही प्रवाह सूची एकमात्र चीज़ है जो अगले नियम बदलाव तक बची रहती है।

श्रेणी नियम चुनती है, मार्ग नहीं

जब Windows किसी नेटवर्क को सार्वजनिक या निजी वर्गीकृत करता है, तो फ़ायरवॉल उस प्रोफ़ाइल के लिए कॉन्फ़िगर किया गया नियम-समूह लागू करता है। वर्गीकरण उस नेटवर्क का अनुसरण करता है जिससे अडैप्टर जुड़ा, और नियम-समूह तय करता है कि उस पर क्या अनुमत है। इनमें से कोई भी तथ्य इस पर निर्भर नहीं है कि किसी ऐप्लिकेशन के ट्रैफ़िक ने टनल का उपयोग किया या नहीं। यही स्वतंत्रता पूरी कठिनाई है।

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

इसलिए प्रोफ़ाइल तक सीमित नियम का अर्थ केवल-टनल नहीं हो सकता। दोनों गुण अलग-अलग घटक तय करते हैं और एक दूसरे की जगह नहीं ले सकता।

FlowWhat decides itWhat a rule can enforce
VPN client to its endpointRouting plus the outer transportAllow the client process before the tunnel exists
Application to an internet hostInterface metric and prefix lengthBlock the process unless the tunnel interface is up
Application to a LAN hostLocal subnet routeAllow one destination, not the whole category

स्पष्ट ब्लॉक संकरे अनुमति से ऊपर है

Microsoft का फ़ायरवॉल नियम मार्गदर्शन डिफ़ॉल्ट ब्लॉक क्रिया के अपवाद के रूप में अनुमति और अनुमति से टकराने वाले स्पष्ट ब्लॉक के बीच अंतर करता है। स्पष्ट ब्लॉक उस टकराव में जीतते हैं, और आउटबाउंड नियम भी वही प्राथमिकता मानते हैं।

इसलिए सब कुछ ब्लॉक करने वाला नियम जोड़कर उसके ऊपर रखी संकरी अनुमति पर भरोसा करने की लोकप्रिय विधि वह नहीं करती जिसकी उसका लेखक अपेक्षा करता है। Windows Firewall विरोध को प्रशासक द्वारा दिए गए नियम क्रम से नहीं सुलझाता। ब्लॉक बस लागू हो जाता है, और जुड़ने वाला ऐप्लिकेशन समय-समाप्ति बताता है। अपवाद जैसा दिखने वाला नियम कभी खेल में था ही नहीं।

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

एक-दूसरे का विरोध करने वाले दो नियम एक नियम से बुरे हैं, क्योंकि परिणामी व्यवहार एक ही समय सही और अवर्णनीय होता है।

आउटबाउंड नीति का एक ही स्वामी दें

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

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

कुछ भी बदलने से पहले पुनर्प्राप्ति चैनल सुरक्षित रखें। अपने ही प्रबंधन पथ से बाहर बंद दूरस्थ मशीन उस नीति अंतराल से बुरा परिणाम है जिसे आप बंद कर रहे थे। पुनर्प्राप्ति नियम तब ज़्यादा आसानी से उचित ठहरता है जब वह पहले से लिखा हो, और तब भी ज़्यादा आसानी से मिलता है जब बदलाव किसी ऐसी घड़ी में बिगड़े जिसे कोई पसंद नहीं करता।

लेबल पढ़ने के बजाय चार परिणाम जाँचें

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

Get-NetConnectionProfile | Select-Object Name,NetworkCategory,InterfaceAlias
Get-NetFirewallProfile | Select-Object Name,DefaultOutboundAction
Get-NetFirewallRule -Direction Outbound -Enabled True | Where-Object Action -eq Block |
  Select-Object DisplayName,Profile

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

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

संबंधित लेख