ایک کلائنٹ کو دوسرے کلائنٹ کی SSH سروس تک پہنچنا ہے، اور تالاب کا باقی حصہ آج کی طرح الگ تھلگ رہنا چاہیے۔ لالچ دینے والا سوئچ client-to-client ہے، جو سب کے لیے ایک ساتھ ہم مرتبہ رسائی کھول دیتا ہے اور فیصلہ کرنل کے بجائے OpenVPN کے سپرد کرتا ہے۔ تنگ تر جواب وہ سوئچ بند رکھتا ہے اور سرور کی اپنی روٹنگ اور فائر وال کو ٹھیک ایک بہاؤ اٹھانے دیتا ہے۔

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

client-to-client پیکٹ کو کہاں منتقل کرتا ہے

جب client-to-client فعال ہو، سرور ہم مرتبہ کا پیکٹ اندر ہی گزر دیتا ہے بجائے اس کے کہ اسے ٹنل ڈیوائس سے دوبارہ باہر بھیجے، چنانچہ پیکٹ کبھی کرنل کے گزر راستے تک نہیں پہنچتا۔ یہ سہولت ہے اور اس کا مطلب یہ بھی ہے کہ آپ کی فائر وال وہ بہاؤ کبھی نہیں دیکھتی جس کی اسے نگرانی کرنی چاہیے۔ اختیار بند رکھیں تو سرور پیکٹ کو اسی انٹرفیس سے دوبارہ باہر روٹ کرتا ہے، جو اسے netfilter کے سامنے لا کھڑا کرتا ہے۔ وہی انٹرفیس اندر، وہی باہر، اور FORWARD زنجیر کا بول بالا ہے۔

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

وہ راستہ جو ہم مرتبہ کا پیکٹ واقعی لیتا ہے

فرض کریں Linux Community OpenVPN 2.6 سروس، DCO کے بجائے صارف کی جگہ میں TUN پروسیسنگ، سب نیٹ ٹوپولوجی، tun0، اور 10.44.0.0/24 کا تالاب جس میں کلائنٹ A 10.44.0.21 پر اور کلائنٹ B 10.44.0.37 پر ہے۔ سب نیٹ ٹوپولوجی میں A کو ملنے والا پتہ اور نیٹ ماسک پہلے ہی تالاب کو ڈھانپتے ہیں، اس لیے A پیکٹ کو بغیر کسی اضافی دھکیلے گئے روٹ کے ٹنل ڈیوائس کو بھیجتا ہے۔ A پر مؤثر روٹ کی جانچ کریں بجائے اس کے کہ کوئی فرض کر لیں۔

سرور پر پیکٹ B کے پتے پر آتا ہے، جو مقامی پتہ نہیں، اس لیے اسے گزرا جاتا ہے۔ یہ عمل واقع ہونے کے لیے IPv4 گزرسازی فعال ہونی چاہیے، اور روٹ کی تلاش کو پیکٹ دوبارہ tun0 سے باہر بھیجنا ہوگا۔ چنانچہ فائر وال دونوں طرف ایک ہی انٹرفیس والا گزرا ہوا بہاؤ دیکھتی ہے، اور یہی وہ تفصیل ہے جو بیشتر قواعد کے مجموعے رہ جاتی ہے۔ یہاں ماخذ کی ترجمانی کی ضرورت نہیں، اور A کا پتہ سالم رکھنا ہی B کو اپنا ماخذ پر مبنی قاعدہ لاگو کرنے دیتا ہے۔

سرور پر دو قواعد، اسی ترتیب سے

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

sysctl -w net.ipv4.ip_forward=1
iptables -A FORWARD -i tun0 -o tun0 -s 10.44.0.21 -d 10.44.0.37 -p tcp --dport 22 -j ACCEPT
iptables -A FORWARD -i tun0 -o tun0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i tun0 -o tun0 -j DROP

یہ حکم مثالی ہیں اور اسی طریقے سے تعلق رکھتے ہیں جو آپ کا میزبان قواعد محفوظ رکھنے کے لیے استعمال کرتا ہے؛ دورانِ کار داخل کردہ حکم اگلی بوٹ پر غائب ہو جاتا ہے۔ حالت والا قاعدہ ہی وہ ہے جو B کے جوابات اور TCP مصافحے کو دوسری، آئینہ دار اجازت کے بغیر واپس آنے دیتا ہے۔

بعد میں شمار کنندگان دیکھیں نہ کہ قواعد کی فہرست، کیونکہ جو قاعدہ کبھی میل نہ کھائے وہ کام کرنے والے جیسا ہی دکھتا ہے۔ اگر شمار کنندگان صفر پر رہیں تو پیکٹ وہ راستہ نہیں لے رہا جو آپ سمجھتے ہیں۔

B کو اب بھی کس چیز کی اجازت دینی ہے

B ہی SSH سروس چلاتا ہے، اس لیے B طے کرتا ہے کہ ٹنل کے پتے پر کوئی سن رہا ہے یا نہیں اور اس کی اپنی میزبان فائر وال ماخذ قبول کرتی ہے یا نہیں۔ سرور پر نیٹ ورک کی اجازت B کے کسی بھی اکاؤنٹ کے لیے اجازت نہیں، اور میزبان کلید کی تصدیق اور صارف کی توثیق ویسے ہی لاگو رہتی ہیں جیسے کہیں اور سے۔

پہلے مثبت صورت آزمائیں: A سے B کے ٹنل پتے تک نئی SSH رابطہ، متوقع میزبان کلید کے ساتھ قبول شدہ۔ پھر کوئی دوسرا ساتھی یا دوسرا پورٹ آزمائیں اور تصدیق کریں کہ رد ہوتا ہے، کیونکہ خاموشی سے سب کچھ اجازت دینے والی اجازت اُس سے ممتاز نہیں ہو سکتی جو کام کرتی ہے جب تک بات اہم نہ ہو۔ اس آزمائش کے دونوں نصف ضروری ہیں، اور دوسرا وہی ہے جسے لوگ چھوڑ دیتے ہیں۔

تفویض شدہ پتے، دونوں کلائنٹس پر مؤثر روٹس اور سرور اور B پر درست قواعد لکھ لیں۔ گیٹ وے کو کامیاب ping یا سرور پر کھلا پورٹ ان میں سے کچھ بھی ثابت نہیں کرتا، کیونکہ دونوں درست ہو سکتے ہیں جبکہ ہم مرتبہ گزرسازی اب بھی مسدود ہو۔ وہ نمبر ٹنل کے قائم رہتے لکھیں، کیونکہ دوبارہ جڑنے کے بعد کلائنٹ کو ملنے والا پتہ کوئی اور ہو سکتا ہے۔

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