sshuttle اس لیے چنا جاتا ہے کہ SSH پہلے سے کام کر رہا ہے اور کرپٹوگرافی مانوس لگتی ہے، اور یہ استدلال اس واحد سوال کو چھوڑ دیتا ہے جو موزونیت کا فیصلہ کرتا ہے۔ کون سے پیکٹ مشین چھوڑتے ہیں، دوسری طرف کون سا اکاؤنٹ انہیں لے جاتا ہے، اور اوزار کتنا مقامی اختیار مانگتا ہے۔ یہ تینوں جواب فارورڈنگ طریقے کے مطابق بدلتے ہیں، اس لیے ایک ایپلیکیشن کے لیے کام کرنے والی ترتیب اگلی کے لیے خاموشی سے ناکام ہو سکتی ہے۔ نیچے کی وضاحت اسی پروٹوکول سے شروع ہوتی ہے جس کی ایپلیکیشن کو واقعی ضرورت ہے۔

جس پروٹوکول کی ایپلیکیشن کو ضرورت ہے اسی سے شروع کریں

sshuttle 2.0 میں پروٹوکول سپورٹ اس طریقے پر منحصر ہے جو آپ چنتے ہیں۔ Linux کے NAT اور nft طریقے TCP اور DNS سنبھالتے ہیں، اور TPROXY عام UDP شامل کرتا ہے۔ ہر پلیٹ فارم اور طریقے کی اپنی حدیں ہیں، اور macOS بالکل مختلف میکانزم سے روکتا ہے۔ کچھ بھی چننے سے پہلے نصب شدہ ورژن، منتخب طریقہ اور ایپلیکیشن کو درکار پروٹوکول نوٹ کریں۔

اس لیے کام کرنے والی TCP درخواست UDP ایپلیکیشن یا ہر DNS تلاش کے بارے میں بہت کم ثابت کرتی ہے۔ sshuttle TCP کو پورے IP پیکٹ ٹنل کرنے کے بجائے بہاؤ سمجھتا ہے، اس لیے عام VPN سے لیا گیا تھرو پٹ نتیجہ یہاں لاگو نہیں ہوتا۔ آپ واقعی جو میکانزم چلاتے ہیں اس کا موازنہ اس بوجھ سے کریں جو واقعی آپ کے پاس ہے۔

ApproachWhat it carriesWhat it needs locally
SSH local forwardOne explicitly named TCP destinationNothing beyond the SSH client
sshuttle, nft or nat methodTCP and DNS to the routed prefixesRoot or sudo for firewall rules
sshuttle, tproxy methodTCP, DNS and general UDPRoot or sudo, and kernel support
IP VPNRouted IP traffic in a tunnelA 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 مددگار ماحول ہے۔ محدود شیل کے تحت کامیاب لاگ ان خودکار طور پر اس مددگار کو چلانے کی اجازت نہیں دیتا، اور مددگار چلا سکنے والا اکاؤنٹ خودکار طور پر ہر ہدف سروس تک نہیں پہنچتا۔ دونوں حقیقتیں مسئلہ حل کرنے کے نوٹس میں نہیں بلکہ رسائی کی درخواست میں آتی ہیں۔

میزبان کی شناخت کی تصدیق اور اکاؤنٹ کی توثیق محفوظ رکھیں۔ پہلا کنکشن چلانے کے لیے نامعلوم میزبان کلید قبول کرنا یہ جانچ ختم کر دیتا ہے کہ دوسرا سرا وہی مشین ہے جس کا آپ نے ارادہ کیا تھا، اور یہ یہاں ایک مقصد کی فارورڈنگ سے زیادہ اہم ہے۔

دور دراز اکاؤنٹ کو صرف ان سروسز تک محدود کریں جن کی ورک فلو کو ضرورت ہے، اور یہ دائرہ میزبان چلانے والوں سے طے کریں۔ وہ اعتماد کے تعلق کا حصہ ہیں، اور کلائنٹ کی طرف کوئی ترتیب اسے نہیں بدلتی۔

اعتماد کی سرحد کہاں ہے

SSH کے ذریعے نجی API کنکشن فارورڈ کرنا ہر API عمل کی اجازت نہیں دیتا۔ ایپلیکیشن کا TLS اور ایپلیکیشن میں لاگ ان اب بھی لاگو ہیں، اور اوزار بغیر توثیق والی سروس کو محفوظ نہیں بنا سکتا۔ دور دراز میزبان سے اگلی چھلانگ بھی خودکار طور پر SSH چینل جیسا وہی محفوظ حصہ نہیں ہوتی، کیونکہ وہ دوسرا کنکشن دور دراز میزبان کی جو بھی پالیسی ہے اس کی پیروی کرتا ہے۔

سرحد کو ایک جملے میں لکھیں: ان سابقوں کی طرف ٹریفک اس میزبان پر اس اکاؤنٹ سے باہر نکلتی ہے۔ اگر جملے کو مستثنیات کا ایک پیراگراف درکار ہو، تو ڈیزائن اپنی دستاویزات کے دعوے سے زیادہ کر رہا ہے اور پیداوار تک پہنچنے سے پہلے دوسری نظر کا حقدار ہے۔

ہر پروٹوکول پر ثابت کریں، پھر اوزار چنیں

ہر درکار پروٹوکول کو بے ضرر درخواست سے جانچیں، حل کنندہ کے راستے اور وہ پتہ خاندان بھی جنہیں ایپلیکیشن استعمال کرتی ہے۔ جانچ میں منقطع بھی شامل کریں، تاکہ ایپلیکیشن کا مجاز ناکامی رویہ واقعے کے وقت حیرت نہیں بلکہ معلوم نتیجہ بنے۔ چلتے وقت درست فارورڈ کرنے والا سیشن اس بارے میں کچھ نہیں کہتا کہ گرنے کے بعد کیا ہوتا ہے۔

واضح طور پر نامزد چند سروسز کے لیے عام مقامی فارورڈنگ کی ملکیت اور آڈٹ آسان ہے۔ اپنے طریقے سے ہم آہنگ ایپلیکیشن ٹریفک کے لیے sshuttle جائز درمیانی راستہ پیش کرتا ہے۔ جب ضرورت وسیع IP کنیکٹیویٹی ہو، تو VPN ڈیزائن ہی ایماندار جواب ہے، اور انتخاب انکرپشن الگورتھم کی درجہ بندی نہیں بلکہ کوریج اور آپریشنل ذمہ داری کی پیروی کرتا ہے۔

متعلقہ مضامین