நீங்கள் தொலைபேசியில் chroot கீழ் இயங்கும் Linux விநியோகத்தைப் பெற்று, அதில் VPN கிளையண்டை நிறுவுகிறீர்கள், ஷெல் சுரங்கம் முடிந்தது என அறிவிக்கிறது. பிறகு உலாவிக்கு மாறும்போது, எதுவும் நடவாதது போல மொபைல் தரவு வழியாக வெளியேறுகிறது. அல்லது எதிர்மாறாக: கிளையண்ட் Android உண்மையில் பயன்படுத்தும் நேம்ஸ்பேஸில் இயல்புநிலை வழியை வைத்ததால் தொலைபேசியின் ஒவ்வொரு ஆப்ஸும் இணைப்பை இழக்கிறது. இந்த இரண்டு அறிகுறிகளும் ஒரே காணாமல் போன பகுதியிலிருந்து வருகின்றன, இரண்டில் ஒன்றும் VPN கிளையண்டின் பிழை அல்ல.

ஷெல் இணைந்தது என்கிறது, ஆப்ஸ் ஒப்புக்கொள்ளவில்லை

முதல் முடிவு சாதாரணமானது. chroot இலிருந்து திறக்கப்பட்ட பயனர்-இட சுரங்கம் அதன் கைக்குலுக்கலை முடிக்கலாம், புள்ளிவிவரங்களை அச்சிடலாம் மற்றும் அதே ஷெல் உருவாக்கும் ட்ராஃபிக்கை எடுத்துச் செல்லலாம், ஆனால் Android ஆப்ஸ் தொலைபேசியின் இயல்புநிலை நெட்வொர்க்கைத் தொடர்ந்து பயன்படுத்துகின்றன. எதுவும் அவற்றைத் தடுக்கவில்லை, ஏனெனில் VPN உள்ளது என்று எதுவும் Android-க்குச் சொல்லவில்லை.

இரண்டாவது முடிவு ஆபத்தானது. chroot Android இன் நெட்வொர்க் நேம்ஸ்பேஸைப் பகிர்ந்தால், இயல்பாக அதைச் செய்கிறது, போதுமான சிறப்புரிமை உள்ள செயல்முறை முழு தொலைபேசியையும் பாதிக்கும் வழிகள் மற்றும் TUN இடைமுகத்தைச் சேர்க்கலாம். பிறகு சுரங்கம் ஒவ்வொரு ஆப்ஸுக்கும் வேலை செய்கிறது, நீங்கள் வழிப்படுத்த நினைக்காதவை உட்பட, தொலைபேசியின் இணைப்பு இப்போது வாழ்க்கைச் சுழற்சி நிர்வாகம், இணைப்பு காட்டி மற்றும் always-on கொள்கை இல்லாத டீமனைச் சார்ந்துள்ளது.

இரண்டில் எது கிடைத்தது என்பதை ஒரே கட்டளையில் தீர்மானிக்கலாம். chroot உள்ளே உள்ள ip route ஐ அதற்கு வெளியே உள்ள Android ஷெல்லில் இருந்து அதே கட்டளையுடன் ஒப்பிடுங்கள். ஒரே மாதிரியான வெளியீடு என்பது chroot ஹோஸ்ட் நேம்ஸ்பேஸில் உள்ளது: அது செய்யும் எந்த நெட்வொர்க் மாற்றமும் முழு தொலைபேசிக்கும் பொருந்தும். வேறுபட்ட வெளியீடு என்பது துவக்கி அதற்கு ஒரு நேம்ஸ்பேஸை உருவாக்கியது, அதன் சுரங்கம் Android-க்கு கட்டமைப்பிலேயே கண்ணுக்குத் தெரியாதது.

chroot எதை மாற்றியது, எதை மாற்றவில்லை

ObjectEffect of a chroot
Pathname resolutionChanged: lookups start at the new root
Kernel and driversUnchanged: the phone's kernel, its TUN driver, its limits
Network namespaceUnchanged unless the launcher creates one
Android VPN registrationUnchanged: no app consented, no VPN is selected

chroot சிஸ்டம் அழைப்பு ஒரு காரியத்தைச் செய்கிறது: பாதைப் பெயர்களைத் தீர்ப்பதற்குப் பயன்படும் அடைவை மாற்றுகிறது. இது பாதுகாப்பு எல்லை அல்ல என்று மேன் பக்கம் தெளிவாகக் கூறுகிறது, இடைமுகங்கள், வழிகள் அல்லது VPN நிலை பற்றி எதுவும் சொல்லவில்லை. Linux கொள்கலனில் இருந்து மக்கள் எதிர்பார்ப்பது எல்லாம் — தனிப்பட்ட நெட்வொர்க் ஸ்டாக், வடிகட்டப்பட்ட கோப்பு முறைமை, வள வரம்புகள் — துவக்கி பயன்படுத்தியிருக்கக்கூடிய அல்லது பயன்படுத்தாத பிற வழிமுறைகளிலிருந்து வருகிறது.

