جس Raspberry Pi کو صرف اپنی باہر جانے والی ٹریفک بچانی ہو، اس کے سامنے دو حقیقت پسندانہ ڈیزائن ہیں: نیٹ ورک منتظم کو سرنگ کا مالک بننے دیں، یا ایسی اسکرپٹ رکھیں جو اس کی مالک ہو۔ دونوں ٹریفک لے جا سکتے ہیں۔ وہ مختلف جگہوں پر ناکام ہوتے ہیں، اور رات دو بجے دور سے جس ناکامی کی تشخیص آپ کر سکتے ہیں وہی چننے کے قابل ہے۔ ملکیت پر، IPv6 اور DNS شامل ہونے پر مکمل سرنگ کا مطلب کیا ہے پر، اور سرنگ گرنے کے لمحے کیا ہوتا ہے پر ان کا موازنہ کریں۔

ایک سرنگ کے دو مالک

ڈیزائن A سسٹم کے نیٹ ورک منتظم کے اندر ایک پروفائل ہے: درآمد شدہ OpenVPN پروفائل یا مقامی WireGuard کنکشن، جو بوٹ پر اسی سروس سے فعال ہوتا ہے جو Ethernet اور Wi-Fi اوپر لاتی ہے۔ ڈیزائن B آپ کی اپنی اکائی ہے جو کلائنٹ کو براہ راست چلاتی ہے، ریزولور ترتیب میں ترمیم کرتی ہے اور اپنے راستے اور فائر وال قواعد نصب کرتی ہے۔ دونوں جائز ڈیزائن ہیں؛ فرق یہ ہے کہ روٹنگ جدول بدلنے کی اجازت کس کو ہے۔

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

ہر سرنگ کے لیے ایک مالک چنیں اور کچھ بھی جانچنے سے پہلے دوسرے کو غیر فعال کریں۔ دو مالک کا مطلب یہ بھی ہے کہ جب سرنگ اوپر ہو اور کچھ حل نہ ہو رہا ہو تو دیکھنے کی دو جگہیں۔ یہی ایک قاعدہ Pi VPN بحثوں میں بیان کی گئی بیشتر الجھی حالتوں کو روکتا ہے۔

درآمد کیا بناتی ہے، اور کیا نہیں

Raspberry Pi OS Bookworm اور بعد کے ورژنز میں ڈیفالٹ نیٹ ورک ترتیب کا آلہ NetworkManager ہے، اس لیے پروفائل کلائنٹ سرنگ کا فطری گھر ہے۔ درآمد کے لیے موزوں پلگ ان نصب ہونا چاہیے؛ اس کے بغیر درآمد غیر معاون کنکشن قسم کے بارے میں پیغام کے ساتھ ناکام ہوتی ہے، جو رک کر پلگ ان نصب کرنے کا سچا اشارہ ہے۔

nmcli connection import type openvpn file ./provider.ovpn
nmcli connection show
nmcli --ask connection up id provider-name

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

--ask کے ساتھ فعال کرنا مشترکہ مشین پر شیل تاریخ سے باہر پاس فریز رکھتا ہے۔ بغیر نگرانی والے Pi کے لیے آپ آخرکار چاہیں گے کہ پروفائل بوٹ پر اوپر آئے، جو اسے ہاتھ سے ایک بار اوپر لانے سے الگ فیصلہ ہے۔

مکمل سرنگ، دونوں ڈیزائنوں کے موازنے میں

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

ip -4 route get 198.51.100.23
ip -6 route show default
resolvectl query example.org

راستہ تلاش کرنے کے لیے دستاویزی پتہ استعمال کریں اور اسے ایسے ہوسٹ سے بدلیں جسے جانچنے کی اجازت آپ کو ہے۔ پہلا حکم دکھاتا ہے کہ Pi عام منزل کے لیے کون سا انٹرفیس استعمال کرے گا؛ دوسرا دکھاتا ہے کہ IPv6 ڈیفالٹ راستہ اب بھی ہے یا نہیں؛ تیسرا ثابت کرتا ہے کہ کون سے ریزولور نے جواب دیا۔ مکمل سرنگ کے بارے میں کسی بھی دعوے پر یقین کرنے سے پہلے تینوں پڑھیں۔

اگر فراہم کنندہ کی ہدایات مکمل سرنگ کا وعدہ کریں مگر IPv6 ڈیفالٹ راستہ باقی رہے، تو Pi لیک کر رہا ہے۔ اپ لنک پر IPv6 غیر فعال کریں یا پروفائل سے اس کا دعویٰ کرنے کو کہیں، اور بعد میں دریافت کرنے کے بجائے سچیت سے فیصلہ کریں۔

کھلی ناکامی بمقابلہ بند ناکامی

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

بند ناکامی سرنگ نیچے ہونے پر آپ کی دور رس رسائی چھین لیتی ہے، اس لیے انتظامی راستے کے لیے سچیت استثنا درکار ہے۔ ایک طریقہ ایسا قاعدہ ہے جو سرنگ سے باہر صرف VPN ساتھی کا پتہ اجازت دیتا ہے:

sudo nft add table inet vpnkill
sudo nft 'add chain inet vpnkill out { type filter hook output priority 0; policy accept; }'
sudo nft add rule inet vpnkill out oifname != "tun0" ip daddr != 203.0.113.24 reject

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

بغیر اسکرین والے Pi کے لیے انتخاب

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

ان کے درمیان منتقلی بنیادی طور پر ترتیب کا معاملہ ہے: پرانے مالک کو غیر فعال کریں، تصدیق کریں کہ کوئی پرانا راستہ یا ریزولور اندراج باقی نہیں، پھر نئی کو فعال کریں اور دو بار دوبارہ شروع کریں۔ ایک دوبارہ آغاز ایسی دوڑ چھپا سکتا ہے جو دوسرا بے نقاب کرتا ہے۔ سرنگ کی نہیں، Pi کی جانچ کر کے ختم کریں: ایک نام حل کریں، IPv4 سے کچھ حاصل کریں، رکھا ہو تو IPv6 سے بھی حاصل کریں، پھر سرنگ گرا دیں اور تصدیق کریں کہ آپ نے جو رویہ چنا وہ واقعی ہوتا ہے۔ ip link میں انٹرفیس جانچ کا آغاز ہے، اختتام نہیں۔

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