اوپن کنیکٹ اور وی پی این سلائس کا استعمال کرتے ہوئے لینکس میں کارپوریٹ وی پی این سے کیسے جڑیں۔

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

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

اس گائیڈ میں استعمال ہونے والے زیادہ تر کمانڈز کو sudo کے ذریعے عمل میں لانے کی ضرورت ہے، جسے اختصار کے لیے ہٹا دیا گیا ہے۔ یاد رکھنا.

زیادہ تر IP ایڈریسز کو شدید طور پر مبہم کر دیا گیا ہے، اس لیے اگر آپ کو 435.435.435.435 جیسا ایڈریس نظر آتا ہے، تو وہاں کچھ عام IP ہونا چاہیے، جو آپ کے کیس کے لیے مخصوص ہے۔

میرے پاس Ubuntu 18.04 ہے، لیکن میں سمجھتا ہوں کہ معمولی تبدیلیوں کے ساتھ گائیڈ کو دوسری تقسیم پر لاگو کیا جا سکتا ہے۔ تاہم، اس متن میں لینکس == اوبنٹو۔

سسکو کنیکٹ

جو لوگ Windows یا MacOS پر ہیں وہ Cisco Connect کے ذریعے ہمارے کارپوریٹ VPN سے منسلک ہو سکتے ہیں، جس کے لیے گیٹ وے ایڈریس کی وضاحت کرنے کی ضرورت ہے اور، جب بھی آپ جڑتے ہیں، ایک مقررہ حصے اور Google Authenticator کے ذریعے تیار کردہ کوڈ پر مشتمل پاس ورڈ درج کریں۔

لینکس کے معاملے میں، میں سسکو کنیکٹ کو نہیں چلا سکا، لیکن میں نے اوپن کنیکٹ کو استعمال کرنے کی سفارش گوگل کرنے میں کامیاب کیا، خاص طور پر سسکو کنیکٹ کو تبدیل کرنے کے لیے بنایا گیا تھا۔

اوپن کنیکٹ

نظریہ میں، اوبنٹو کے پاس اوپن کنیکٹ کے لیے ایک خاص گرافیکل انٹرفیس ہے، لیکن اس نے میرے لیے کام نہیں کیا۔ شاید یہ بہتر کے لیے ہے۔

Ubuntu پر، openconnect پیکیج مینیجر سے انسٹال ہوتا ہے۔

apt install openconnect

تنصیب کے فوراً بعد، آپ VPN سے جڑنے کی کوشش کر سکتے ہیں۔

openconnect --user poxvuibr vpn.evilcorp.com

vpn.evilcorp.com ایک فرضی VPN کا پتہ ہے۔
poxvuibr - فرضی صارف نام

openconnect آپ سے پاس ورڈ درج کرنے کو کہے گا، جو میں آپ کو یاد دلاتا ہوں، ایک مقررہ حصہ اور Google Authenticator کے کوڈ پر مشتمل ہے، اور پھر یہ vpn سے جڑنے کی کوشش کرے گا۔ اگر یہ کام کرتا ہے، مبارک ہو، آپ درمیان کو محفوظ طریقے سے چھوڑ سکتے ہیں، جو بہت تکلیف دہ ہے، اور پس منظر میں چلنے والے اوپن کنیکٹ کے بارے میں نقطہ پر جا سکتے ہیں۔ اگر یہ کام نہیں کرتا ہے، تو آپ جاری رکھ سکتے ہیں۔ اگرچہ کنیکٹ کرتے وقت یہ کام کرتا ہے، مثال کے طور پر، کام پر مہمان وائی فائی سے، تو خوشی منانا بہت جلد ہو سکتا ہے؛ آپ کو گھر سے اس طریقہ کار کو دہرانے کی کوشش کرنی چاہیے۔

سرٹیفیکیٹ

اس بات کا بہت زیادہ امکان ہے کہ کچھ بھی شروع نہیں ہوگا، اور اوپن کنیکٹ آؤٹ پٹ کچھ اس طرح نظر آئے گا:

POST https://vpn.evilcorp.com/
Connected to 777.777.777.777:443
SSL negotiation with vpn.evilcorp.com
Server certificate verify failed: signer not found

