Android chroot VPN: උමඟ වැඩ කරන නමුත් යෙදුම් එය නොසලකා හරින්නේ ඇයි
chroot වෙනස් කරන්නේ මාර්ග සෙවීම පමණි, කර්නලය, ජාල නේම්ස්පේස් හෝ Android හි VPN ලියාපදිංචිය නොවේ. මෙයින් ප්රතිඵල දෙකක් එන අතර දෙකම මිනිසුන් පුදුමයට පත් කරයි.
ඔබ දුරකථනයේ chroot යටතේ Linux බෙදාහැරීමක් ධාවනය කර, එහි VPN සේවාලාභියෙකු ස්ථාපනය කරන විට, ෂෙල් උමඟ සම්පූර්ණ බව නිවේදනය කරයි. පසුව ඔබ බ්රවුසරයට මාරු වන විට, කිසිවක් නොසිදු වූ ලෙස ගමන් ප්රවාහය ජංගම දත්ත හරහා පිටවේ. නැතහොත් ඊට විරුද්ධව: සේවාලාභියා Android සැබවින්ම භාවිතා කරන නේම්ස්පේස් තුළ පෙරනිමි මාර්ගයක් ස්ථාපනය කළ බැවින් දුරකථනයේ සෑම යෙදුමක්ම සම්බන්ධතාව අහිමි කර ගනී. මෙම රෝග ලක්ෂණ දෙකම එකම නැති වූ කොටසකින් පැමිණේ, සහ දෙකම VPN සේවාලාභියාගේ දෝෂයක් නොවේ.
ෂෙල් කියයි සම්බන්ධයි, යෙදුම් එකඟ නොවේ
පළමු ප්රතිඵලය සාමාන්ය එකකි. chroot තුළින් විවෘත කරන ලද පරිශීලක-අවකාශ උමඟකට තම හස්ත සම්පර්ශය සම්පූර්ණ කළ හැක, සංඛ්යාලේඛන මුද්රණය කළ හැක සහ එම ෂෙල්ම ජනනය කරන ගමන් ප්රවාහය ගෙන යා හැක, නමුත් Android යෙදුම් දුරකථනයේ පෙරනිමි ජාලයම භාවිතා කරයි. කිසිවක් ඒවා අවහිර නොකරයි, මන්ද VPN ඇති බව කිසිවක් Android ට නොකී බැවිනි.
දෙවන ප්රතිඵලය අනතුරුදායකය. chroot Android හි ජාල නේම්ස්පේස් බෙදා ගන්නේ නම්, එය පෙරනිමියෙන් කරයි, ප්රමාණවත් වරප්රසාද ඇති ක්රියාවලියකට මුළු දුරකථනයටම බලපාන මාර්ග සහ TUN අතුරුමුහුණතක් එකතු කළ හැක. එවිට උමඟ සෑම යෙදුමකටම ක්රියා කරයි, ඔබ මාර්ගගත කිරීමට අදහස් නොකළ ඒවා ඇතුළුව, සහ දුරකථනයේ සම්බන්ධතාව දැන් ජීවන චක්ර කළමනාකරණය, සම්බන්ධතා දර්ශකය සහ always-on ප්රතිපත්තිය නොමැති ඩේමනයක් මත රඳා පවතී.
ඔබට ලැබුණේ කුමක්ද යන්න එක් විධානයකින් තීරණය කළ හැක. chroot තුළ ඇති ip route එයින් පිටත Android ෂෙල් එකේ එම විධානය සමඟ සසඳන්න. සමාන ප්රතිදානය යනු chroot සත්කාරක නේම්ස්පේස් තුළ ඇති බවයි: එය කරන ඕනෑම ජාල වෙනසක් මුළු දුරකථනයටම බලපායි. වෙනස් ප්රතිදානය යනු ස්ටාර්ටරය ඒ සඳහා නේම්ස්පේස් එකක් සාදා ඇති බවයි, සහ එහි උමඟ Android ට ව්යුහාත්මකවම අදෘශ්යමානය.
chroot වෙනස් කළේ කුමක්ද, නොකළේ කුමක්ද
| Object | Effect of a chroot |
|---|---|
| Pathname resolution | Changed: lookups start at the new root |
| Kernel and drivers | Unchanged: the phone's kernel, its TUN driver, its limits |
| Network namespace | Unchanged unless the launcher creates one |
| Android VPN registration | Unchanged: 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 කළ ස්ථාපකයක් ක්රියාත්මක කළ හැකිද යන්න නොව, සහාය දක්වන ක්රියාත්මක කිරීමක් ඔබට අවශ්ය යෙදුම් ඔබ අදහස් කළ මායිම හරහා ගෙන යන්නේද, උපාංගයේ හිමිකරු නොමැති වරප්රසාදිත වෙනස්කම් ඉතිරි නොකර යන්නයි.