அதனால்தான் chroot ஒரு VPN-ஐ தனிமைப்படுத்துகிறது என்ற கூற்றுகள் பொதுவாக தவறான கேள்விக்கு பதிலளிக்கின்றன. தொடர்புடைய கேள்வி, செயல்முறை எந்த நேம்ஸ்பேஸில் இயங்குகிறது, எந்த SELinux டொமைனில் வரம்பிடப்பட்டுள்ளது என்பதுதான்; இரண்டும் அது எவ்வாறு தொடங்கப்பட்டது என்பதன் பண்புகள், chroot என்ற வார்த்தையின் அல்ல.

TUN-க்கு மூன்று விஷயங்கள் தேவை, சாதன முனை அவற்றில் ஒன்று மட்டுமே

பாரம்பரிய பயனர்-இட சுரங்கத்திற்கு திறக்கக்கூடிய TUN சாதனம், அந்த சாதனத்திற்கான கர்னல் ஆதரவு, மற்றும் இடைமுகத்தையும் வழிகளையும் கட்டமைக்க அனுமதி தேவை. இவை தனித்தனி தேவைகள், /dev கீழ் ஒரு பாதைப் பெயரை உருவாக்குவது அவற்றில் எதையும் தானாக நிறைவேற்றாது:

ls -l /dev/net/tun
ip tuntap add dev tun0 mode tun

Android இல் கர்னலில் TUN ஆதரவு பொதுவாக தொகுக்கப்பட்டிருக்கும், ஏனெனில் தளத்தின் சொந்த VPN சேவை அதைப் பயன்படுத்துகிறது, ஆனால் அதன் பொருள் உங்கள் செயல்முறை அதைப் பயன்படுத்தலாம் என்பதல்ல. இடைமுக கட்டமைப்புக்கு நெட்வொர்க் நிர்வாக திறன் தேவை, செயல்முறை சாதன முனையை அடைய முடியுமா என்பதை SELinux தீர்மானிக்கிறது. மறுப்பு தெளிவான காரணமில்லாத அனுமதி பிழையாகத் தெரிகிறது, பதில் தணிக்கை பதிவில் உள்ளது:

dmesg | grep avc
logcat -d | grep "avc: denied"

Root இதைத் தீர்க்காது. uid 0 ஆக இயங்கும் செயல்முறைகளை SELinux மற்றவற்றைப் போலவே கட்டுப்படுத்துகிறது, எனவே root ஷெல்லிலிருந்து தொடங்கப்பட்ட chroot கூட தான் காணும் சாதனத்திற்கு மறுக்கப்படலாம். பழைய நிறுவியை இயங்கச் செய்ய அமலாக்கத்தை அணைப்பது சுரங்கத்திற்கு அப்பால் விளைவுகளைக் கொண்ட முழு தொலைபேசி முடிவு, அது பழைய பைனரிக்கான தீர்வு அல்ல.

Android ஆப்ஸ் உங்கள் சுரங்கத்தைப் புறக்கணிப்பது ஏன்

Android இன் ஆதரிக்கப்பட்ட மாதிரி, தளத்தின் VPN சேவை வழியாகப் பதிவு செய்யும், பயனரின் ஒப்புதலை ஒரு முறை கேட்கும், தன் சுரங்கத்திற்கு கோப்பு விவரங்காட்டியைப் பெறும் VPN ஆப்ஸ் ஆகும். பிறகு தளம் ட்ராஃபிக்கை அந்த விவரங்காட்டிக்கு அனுப்பி, பயனர் அல்லது நிர்வாகி தேர்ந்தெடுத்த ஆப்ஸ் வரம்பை அமல்படுத்துகிறது; அதனால்தான் அதே வழிமுறை ஒவ்வொரு ஆப்ஸ், ஒவ்வொரு சுயவிவரத்திற்கும் இருக்க முடியும், always-on மற்றும் block-without-VPN அமைப்புகளுடன் இணைக்கப்படலாம். Android VPN மேம்பாட்டு வழிகாட்டி அந்த கைக்குலுக்கலை விவரிக்கிறது, முக்கிய விஷயம் அது பதிவு, வழிப்படுத்தல் தந்திரம் அல்ல.

chroot உள்ளே உள்ள டீமன் ஒருபோதும் பதிவு செய்யாது. ஒப்புதல் உரையாடல் இல்லை, நிலைப் பட்டியில் சாவி சின்னம் இல்லை, ஒவ்வொரு ஆப்ஸுக்கும் சேர்க்கை அல்லது விலக்கு பட்டியல் இல்லை, always-on கொள்கையில் பங்கேற்பு இல்லை. எனவே ஆப்ஸ் இயல்புநிலை நெட்வொர்க்கைத் தொடர்ந்து பயன்படுத்துகின்றன, சுரங்கம் ஷெல் தானே அனுப்புவதை மட்டும் எடுத்துச் செல்கிறது.