Certificate from VPN server "vpn.evilcorp.com" failed verification.
Reason: signer not found
To trust this server in future, perhaps add this to your command line:
    --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444
Enter 'yes' to accept, 'no' to abort; anything else to view: fgets (stdin): Operation now in progress

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

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

اوپن کنیکٹ کو سرور سے مربوط کرنے کے لیے، آپ کو واضح طور پر یہ بتانے کی ضرورت ہے کہ —سرورسرٹ کلید کا استعمال کرتے ہوئے VPN سرور سے کون سا سرٹیفکیٹ آنا چاہیے۔

اور آپ یہ جان سکتے ہیں کہ سرور نے ہمیں کون سا سرٹیفکیٹ براہ راست بھیجا ہے جس سے اوپن کنیکٹ پرنٹ کیا گیا ہے۔ یہاں اس ٹکڑے سے ہے:

To trust this server in future, perhaps add this to your command line:
    --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444
Enter 'yes' to accept, 'no' to abort; anything else to view: fgets (stdin): Operation now in progress

اس کمانڈ سے آپ دوبارہ رابطہ قائم کرنے کی کوشش کر سکتے ہیں۔

openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 --user poxvuibr vpn.evilcorp.com

شاید اب یہ کام کر رہا ہے، پھر آپ آخر تک جا سکتے ہیں۔ لیکن ذاتی طور پر، اوبنٹا نے مجھے اس شکل میں ایک انجیر دکھایا

POST https://vpn.evilcorp.com/
Connected to 777.777.777.777:443
SSL negotiation with vpn.evilcorp.com
Server certificate verify failed: signer not found
Connected to HTTPS on vpn.evilcorp.com
XML POST enabled
Please enter your username and password.
POST https://vpn.evilcorp.com/
Got CONNECT response: HTTP/1.1 200 OK
CSTP connected. DPD 300, Keepalive 30
Set up DTLS failed; using SSL instead
Connected as 192.168.333.222, using SSL
NOSSSSSHHHHHHHDDDDD
3
NOSSSSSHHHHHHHDDDDD
3
RTNETLINK answers: File exists
/etc/resolvconf/update.d/libc: Warning: /etc/resolv.conf is not a symbolic link to /run/resolvconf/resolv.conf

/etc/resolv.conf

# Generated by NetworkManager
search gst.evilcorpguest.com
nameserver 127.0.0.53

/run/resolvconf/resolv.conf

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 192.168.430.534
nameserver 127.0.0.53
search evilcorp.com gst.publicevilcorp.com

habr.com حل ہو جائے گا، لیکن آپ وہاں نہیں جا سکیں گے۔ jira.evilcorp.com جیسے پتے بالکل حل نہیں ہوتے۔

یہاں کیا ہوا مجھے واضح نہیں ہے۔ لیکن تجربہ سے پتہ چلتا ہے کہ اگر آپ لائن کو /etc/resolv.conf میں شامل کرتے ہیں۔

nameserver 192.168.430.534

پھر VPN کے اندر کے پتے جادوئی طور پر حل ہونا شروع ہو جائیں گے اور آپ ان کے ذریعے چل سکتے ہیں، یعنی جو DNS پتوں کو حل کرنے کے لیے تلاش کر رہا ہے وہ خاص طور پر /etc/resolv.conf میں نظر آتا ہے، نہ کہ کہیں اور۔

آپ تصدیق کر سکتے ہیں کہ VPN سے کوئی کنکشن ہے اور یہ /etc/resolv.conf میں کوئی تبدیلی کیے بغیر کام کرتا ہے؛ ایسا کرنے کے لیے، صرف براؤزر میں VPN کے وسائل کا علامتی نام نہیں بلکہ اس کا IP ایڈریس درج کریں۔

نتیجے کے طور پر، دو مسائل ہیں

  • VPN سے منسلک ہونے پر، اس کا dns اٹھایا نہیں جاتا ہے۔
  • تمام ٹریفک VPN سے گزرتی ہے، جو انٹرنیٹ تک رسائی کی اجازت نہیں دیتی

میں آپ کو بتاتا ہوں کہ اب کیا کرنا ہے، لیکن پہلے تھوڑا آٹومیشن۔

