کیا OpenVPN کا مستقل کلید والا ربط کئی کلائنٹس کی خدمت کر سکتا ہے؟
مستقل کلید کا موڈ دو ہم مرتبہ فریقوں کو جوڑتا ہے۔ client-to-client شامل کرنا اسے کئی کلائنٹس کے سرور میں تبدیل نہیں کرتا؛ اس کے لیے TLS موڈ اور ہر ڈیوائس کی شناخت درکار ہے۔
مستقل کلید کا موڈ ٹھیک دو ہم مرتبہ فریقوں کو جوڑتا ہے، اور یہی اس کا ڈیزائن ہے، کوئی ایسی حد نہیں جسے کسی نے ہٹانا بھول دیا ہو۔ client-to-client سرور موڈ میں فارورڈنگ کا اختیار ہے، اس لیے اسے --secret کنفیگریشن میں شامل کرنے سے اس بات میں کچھ نہیں بدلتا کہ کتنے کلائنٹس جڑ سکتے ہیں۔ فیصلہ یہ نہیں کہ کون سا پرچم شامل کیا جائے، بلکہ یہ ہے کہ تعیناتی کو پوائنٹ ٹو پوائنٹ ربط چاہیے یا کئی کلائنٹس کی خدمت۔ اگر کئی ڈیوائسز کو خودمختار طور پر جڑنا ہو تو حفاظتی موڈ بدل جاتا ہے اور ہر ڈیوائس کو شناخت ملتی ہے۔
دو فریق، ایک کلید اور ہر کلائنٹ کے لیے کوئی حالت نہیں: یہی شکل اس موڈ کی پوری کہانی ہے۔
مستقل کلید کا موڈ کس لیے ہے
خفیہ موڈ میں دونوں فریق ایک ہی کلید فائل بانٹتے ہیں، اور وہ کلید ٹریفک کی براہِ راست حفاظت کرتی ہے۔ کوئی مصافحہ نہیں، سرٹیفکیٹ کی تبدیلی نہیں اور ہر کلائنٹ کے لیے سیشن نہیں، کیونکہ سرور کے معنی میں کوئی کلائنٹ نہیں، صرف دو آخری نقاط ہیں۔
دستاویزی کلید گردش کے عمل والی مقررہ مشین جوڑی کے لیے یہ موڈ مفید رہتا ہے، اور OpenVPN 2.6 اسے متروک قرار دیتا ہے کیونکہ TLS موڈ ان صورتوں کو بہتر خصوصیات کے ساتھ ڈھانپتا ہے۔ جو یہ نہیں کر سکتا وہ یہ ہے کہ جڑنے والی ایک ڈیوائس کو دوسری سے الگ پہچانے، کیونکہ فائل پر قبضہ ہی پوری توثیق کی کہانی ہے۔ تیسری ڈیوائس شامل کرنے کا مطلب اس کے ساتھ وہی کلید بانٹنا ہے، جس کے بعد پہلی دو اسے اپنے آپ سے الگ نہیں پہچان سکتیں۔
اسی لیے دو فریقوں کی حد ساختی ہے، بدلی جا سکنے والی ترتیب نہیں۔
client-to-client کیوں گمشدہ ٹکڑا نہیں
client-to-client یہ طے کرتا ہے کہ جڑے ہوئے کلائنٹس سرور کے ذریعے ٹریفک کا تبادلہ کر سکتے ہیں یا نہیں۔ یہ کلائنٹس کو داخل نہیں کرتا، شناختیں نہیں دیتا اور ایسا سرور موڈ نہیں بناتا جو ترتیب نہ دیا گیا ہو، اور مستقل کلید کی کنفیگریشن میں اس کے سنبھالنے کے لیے کوئی کلائنٹ فہرست نہیں ہوتی۔
دوسری عام الجھن tls-crypt یا tls-auth کے مواد سے متعلق ہے۔ TLS سرور ان کلیدوں میں سے ایک تمام کلائنٹس میں بانٹ سکتا ہے، کیونکہ یہ ہر کلائنٹ کے ہونے کا ثبوت دینے کے بجائے کنٹرول چینل کی حفاظت کرتا ہے۔ TLS موڈ میں مشترکہ کنٹرول چینل کلید مشترکہ مستقل ڈیٹا کلید سے مختلف چیز ہے، اگرچہ دونوں ایک جیسی دکھنے والی فائلوں کے طور پر آتی ہیں۔
موڈز کے درمیان انتخاب دو سوالوں پر آتا ہے۔ کیا ایک سے زیادہ ڈیوائسز کو خودمختار طور پر جڑنا ہے، اور کیا تعیناتی کو ہر ڈیوائس کے لیے منسوخی درکار ہے؟ دونوں کے لیے نہیں تو مستقل کلید کا موڈ قائم رہتا ہے؛ کسی ایک کے لیے ہاں تو یہ TLS کی طرف اشارہ کرتا ہے۔ تیسرا کوئی اختیار نہیں جہاں اپنی شناخت کے بغیر دوسرے کلائنٹ کو داخل کیا جائے۔
کئی کلائنٹس کا سرور بنانا
کئی کلائنٹس کے سرور کو TLS موڈ، سرور کی طرف کا سرٹیفکیٹ اور ہر کلائنٹ کے لیے شناخت درکار ہے۔ سرور معاون پتوں کا تالاب اور کئی کلائنٹس کا موڈ ترتیب دیتا ہے، لیکن یہ TLS کنفیگریشن، اعتماد کا لنگر یا وہ کلائنٹ سرٹیفکیٹ فراہم نہیں کرتا جو داخلے کو بامعنی بناتے ہیں۔
ایک کلائنٹ کی اسناد نقل کرنے کے بجائے موجودہ سرٹیفکیٹ اتھارٹی کے ذریعے ہر ڈیوائس کو رجسٹر کریں۔ الگ شناختیں ہی منسوخی، ہر کلائنٹ کے لیے راستہ بندی اور مفید لاگ کو ممکن بناتی ہیں، اور ایک مشترکہ کلائنٹ سرٹیفکیٹ تینوں کو بکھیر دیتا ہے۔
اگر تعیناتی صارفین کی توثیق بیرونی ڈائریکٹری یا دوسرے عامل کے ذریعے کرتی ہے تو وہ ڈیزائن جیسا ہے ویسا ہی رہتا ہے۔ TLS سرور موڈ کی طرف جانا یہ طے کرتا ہے کہ فریق ٹنل تہہ میں اپنے آپ کو کیسے ثابت کرتے ہیں، اور یہ اکاؤنٹ بیک اینڈ کا حکم نہیں دیتا۔ دونوں فیصلے الگ رکھیں تاکہ ایک میں تبدیلی دوسرے کو خاموشی سے نہ بدلے۔
پھر فارورڈنگ پالیسی کا شعوری فیصلہ کریں۔ client-to-client صارف کی جگہ کے سرور راستے میں کلائنٹ سے کلائنٹ تک ٹریفک فعال کرتا ہے، جسے بہت سی تعیناتیاں چاہتی ہیں اور کچھ کو نہیں ہونا چاہیے۔ یہ پالیسی سوئچ ہے، شناخت کا طریقہ کار نہیں، اور اسے اس لیے فعال کرنا چاہیے کہ ڈیزائن کا تقاضا ہے، نہ کہ اس لیے کہ کسی ٹیوٹوریل نے شامل کیا۔
جانچنا کہ کلائنٹس واقعی خودمختار ہیں
دو کلائنٹس جوڑیں اور تصدیق کریں کہ انہیں مختلف پتے ملتے ہیں اور وہ سرور کے لاگ میں مختلف شناختوں کے ساتھ دکھائی دیتے ہیں۔ پھر ایک کو منسوخ کریں اور تصدیق کریں کہ دوسرا کام کرتا رہتا ہے، یہی وہ عملی امتحان ہے کہ شناختیں مشترک نہیں تھیں۔
اجازت یافتہ ہم مرتبہ رابطہ سروس اور وہ سروس آزمائیں جو بند رہنی چاہیے۔ دو کامیاب لاگ ان داخلے کا ثبوت دیتے ہیں، الگ تھلگ ہونے کا نہیں، اور جب تعیناتی کو صارف گروہ الگ کرنے ہوں تو یہ فرق اہم ہے۔
آخر میں، سرور موڈ حافظے سے نہیں بلکہ چلتی ہوئی کنفیگریشن سے پڑھیں۔ اضافی اختیارات والی مستقل کلید کی کنفیگریشن اب بھی پوائنٹ ٹو پوائنٹ ربط ہے، اور درست TLS سرور ہی واحد ترتیب ہے جس میں کئی کلائنٹس واقعی الگ فریق ہوتے ہیں۔
اگر لاگ ہر ڈیوائس کے لیے ایک ہی مشترک نام دکھائے تو مسئلہ موڈ نہیں۔ مسئلہ رجسٹریشن کا عمل ہے۔