மறுபக்கத்திற்குச் செல்வதும் உதவாது. ஹோஸ்ட் நேம்ஸ்பேஸுக்கு வழிகளைத் தள்ளுவது எல்லாவற்றையும் பிடிக்கிறது, தளம் உள்ளூராக வைத்திருக்க எதிர்பார்த்த ட்ராஃபிக் உட்பட, அதுவும் ஒவ்வொரு ஆப்ஸ் கட்டுப்பாடும் இல்லாமல், பயனர் அதைப் பார்க்கவோ ரத்து செய்யவோ வழியில்லாமல். chroot டீமன் ஒரு ஆப்ஸுக்கு மட்டும் ட்ராஃபிக்கை வழிப்படுத்தும் இடைநிலை அமைப்பு இல்லை.

பைனரி இணக்கத்தன்மை தனி சுவர்

நெட்வொர்க் பக்கம் சுவாரஸ்யமாக இருந்தாலும், இயக்கக்கூடிய கோப்புக்கு அதன் சொந்த தேவைகள் உள்ளன: CPU கட்டமைப்பு, மாறும் ஏற்றி, C நூலகம், மற்றும் அது எதிர்பார்க்கும் கர்னல் வசதிகள். Android glibc க்கு பதிலாக bionic பயன்படுத்துகிறது, டெஸ்க்டாப் விநியோகத்திற்காக கட்டப்பட்ட பழைய பைனரிக்கு சாதனத்தில் இனி இல்லாத நூலகங்கள் தேவைப்படலாம்.

நூலகக் கோப்புப் பெயரை புதிய பதிப்புக்கு குறியீட்டு இணைப்பாக இணைப்பது ABI இணக்கத்தன்மையை உருவாக்காது, பத்து ஆண்டு பழைய தொகுப்பிலிருந்து காப்பகப்படுத்தப்பட்ட குறியாக்க நூலகம் பராமரிக்கப்படும் கூறு அல்ல. திட்டம் அதைச் சார்ந்திருந்தால், திட்டம் தொலைபேசியில் நெட்வொர்க் சிறப்புரிமைகளுடன் பராமரிக்கப்படாத குறியீட்டை இயக்குவதுதான்.

Android சூழலில் அதை நிரூபித்து பிறகு சுத்தம் செய்யுங்கள்

உங்களுக்கு உண்மையில் முக்கியமானதை, முக்கியமான பக்கத்திலிருந்து சோதியுங்கள்: குறிப்பிட்ட ஆப்ஸைத் திறக்கவும், குறிப்பிட்ட தனிப்பட்ட இலக்கை அடையவும், எந்த தீர்வு பதிலளித்தது என்பதை உறுதிப்படுத்தவும், பிறகு சுரங்கத்தைத் துண்டிக்கவும், ஆவணப்படுத்தப்பட்ட நடத்தையை உறுதிப்படுத்தவும். chroot உள்ளே உள்ள முனையத்திலிருந்து வரும் முடிவு அந்த முனையத்தின் இயக்கச் சூழல் பற்றிய சான்று மட்டுமே, அதற்கு மேல் எதுவும் இல்லை.

பரிசோதிக்கும்போது ஹோஸ்ட் வழிகளை மாற்றியிருந்தால், அவற்றை மீட்டமைத்து என்ன மாற்றினீர்கள் என்பதைப் பதிவு செய்யுங்கள். பிறகு தொலைபேசியில் always-on VPN கட்டமைக்கப்பட்டுள்ளதா என்பதைச் சரிபார்க்கவும், ஏனெனில் ஒரு விதியை விட்டுச் சென்ற பழைய பரிசோதனை மாதங்கள் கழித்து தளக் குறைபோலத் தோன்றலாம்.

உண்மையான தொலை அணுகல் தேவைக்கு, சேவையின் ஆதரிக்கப்பட்ட கிளையண்டை அல்லது அங்கீகரிக்கப்பட்ட கேட்வே வடிவமைப்பைப் பயன்படுத்துங்கள். கேட்கத் தகுந்த கேள்வி, root செய்த நிறுவியை இயக்க முடியுமா என்பது அல்ல, மாறாக ஆதரிக்கப்பட்ட செயலாக்கம் உங்களுக்குத் தேவையான ஆப்ஸை நீங்கள் நினைத்த எல்லைக்கு அப்பால் எடுத்துச் செல்கிறதா, சாதனத்தில் உரிமையில்லாத சிறப்புரிமை மாற்றங்களை விட்டுச் செல்லாமல் என்பதுதான்.

தொடர்புடைய கட்டுரைகள்