پاس ورڈ کے مقررہ حصے کا خودکار اندراج

اب تک، آپ نے غالباً کم از کم پانچ بار اپنا پاس ورڈ درج کر لیا ہے اور اس طریقہ کار نے آپ کو پہلے ہی تھکا دیا ہے۔ اول، کیونکہ پاس ورڈ لمبا ہے، اور دوسرا، کیونکہ داخل ہوتے وقت آپ کو ایک مقررہ مدت کے اندر فٹ ہونے کی ضرورت ہوتی ہے۔

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

فرض کریں کہ پاس ورڈ کا مقررہ حصہ fixedPassword ہے، اور Google Authenticator کا حصہ 567 987 ہے۔ دلیل --passwd-on-stdin کا ​​استعمال کرتے ہوئے پورے پاس ورڈ کو معیاری ان پٹ کے ذریعے openconnect میں پاس کیا جا سکتا ہے۔

echo "fixedPassword567987" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 --user poxvuibr vpn.evilcorp.com --passwd-on-stdin

اب آپ مسلسل آخری درج کی گئی کمانڈ پر واپس جا سکتے ہیں اور وہاں صرف Google Authenticator کا حصہ تبدیل کر سکتے ہیں۔

ایک کارپوریٹ VPN آپ کو انٹرنیٹ پر سرفنگ کرنے کی اجازت نہیں دیتا ہے۔

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

ہمیں اسے کسی نہ کسی طرح منظم کرنے کی ضرورت ہے تاکہ جب آپ کو اندرونی نیٹ ورک سے کسی وسائل تک رسائی حاصل کرنے کی ضرورت ہو تو، لینکس VPN پر جاتا ہے، اور جب آپ کو Habr پر جانے کی ضرورت ہوتی ہے، تو یہ انٹرنیٹ پر جاتا ہے۔

openconnect، شروع کرنے اور وی پی این کے ساتھ کنکشن قائم کرنے کے بعد، ایک خاص اسکرپٹ کو چلاتا ہے، جو /usr/share/vpnc-scripts/vpnc-script میں واقع ہے۔ کچھ متغیرات کو ان پٹ کے طور پر اسکرپٹ میں منتقل کیا جاتا ہے، اور یہ VPN کو کنفیگر کرتا ہے۔ بدقسمتی سے، میں یہ نہیں جان سکا کہ مقامی اسکرپٹ کا استعمال کرتے ہوئے کارپوریٹ VPN اور باقی انٹرنیٹ کے درمیان ٹریفک کے بہاؤ کو کیسے تقسیم کیا جائے۔

بظاہر، vpn-slice افادیت خاص طور پر میرے جیسے لوگوں کے لیے تیار کی گئی ہے، جو آپ کو دف کے ساتھ رقص کیے بغیر دو چینلز کے ذریعے ٹریفک بھیجنے کی اجازت دیتی ہے۔ ٹھیک ہے، یہ ہے کہ، آپ کو رقص کرنا پڑے گا، لیکن آپ کو شمن نہیں ہونا پڑے گا.

وی پی این سلائس کا استعمال کرتے ہوئے ٹریفک کی علیحدگی

سب سے پہلے، آپ کو vpn-slice انسٹال کرنا پڑے گا، آپ کو خود اس کا پتہ لگانا ہوگا۔ اگر کمنٹس میں سوالات ہیں تو میں اس کے بارے میں ایک الگ پوسٹ لکھوں گا۔ لیکن یہ ایک باقاعدہ Python پروگرام ہے، اس لیے کوئی مشکل پیش نہیں آنی چاہیے۔ میں نے virtualenv کا استعمال کرتے ہوئے انسٹال کیا۔

اور پھر یوٹیلیٹی کو لاگو کیا جانا چاہیے، -اسکرپٹ سوئچ کا استعمال کرتے ہوئے، اوپن کنیکٹ کی طرف اشارہ کرتے ہوئے کہ معیاری اسکرپٹ کے بجائے، آپ کو vpn-slice استعمال کرنے کی ضرورت ہے۔

echo "fixedPassword567987" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 --user poxvuibr --passwd-on-stdin 
--script "./bin/vpn-slice 192.168.430.0/24  " vpn.evilcorp.com 

