تاسو په تلیفون کې د chroot لاندې یو Linux وېش چلوئ، په هغې کې د VPN کلاینټ نصب کوئ، او شیل اعلان کوي چې تونل بشپړ شو. بیا براوزر ته ځئ او ترافیک داسې د موبایل ډیټا له لارې وځي لکه هېڅ نه وي پېښ شوي. یا برعکس: په تلیفون کې هر اپلیکیشن اړیکه له لاسه ورکوي ځکه چې کلاینټ په هغه نومونه کې چې Android واقعاً کاروي یو اصلي لار ورزیاته کړه. دا دواړه نښې له یوې ورکې برخې راځي، او هیڅ یوه هم د VPN کلاینټ خرابي نه ده.

شیل وايي ونښلول شو، اپلیکیشنونه نه مني

لومړنۍ پایله عادي ده. د chroot له داخل څخه پرانیستل شوی د کارونکي فضا تونل کولای شي خپله لاس ورکول بشپړ کړي، خپل احصایې چاپ کړي او هغه ترافیک یوسي چې همدا شیل یې جوړوي، خو د Android اپلیکیشنونه بیا هم د تلیفون اصلي شبکه کاروي. هېڅ شی یې نه بندوي، ځکه چې هېچا Android ته نه و ویلي چې VPN شته.

دوهمه پایله خطرناکه ده. که chroot د Android د شبکې نومونه شریک کړي، چې په اصلي ډول کوي، یو پروسه چې کافي واک ولري کولای شي هغه لارې او TUN انټرفیس ورزیات کړي چې ټول تلیفون اغېزمنوي. بیا تونل هر اپلیکیشن ته کار کوي، هغه هم چې تاسو د تېرولو اراده نه لرله، او د تلیفون اړیکه اوس له هغه ډیمون سره تړلې ده چې نه د ژوند دوران مدیریت لري، نه د اړیکې ښودونکی او نه د تل فعال پالیسي.

کوم یو مو ترلاسه کړی، په یوه امر څرګندیږي. د 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 سیسټم غوښتنه یو کار کوي: هغه ډایرکټري بدلوي چې د لارې نومونو د حل لپاره کارول کیږي. man پاڼه روښانه وايي چې دا د امنیت پوله نه ده، او د انټرفیسونو، لارو یا 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 دا نه حل کوي. SELinux هغه پروسې محدودوي چې د uid 0 په توګه ګرځي، لکه نورې، نو له root شیل څخه پیل شوې chroot هم کېدای شي له هغې وسیلې محرومه شي چې ګوري یې. د پخواني نصب کوونکي د چلولو لپاره د پلي کولو بندول د ټول تلیفون پرېکړه ده چې پایلې یې له تونل څخه ډېرې لرې دي، او د زوړ باینري لپاره حل نه دی.

ولې د Android اپلیکیشنونه ستاسو تونل نه مني

د Android ملاتړ شوی ماډل هغه VPN اپلیکیشن دی چې د پلیټ فارم د VPN خدمت له لارې ثبت شي، یو ځل له کارونکي رضایت وغواړي، او د خپل تونل لپاره د فایل ډیسکریپټر ترلاسه کړي. بیا پلیټ فارم ترافیک هغه ډیسکریپټر ته اړوي او هغه د اپلیکیشن حد پلي کوي چې کارونکي یا مدیر غوره کړی، نو ځکه همدا میکانیزم کېدای شي د هر اپلیکیشن، هر پروفایل لپاره وي او له تل فعال او بې VPN بندیز امستنو سره یوځای شي. د Android VPN د پراختیا لارښود هغه لاس ورکول بیانوي، او مهم ټکی دا دی چې هغه ثبت دی، د لارښوونې چل نه.

د chroot دننه ډیمون هېڅکله ثبت نه شي. نه د رضایت خبرې اترې شته، نه په حالت پټه کې د کیلي انځور، نه د هر اپلیکیشن لپاره د شاملولو یا ایستلو لیست، او نه په تل فعال پالیسي کې برخه. نو ځکه اپلیکیشنونه اصلي شبکه کاروي، او تونل یوازې هغه څه یوسي چې شیل پخپله لېږي.

بلې خوا ته تلل هم مرسته نه کوي. پر کوربه نومونه د لارو ټېل وهل هر څه نیسي، هغه ترافیک هم چې پلیټ فارم تمه لرله محلي پاتې شي، او دا پرته له هر اپلیکیشن کنټرول او پرته له دې چې کارونکي یې وګوري یا لغوه کړي کوي. داسې منځنی تنظیم نشته چې chroot ډیمون یوازې یو اپلیکیشن ته ترافیک تېروي.

باینري مطابقت جلا دېوال دی

حتی کله چې شبکه اړخ ته زړه راښکونکی وي، د چلېدونکي فایل خپلې اړتیاوې لري: CPU معماري، متحرک لوډر، C کتابتون، او هغه کرنل اسانتیاوې چې تمه یې لري. Android د glibc پر ځای bionic کاروي، او زوړ باینري چې د ډیسکټاپ وېش لپاره جوړ شوی وي کېدای شي هغه کتابتونونه وغواړي چې په وسیله کې نور نه شته.

د کتابتون د فایل نوم له نوي نسخې سره سمبولیک نښلول ABI مطابقت نه جوړوي، او له لس کاله پخواني بنډل څخه آرشیف شوی کرپټوګرافي کتابتون ساتل شوی برخه نه ده. که پلان پر دې ولاړ وي، پلان دا دی چې په تلیفون کې د شبکې واکونو سره ناساتل شوی کوډ وچلوي.

په Android شرایطو کې یې ثابت کړئ او بیا پاک کړئ

هغه څه ازموئ چې واقعاً تاسو ته مهم دي، له هغې خوا چې مهمه ده: ځانګړی اپلیکیشن خلاص کړئ، ځانګړي شخصي هدف ته ورسیږئ، تایید کړئ چې کوم حل کوونکی ځواب ورکړ، بیا تونل قطع کړئ او مستند چلند تایید کړئ. د chroot دننه د ټرمینل پایله یوازې د هغه ټرمینل د اجرا شرایطو شاهد ده او نه ډېر څه.

که د ازموینو پر مهال مو د کوربه لارې بدلې کړې، بیرته یې کړئ او ولیکئ چې څه مو بدل کړل. بیا وګورئ چې تلیفون کې تل فعال VPN تنظیم شوی که نه، ځکه پخوانۍ تجربه چې یوه قاعده یې پرېښې وه کېدای شي میاشتې وروسته د پلیټ فارم خرابي په څېر ښکاره شي.

د واقعي لرې لاسرسي اړتیا لپاره د خدمت ملاتړ شوی کلاینټ یا تصویب شوی ګیټوې ډیزاین وکاروئ. د پوښتنې وړ پوښتنه دا نه ده چې آیا د root شوی نصب کوونکی چلولی شو، بلکې دا ده چې آیا ملاتړ شوی پلي کول هغه اپلیکیشنونه چې تاسو یې غواړئ هغې پولې ته رسوي چې تاسو یې اراده لرله، پرته له دې چې په وسیله کې بې مالکه واکمن بدلونونه پرېږدي.

اړوندې مقالې