2.x کلائنٹ سے جڑیں تو پروفائل کام کرتا ہے؛ وہی فائل 3.x کلائنٹ کو دیں تو وہ پاس ورڈ کے پرامپٹ پر رک جاتا ہے۔ --auth-user-pass creds.txt کو openvpn3 session-start کو دیں تو نتیجہ وہی رہتا ہے، کیونکہ نئے کلائنٹ میں اس فائل کو پڑھنے والا کوئی مرحلہ نہیں۔ یہ انکار جان بوجھ کر ہے: اسناد کسی سیشن کی ہوتی ہیں، اور سیشن ٹرمینل کے عمل سے نہیں بلکہ کسی سروس سے بنتا ہے۔ انٹرایکٹو پرامپٹ اور autoload مددگار میں سے ایک چنیں، اور جانیں کہ ہر ایک کیا محفوظ کرتا ہے۔

محفوظ شدہ فائل کے پاس جانے کی جگہ کیوں نہیں

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

پرانا انداز نام دینے کے قابل ہے تاکہ اسے چھوڑنا آسان ہو: پروفائل اسناد کی فائل کا حوالہ دیتا ہے، اور ٹنل شروع ہوتے وقت ڈیمن اسے پڑھتا ہے۔ نئے ماڈل میں اسناد کسی سیشن کی ہوتی ہیں اور اس سیشن کے شروع ہوتے وقت فراہم کی جاتی ہیں۔ openvpn3 session-start --config work.ovpn انہیں مانگتا ہے، اور --auth-user-pass creds.txt مسترد ہوتا ہے کیونکہ اس راستے میں فائل کھولنے والا کچھ نہیں۔ آپ کو ملنے والی ہر 2.x ترکیب اب نہ رہنے والے مرحلے کو فرض کرتی ہے۔

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

پرامپٹ کا راستہ اور وہ سیشن جو یہ چھوڑتا ہے

سیشن شروع ہوتے وقت پاس ورڈ دینا ہی مطلوبہ ورک فلو ہے۔ کلائنٹ ایک بار پوچھتا ہے، اسناد سیشن کے بیک اینڈ کو دیتا ہے اور جاری رہتا ہے:

openvpn3 session-start --config work.ovpn
openvpn3 sessions-list

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

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

کی بورڈ کے سامنے انسان کے بغیر آٹومیشن

جہاں مشین کو انسان کے بغیر جڑنا ہو، منصوبہ openvpn3-autoload فراہم کرتا ہے۔ یہ پروفائلز کی ڈائریکٹری اور ہر پروفائل کے لیے مماثل وضاحت کار پڑھتا ہے، اور وضاحت کار اسناد کو سادہ متن میں فراہم کرتا ہے۔ مددگار الگ بائنری ہے، عام طور پر /usr/sbin/openvpn3-autoload پر، session-start کا پرچم نہیں۔ اسے ترتیب دینے کا مطلب ڈائریکٹری بنانا، پروفائل کو اس نام سے نقل کرنا جو وضاحت کار توقع کرتا ہے، اور وضاحت کار لکھنا ہے۔

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

mkdir -m700 -p ~/.openvpn3/autoload
cp work.ovpn ~/.openvpn3/autoload/client.conf
$EDITOR ~/.openvpn3/autoload/client.autoload

وضاحت کار اسناد کا نام دیتا ہے اور خودکار آغاز مانگتا ہے۔ پاس ورڈ کی قدر کو ورژن کنٹرول سے باہر رکھیں:

{
  "autostart": true,
  "user-auth": {
    "autologin": true,
    "username": "svc-vpn",
    "password": "change-this-value"
  }
}

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

/usr/sbin/openvpn3-autoload --directory ~/.openvpn3/autoload
openvpn3 sessions-list

بوٹ کے وقت openvpn3-autoload.service نامی پیک شدہ یونٹ فی صارف نہیں بلکہ پورے نظام کی ڈائریکٹری /etc/openvpn3/autoload استعمال کرتا ہے۔ اس جگہ کو روٹ کی ملکیت اور سخت موڈ درکار ہے، اور وضاحت کار اب بھی پاس ورڈ سادہ متن میں رکھتا ہے۔ سودا واضح ہے: پاس ورڈ اب ڈسک پر ہے، اس لیے اس ڈائریکٹری کو راز سمجھیں، میزبان سے باہر کے بیک اپ سے خارج کریں، اور جب بھی انسان موجود ہو انٹرایکٹو راستہ چنیں۔

پاس ورڈ کی ناکامیوں جیسی دکھنے والی بس ناکامیاں

اسناد سے منسوب کچھ ناکامیاں بالکل ایسی نہیں ہوتیں۔ سروس کے فعال کرنے کے راستے کا نام دینے والی اجازت کی خرابی دو میں سے ایک معنی رکھتی ہے: بیک اینڈ چل نہیں رہا، یا بلانے والے کے پاس اسے فعال کرنے کی اجازت نہیں۔ کوئی پروفائل ترمیم دونوں میں سے کچھ نہیں بدلے گی۔ کنفیگریشن کو چھونے سے پہلے سروس کی حالت اور فراہم کردہ بس پالیسی جانچیں۔

نیچے دیے گئے احکام ان دونوں کو الگ کرتے ہیں۔ پہلا بتاتا ہے کہ بیک اینڈ چل رہا ہے یا نہیں؛ دوسرا حالیہ بس خرابیوں کو دکھاتا ہے:

systemctl status openvpn3-service-client
journalctl -b -u openvpn3-service-client --no-pager | tail -20

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

جب پرانا کلائنٹ اب بھی استعمال میں ہو

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

ان میں سے کچھ بنانے سے پہلے، جانچیں کہ پروفائل میں keepalive ترتیب دوبارہ شروع کرنے کی ضرورت کو مکمل طور پر ختم کرتی ہے یا نہیں۔ چلتا رہنے والا سیشن اس پرامپٹ تک کبھی نہیں پہنچتا جسے آپ خودکار بنانے کی کوشش کر رہے ہیں۔

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