--script کو کمانڈ کے ساتھ ایک سٹرنگ پاس کیا جاتا ہے جسے اسکرپٹ کے بجائے کال کرنے کی ضرورت ہوتی ہے۔ ./bin/vpn-slice - vpn-slice قابل عمل فائل کا راستہ 192.168.430.0/24 - وی پی این میں جانے کے لیے پتوں کا ماسک۔ یہاں، ہمارا مطلب ہے کہ اگر پتہ 192.168.430 سے ​​شروع ہوتا ہے، تو اس ایڈریس والے وسائل کو VPN کے اندر تلاش کرنے کی ضرورت ہے۔

اب صورتحال تقریباً معمول پر آنی چاہیے۔ تقریبا. اب آپ حبر جا سکتے ہیں اور آپ ip کے ذریعے انٹرا کارپوریٹ وسائل پر جا سکتے ہیں، لیکن آپ علامتی نام سے انٹرا کارپوریٹ وسائل پر نہیں جا سکتے۔ اگر آپ میزبانوں میں علامتی نام اور پتے کے درمیان مماثلت کی وضاحت کرتے ہیں، تو سب کچھ کام کرنا چاہیے۔ اور آئی پی تبدیل ہونے تک کام کریں۔ لینکس اب آئی پی کے لحاظ سے انٹرنیٹ یا انٹرانیٹ تک رسائی حاصل کر سکتا ہے۔ لیکن غیر کارپوریٹ DNS اب بھی پتہ کا تعین کرنے کے لیے استعمال ہوتا ہے۔

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

میزبان فائل کی خودکار ترمیم

اگر vpn-slice سے شائستگی سے پوچھا جائے، تو VPN کو بڑھانے کے بعد، یہ اپنے DNS پر جا سکتا ہے، وہاں ضروری وسائل کے IP ایڈریس کو ان کے علامتی ناموں سے ڈھونڈ سکتا ہے اور انہیں میزبانوں میں درج کر سکتا ہے۔ وی پی این کو آف کرنے کے بعد، یہ پتے میزبانوں سے ہٹا دیے جائیں گے۔ ایسا کرنے کے لیے، آپ کو علامتی ناموں کو vpn-slice کو بطور دلیل دینے کی ضرورت ہے۔ اس طرح.

echo "fixedPassword567987" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 --user poxvuibr --passwd-on-stdin
--script "./bin/vpn-slice 192.168.430.0/24  jira.vpn.evilcorp.com git.vpn.evilcorp.com " vpn.evilcorp.com 

اب سب کچھ دفتر میں اور ساحل سمندر پر دونوں کام کرنا چاہئے.

VPN کے ذریعہ دیے گئے DNS میں تمام ذیلی ڈومینز کے پتے تلاش کریں۔

اگر نیٹ ورک کے اندر کچھ پتے ہیں، تو میزبان فائل کو خود بخود تبدیل کرنے کا طریقہ کافی اچھا کام کرتا ہے۔ لیکن اگر نیٹ ورک پر بہت سارے وسائل ہیں، تو آپ کو مسلسل اسکرپٹ میں zoidberg.test.evilcorp.com جیسی لائنیں شامل کرنے کی ضرورت ہوگی zoidberg ٹیسٹ بینچوں میں سے ایک کا نام ہے۔

لیکن اب ہم تھوڑا سمجھ گئے ہیں کہ اس ضرورت کو کیوں ختم کیا جا سکتا ہے۔

اگر، VPN کو بڑھانے کے بعد، آپ /etc/hosts میں دیکھتے ہیں، تو آپ یہ لائن دیکھ سکتے ہیں۔

192.168.430.534 dns0.tun0 # vpn-slice-tun0 خود کار طریقے سے تیار

اور resolv.conf میں ایک نئی لائن شامل کی گئی۔ مختصراً، vpn-slice کسی نہ کسی طرح طے کرتا ہے کہ vpn کے لیے dns سرور کہاں واقع ہے۔

