ایک فائر وال قاعدے کا تصور کریں جو نامزد VPN پروفائل منسلک ہونے پر سرور کے عوامی پتے کے لیے ICMP echo فعال کرتا ہے۔ یہ «صرف سرنگ سے ping» کی طرح پڑھا جاتا ہے، اور یہ قراءت اُس طرح غلط ہے جو اہمیت رکھتی ہے۔ قاعدہ یہ محدود نہیں کرتا کہ کون میزبان تک پہنچ سکتا ہے؛ یہ بدلتا ہے کہ عوامی انٹرفیس کس کو جواب دیتا ہے جب کوئی دوسرا کنکشن اتفاقاً فعال ہو۔ یہ دو مختلف پالیسیاں ہیں، اور اُن میں سے ایک خاموشی سے خطرہ بڑھاتی ہے۔

وہ قاعدہ جو آپ سمجھتے ہیں کہ آپ نے لکھا

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

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

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

گیٹ دراصل کیا کنٹرول کرتا ہے

یہ ڈیزائن دو خودمختار چیزوں کو یکجا کر دیتا ہے، اور اُنہیں الگ کرنا اصلاح کا بڑا حصہ ہے۔ پہلی ہے دائرہ: کون سا مقامی پتہ، کون سے دور کے پتے، کون سا پروٹوکول اور کون سی ICMP قسم۔ دوسری ہے شرط: کیا قاعدے کا آبجیکٹ اس لمحے فعال ہے۔ دائرہ وہ ہے جسے فائر وال ہر پیکٹ پر جانچتا ہے؛ شرط وہ ہے جو اسکرپٹ پالیسی کے ذخیرے میں لکھتا ہے، اور دونوں بالکل مختلف گھڑیوں پر ہم آہنگ کیے جاتے ہیں۔

اگر ضرورت واقعی صرف VPN ساتھی ہو تو دائرہ کسی کنکشن کی حالت کے منطق کے بغیر اُس کا جواب دیتا ہے: قاعدے کو سرنگ انٹرفیس یا سرنگ پتوں کی حد سے باندھیں، دور کے پتوں کو کلائنٹ پول تک محدود کریں، اور «ICMP» کے بجائے echo قسم بتائیں۔ وہ قاعدہ اُس وقت بھی درست رہتا ہے جب کوئی VPN فعال نہ ہو، اور غیر متعلق پروفائل اُسے کھول نہیں سکتی۔

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

آبجیکٹ ایک بار بنائیں، پھر اُسے ٹوگل کریں

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

New-NetFirewallRule -Name "VpnGateEchoV4" -DisplayName "Public echo gated on VPN state" -Direction Inbound -Action Allow -Protocol ICMPv4 -IcmpType 8 -LocalAddress 203.0.113.10 -RemoteAddress Any -Enabled False
Set-NetFirewallRule -Name "VpnGateEchoV4" -Enabled True

نام پائیدار شناخت کنندہ ہے؛ ظاہری نام وہ دستاویز ہے جسے انسان ترمیم کر سکتا ہے۔ -Name پر ہم آہنگ کریں اور اسکرپٹ نقول بنانا بند کر دے گی۔ وہی حکم کی شکل IPv6 کی صورت کو -Protocol ICMPv6 -IcmpType 128 کے ساتھ ڈھکتی ہے، لیکن یہ الگ قاعدہ ہے کیونکہ echo قسم کے نمبر دونوں خاندانوں میں مختلف ہیں۔

پتے کا خاندان اور ICMP قسم واضح رکھیں، دوسری وجہ بھی ہے: -Protocol ICMPv4 قسم کے بغیر ہر اُس ICMPv4 پیغام کی اجازت دیتا ہے جس کی پروفائل اجازت دیتی ہے، اُن سمیت جنہیں آپ نے کبھی قبول کرنے کا ارادہ نہیں کیا۔ قسم 8 کا نام لینا قاعدے کو echo درخواست تک محدود کرتا ہے، اور رسائی کی جانچ صرف وہی بھیجتی ہے۔

جہاں خودکاریت ارادے سے متصادم ہے

ہر چند منٹ بعد کلائنٹ پروفائل کی پوچھ گچھ فوری حد نہیں بنا سکتی۔ کنکشن ٹوٹنے سے اگلی پوچھ گچھ تک قاعدہ عوامی پتے پر جواب دیتا رہتا ہے؛ کنکشن جڑنے سے اگلی پوچھ گچھ تک جواب نہیں دیتا۔ اُس تاخیر کا اعتراف ایمانداری ہے، اور یہ دعویٰ کہ ڈیزائن سخت غیر متغیر لازماً نافذ کرتا ہے، ایمانداری نہیں۔

خود حالت کی جانچ میں دائرے کا جال ہے۔ Get-VpnConnection مشین پر تشکیل شدہ کلائنٹ پروفائل بتاتا ہے، بطور طے شدہ موجودہ صارف کے لیے اور -AllUserConnection کے ساتھ تمام صارفین کے لیے۔ یہ اُن دور کے صارفین کی اطلاع نہیں دیتا جو اس وقت RRAS سرور پر ڈائل اِن ہیں؛ وہ دوسرے حکم والا دوسرا مشاہدہ ہے۔ غلط چیز پر بنا گیٹ کسی سے منسلک نہیں ہوتا۔

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

آخر میں، عوامی درخواست دو بار جانچیں، ایک بار منتخب کنکشن فعال ہونے پر اور ایک بار بند ہونے پر، ایسے میزبان سے جو VPN پر نہ ہو۔ سرنگ کے اندر سے کامیاب ping اِس پالیسی کے بارے میں کچھ ثابت نہیں کرتا، اور یہی وہ پیمانہ ہے جسے بیشتر تعیناتیاں چھوڑ دیتی ہیں۔

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