अकेले Windows फ़ायरवॉल VPN बंद करने के स्विच के रूप में: क्या यह टिकता है?
इंटरफ़ेस-प्रकार के नियम भौतिक अडैप्टरों को ब्लॉक कर सकते हैं, लेकिन तीसरे पक्ष की टनल अक्सर तारयुक्त दिखती है। वर्गीकरण, एंडपॉइंट मार्ग, फिर DNS जाँचें।
पूछिए कि क्या Windows फ़ायरवॉल अकेले किल स्विच का काम कर सकता है और आपको दो आत्मविश्वासी और असंगत उत्तर मिलेंगे। एक कहता है कि इंटरफ़ेस-प्रकार का नियम पूरा काम कर देता है; दूसरा कहता है कि स्क्रिप्ट के बिना यह काम नहीं करता। दोनों एक ही तंत्र का आधा हिस्सा बता रहे हैं। फ़ायरवॉल ब्लॉक व्यक्त कर सकता है, और क्या नतीजा वास्तव में बंद होकर विफल होता है, यह तीन बातों पर निर्भर है: Windows टनल अडैप्टर को कैसे वर्गीकृत करता है, एंडपॉइंट अपवाद बचता है या नहीं, और नाम-विश्लेषण तथा IPv6 ढके गए हैं या नहीं। इनमें से कोई एक गलत हुआ तो मशीन या तो लीक करेगी या सारी कनेक्टिविटी खो देगी।
तीन शर्तें, इसी क्रम में
पहली शर्त वर्गीकरण है, और यह तय करती है कि आप जो नियम चाहते हैं वह बिलकुल व्यक्त किया जा सकता है या नहीं। Windows फ़ायरवॉल के नियम इंटरफ़ेस-प्रकार से सीमित किए जा सकते हैं: तारयुक्त, वायरलेस या दूरस्थ पहुँच। जो नीति भौतिक प्रकारों पर बाहर जाने वाले ट्रैफ़िक को ब्लॉक करती है और टनल की अनुमति देती है, वह तभी काम करती है जब Windows टनल को दूरस्थ पहुँच के रूप में मान्यता दे।
दूसरी शर्त एंडपॉइंट अपवाद है। किसी भी टनल से पहले, क्लाइंट को भौतिक अडैप्टर से VPN सर्वर तक पहुँचना होता है, इसलिए उस अडैप्टर पर पूरा ब्लॉक ठीक उसी कनेक्शन को रोकता है जो ब्लॉक को अनावश्यक बना देता। अपवाद में सर्वर और उसका पोर्ट नामित होना चाहिए, और पैकेट भौतिक गेटवे से बाहर जाना चाहिए, अभी न उठी टनल में नहीं।
तीसरी कवरेज है। जो नियम-समूह IPv4 ब्लॉक करता है और IPv6 भूल जाता है, या एंडपॉइंट खोज के लिए स्थानीय रिज़ॉल्वर को अनुमति देकर हर दूसरी खोज को भी अनुमति देता है, वह ठीक उसी खिड़की में खुलकर विफल होता है जिसे ढकने के लिए किल स्विच मौजूद है। यह डिज़ाइन की खाई है, फ़ायरवॉल की खराबी नहीं। यह वही खाई है जो डेस्क पर हर परीक्षण से बच निकलती है।
वर्गीकरण पहला द्वार है
एक भी नियम लिखने से पहले देखिए कि Windows अडैप्टरों के बारे में क्या सोचता है। Windows का मूल VPN कनेक्शन सामान्यतः दूरस्थ पहुँच के रूप में दिखता है। अपना वर्चुअल अडैप्टर बनाने वाला तीसरे पक्ष का क्लाइंट अक्सर तारयुक्त दिखता है, यानी तारयुक्त अडैप्टरों तक सीमित ब्लॉक टनल को भी ब्लॉक करता है।
Get-NetConnectionProfile | Select-Object Name,InterfaceAlias,NetworkCategory
Get-NetAdapter | Select-Object Name,InterfaceDescription,Status,ifIndex
Get-NetFirewallProfile | Select-Object Name,Enabled,DefaultOutboundAction
तीसरा कमांड बताता है कि डिफ़ॉल्ट आउटबाउंड ब्लॉक पहले से लागू है या नहीं, जो डिज़ाइन का पूरा आकार बदल देता है। यदि डिफ़ॉल्ट पहले से ब्लॉक है, तो आप अनुमति-प्रदान करने वाले आधार के अपवाद नहीं, बल्कि अनुमति के नियम लिख रहे हैं, और उस पर सोचना कहीं आसान है।
यदि आपका टनल अडैप्टर तारयुक्त बताता है, तो अकेला फ़ायरवॉल बंद-विफलता वाले डिज़ाइन के लिए सही साधन नहीं है, और कितने ही नियम बदलें, यह नहीं बदलेगा। यही वह स्थिति है जिसमें हर फ़ोरम थ्रेड की दूसरी राय सही है।
एंडपॉइंट अपवाद को नियम के साथ मार्ग भी चाहिए
मान लीजिए वर्गीकरण काम करता है। अपवाद दो टुकड़ों का है, और वे अलग उपतंत्रों में रहते हैं। फ़ायरवॉल नियम ट्रैफ़िक की अनुमति देता है; होस्ट मार्ग उसे टनल बंद रहने पर सही इंटरफ़ेस से बाहर जाने देता है।
New-NetFirewallRule -DisplayName "VPN endpoint allow" -Direction Outbound -Action Allow \
-Protocol TCP -RemoteAddress 203.0.113.9 -RemotePort 443 -InterfaceType Wired,Wireless
New-NetRoute -DestinationPrefix 203.0.113.9/32 -InterfaceIndex 12 -NextHop 192.168.1.1
Get-NetRoute -DestinationPrefix 203.0.113.9/32
मार्ग के बिना एंडपॉइंट अपवाद केवल तब तक मदद करता है जब तक डिफ़ॉल्ट मार्ग अभी भौतिक गेटवे की ओर इशारा करता है। क्लाइंट अपना डिफ़ॉल्ट मार्ग स्थापित करके मर जाए, तो अनुमत पैकेटों के पास जाने की कोई अर्थपूर्ण जगह नहीं बचती और कनेक्शन फिर से स्थापित नहीं हो सकता। वह विफलता टूटे क्लाइंट जैसी दिखती है और असल में अनुपस्थित मार्ग है।
अपवाद को उतना संकीर्ण रखें जितना क्लाइंट अनुमति दे। एक पता और एक पोर्ट समीक्षा-योग्य है; प्रदाता का पूरा नेटवर्क ढकने वाली श्रेणी नहीं। वह व्यापक नियम उसी प्रदाता पर होस्ट की गई बाकी हर चीज़ को भी अनुमति देता है, जो आमतौर पर आपके इरादे से अधिक होता है।
DNS और IPv6 वहीं हैं जहाँ यह खुलकर विफल होता है
नाम-विश्लेषण क्लासिक लीक है। यदि एंडपॉइंट होस्टनाम है, तो टनल से पहले क्लाइंट को उसे हल करना होगा, यानी भौतिक अडैप्टर को रिज़ॉल्वर तक पहुँचने की अनुमति देनी होगी। वही अनुमति टनल बंद रहने पर हर दूसरी खोज को बाहर जाने देती है, और एक खोज ही बताने के लिए काफी है कि आप क्या देखने वाले थे।
IPv6 दूसरा है। IPv4 के लिए लिखे नियम दूसरे परिवार को नहीं ढकते, और कई क्लाइंट केवल IPv4 मार्ग स्थापित करते हैं। इसलिए मूल IPv6 कनेक्टिविटी वाली मशीन IPv4 पक्ष सख्ती से ब्लॉक होने पर भी इंटरनेट से बात जारी रख सकती है, और किल स्विच पूरे समय सफलता बताता रहता है।
| Gap | What leaks | Control |
|---|---|---|
| Resolver permitted for endpoint lookup | Every name queried while down | Pin the endpoint as an address, or block non-tunnel DNS |
| Rules only for IPv4 | Full IPv6 connectivity | Add the same rules for the other family |
| Application bound to physical interface | Its own traffic | Firewall cannot fix this; change the binding |
तीसरी पंक्ति को टालने के बजाय समझना चाहिए। फ़ायरवॉल पैकेटों पर निर्णय लेता है, इस पर नहीं कि किसी एप्लिकेशन ने कौन-सा इंटरफ़ेस इस्तेमाल करने को कहा, और स्पष्ट रूप से बाइंड होने वाले प्रोग्राम को काबू में रखना कठिन हो सकता है। यह एप्लिकेशन के नीचे काम करने वाले क्लाइंट-पक्ष किल स्विच के पक्ष में तर्क है, अधिक नियमों के पक्ष में नहीं।
क्लाइंट रोककर परीक्षण करें, तार खींचकर नहीं
एकमात्र सार्थक परीक्षण वही है जो उस विफलता की नकल करता है जिससे आप बचाव कर रहे हैं। सेवा रोकें, प्रक्रिया मार दें, या क्लाइंट द्वारा बनाया गया अडैप्टर निष्क्रिय करें, फिर इंटरनेट और किसी नाम तक पहुँचने का प्रयास करें:
Stop-Service -Name "YourVpnService" -Force
Test-NetConnection -ComputerName 1.1.1.1 -Port 443
Resolve-DnsName example.com
Test-NetConnection -ComputerName 2606:4700:4700::1111 -Port 443
तीनों विफल होने चाहिए। यदि पहला सफल हो, तो ब्लॉक लागू नहीं है; यदि दूसरा वहाँ सफल हो जहाँ पहला विफल हुआ, तो आपके पास DNS लीक है; यदि तीसरा सफल हो, तो IPv6 ढका नहीं है। हर नतीजा ऊपर की खाइयों में से ठीक एक की ओर इशारा करता है।
स्लीप और रिज़्यूम के बाद परीक्षण दोहराएँ, क्योंकि जब Windows तय करता है कि कोई नेटवर्क सार्वजनिक है या निजी, तब फ़ायरवॉल प्रोफ़ाइल बदल सकती है, और प्रोफ़ाइल तक सीमित नियम उसका अनुसरण करते हैं। जो डिज़ाइन डेस्क पर टिकता है और ट्रेन में विफल होता है, वह एक बार परखा गया डिज़ाइन है।
यदि वर्गीकरण का द्वार या DNS की अपेक्षा अकेले-फ़ायरवॉल दृष्टिकोण को अव्यवहारिक बनाती है, तो क्लाइंट-पक्ष किल स्विच ही ईमानदार उत्तर है। यदि टनल इसके बजाय राउटर पर समाप्त होती है, तो नीति राउटर की होनी चाहिए, क्योंकि वहाँ एक नियम उसके पीछे के हर उपकरण को ढकता है और इस पर निर्भर नहीं कि Windows अडैप्टर को क्या नाम देता है।