اب ہمیں یہ یقینی بنانے کی ضرورت ہے کہ evilcorp.com پر ختم ہونے والے ڈومین نام کا IP پتہ معلوم کرنے کے لیے، لینکس کارپوریٹ DNS پر جاتا ہے، اور اگر کسی اور چیز کی ضرورت ہو، تو پہلے سے طے شدہ پر۔

میں نے کافی عرصے سے گوگل کیا اور پایا کہ اوبنٹو میں اس طرح کی فعالیت دستیاب ہے۔ اس کا مطلب ہے ناموں کو حل کرنے کے لیے مقامی DNS سرور dnsmasq استعمال کرنے کی صلاحیت۔

یعنی، آپ اس بات کو یقینی بنا سکتے ہیں کہ لینکس ہمیشہ IP پتوں کے لیے مقامی DNS سرور پر جاتا ہے، جس کے نتیجے میں، ڈومین نام پر منحصر ہوتا ہے، متعلقہ بیرونی DNS سرور پر IP تلاش کرے گا۔

نیٹ ورکس اور نیٹ ورک کنکشنز سے متعلق ہر چیز کو منظم کرنے کے لیے، Ubuntu NetworkManager، اور منتخب کرنے کے لیے گرافیکل انٹرفیس کا استعمال کرتا ہے، مثال کے طور پر، Wi-Fi کنکشن اس کا صرف ایک فرنٹ اینڈ ہے۔

ہمیں اس کی ترتیب میں چڑھنے کی ضرورت ہوگی۔

  1. /etc/NetworkManager/dnsmasq.d/evilcorp میں ایک فائل بنائیں

address=/.evilcorp.com/192.168.430.534

بری کارپ کے سامنے والے نقطہ پر توجہ دیں۔ یہ dnsmasq کو اشارہ کرتا ہے کہ evilcorp.com کے تمام ذیلی ڈومینز کو کارپوریٹ dns میں تلاش کیا جانا چاہیے۔

  1. نیٹ ورک مینیجر کو نام کے حل کے لیے dnsmasq استعمال کرنے کو کہیں۔

نیٹ ورک مینیجر کی ترتیب /etc/NetworkManager/NetworkManager.conf میں واقع ہے آپ کو وہاں شامل کرنے کی ضرورت ہے:

[main] dns=dnsmasq

  1. نیٹ ورک مینیجر کو دوبارہ شروع کریں۔

service network-manager restart

اب، Openconnect اور vpn-slice کا استعمال کرتے ہوئے VPN سے منسلک ہونے کے بعد، ip کا تعین عام طور پر کیا جائے گا، چاہے آپ vpnslice کے دلائل میں علامتی پتے شامل نہ کریں۔

وی پی این کے ذریعے انفرادی خدمات تک کیسے رسائی حاصل کی جائے۔

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

ہمارا میل mail.publicevilcorp.com میں واقع ہے، جس کا مطلب ہے کہ یہ dnsmasq کے اصول کے تحت نہیں آتا اور میل سرور ایڈریس کو عوامی DNS کے ذریعے تلاش کیا جاتا ہے۔

ٹھیک ہے، دفتر اب بھی DNS استعمال کرتا ہے، جس میں یہ پتہ ہوتا ہے۔ میں نے یہی سوچا۔ درحقیقت، dnsmasq میں لائن شامل کرنے کے بعد

address=/mail.publicevilcorp.com/192.168.430.534

صورتحال بالکل نہیں بدلی ہے. ip وہی رہا۔ مجھے کام پر جانا تھا۔

اور صرف بعد میں، جب میں نے صورت حال کی گہرائی میں جانا اور مسئلہ کو تھوڑا سا سمجھا، تو ایک ذہین شخص نے مجھے بتایا کہ اسے کیسے حل کیا جائے۔ میل سرور سے نہ صرف وی پی این کے ذریعے جڑنا ضروری تھا۔

میں 192.168.430 سے ​​شروع ہونے والے پتے پر VPN کے ذریعے جانے کے لیے vpn-slice استعمال کرتا ہوں۔ اور میل سرور کے پاس نہ صرف ایک علامتی پتہ ہے جو evilcorp کا ذیلی ڈومین نہیں ہے، بلکہ اس کا IP پتہ بھی نہیں ہے جو 192.168.430 سے ​​شروع ہوتا ہے۔ اور یقیناً وہ عام نیٹ ورک سے کسی کو بھی اپنے پاس آنے کی اجازت نہیں دیتا۔

