VPN a cikin chroot a Android: me ya sa rami ke aiki kuma me ya sa manhajoji ba sa kula da shi
chroot yana canza binciken hanyoyi, ba kernel ba, ba sararin sunan cibiyar sadarwa ba, ba rajistar VPN ta Android ba. Sakamako biyu ne suka biyo baya kuma duka suna ba mutane mamaki.
Kuna sa wani rarraba Linux ya yi aiki a ƙarƙashin chroot a wayar, ku saka abokin ciniki na VPN a ciki, kuma harsashi ya sanar da cewa an kammala ramin. Sannan ku koma zuwa burauza kuma zirga-zirgar ta fito ta hanyar bayanan wayar hannu kamar babu abin da ya faru. Ko akasin haka: kowane manhaja a wayar ya rasa haɗi saboda abokin ciniki ya saka hanyar da aka saba a cikin sararin sunan da Android ke amfani da shi da gaske. Waɗannan alamomi biyu suna fitowa daga guda ɗaya da ya ɓace, kuma babu ɗayansu kuskure a cikin abokin ciniki na VPN.
Harsashi ya ce an haɗa, manhajoji ba su yarda ba
Sakamakon farko shi ne na yau da kullum. Ramin da aka buɗe daga chroot zai iya kammala musayar hannu, ya buga ƙididdigansa kuma ya ɗauki zirga-zirgar da wannan harsashi ke samarwa, yayin da manhajojin Android ke ci gaba da amfani da hanyar sadarwar da aka saba ta wayar. Babu abin da ke tsare su, domin babu abin da ya gaya wa Android cewa akwai VPN.
Sakamakon na biyu shi ne mai haɗari. Idan chroot yana raba sararin sunan cibiyar sadarwar Android, wanda shi ne na kullum, wani tsari mai isasshen izini zai iya ƙara hanyoyi da TUN interface waɗanda ke shafar wayar gaba ɗaya. Sa’an nan ramin yana aiki ga kowace manhaja, har da waɗanda ba ka nufa ka ba da hanya ba, kuma haɗin wayar yanzu ya dogara da daemon mara sarrafa rayuwa, mara alamar haɗi kuma mara manufar kasancewa a kunne koyaushe.
Wanne daga cikin biyun ka samu ana iya amsawa da umarni ɗaya. Kwatanta ip route a cikin chroot da wannan umarni daga harsashin Android a waje. Fitowa ɗaya na nufin chroot yana cikin sararin sunan mai masauki: duk wani canjin cibiyar sadarwa da ya yi yana aiki ga wayar gaba ɗaya. Fitowa daban na nufin mai ƙaddamarwa ya ƙirƙira masa sararin suna, kuma raminsa ba ya ganuwa ga Android bisa tsarin da aka gina shi.
Abin da chroot ya canza da abin da bai canza ba
| 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 |
Kiran tsarin chroot yana yin abu ɗaya: yana canza jagorar da ake amfani da ita wajen binciken hanyoyi. Shafin man ya ce sarai cewa wannan ba iyakar tsaro ba ce, kuma bai ce kome ba game da interfaces, hanyoyi ko yanayin VPN. Duk abin da mutane suke tsammani daga kwandon Linux — tarin cibiyar sadarwa na sirri, tsarin fayil da aka tace, iyakokin albarkatu — yana fitowa daga wasu hanyoyin da mai ƙaddamarwa zai iya amfani da su ko a’a.
Shi ya sa maganganun cewa chroot yana keɓe VPN sukan amsa tambayar da ba daidai ba. Tambayar da ta dace ita ce a wane sararin suna tsarin yake gudana kuma a wane yankin SELinux aka iyakance shi, kuma duka biyu halayen yadda aka fara shi ne, ba na kalmar chroot ba.
TUN yana bukatar abubuwa uku, kuma node na na’ura ɗaya ne kawai
Ramin gargajiya na sararin mai amfani yana bukatar na’urar TUN da zai iya buɗewa, tallafin kernel ga wannan na’urar, da izinin daidaita interface da hanyoyi. Waɗannan buƙatu ne daban-daban, kuma ƙirƙirar sunan hanya a ƙarƙashin /dev ba ya cika ɗayansu shi kaɗai:
ls -l /dev/net/tun
ip tuntap add dev tun0 mode tun
A Android kernel yawanci yana da tallafin TUN a haɗe, domin sabis ɗin VPN na dandali da kansa yana amfani da shi, amma wannan ba ya nufin tsarinka zai iya amfani da shi. Daidaita interface yana bukatar iyawar gudanar da cibiyar sadarwa, kuma SELinux yana yanke shawara ko tsarin zai iya isa node na na’urar kwata-kwata. Ƙin yarda yana kama da kuskuren izini ba tare da bayyanannen dalili ba, kuma amsar tana cikin bayanan dubawa:
dmesg | grep avc
logcat -d | grep "avc: denied"
Root ba ya warware wannan. SELinux yana iyakance tsare-tsare da ke gudana a matsayin uid 0 kamar yadda yake iyakance wasu, don haka chroot da aka fara daga harsashin root zai iya samun ƙin yarda ga na’urar da yake gani. Kashe tilastawa don tsohon mai sakawa ya yi aiki shawara ce ga wayar gaba ɗaya da sakamakon da ya wuce ramin nesa, kuma ba maganin tsohon binary ba ne.
Me ya sa manhajojin Android ba sa kula da raminka
Tsarin da Android ke tallafawa shi ne manhajar VPN da ke yin rijista ta sabis ɗin VPN na dandali, ta nemi izinin mai amfani sau ɗaya kuma ta karɓi bayanin fayil don raminta. Sannan dandalin yana tura zirga-zirga cikin wannan bayanin kuma yana tilasta iyakar manhajar da mai amfani ko mai gudanarwa ya zaɓa, shi ya sa wannan tsari ɗaya zai iya kasancewa ga kowace manhaja, ga kowane bayanin martaba kuma a haɗa shi da saitunan kasancewa a kunne koyaushe da toshewa ba tare da VPN ba. Jagorar haɓaka VPN ta Android tana bayanin wannan musayar hannu, kuma babban abin lura shi ne rijista ce, ba dabarar ba da hanya ba.
Daemon a cikin chroot ba ya yin rijista har abada. Babu tattaunawar izini, babu alamar maɓalli a sandar matsayi, babu jerin haɗawa ko cirewa ga kowace manhaja, kuma babu shiga cikin manufar kasancewa a kunne koyaushe. Don haka manhajoji suna ci gaba da amfani da hanyar da aka saba, kuma ramin yana ɗaukar abin da harsashin kansa ke aikawa kawai.
Hanyar da ta saba ba ta taimakawa ba. Tura hanyoyi cikin sararin sunan mai masauki yana kama komai, har da zirga-zirgar da dandalin ya yi tsammanin ya bar ta a gida, kuma yana yin haka ba tare da kulawa ga kowace manhaja ba kuma ba tare da hanyar da mai amfani zai iya gani ko soke ta ba. Babu wani saiti na tsakiya inda daemon na chroot ke ba da hanya ga manhaja ɗaya kawai.
Daidaiton binary wani bango ne daban
Ko da bangaren cibiyar sadarwa yana da ban sha’awa, fayil ɗin da ake aiwatarwa yana da bukatunsa: gine-ginen CPU, mai ɗaukar kaya mai motsi, ɗakin karatu na C da iyawar kernel da yake tsammani. Android yana amfani da bionic maimakon glibc, kuma tsohon binary da aka gina don rarraba tebur zai iya bukatar ɗakunan karatu waɗanda ba su nan a na’urar kuma.
Haɗa sunan fayil ɗin ɗakin karatu zuwa sabon sigar ba ya samar da daidaiton ABI, kuma ajiyayyen ɗakin karatun sirri daga fakiti mai shekaru goma ba sashe ne da ake kulawa ba. Idan shirin ya dogara da hakan, shirin shi ne gudanar da lambar da ba a kula da ita tare da izinin cibiyar sadarwa a wayar.
Tabbatar da shi cikin mahallin Android sannan ka share bayan
Gwada abin da yake da muhimmanci a gare ka da gaske, daga bangaren da ya dace: buɗe takamaiman manhajar, isa takamaiman wurin sirri, tabbatar wanene mai warwarewa ya amsa, sannan ka yanke ramin kuma ka tabbatar da halin da aka rubuta. Sakamako daga tashar da ke cikin chroot shaida ce kan mahallin aiwatar da wannan tashar kuma ba komai ba.
Idan ka canza hanyoyin mai masauki yayin gwaji, mayar da su kuma rubuta abin da ka canza. Sannan duba ko wayar tana da VPN na kasancewa a kunne koyaushe, domin tsohon gwaji da ya bar doka zai iya kama da lalacewar dandali bayan watanni.
Don ainihin bukatar shiga daga nesa, yi amfani da abokin ciniki da sabis ɗin ke tallafawa ko ƙirar ƙofa da aka amince da ita. Tambayar da ta cancanci a yi ba ita ce ko za a iya sa mai sakawa na root ya yi aiki ba, amma ita ce shin aiwatarwa da aka tallafa tana ɗaukar manhajojin da kake bukata ta kan iyakar da ka nufa, ba tare da barin canje-canjen izini marasa mai shi a na’urar ba.