Wi-Fi फेरिएपछि SSID फायरवाल नियमले फिल्टर गर्न छोड्यो
SSID-आधारित फायरवाल, Android ले अज्ञात नेटवर्क नाम फर्काउँदा खुला रहेर असफल हुन्छ। पहिचानलाई कार्यान्वयनबाट अलग गर्नुहोस् र अज्ञात अवस्थालाई यसको आफ्नै नीति दिनुहोस्।
नियम सरल थियो: फोन अफिसको Wi-Fi मा जोडिएको बेला मात्र ट्राफिक फिल्टर गर्ने। यो महिनौं टिक्यो, अनि एक बिहान फोन त्यही SSID मा त्यही चाबी आइकनसँग बसेको थियो र फिल्टरिङ रोकिएको थियो। नेटवर्कमा केही बदलिएको थिएन; बदलिएको कुरा एपले नेटवर्कको नाम देख्न सक्छ कि सक्दैन भन्ने थियो। Android मा, «म कुन Wi-Fi मा छु» र «यो ट्राफिक रोक्नु» दुई अलग काम हुन्, र यी दुईलाई मिसाउने फायरवाल नाम उपलब्ध नभएकै बेला खुला रहेर असफल हुन्छ।
लक्षण: पहिचान हराउँछ र नीति त्यसको पछि जान्छ
SSID नियमले एउटा मान पढ्छ र त्यसपछि शाखा छान्छ। पढाइले केही उपयोगी फर्काएन भने कोडले केही गर्नैपर्छ, र सामान्य पूर्वनिर्धारित «अपेक्षित नेटवर्क होइन, त्यसैले फिल्टर नगर्नु» हो। त्यो पूर्वनिर्धारितले अनुमतिको समस्यालाई ट्राफिक चुहावटमा बदल्छ। चाबीको आइकन देखिन्छ किनकि VPN सेवा अझै चलिरहेको छ; यो केवल अर्को शाखा लागू गर्दै छ।
नेटवर्कतिर नभई घटनाक्रमतिर हेर्नुहोस्। अस्वीकृत अनुमति सन्देश, SSID पहुँचलाई अर्को अनुमतिपछि सार्ने प्रणाली अद्यावधिक, बन्द गरिएका स्थान सेवाहरू, वा कार्य प्रोफाइल नीतिको परिवर्तन, यी सबैले फोन उही पहुँच बिन्दुमा रहँदा उही नतिजा दिन सक्छन्।
नाम अज्ञात भएर किन फर्कन सक्छ
WifiInfo.getSSID() हालको नेटवर्कको सेवा-समूह पहिचानकर्ता फर्काउँछ, र स्थान-संवेदनशील क्षेत्रहरूमा पहुँच अनुमतिमा निर्भर हुन्छ भनी Android ले अभिलेख गर्छ। पहुँच उपलब्ध नहुँदा, कल ठूलो स्वरमा असफल नभई UNKNOWN_SSID फर्काउँछ। त्यसैले खाली वा अज्ञात मान फोनले Wi-Fi छोडेको प्रमाण होइन; यो एपले नेटवर्क वर्गीकृत गर्न नसकेको प्रमाण हो।
दुई जाँचले यी अवस्था छुट्याउँछन्। फोन जोडिएको छ भनी पुष्टि गर्नुहोस् र प्रणालीले के रिपोर्ट गर्छ हेर्नुहोस्, त्यसपछि यो Android संस्करणमा एपसँग आवश्यक अनुमति साँच्चै छ भनी पुष्टि गर्नुहोस्:
adb shell cmd wifi status
adb shell dumpsys package <your.app> | grep -i -E "ACCESS_FINE_LOCATION|NEARBY_WIFI_DEVICES"
यदि स्थिति लाइनले जोडिएको नेटवर्क देखाउँछ तर एपले अज्ञात नाम देख्छ भने, तपाईंको समस्या अनुमति वा API स्तरको हो, Wi-Fi को होइन। फायरवाल नियम छुनुअघि यसलाई सुधार्नुहोस्, किनकि तलको हरेक नियम एपले पढ्न नसक्ने मानको विरुद्ध मूल्याङ्कन हुन्छ।
फिल्टरिङ वास्तवमा कहाँ चल्छ
स्थानीय Android फायरवालले सामान्यतया ट्राफिक दूरस्थ सर्भरमा नपठाई VpnService मोडेल प्रयोग गर्छ: यसले भर्चुअल इन्टरफेस लिन्छ, आफ्नै नियम लागू गर्छ र अनुमति दिएको कुरा अगाडि पठाउँछ। प्लेटफर्मले प्रति प्रयोगकर्ता प्रोफाइल एक सक्रिय VPN सेवा मात्र अनुमति दिन्छ, र दोस्रोले पहिलोमाथि तह नबनाई त्यसको ठाउँ लिन्छ। त्यसैले अलग फायरवाल एप र अलग कार्य VPN ले दुई-चरणीय शृंखला बनाउँदैनन्; तीमध्ये एउटा जित्छ।
यो SSID नियमका लागि महत्त्वपूर्ण छ किनकि कार्यान्वयन बिन्दु र अवलोकन बिन्दु फरक घटक हुन्। उपकरणबाट के बाहिर जान्छ भनी VpnService ले निर्णय गर्छ; Wi-Fi API ले केवल लेबल दिन्छ। एपले ठीकसँग कार्यान्वयन गरेर गलत वर्गीकरण गर्न सक्छ, र यस लेखको खराबी ठ्याक्कै त्यही हो।
अज्ञातलाई यसको आफ्नै नीति दिनुहोस्
नेटवर्क पहिचानलाई तीन अवस्था मान्नुहोस्, र नियम सार्वजनिक गर्नुअघि प्रत्येकको नीति लेख्नुहोस्। तेस्रो अवस्था नै बिर्सिने अवस्था हो, र आक्रमणकारी वा गलत कन्फिगरेसनले तपाईंलाई ठ्याक्कै त्यहीँ राख्छ।
| Observation | Policy to specify |
|---|---|
| Expected SSID is readable | The explicit filtering policy you designed |
| A different SSID is readable | The default policy for untrusted networks |
| Unknown, changing or unreadable | Fail closed until classification is reliable |
बन्द भएर असफल हुनु भन्नाले अज्ञात अवस्थाले सबैभन्दा सुविधाजनक नभई सबैभन्दा कडा उचित नीति उत्तराधिकारमा पाउँछ। यसले नयाँ नेटवर्कमा फोन नचल्ने बनायो भने, सही समाधान जानाजानी र देखिने अपवाद हो, खाली मानको जाँचमा लुकेको मौन विश्वास निर्णय होइन।
परिचित SSID एउटा लेबल हो, नेटवर्क सञ्चालकको प्रमाण होइन। जो कोहीले अफिसको नाममा पहुँच बिन्दु चलाउन सक्छ, त्यसैले नाम मिल्नु संवेदनशील सत्र र अविश्वसनीय खण्डबीचको एक मात्र कुरा हुनु हुँदैन।
स्थिर अवस्था होइन, संक्रमणहरू परीक्षण गर्नुहोस्
स्थिर अवस्थाको परीक्षण नियम बनाएको नेटवर्कमा उत्तीर्ण हुन्छ। खराबीहरू संक्रमणमा बस्छन्: अस्वीकृत अनुमति, Wi-Fi बाट मोबाइलमा, एउटा SSID बाट अर्कोमा, VPN सेवा पुनः सुरु, र अर्को VPN एपले इन्टरफेस लिने। प्रत्येकका लागि, विद्यमान जडानहरू पुनः समीक्षा हुन्छन् कि र अवस्था अज्ञात हुँदा सुरक्षित ट्राफिक अवरुद्ध रहन्छ कि भन्ने निर्णय गर्नुहोस्।
नतिजा तीन वाक्यमा लेख्नुहोस्: अवलोकित सर्त, निर्णय कार्यान्वयन गर्ने घटक, र जानाजानी वैकल्पिक उपाय। यी तीनमध्ये कुनै छुट्यो भने नियम अझै नीति होइन; यो अफिस नेटवर्कमा संयोगवश चल्ने अनुमान हो।