لینکس کو وی پی این اور میل سرور پر جانے کے لیے، آپ کو اسے وی پی این سلائس میں بھی شامل کرنا ہوگا۔ ہم کہتے ہیں کہ میلر کا پتہ 555.555.555.555 ہے

echo "fixedPassword567987" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 --user poxvuibr --passwd-on-stdin
--script "./bin/vpn-slice 555.555.555.555 192.168.430.0/24" vpn.evilcorp.com 

ایک دلیل کے ساتھ VPN کو بڑھانے کا اسکرپٹ

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

#!/bin/sh  
echo "fixedPassword$1" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 --user poxvuibr --passwd-on-stdin 
--script "./bin/vpn-slice 192.168.430.0/24  jira.vpn.evilcorp.com git.vpn.evilcorp.com " vpn.evilcorp.com 

اگر آپ اسکرپٹ کو connect~evilcorp~ میں ڈالتے ہیں تو آپ آسانی سے کنسول میں لکھ سکتے ہیں۔

connect_evil_corp 567987

لیکن اب آپ کو وہ کنسول رکھنا ہے جس میں اوپن کنیکٹ کسی وجہ سے کھلا ہوا ہے۔

پس منظر میں اوپن کنیکٹ چل رہا ہے۔

خوش قسمتی سے، openconnect کے مصنفین نے ہمارا خیال رکھا اور پروگرام -background میں ایک خاص کلید شامل کی، جس سے پروگرام لانچ کے بعد پس منظر میں کام کرتا ہے۔ اگر آپ اسے اس طرح چلاتے ہیں، تو آپ لانچ کے بعد کنسول کو بند کر سکتے ہیں۔

#!/bin/sh  
echo "fixedPassword$1" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 
--user poxvuibr 
--passwd-on-stdin 
--background 
--script "./bin/vpn-slice 192.168.430.0/24  jira.vpn.evilcorp.com git.vpn.evilcorp.com " vpn.evilcorp.com  

اب یہ واضح نہیں ہے کہ نوشتہ جات کہاں جاتے ہیں۔ عام طور پر، ہمیں واقعی لاگز کی ضرورت نہیں ہے، لیکن آپ کبھی نہیں جانتے۔ openconnect انہیں syslog پر بھیج سکتا ہے، جہاں انہیں محفوظ اور محفوظ رکھا جائے گا۔ آپ کو کمانڈ میں -syslog سوئچ شامل کرنے کی ضرورت ہے۔

#!/bin/sh  
echo "fixedPassword$1" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 
--user poxvuibr 
--passwd-on-stdin 
--background 
--syslog 
--script "./bin/vpn-slice 192.168.430.0/24  jira.vpn.evilcorp.com git.vpn.evilcorp.com " vpn.evilcorp.com  

اور اس طرح، یہ پتہ چلتا ہے کہ اوپن کنیکٹ پس منظر میں کہیں کام کر رہا ہے اور کسی کو پریشان نہیں کرتا، لیکن یہ واضح نہیں ہے کہ اسے کیسے روکا جائے۔ یعنی، آپ یقیناً grep کا استعمال کرتے ہوئے ps آؤٹ پٹ کو فلٹر کر سکتے ہیں اور ایک ایسا عمل تلاش کر سکتے ہیں جس کے نام میں openconnect ہو، لیکن یہ کسی نہ کسی طرح تکلیف دہ ہے۔ مصنفین کا شکریہ جنہوں نے اس بارے میں بھی سوچا۔ Openconnect میں ایک کلیدی -pid-file ہے، جس کی مدد سے آپ openconnect کو اس کے پروسیس آئیڈینٹیفائر کو فائل میں لکھنے کی ہدایت دے سکتے ہیں۔

#!/bin/sh  
echo "fixedPassword$1" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 
--user poxvuibr 
--passwd-on-stdin 
--background  
--syslog 
--script "./bin/vpn-slice 192.168.430.0/24  jira.vpn.evilcorp.com git.vpn.evilcorp.com " vpn.evilcorp.com  
--pid-file ~/vpn-pid

