sshuttle د بشپړ VPN پر وړاندې: د هغې طریقه واقعاً څه پوښي
sshuttle یوازې هغه څه وړي چې د هغې د لېږد طریقه یې ملاتړ کوي: لومړی د TCP، DNS او UDP پوښ، اړین ځایي اختیار او لېرې مرستندوی وګورئ۔
sshuttle د دې لپاره غوره کېږي چې SSH له پخوا کار کوي او کرېپټوګرافي اشنا ښکاري، او دا استدلال یوازینی پوښتنه پرېږدي چې د سمون فیصله کوي۔ کوم پاکټونه ماشین پرېږدي، بله خوا کوم حساب هغوی وړي، او وسیله څومره ځایي اختیار غواړي۔ دا درې ځوابونه د لېږد د طریقې له مخې توپیر لري، نو هغه ترتیبات چې د یو اپلیکیشن لپاره کار کوي کېدای شي د بل لپاره په چوپتیا ناکام شي۔ لاندې کتنه له هغه پروتوکول پیلېږي چې اپلیکیشن واقعاً ورته اړ دی۔
له هغه پروتوکول پیل وکړئ چې اپلیکیشن ورته اړ دی
په sshuttle 2.0 کې د پروتوکولونو ملاتړ په هغه طریقه پورې اړه لري چې تاسو یې غوره کوئ۔ په Linux کې NAT او nft طریقې TCP او DNS سمبالوي، او TPROXY عمومي UDP زیاتوي۔ هر پلیټ فارم او طریقه خپلې حدونه لري، او macOS په بشپړه توګه بل میکانېزم له لارې مخه نیسي۔ د هر څه له غوره کولو مخکې نصب شوې نسخه، غوره شوې طریقه او هغه پروتوکولونه ولیکئ چې اپلیکیشن ورته اړ دی۔
نو یوه بریالۍ TCP غوښتنه د UDP اپلیکیشن یا هر DNS پلټنې په اړه ډېر لږ ثابتوي۔ sshuttle TCP د بشپړو IP پاکټونو د تونل کولو پر ځای د بهیرونو په توګه ګڼي، نو له عادي VPN څخه پور اخیستل شوې د تېزوالی پایله دلته نه تطبیقېږي۔ هغه میکانېزم چې واقعاً یې چلوئ له هغه بار سره پرتله کړئ چې واقعاً یې لرئ۔
| Approach | What it carries | What it needs locally |
|---|---|---|
| SSH local forward | One explicitly named TCP destination | Nothing beyond the SSH client |
| sshuttle, nft or nat method | TCP and DNS to the routed prefixes | Root or sudo for firewall rules |
| sshuttle, tproxy method | TCP, DNS and general UDP | Root or sudo, and kernel support |
| IP VPN | Routed IP traffic in a tunnel | A client with the required privileges |
کلاینټ ته په ځایي توګه څه ته اړتیا ده
مستند شوی کلاینټ ترتیبات root یا sudo ته اړتیا لري، ځکه چې د تونل انټرفیس جوړولو پر ځای ځایي د مخنیوي قواعد نصبوي۔ دا یوه واقعیت د امنیت کیسه بدلوي: هغه پروسه چې دا اختیار لري کولای شي د ټول ماشین ترافیک وګرځوي، نه یوازې د یو اپلیکیشن۔ له اختیار سره د نصب تفصیل نه، د ډیزاین برخې په توګه چلند وکړئ۔
تایید کړئ چې وسیلې کوم قواعد نصب کړي او د وتلو پر مهال ورکېږي۔ هغه ناسته چې وپېچه او د مخنیوي قواعد پرېږدي کولای شي ترافیک ډېر وروسته له هغه چې چلونکی فکر کوي اړیکه تللې ده په تور سوري کې ولېږي، او نښه د پاتې قاعدې نه، د شبکې خرابۍ په څېر ښکاري۔
sudo sshuttle --method nft --dns 172.19.4.0/24
nft list ruleset | grep -i sshuttle
ip route
لومړی حکم د یو عادي غږ رنګ دی، د هغه مختګ سره چې واقعاً ورته اړ یاست۔ دویم ښیي چې وسیلې څه نصب کړل، او دریم تاییدوي چې د تونل کوم انټرفیس نه دی راڅرګند شوی، چې د دې ډیزاین لپاره تمه شوې پایله ده۔
لېرې خوا څه چلوي
لېرې خوا یو اجازه لرونکی SSH حساب او یو سمون لرونکی Python مرستندوی چاپېریال دی۔ هغه ننوتل چې په محدود شل کې بریالي شي په اتوماتيک ډول د هغه مرستندوی د چلولو اجازه نه ورکوي، او هغه حساب چې مرستندوی چلولی شي په اتوماتيک ډول هر هدف خدمت ته نه رسېږي۔ دواړه واقعیتونه د ستونزو حل یادښتونو نه، د لاسرسي غوښتنې پورې اړه لري۔
د کوربه هویت تایید او د حساب تصدیق وساتئ۔ د لومړنۍ اړیکې د کار کولو لپاره د نااشنا کوربه کیلي منل هغه ګڼه لره کوي چې لېرې خوا ستاسو په نظر کې ماشین دی، او دا دلته د یو هدف لېږد په پرتله ډېر مهم دی۔
لېرې حساب یوازې هغو خدمتونو ته محدود کړئ چې کاري بهیر ورته اړ دی، او دا حد د کوربه چلونکو سره هوکړه کړئ۔ هغوی د باور اړیکې برخه دي، او د کلاینټ خوا هیڅ تنظیم دا نه بدلوي۔
د باور پوله چېرته ده
د یو شخصي API اړیکې SSH له لارې لېږل هر API عملیات نه اجازه لري۔ د اپلیکیشن TLS او اپلیکیشن ته ننوتل لا هم تطبیقېږي، او وسیله نه شي کولای یو بې تصدیقه خدمت خوندي کړي۔ له لېرې کوربه څخه بله ټوپ هم په اتوماتيک ډول د SSH کانال سره یو شان ساتل شوی برخه نه ده، ځکه هغه دویمه اړیکه د لېرې کوربه هره پالیسي تعقیبوي۔
پوله په یوه جمله ولیکئ: دې مختګونو ته ترافیک په هغه کوربه کې د دې حساب له لارې وځي۔ که جمله د استثناوو یو پراګراف ته اړتیا ولري، ډیزاین تر هغه ډېر کوي چې مستندات یې ادعا کوي او د تولید ته رسېدو مخکې دویم نظر مستحق دی۔
د هر پروتوکول له مخې یې ثابت کړئ، بیا وسیله غوره کړئ
هر اړین پروتوکول په بې زیانه غوښتنه ازموئ، د حل کوونکي لاره او هغه پته کورنۍ سره چې اپلیکیشن کاروي۔ په ازموینه کې قطع هم شامل کړئ، تر څو د اپلیکیشن اجازه لرونکې ناکامي ښکارندویي پېښې پر مهال حیرانتیا نه، بلکې پیژندل شوې پایله وي۔ هغه ناسته چې تر پای پورې سم لېږل کول د لوېدو وروسته څه کېږي په اړه څه نه وایي۔
د څو په ښکاره نومول شوو خدمتونو لپاره عادي ځایي لېږد د مالکیت او پلټنې لپاره اسانه دی۔ د هغه اپلیکیشن ترافیک لپاره چې د هغې طریقې سره ځي، sshuttle یو قانوني منځنی لار وړاندې کوي۔ کله چې اړتیا پراخه IP اړیکه وي، VPN ډیزاین ریښتینی ځواب دی، او غوراوی د کوډ کولو الجوریتمونو درجه بندي نه، بلکې پوښ او عملیاتي مسؤلیت تعقیبوي۔