OpenWrt پر پورے LAN کے لیے OpenVPN کلائنٹ: کام کرنے کی ترتیب
انٹرفیس کی ملکیت، زون پالیسی، ماسکریڈ اور فی SSID جدولیں چار الگ کام ہیں۔ انہیں ترتیب سے کریں، پھر پورے راؤٹر کو ڈھکنے والی سرنگ آپ سے لڑنا بند کر دے گی۔
راؤٹر کے پورے LAN کو ایک سرنگ کے پیچھے لانے کے لیے چار آزاد کام درکار ہیں۔ سرنگ کے آلے کو ایک مالک، ایک فائر وال زون، اوپر کی لنک کی طرف ایک ترجمہ کا ہدف، اور اگر کچھ کلائنٹ VPN سے باہر رہیں تو ماخذ پتے کے مطابق روٹنگ ضروری ہے۔ جو سرنگ جڑتی ہے مگر کچھ گزرتا نہیں، اس میں عام طور پر ان چار میں سے ایک کمی ہوتی ہے۔ انحصار کی ترتیب سے کام کرنے کا مطلب ہے کہ آخر میں آنے والی ناکامی اسی مرحلے کی ہے جو آپ نے ابھی بدلا۔ نیچے ہر مرحلہ کسی ایسی چیز پر ختم ہوتا ہے جو آپ دیکھ سکتے ہیں، اور یہ اگلے مرحلے کو اندازہ بننے سے روکتا ہے۔
فیصلہ کریں کہ سرنگ کیا بانٹتی ہے
Wi-Fi اور DHCP تقسیم کرنے والا راؤٹر خود کلائنٹ چلا سکتا ہے۔ اس سے ہر منسلک آلہ بغیر فی آلہ ترتیب کے سرنگ کے پیچھے آ جاتا ہے، اور چھوٹی جگہوں کو یہی ترتیب چاہیے ہوتی ہے۔ سرنگ گرنے پر سب سے بڑا اثر بھی اسی ترتیب میں ہوتا ہے، کیونکہ ہر آلہ ایک ہی وقت میں اپنا راستہ کھو دیتا ہے۔ LAN پر باہر جانے والا کام کرتا راستہ کوئی نہیں رہتا۔
پہلے کے پیچھے دوسرا راؤٹر، جو اپنے ذیلی جال کے ساتھ کلائنٹ چلاتا ہے، سرنگ کو صرف اپنے آلات تک محدود رکھتا ہے۔ اسے ہٹانا آسان ہے اور جسے یہ ورثے میں ملے اسے سمجھانا بھی آسان ہے۔ قیمت یہ ہے کہ راستے یا پورٹ فارورڈ کے بغیر دونوں طرف آپس میں رسائی نہیں ہوتی۔
بہرحال، LAN ذیلی جال الگ الگ رکھیں۔ یکساں حدود ایک طرف کو براہ راست جڑا دکھاتی ہیں، اور اس سے بننے والا بلیک ہول VPN کی خرابی جیسا پڑھا جاتا ہے گھنٹوں تک۔
سرنگ کو مالک دیں
سرنگ کو نام، آلے اور اپنے پروٹوکول کے بغیر نیٹ ورک انٹرفیس کے طور پر اعلان کریں۔ پھر نیٹ ورک نظام آلہ بناتا اور سنبھالتا ہے، اور آگے سب کچھ انٹرفیس کو آلے کے بجائے نام سے مخاطب کرتا ہے۔ یہی زون کو اسے تلاش کرنے دیتا ہے۔
ایک ہی آلہ دو جگہ مت بنائیں۔ اعلان شدہ انٹرفیس کے ساتھ ہاتھ سے بنائی گئی سرنگ ایسا آلہ بناتی ہے جو موجود ہے مگر کسی زون میں نہیں، یا ایسا جو دوبارہ لوڈ پر غائب ہو جاتا ہے۔ دونوں کلائنٹ کی ناکامی جیسے دکھتے ہیں، اور کوئی بھی اصل وجہ بتانے والی غلطی نہیں دیتا۔ اعلانیہ راستہ چنیں اور ہاتھ والا مٹا دیں۔
نیٹ ورک، فائر وال اور VPN ترتیب میں نام یکساں رکھیں۔ زون نیٹ ورک نام سے فہرست کرتا ہے، اس لیے ایک ٹائپنگ غلطی سرنگ کو ہر زون سے باہر چھوڑ دیتی ہے جبکہ انٹرفیس خود صحت مند دکھتا ہے۔ پالیسی کے بغیر صحت مند انٹرفیس پہچاننا سب سے مشکل حالت ہے۔
زون بنائیں، پھر اس میں فارورڈ کریں
فائر وال زون وہ جگہ ہے جہاں پالیسی رہتی ہے: ان پٹ، آؤٹ پٹ، فارورڈ اور ماسکریڈ۔ کسی زون میں نہ ہونے والی سرنگ ان ڈیفالٹس سے چلتی ہے جو آپ نے منتخب نہیں کیے، اور راؤٹر کلائنٹ کو یہ شاذ و نادر ہی درکار ہوتا ہے۔ نیچے کے بلاک انٹرفیس کا اعلان کرتے ہیں، اسے زون میں رکھتے ہیں اور LAN ٹریفک کو اس زون میں جانے دیتے ہیں۔
config interface 'vpn'
option device 'tun0'
option proto 'none'
config zone
option name 'vpn'
list network 'vpn'
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
option masq '1'
config forwarding
option src 'lan'
option dest 'vpn'
21.02 سے پرانی ریلیز میں وہی انٹرفیس لائن option ifname کے طور پر لکھی جاتی ہے، اس لیے چسپاں کرنے سے پہلے دیکھیں کہ نصب شدہ فرم ویئر کون سی شکل سمجھتا ہے۔ فارورڈنگ بلاک وہ اجازت ہے جو LAN ٹریفک کو سرنگ استعمال کرنے دیتی ہے۔ اس کے بغیر آلہ چل رہا ہے، کلائنٹ جڑا ہے، اور کوئی LAN میزبان سرنگ تک نہیں پہنچتا۔ راؤٹر کلائنٹس پر سب سے عام شکایت جڑا ہے مگر انٹرنیٹ نہیں ہے۔
VPN زون کا ماسکریڈ پیکٹ نکلنے سے پہلے ہر LAN پتے کو راؤٹر کے سرنگ پتے میں سمیٹ دیتا ہے۔ اس سے دوسری طرف آپ کے ذیلی جال تک واپسی راستے کی ضرورت ختم ہو جاتی ہے۔
اگر دوسری طرف پہلے سے آپ کے LAN کا راستہ ہے، تو ماسکریڈ بند کرنے سے ماخذ پتے دکھتے رہتے ہیں اور فی کلائنٹ لاگ بامعنی ہوتے ہیں۔ ایک چنیں اور لکھ لیں کہ کون سا، کیونکہ دونوں انتخاب بعد میں الگ مدد کے سوال پیدا کرتے ہیں۔ ڈیفالٹ LAN-سے-WAN فارورڈنگ ہٹانا اپنے نتیجے والا الگ فیصلہ ہے۔ اسے ہٹائیں تو راؤٹر کی اپنی انٹرنیٹ رسائی بھی ساتھ جائے گی۔
NAT میں اصل اوپر کی لنک کا نام لیں
جہاں ترجمے کا قاعدہ ہاتھ سے لکھا جاتا ہے وہاں آؤٹ گوئنگ انٹرفیس ہی بگڑنے والا خانہ ہے۔ قاعدہ جو vlan2 کا نام لیتا ہے کچھ نہیں کرتا جب سیشن ppp0 پر ختم ہوتا ہے۔ بغیر انٹرفیس والا قاعدہ ایسی ٹریفک بھی ترجمہ کر سکتا ہے جو نجی ہی رہنی چاہیے تھی۔ دونوں غلطیاں اپنا اعلان نہیں کرتیں، کیونکہ سرنگ چلتی رہتی ہے۔
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
اس قاعدے میں ppp0 کو ip route یا چل رہے انٹرفیس کی فہرست سے ملنے والے انٹرفیس سے بدلیں، پھر LAN میزبان کے صفحہ کھولتے وقت کاؤنٹر دیکھیں۔ ایک ہی فراہم کنندہ والے راؤٹر پر اوپر کی لنک کے لیے ایک ماسکریڈ قاعدہ عام طور پر کافی ہے۔ سرنگ انٹرفیس کے لیے دوسرا قاعدہ پہلے کا متبادل نہیں۔
پھر وہ کلائنٹ اختیارات شامل کریں جو طے کرتے ہیں کہ سرنگ میں کیا داخل ہوتا ہے۔ redirect-gateway ہدایت کلائنٹ کی انٹرنیٹ ٹریفک VPN سے بھیجتی ہے، اور اس کے بغیر سرنگ صرف وہی راستے اٹھاتی ہے جو سرور دھکیلتا ہے۔ DNS کو چھونے سے پہلے بنی راستہ جدول دیکھیں۔
دوسری جدول سے Wi-Fi تقسیم کریں
ایک روٹنگ جدول دو ڈیفالٹ نہیں رکھ سکتی۔ اس لیے دوسرا SSID جسے سرنگ سے بچنا ہے اسے اپنا ذیلی جال اور اپنی جدول چاہیے۔ سرنگ والے SSID کو اپنی حد دیں، پھر جدول منتخب کرنے والے قاعدے سے صرف وہی حد سرنگ میں بھیجیں۔
OpenWrt پر پالیسی روٹنگ پیکج بالکل یہی امتزاج ظاہر کرتے ہیں۔ ہاتھ سے بھی ہو سکتا ہے، ماخذ قاعدہ اور ایسی جدول کے ساتھ جس کا ڈیفالٹ سرنگ آلے کی طرف اشارہ کرے۔
دونوں نیٹ ورکس سے تقسیم دیکھیں۔ سرنگ والے SSID پر کلائنٹ VPN کا اخراجی پتہ دکھائے، اور عام SSID پر کلائنٹ فراہم کنندہ کا۔ جب دونوں یکساں دکھیں، قاعدہ غلط ماخذ سے ملتا ہے یا جدول ہی نہیں پوچھی جاتی۔ دوبارہ جڑنے کے بعد بھی جانچیں، کیونکہ انٹرفیس نام پر منحصر قاعدہ آلے کا نمبر بدلنے پر ٹوٹ جاتا ہے۔
گھڑی اور آلے کے جھنڈے پر شک کریں
یہ persist-tun جھنڈا دوبارہ شروع ہونے کے دوران سرنگ آلے کو اپنی جگہ پر رکھتا ہے۔ یہ سرور کو موزوں ہے اور ایسے کلائنٹ کو الجھاتا ہے جس کی حالت شروع سے دوبارہ بننی چاہیے۔ راؤٹر کلائنٹ کی خرابی حل کرتے وقت اسے ہٹائیں، کیونکہ ناکام گفت و شنید سے بچا آلہ چھپاتا ہے کہ کون سا مرحلہ واقعی ٹوٹا۔ کلائنٹ کے قابل اعتماد طریقے سے جڑنے کے بعد ہی اسے واپس رکھیں، اس سے پہلے نہیں۔
گھڑی دوسری خاموش ناکامی ہے۔ بغیر بیٹری گھڑی والا راؤٹر ابتدا سے شروع ہوتا ہے، یعنی سرٹیفکیٹ کی جانچ ناکام رہتی ہے جب تک NTP نہ پہنچے۔ سرٹیفکیٹ کو چھونے سے پہلے لاگ کے وقتوں کا اصل وقت سے موازنہ کریں، کیونکہ بوٹ کے ایک منٹ بعد جڑنے والا کلائنٹ عام طور پر وقت کی ہم آہنگی کا انتظار کر رہا ہوتا ہے۔