اب آپ ہمیشہ کمانڈ کے ساتھ کسی عمل کو ختم کر سکتے ہیں۔

kill $(cat ~/vpn-pid)

اگر کوئی عمل نہیں ہے تو، قتل لعنت کرے گا، لیکن غلطی نہیں کرے گا. اگر فائل وہاں نہیں ہے، تو کچھ بھی برا نہیں ہوگا، لہذا آپ اسکرپٹ کی پہلی لائن میں اس عمل کو محفوظ طریقے سے ختم کرسکتے ہیں۔

kill $(cat ~/vpn-pid)
#!/bin/sh  
echo "fixedPassword$1" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 
--user poxvuibr 
--passwd-on-stdin 
--background 
--syslog 
--script "./bin/vpn-slice 192.168.430.0/24  jira.vpn.evilcorp.com git.vpn.evilcorp.com " vpn.evilcorp.com  
--pid-file ~/vpn-pid

اب آپ اپنے کمپیوٹر کو آن کر سکتے ہیں، کنسول کھول سکتے ہیں اور کمانڈ چلا سکتے ہیں، اسے Google Authenticator سے کوڈ پاس کر سکتے ہیں۔ کنسول کو پھر کیلوں سے جڑا جا سکتا ہے۔

وی پی این سلائس کے بغیر۔ بعد کے لفظ کے بجائے

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

نتیجے کے طور پر، مجھے پتہ چلا کہ vpn-slice، مقامی اسکرپٹ کی طرح، روٹنگ ٹیبل کو الگ نیٹ ورکس میں تبدیل کرتا ہے۔

روٹنگ ٹیبل

اسے سادہ الفاظ میں کہوں تو یہ پہلے کالم میں ایک ٹیبل ہے جس میں یہ ہے کہ لینکس جس ایڈریس سے گزرنا چاہتا ہے اس سے شروع ہونا چاہیے اور دوسرے کالم میں اس ایڈریس پر کون سے نیٹ ورک اڈاپٹر سے گزرنا ہے۔ اصل میں، زیادہ بولنے والے ہیں، لیکن یہ جوہر کو تبدیل نہیں کرتا.

روٹنگ ٹیبل کو دیکھنے کے لیے، آپ کو ip route کمانڈ چلانے کی ضرورت ہے۔

default via 192.168.1.1 dev wlp3s0 proto dhcp metric 600 
192.168.430.0/24 dev tun0 scope link 
192.168.1.0/24 dev wlp3s0 proto kernel scope link src 192.168.1.534 metric 600 
192.168.430.534 dev tun0 scope link 

یہاں، ہر لائن ذمہ دار ہے کہ آپ کو کسی پتے پر پیغام بھیجنے کے لیے کہاں جانا ہے۔ پہلا اس کی وضاحت ہے کہ پتہ کہاں سے شروع ہونا چاہئے۔ یہ سمجھنے کے لیے کہ 192.168.0.0/16 کا مطلب یہ ہے کہ پتہ 192.168 سے شروع ہونا چاہیے، آپ کو گوگل کرنا ہوگا کہ IP ایڈریس ماسک کیا ہے۔ dev کے بعد اڈاپٹر کا نام ہے جس پر پیغام بھیجا جانا چاہیے۔

وی پی این کے لیے، لینکس نے ایک ورچوئل اڈاپٹر بنایا - tun0۔ لائن اس بات کو یقینی بناتی ہے کہ 192.168 سے شروع ہونے والے تمام پتوں کی ٹریفک اس سے گزرتی ہے۔

192.168.0.0/16 dev tun0 scope link 

آپ کمانڈ کا استعمال کرتے ہوئے روٹنگ ٹیبل کی موجودہ حالت کو بھی دیکھ سکتے ہیں۔ راستہ - این (IP ایڈریسز چالاکی سے گمنام ہیں) یہ کمانڈ مختلف شکل میں نتائج پیدا کرتی ہے اور عام طور پر فرسودہ ہوتی ہے، لیکن اس کا آؤٹ پٹ اکثر انٹرنیٹ پر مینوئلز میں پایا جاتا ہے اور آپ کو اسے پڑھنے کے قابل ہونے کی ضرورت ہے۔

