Android இல் ஒவ்வொரு செயலிக்கும் VPN: ஒரு செயலியை விலக்குவது அதைத் தடுப்பது அல்ல
திரையில் உள்ள செயலி வாரியான பட்டியல் ஒரு சுரங்க உரிமையாளருக்கே சொந்தம், ஒரு செயலியை விலக்குவது அதை அந்தச் சுரங்கத்தைச் சுற்றி அனுப்புகிறது, வலையமைப்பிலிருந்து வெளியேற்றுவதில்லை. அங்கிருந்து தொடங்குங்கள்.
இரண்டு பேர் ஒரே கேள்வியைக் கேட்டு ஒன்றுக்கொன்று பொருந்தாத பதில்களைப் பெறுகிறார்கள், ஏனெனில் அவர்கள் வெவ்வேறு இடங்களில் நிற்கிறார்கள். ஒருவரின் முன் கணினி VPN அமைப்புகள் திரை திறந்திருக்கிறது, அவர் செயலிகளின் பட்டியலைத் திருத்துகிறார். மற்றவர் திருத்தியில் VpnService.Builder.addDisallowedApplication() எழுதுகிறார். இருவரும் அதை செயலி வாரியான VPN வடிகட்டி என்கிறார்கள். அவர்கள் விவரிக்கும் கட்டுப்பாடு அவர்களில் ஒருவருக்கு மட்டுமே உள்ளது, இருவரும் எதையும் தடுக்கவில்லை.
பயனர் பார்க்கும் திரையிலிருந்து தொடங்குங்கள்
அமைப்புகளைத் திறந்து, VPN பதிவைக் கண்டுபிடித்து, உண்மையில் செயலில் உள்ள இணைப்பைப் பாருங்கள். கிளையண்ட் செயலி வாரியான பட்டியலை வழங்கினால், அந்தப் பட்டியல் கிளையண்டின் சொந்தச் சுரங்கத்துக்கே சொந்தம். தொடர்பில்லாத ஒரு செயலி மற்றொரு VPN இன் செயலி தேர்வைப் படிக்கவோ மாற்றவோ அனுமதிக்கும் பொது API ஐ தளம் வெளியிடுவதில்லை, எனவே இரண்டாவது செயலி அந்தப் பட்டியலைப் பயனருக்காகச் சரிசெய்ய முடியாது.
இது இந்தப் பயணத்தின் முதல் பிளவு. நிறுவப்பட்ட VPN இல் அத்தகைய அமைப்பு இல்லாவிட்டால், குறியீட்டால் சுற்றிச் செல்ல எதுவும் இல்லை: சுரங்கத்தைக் கொண்ட தயாரிப்பில் அந்த அம்சமே இல்லை. இருந்தால், சரியான திருத்தம் அந்தத் திரையிலேயே, அதைத் திறக்கக்கூடிய நபரால்.
பாக்கெட்டைச் சுரங்கத்துக்குள் பின்தொடருங்கள்
உங்கள் சொந்தச் செயலி ஒரு சுரங்கத்தைக் கட்டும்போது, அது TUN இடைமுகத்தை உருவாக்கி, எந்தச் செயலிகளின் போக்குவரத்து அதற்குள் நுழைகிறது என்று அறிவிக்கிறது. உறுப்பினர் அழைப்புகள் இடைமுகம் நிறுவப்படுவதற்கு முன் நடக்கின்றன, அதன் பிறகு அந்த அமர்வுக்கான விதிகள் நிலையானவை:
val builder = VpnService.Builder()
builder.addAddress("10.8.0.2", 32)
builder.addRoute("0.0.0.0", 0)
builder.addDisallowedApplication("com.example.bypass")
val tun = builder.establish() // membership decided hereஅந்த அழைப்புகள் உங்கள் செயலி இப்போது உருவாக்கிய சுரங்கத்துக்கு மட்டுமே பொருந்தும், வேறு எதற்கும் அல்ல. அவை முழு சாதனத்தின் கொள்கை அல்ல, மற்ற கிளையண்டுகளுக்கு நீடிக்காது, வேறொருவரின் VPN ஐ அடையவும் முடியாது. தொகுப்பைத் தீர்க்க முடியாததால் கட்டுபவரின் அழைப்பு விதிவிலக்கை எறிந்தால், இடைமுகம் ஒருபோதும் நிறுவப்படாது, அது தூய தோல்வி, அமைதியானது அல்ல.
விலக்குவது தடுப்பைப் போல ஏன் தோன்றியது
விலக்கப்பட்ட செயலி உங்கள் சுரங்கத்தைச் சுற்றி கீழ்நிலை வலையமைப்புக்கு அனுப்பப்படுகிறது. அது அதைத் தடுப்பதற்கு எதிரானது: போக்குவரத்து இன்னும் சாதனத்தை விட்டு வெளியேறுகிறது, நீங்கள் கட்டுப்படுத்தும் இடைமுகத்துக்கு வெளியே மட்டும். ஃபயர்வால் பாணி செயலி எதிர்மாறாகச் செய்கிறது. அது செயலியின் போக்குவரத்தைத் தன் சுரங்கத்துக்குள் ஏற்றுக்கொண்டு பின்னர் பாக்கெட்டுகளை எறிகிறது, அல்லது அவற்றை அனுப்ப மறுக்கிறது, எனவே இடைமுகம் அதேதான், கொள்கையின் திசை தலைகீழாக உள்ளது.
அந்தத் தலைகீழாக்கத்தின் பின்னால் உள்ள வேலை ஒரு கட்டமைப்புக் கொடி அல்ல. சுரங்க விவரிப்பிலிருந்து IP பாக்கெட்டுகளைப் படித்து, ஓட்டத்திற்கு ஓட்டம் முடிவெடுத்து, பின்னர் அவற்றைப் பாதுகாக்கப்பட்ட சாக்கெட் வழியாக அனுப்புகிறீர்கள் அல்லது எறிகிறீர்கள். நீங்கள் கையாளாத எல்லாம் வெறுமனே நின்றுவிடும், அதனால்தான் பாதியில் முடிந்த சுரங்கம் வேலை செய்யும் வடிகட்டியைப் போலல்லாமல் உடைந்த வலையமைப்பைப் போலத் தோன்றுகிறது. இலக்கு தடுப்பு என்றால், பாக்கெட் கையாளுதல், முன்புற சேவை மற்றும் நீங்கள் வகைப்படுத்த முடியாத போக்குவரத்துக்கான எழுத்துப்பூர்வ கொள்கைக்கு நிதி ஒதுக்குங்கள்.
நீங்களே அதைக் கட்டும்போது என்ன உடைகிறது
Android பொதுவாக ஒரு நேரத்தில் ஒரு செயலில் உள்ள VPN ஐ மட்டுமே அனுமதிக்கிறது, எனவே தயாரிப்புகள் சங்கிலி இணைப்பை ஆதரிக்காவிட்டால் உங்கள் வடிகட்டும் சுரங்கமும் தனியுரிமைச் சுரங்கமும் ஒரே இடத்துக்குப் போட்டியிடுகின்றன. எப்போதும் இயங்கும் VPN இணைப்புத் தடுப்புடன் தோல்வியின் முறையை இங்கு முக்கியமான வகையில் மாற்றுகிறது: சுரங்கத்துக்குள் செல்ல முடியாத போக்குவரத்து நேரடியாக அனுப்பப்படுவதற்குப் பதிலாக எறியப்படுகிறது, இதைத்தான் கசிவுத் தடுப்பு வடிவமைப்பு விரும்புகிறது, பிழைத்திருத்த அமர்வு அரிதாகவே எதிர்பார்க்கிறது.
பாக்கெட் தெரிவுநிலை இரண்டாவது பொறி. ஒரு செயலியின் தொகுப்புப் பெயரைத் தீர்ப்பது NameNotFoundException உடன் தோல்வியடையலாம், புதிய Android பதிப்புகளில் நீங்கள் பார்க்கக்கூடிய தொகுப்புகளின் தொகுப்பு நீங்கள் அறிவித்த வினவல்களைப் பொறுத்தது. ஒவ்வொரு பெயரும் தீரும் என்று கருதுவதற்குப் பதிலாக விதிவிலக்கைக் கையாளுங்கள், செயலிகள் நிறுவப்பட்டோ நீக்கப்பட்டோ இருக்கும்போது பட்டியலை மீண்டும் படியுங்கள், என்றென்றும் தேக்ககத்தில் வைப்பதற்குப் பதிலாக.
நிர்வகிக்கப்படும் சாதனங்கள் மூன்றாவது உரிமையாளரைச் சேர்க்கின்றன. நிறுவன இயக்கத்தன்மைக் கொள்கை செயலி வாரியான VPN அல்லது எப்போதும் இயங்கும் சுயவிவரத்தை அமைக்கலாம், சாதாரண செயலி அதை மீற முடியாது. உங்கள் சொந்தக் குறியீட்டைப் பிழைத்திருத்தும் முன் சாதனம் நிர்வகிக்கப்படுகிறதா எனச் சரிபாருங்கள், ஏனெனில் அந்த நிலையில் நீங்கள் மாற்ற முயலும் பட்டியலைத் தொலைபேசியைப் பிடித்திருக்கும் யாரும் திருத்த முடியாமல் இருக்கலாம்.
நீங்கள் கட்டுப்படுத்தும் செயலியுடன் சோதியுங்கள்
நீங்கள் வடிகட்ட முயலும் செயலியுடன் சோதிக்க வேண்டாம். அதன் வலை நடத்தையை நீங்கள் கவனிக்கக்கூடிய இரண்டாவது செயலியைப் பயன்படுத்துங்கள், அதன் போக்குவரத்து உங்கள் சுரங்க வழியாக வெளியேறுகிறதா, இலக்கின் போக்குவரத்து வெளியேறவில்லையா எனச் சரிபாருங்கள். இரண்டும் உள்ளேயே இருந்தால் கொள்கை வேலை செய்கிறது, இலக்கு விலக்கப்பட்டுள்ளது; எதுவும் வெளியேறவில்லை என்றால் சுரங்கமே தவறு, செயலிப் பட்டியல் பிரச்சினை அல்ல.
பின்னர் மூன்றில் எதை நீங்கள் உண்மையில் கட்டுகிறீர்கள் என்று முடிவு செய்யுங்கள். செயலி வாரியான சுரங்கம் கட்டுபவர் API, பட்டியல் உங்கள் சுயவிவரத்தின் பகுதி. சாதன ஃபயர்வால் என்பது பாக்கெட் கையாளுதல் மற்றும் நீங்கள் நியாயப்படுத்தக்கூடிய வாழ்க்கைச் சுழற்சி. வேறொருவரின் VPN ஐ மாற்றுவது ஆதரிக்கப்படும் வழியே அல்ல, அங்கு நேர்மையான பதில் அந்த அமைப்பு அந்தத் தயாரிப்புக்கே சொந்தம் என்பதுதான்.