ایک ہی سطر سے مختلف دو پروفائل اسی ہوسٹ پر دوسرا کلائنٹ شروع ہوتے ہی مختلف رویہ رکھتے ہیں۔ ایک nobind رکھتا ہے اور کرنل جو بھی مقامی پورٹ دے وہ لے لیتا ہے؛ دوسرا 1194 محفوظ رکھتا ہے، اور دوسرا واقعہ پہلے سے استعمال شدہ پتے کے ساتھ ختم ہو جاتا ہے۔ وہی سطر طے کرتی ہے کہ ماخذ پورٹ کون چنتا ہے، جو آگے طے کرتا ہے کہ پروفائل مشین پر کسی اور چیز کے ساتھ رہ سکتا ہے یا نہیں۔ تین سوال اسے طے کرتے ہیں، اور پہلا باقی دو تک پہنچنے سے پہلے ہی زیادہ تر پروفائلز کا جواب دیتا ہے۔

nobind اصل میں کیا چھوڑ دیتا ہے

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

جو نہیں بدلتا وہ دور کا سرا ہے۔ سرور اب بھی وہیں سنتا ہے جہاں پروفائل کہتا ہے، اور ترتیب میں منزل پورٹ اب بھی منزل پورٹ ہے۔ متحرک ماخذ پورٹ آپ کے اپنے ساکٹ کا واپسی پتہ بدلتا ہے، سرور کے ساکٹ میں کچھ نہیں۔

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

یہ طے کرنے والی تین شرطیں

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

کیا یہ ساتھی کنکشن شروع کرتا ہے؟ اگر باہر کال کرتا ہے تو متحرک ماخذ پورٹ بے ضرر ہے اور عام طور پر بہتر، کیونکہ جواب اسی بہاؤ سے واپس آتا ہے۔ اگر اندر آنے والے کنکشن کا انتظار کرتا ہے تو متحرک پورٹ اسے ناقابل رسائی بنا دیتا ہے، جب تک آگے کوئی پورٹ شائع نہ کرے۔ وہی ایک جواب ہر کلائنٹ پروفائل کو ہر سرور پروفائل سے الگ کرتا ہے۔

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

کیا کئی مثالیں ہوسٹ ساجھا کرتی ہیں؟ ایک مقررہ پورٹ ان میں سے دو کی خدمت نہیں کر سکتا، اور دوبارہ شروع کی گئی مثال 1194 کو اب بھی بند ہونے کی حالت میں پا سکتی ہے۔ متحرک پورٹیں اور کچھ بدلے بغیر وہ تصادم ہٹا دیتی ہیں۔ اگر آپ اس کا جواب اعتماد سے نہیں دے سکتے تو ہاں مان لیں اور کرنل کو چننے دیں۔

جہاں پن شدہ پورٹ درست جواب ہے

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

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

سرور اور کلائنٹ ہم آہنگ نہیں

OpenVPN 2.6 دستی کو nobind کے پاس lport رکھتا ہے، جو ایک سطر میں دلیل ہے: ایک اختیار کہتا ہے کرنل چنتا ہے، دوسرا کہتا ہے آپ چنتے ہیں۔ متحرک مقامی پورٹ صرف باہر کال کرنے والے ساتھی کے لیے کام کرتا ہے، کیونکہ جواب دینے والا فریق پورٹ پہلے سے نہیں جان سکتا۔ اسی لیے کلائنٹ پروفائل سرور پر نقل کرنے سے ایسا سامع بنتا ہے جہاں کوئی نہیں پہنچ سکتا۔

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

خلاصہ کرداروں کے بارے میں ہے، تحفظ کے بارے میں نہیں: جو باہر کال کرتا ہے وہ اپنے ماخذ کے بارے میں لچکدار ہو سکتا ہے، اور جو جواب دیتا ہے وہ نہیں۔ کوئی بھی انتخاب یہ نہیں بدلتا کہ دوسرا فریق آپ کی شناخت کے بارے میں کیا سیکھتا ہے۔ اسی لیے یہ ہدایت کلائنٹ نمونوں میں نظر آتی ہے اور سرور نمونوں میں تقریباً کبھی نہیں۔

کرنل کے چنے ہوئے پورٹ کی تصدیق کریں

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

ss -unp | grep openvpn
ss -lunp | grep openvpn
sudo lsof -nP -i | grep openvpn

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

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