کسی روٹ کا IP ایڈریس کہاں سے شروع ہونا چاہیے اسے منزل اور جین ماسک کالموں کے امتزاج سے سمجھا جا سکتا ہے۔ آئی پی ایڈریس کے وہ حصے جو Genmask میں نمبر 255 سے مماثل ہیں ان کو مدنظر رکھا جاتا ہے، لیکن جہاں 0 ہے وہ نہیں ہیں۔ یعنی Destination 192.168.0.0 اور Genmask 255.255.255.0 کے امتزاج کا مطلب یہ ہے کہ اگر ایڈریس 192.168.0 سے شروع ہوتا ہے، تو اس کی درخواست اس راستے پر جائے گی۔ اور اگر Destination 192.168.0.0 لیکن Genmask 255.255.0.0، تو 192.168 سے شروع ہونے والے پتوں کی درخواستیں اس راستے پر جائیں گی۔

یہ جاننے کے لیے کہ vpn-slice اصل میں کیا کرتا ہے، میں نے پہلے اور بعد میں میزوں کی حالتوں کو دیکھنے کا فیصلہ کیا

وی پی این کو آن کرنے سے پہلے یہ اس طرح تھا۔

route -n 

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         222.222.222.1   0.0.0.0         UG    600    0        0 wlp3s0
222.222.222.0   0.0.0.0         255.255.255.0   U     600    0        0 wlp3s0
333.333.333.333 222.222.222.1   255.255.255.255 UGH   0      0        0 wlp3s0

وی پی این سلائس کے بغیر اوپن کنیکٹ کو کال کرنے کے بعد یہ اس طرح ہوگیا۔

route -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 tun0
0.0.0.0         222.222.222.1   0.0.0.0         UG    600    0        0 wlp3s0
222.222.222.0   0.0.0.0         255.255.255.0   U     600    0        0 wlp3s0
333.333.333.333 222.222.222.1   255.255.255.255 UGH   0      0        0 wlp3s0
192.168.430.0   0.0.0.0         255.255.255.0   U     0      0        0 tun0
192.168.430.534 0.0.0.0         255.255.255.255 UH    0      0        0 tun0

اور اوپن کنیکٹ کو کال کرنے کے بعد اس طرح vpn-slice کے ساتھ مل کر

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         222.222.222.1   0.0.0.0         UG    600    0        0 wlp3s0
222.222.222.0   0.0.0.0         255.255.255.0   U     600    0        0 wlp3s0
333.333.333.333 222.222.222.1   255.255.255.255 UGH   0      0        0 wlp3s0
192.168.430.0   0.0.0.0         255.255.255.0   U     0      0        0 tun0
192.168.430.534 0.0.0.0         255.255.255.255 UH    0      0        0 tun0

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

یہیں پر:

0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 tun0

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

0.0.0.0         222.222.222.1   0.0.0.0         UG    600    0        0 wlp3s0

یہاں پہلے ہی لکھا جا چکا ہے کہ اس صورت میں آپ کو معیاری وائی فائی اڈاپٹر استعمال کرنے کی ضرورت ہے۔

مجھے یقین ہے کہ وی پی این کا راستہ استعمال کیا جاتا ہے کیونکہ یہ روٹنگ ٹیبل میں پہلا ہے۔

اور نظریاتی طور پر، اگر آپ اس پہلے سے طے شدہ راستے کو روٹنگ ٹیبل سے ہٹاتے ہیں، تو dnsmasq openconnect کے ساتھ مل کر معمول کے آپریشن کو یقینی بنانا چاہیے۔

میں نے کوشش کی

route del default

اور سب کچھ کام کیا.

وی پی این سلائس کے بغیر میل سرور پر درخواستوں کو روٹنگ کرنا

لیکن میرے پاس 555.555.555.555 ایڈریس کے ساتھ ایک میل سرور بھی ہے، جس تک VPN کے ذریعے بھی رسائی کی ضرورت ہے۔ اس کے راستے کو بھی دستی طور پر شامل کرنے کی ضرورت ہے۔

ip route add 555.555.555.555 via dev tun0

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

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

ماخذ: www.habr.com

نیا تبصرہ شامل کریں