آپ کے نوٹس میں ایک common name اور ایک پتہ ہے، اور تین کمانڈیں جو سب کلائنٹ ہٹاتی دکھائی دیتی ہیں۔ صرف ایک وہ کرتی ہے جو آپ چاہتے ہیں، اور انتخاب اس پر منحصر ہے کہ آپ کو ابھی چل رہا سیشن ختم کرنا ہے، اگلی لاگ اِن سے انکار کرنا ہے، یا جڑنے کا حق بالکل لینا ہے۔ کسی چیز کو چھونے سے پہلے وہ شناخت پڑھیں جو واقعی آپ کے پاس ہے، کیونکہ OpenVPN کا تالاب بعد میں وہی ٹنل پتہ کسی دوسرے سیشن کو دے دیتا ہے۔

واقعی آپ کے پاس کون سی شناخت ہے

ورژن 3 کی اسٹیٹس فائل معمول کا آغاز ہے۔ CLIENT_LIST حصہ common name، اصل پتہ، بائٹ کاؤنٹر اور جڑنے کا وقت رکھتا ہے؛ ROUTING TABLE حصہ ورچوئل پتہ کو common name سے آخری حوالہ کے ٹائم اسٹیمپ کے ساتھ جوڑتا ہے۔ common name مستحکم شناخت ہے۔ ورچوئل پتہ ایک تقسیم ہے، اور NAT کے پیچھے اصل پتہ سیشنوں کے درمیان بدل سکتا ہے جبکہ سرور پر کچھ نہیں بدلتا۔

مینجمنٹ انٹرفیس اپنی status کمانڈ کے ذریعے ایسا ہی منظر دکھاتا ہے اور ہر سیشن کے لیے کلائنٹ ID شامل کرتا ہے۔ client-kill بالکل اسی ID کی توقع کرتا ہے، اور یہ ٹنل کا پتہ نہیں ہے۔ اگر آپ کو جاننا ہے کہ جڑتے وقت کس common name کو کون سا پتہ ملا، تو client-connect اسکرپٹ کے ماحول میں دونوں کے ساتھ قابلِ اعتماد بیرونی پتہ بھی ہوتا ہے، لیکن وہ اسکرپٹ OpenVPN صارف کے طور پر چلتا ہے اور اسے قابلِ تحریر لاگ راستہ درکار ہے۔

What you holdWhere it came fromWhat it can act on
Common nameCLIENT_LIST, or the auth hookkill, and credential revocation
Client IDstatus on the management socketclient-kill, that one session
Tunnel addressROUTING TABLE, client-connect environmentNothing durable, the address is recycled

ابھی مارو، لاگ اِن پر انکار کرو، ہمیشہ کے لیے منسوخ کرو

مینجمنٹ انٹرفیس میں دونوں ہٹانے کی کمانڈیں سیشن کے اقدامات ہیں۔ kill common name یا اصل پتہ اور پورٹ لیتی ہے؛ client-kill کلائنٹ ID لیتی ہے اور اسی لمحے وہ مثال ختم کرتی ہے۔ کوئی بھی بلاک نہیں: درست سرٹیفکیٹ اور پاس ورڈ والا نکالا گیا کلائنٹ سیکنڈوں میں دوبارہ جڑ جاتا ہے، جو ٹیسٹ peer دوبارہ استعمال کرتے وقت ٹھیک ہے اور لیپ ٹاپ چوری ہونے پر بیکار۔

client-deny فیصلے کی دوسری قسم ہے۔ عام طور پر یہ authentication یا client-connect ہک سے جاری ہوتی ہے اور سیشن کو وجہ کے ساتھ مسترد کرتی ہے، اس لیے یہ ایسی پالیسی پر پورا اترتی ہے جو لاگ اِن سے انکار کرے نہ کہ وہ جو رابطہ منقطع کرے۔ دستاویزات یہ بھی خبردار کرتی ہیں کہ TLS دوبارہ مذاکرات کے دوران جاری کردہ انکار دوبارہ طے شدہ کلید کو باطل کر دیتا ہے جبکہ موجودہ سیشن منتقلی کی کھڑکی بند ہونے تک چل سکتا ہے۔ اگر تقاضا یہ ہے کہ کلائنٹ ابھی غائب ہو، تو دستاویزی جواب client-kill ہے۔

پائیدار ہٹاؤ اس سب کے نیچے ہے۔ سرٹیفکیٹ منسوخ کریں اور یقینی بنائیں کہ crl-verify ایسی فہرست کی طرف اشارہ کرتا ہے جسے سرور واقعی دوبارہ لوڈ کرتا ہے، ccd ڈائریکٹری میں کلائنٹ مخصوص کنفیگریشن فائل غیر فعال کریں، یا جس backend سے authentication ہک پوچھتا ہے اس میں اکاؤنٹ غیر فعال کریں۔ منسوخی بھی فوری نہیں: طے شدہ reneg-sec ترتیبات کے ساتھ قائم سیشن دوبارہ مذاکرات تک چل سکتا ہے، اس لیے سیشن کا اقدام اور اسناد کا اقدام ایک دوسرے کی تکمیل کرتے ہیں، متبادل نہیں۔

کیا مینجمنٹ ساکٹ خالی ہے؟

مینجمنٹ انٹرفیس ایک وقت میں ایک کلائنٹ کی خدمت کرتا ہے۔ اگر GUI یا مانیٹرنگ ڈیمن پہلے ہی رابطہ تھامے ہوئے ہے، تو آپ کا اسکرپٹ اس کے ساتھ نہیں جڑ سکتا، اور کلائنٹ کے لحاظ سے آپ صاف ناکامی کے بجائے موجود کو باہر دھکیل سکتے ہیں۔ اس کا پاس ورڈ اسی ساکٹ پر صاف متن میں سفر کرتا ہے، اس لیے اس کی جگہ مقامی پتہ یا unix ساکٹ ہے، کبھی عوامی انٹرفیس نہیں۔

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

زندہ سرور پر میں جو ترتیب چلاتا ہوں

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

status                     # note the client ID and common name
client-kill 3              # end that session now
kill Test-Client           # alternative: by common name
status                     # confirm the session is gone

اوپر کا نام اور نمبر پلیس ہولڈر ہیں، اور ID دوسرے کلائنٹس کے منقطع ہونے کے بعد دوبارہ استعمال ہوتے ہیں۔ کسی چیز کو مکمل لکھنے سے پہلے تصدیق کریں کہ سطر موجود نہیں، اور جانچیں کہ جڑے ہوئے کلائنٹس کی تعداد ایک سے بڑھی ہے نہ کہ کئی سے۔

تصدیق کریں کہ وہ باہر رہا

common name، ٹنل پتہ، بیرونی پتہ اور ہٹانے کا منٹ ریکارڈ کریں۔ اگر وہی common name ایک منٹ بعد دوبارہ ظاہر ہو، تو سیشن کا اقدام کارگر رہا اور اسناد کی تہہ نہیں، جو اس کمانڈ سے بالکل مختلف مرمت ہے جو کبھی نافذ ہی نہیں ہوئی۔

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

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