Openconnect ۽ vpn-slice استعمال ڪندي لينڪس ۾ ڪارپوريٽ وي پي اين سان ڪيئن ڳنڍجي

ڇا توهان ڪم تي لينڪس استعمال ڪرڻ چاهيو ٿا، پر توهان جو ڪارپوريٽ وي پي اين توهان کي اجازت نه ڏيندو؟ پوء هي مضمون مدد ڪري سگھي ٿو، جيتوڻيڪ اهو يقين نه آهي. مان توهان کي اڳ ۾ ئي ڊيڄارڻ چاهيان ٿو ته مان نيٽ ورڪ انتظاميه جي مسئلن کي چڱيءَ طرح نه ٿو سمجهان، ان ڪري ممڪن آهي ته مون سڀ ڪجهه غلط ڪيو هجي. ٻئي طرف، اهو ممڪن آهي ته مان هڪ اهڙي طريقي سان لکي سگهان ٿو جيڪو عام ماڻهن کي سمجهي سگهندو، تنهنڪري مان توهان کي صلاح ڏيان ٿو ته ڪوشش ڪريو.

مضمون ۾ تمام گهڻيون غير ضروري معلومات شامل آهن، پر ان ڄاڻ کان سواءِ مان انهن مسئلن کي حل ڪرڻ جي قابل نه ٿيان ها، جيڪي اڻڄاتل طور مون وٽ وي پي اين قائم ڪرڻ سان ظاهر ٿيا. منهنجو خيال آهي ته جيڪو به هن گائيڊ کي استعمال ڪرڻ جي ڪوشش ڪندو، ان کي اهي مسئلا هوندا جيڪي مون وٽ نه هئا، ۽ مون کي اميد آهي ته هي اضافي معلومات انهن مسئلن کي پاڻ حل ڪرڻ ۾ مدد ڪندي.

هن گائيڊ ۾ استعمال ٿيل اڪثر حڪمن کي سوڊو ذريعي هلائڻ جي ضرورت آهي، جنهن کي اختصار لاءِ هٽايو ويو آهي. ذهن ۾ رک.

گھڻا IP پتي سختي سان مبهم ڪيا ويا آھن، تنھنڪري جيڪڏھن توھان ڏسندا ھڪڙو پتو جھڙوڪ 435.435.435.435، اتي ڪجھ عام IP ھجڻ گھرجي، توھان جي ڪيس لاءِ مخصوص.

مون وٽ Ubuntu 18.04 آهي، پر منهنجو خيال آهي ته معمولي تبديلين سان گائيڊ ٻين تقسيم تي لاڳو ٿي سگهي ٿو. بهرحال، هن متن ۾ Linux == Ubuntu.

Cisco Connect

جيڪي Windows يا MacOS تي آهن سي اسان جي ڪارپوريٽ VPN سان Cisco Connect ذريعي ڳنڍجي سگهن ٿا، جنهن کي گيٽ وي ايڊريس جي وضاحت ڪرڻ جي ضرورت آهي ۽، هر ڀيري توهان ڳنڍيو، هڪ مقرر ٿيل حصو ۽ گوگل تصديق ڪندڙ پاران ٺاهيل ڪوڊ تي مشتمل پاسورڊ داخل ڪريو.

لينڪس جي صورت ۾، مان سسڪو ڪنيڪٽ کي هلائي نه سگهيو، پر مون کي منظم ڪيو ويو گوگل کي هڪ سفارش استعمال ڪرڻ لاء Openconnect، خاص طور تي Cisco Connect کي تبديل ڪرڻ لاء.

اوپن ڪنيڪٽ

نظريي ۾، Ubuntu وٽ اوپن ڪنيڪشن لاءِ هڪ خاص گرافڪ انٽرفيس آهي، پر اهو مون لاءِ ڪم نه ڪيو. شايد اھو بھتر لاءِ آھي.

Ubuntu تي، openconnect انسٽال ٿيل آهي پيڪيج مينيجر مان.

apt install openconnect

انسٽاليشن کان پوءِ فوري طور تي، توھان ڪوشش ڪري سگھوٿا ھڪ وي پي اين سان ڳنڍڻ جي

openconnect --user poxvuibr vpn.evilcorp.com

vpn.evilcorp.com هڪ جعلي وي پي اين جو پتو آهي
poxvuibr - جعلي استعمال ڪندڙ نالو

openconnect توهان کي پاسورڊ داخل ڪرڻ لاءِ چوندو، جيڪو، مان توهان کي ياد ڏياريان، هڪ مقرر ٿيل حصو ۽ هڪ ڪوڊ تي مشتمل آهي گوگل تصديق ڪندڙ، ۽ پوءِ اهو vpn سان ڳنڍڻ جي ڪوشش ڪندو. جيڪڏهن اهو ڪم ڪري ٿو، مبارڪون، توهان محفوظ طور تي وچين کي ڇڏي سگهو ٿا، جيڪو تمام گهڻو درد آهي، ۽ پس منظر ۾ هلندڙ openconnect بابت نقطي تي وڃو. جيڪڏهن اهو ڪم نٿو ڪري، ته توهان جاري رکي سگهو ٿا. جيتوڻيڪ جيڪڏهن اهو ڪم ڪيو جڏهن ڳنڍيندي، مثال طور، ڪم تي مهمان وائي فائي کان، پوء اهو خوش ٿيڻ لاء تمام جلدي ٿي سگهي ٿو؛ توهان کي گهر کان طريقيڪار کي ورجائڻ جي ڪوشش ڪرڻ گهرجي.

سرٽيفڪيٽ

اتي ھڪڙو وڏو امڪان آھي ته ڪجھ به شروع نه ٿيندو، ۽ openconnect ٻاھر ھن طرح ڪجھھ نظر ايندو:

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 سرور مان اچڻ گهرجي -servercert ڪيئي استعمال ڪندي

۽ توھان ڳولي سگھوٿا ته ڪھڙي سرٽيفڪيٽ سرور اسان کي موڪليو آھي سڌو سنئون ڪھڙي openconnect کان ڇپيل آھي. هتي هن ٽڪرا مان آهي:

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

شايد هاڻي اهو ڪم ڪري رهيو آهي، پوء توهان آخر تائين منتقل ڪري سگهو ٿا. پر ذاتي طور تي، Ubunta مون کي هن شڪل ۾ هڪ انجير ڏيکاريو

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

پوءِ وي پي اين جي اندر جا پتا جادوءَ سان حل ڪرڻ شروع ڪندا ۽ توھان انھن جي ذريعي ھلائي سگھوٿا، اھو آھي، جيڪو DNS پتي کي حل ڪرڻ لاءِ ڳولي رھيو آھي خاص طور تي /etc/resolv.conf ۾ نظر اچي ٿو، ۽ ڪٿي نه.

توهان تصديق ڪري سگهو ٿا ته VPN سان ڪنيڪشن آهي ۽ اهو ڪم ڪري ٿو بغير ڪنهن تبديلي جي /etc/resolv.conf؛ ائين ڪرڻ لاءِ، صرف برائوزر ۾ داخل ڪريو VPN مان وسيلن جو علامتي نالو نه، پر ان جو IP پتو

نتيجي طور، اتي ٻه مسئلا آهن

  • جڏهن هڪ VPN سان ڳنڍڻ، ان جي ڊي اين ايس کي نه ورتو ويو آهي
  • سڀ ٽرئفڪ وي پي اين ذريعي وڃي ٿي، جيڪا انٽرنيٽ تائين رسائي جي اجازت نٿي ڏئي

مان توهان کي ٻڌايان ٿو ته هاڻي ڇا ڪجي، پر پهرين ٿوري آٽوميشن.

پاسورڊ جي مقرر ٿيل حصي جي خودڪار داخلا

هينئر تائين، توهان گهڻو ڪري پهريان ئي پنهنجو پاسورڊ گهٽ ۾ گهٽ پنج ڀيرا داخل ڪيو آهي ۽ اهو عمل توهان کي اڳي ئي ٿڪائي چڪو آهي. پهريون، ڇاڪاڻ ته پاسورڊ ڊگهو آهي، ۽ ٻيو، ڇاڪاڻ ته داخل ٿيڻ وقت توهان کي هڪ مقرر وقت جي اندر اندر فٽ ڪرڻ جي ضرورت آهي

مسئلو جو حتمي حل مضمون ۾ شامل نه ڪيو ويو آهي، پر توهان پڪ ڪري سگهو ٿا ته پاسورڊ جو مقرر ٿيل حصو ڪيترائي ڀيرا داخل ٿيڻ جي ضرورت ناهي.

اچو ته فرض ڪريون ته پاسورڊ جو مقرر ٿيل حصو fixedPassword آهي، ۽ Google Authenticator جو حصو 567 آهي. سڄو پاس ورڊ معياري ان پٽ ذريعي اوپن ڪنيڪٽ ۾ پاس ڪري سگھجي ٿو --passwd-on-stdin دليل استعمال ڪندي.

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

ھاڻي توھان مسلسل واپس ڪري سگھوٿا آخري داخل ٿيل ڪمانڊ ڏانھن ۽ تبديل ڪري سگھوٿا صرف Google Authenticator جو حصو.

هڪ ڪارپوريٽ وي پي اين توهان کي انٽرنيٽ سرف ڪرڻ جي اجازت نه ڏيندو آهي.

عام طور تي، اهو تمام ڏکيو نه آهي جڏهن توهان کي هبر ڏانهن وڃڻ لاء هڪ الڳ ڪمپيوٽر استعمال ڪرڻو پوندو. stackoverfow کان ڪاپي پيسٽ ڪرڻ جي ناڪامي عام طور تي ڪم کي مفلوج ڪري سگهي ٿي، تنهنڪري ڪجهه ڪرڻ جي ضرورت آهي.

اسان کي ڪنهن به طرح ان کي منظم ڪرڻ جي ضرورت آهي ته جيئن توهان کي اندروني نيٽ ورڪ کان وسيلن تائين رسائي جي ضرورت هجي، لينڪس وي پي اين ڏانهن وڃي ٿو، ۽ جڏهن توهان کي وڃڻ جي ضرورت آهي Habr، اهو انٽرنيٽ ڏانهن وڃي ٿو.

اوپن ڪنيڪٽ، لانچ ڪرڻ ۽ وي پي اين سان ڪنيڪشن قائم ڪرڻ کان پوءِ، هڪ خاص اسڪرپٽ تي عمل ڪري ٿو، جيڪو /usr/share/vpnc-scripts/vpnc-script ۾ واقع آهي. ڪجھ متغير اسڪرپٽ ۾ ان پٽ جي طور تي گذري ويا آھن، ۽ اھو وي پي اين کي ترتيب ڏئي ٿو. بدقسمتي سان، مان اهو نه سمجهي سگهيو ته هڪ ڪارپوريٽ وي پي اين ۽ باقي انٽرنيٽ جي وچ ۾ ٽرئفڪ جي وهڪري کي ڪيئن ورهايو وڃي هڪ اصلي اسڪرپٽ استعمال ڪندي.

بظاهر، vpn-slice افاديت خاص طور تي مون جهڙن ماڻهن لاءِ ترقي ڪئي وئي، جيڪا توهان کي اجازت ڏئي ٿي ٽريفڪ موڪلڻ جي ٻن چينلن ذريعي بغير ڪنهن ٽمبر سان ناچ ڪرڻ جي. خير، اهو آهي، توهان کي ناچ ڪرڻو پوندو، پر توهان کي شمن ٿيڻ جي ضرورت ناهي.

vpn-slice استعمال ڪندي ٽرئفڪ جي الڳ ٿيڻ

پهرين، توهان کي نصب ڪرڻو پوندو vpn-slice، توهان کي اهو معلوم ڪرڻو پوندو. جيڪڏهن تبصرن ۾ سوال آهن، آئون ان بابت هڪ الڳ پوسٽ لکندس. پر هي هڪ باقاعده پٿون پروگرام آهي، تنهنڪري اتي ڪا به مشڪلات نه هجڻ گهرجي. مون 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 

-اسڪرپٽ هڪ حڪم سان هڪ اسٽرنگ پاس ڪيو آهي جنهن کي اسڪرپٽ جي بدران سڏڻ جي ضرورت آهي. ./bin/vpn-slice - vpn-slice executable فائل ڏانهن رستو 192.168.430.0/24 - وي پي اين ۾ وڃڻ لاءِ پتي جو ماسڪ. هتي، اسان جو مطلب اهو آهي ته جيڪڏهن پتو 192.168.430 سان شروع ٿئي ٿو، پوء هن ايڊريس سان وسيلن کي VPN جي اندر ڳولڻ جي ضرورت آهي.

صورتحال هاڻي لڳ ڀڳ عام ٿيڻ گهرجي. لڳ ڀڳ. ھاڻي توھان ھبر ڏانھن وڃو ۽ توھان ip ذريعي انٽرا ڪارپوريٽ وسيلن ڏانھن وڃو، پر توھان علامتي نالي سان انٽرا ڪارپوريٽ وسيلن ڏانھن نٿا وڃو. جيڪڏهن توهان ميزبان ۾ علامتي نالو ۽ پتي جي وچ ۾ هڪ ميچ بيان ڪريو، هر شي کي ڪم ڪرڻ گهرجي. ۽ ڪم ڪريو جيستائين ip تبديل نه ٿئي. لينڪس هاڻي انٽرنيٽ يا انٽرنيٽ تائين رسائي ڪري سگهي ٿو، 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 ٽيسٽ بينچ مان هڪ جو نالو آهي.

پر هاڻي ته اسان ٿورڙي سمجھون ٿا ته اها ضرورت ڇو ختم ٿي سگهي ٿي.

جيڪڏهن، وي پي اين کي وڌائڻ کان پوء، توهان /etc/hosts ۾ ڏسو، توهان هن لائن کي ڏسي سگهو ٿا

192.168.430.534 dns0.tun0 # vpn-slice-tun0 خودڪار ٺاھيو ويو

۽ هڪ نئين لائين شامل ڪئي وئي resolv.conf. مختصر ۾، vpn-slice ڪنهن به طرح طئي ڪيو ويو آهي جتي vpn لاء dns سرور واقع آهي.

هاڻي اسان کي پڪ ڪرڻ جي ضرورت آهي ته هڪ ڊومين جي IP پتي کي ڳولڻ لاءِ جيڪو هڪ ڊومين جي نالي تي ختم ٿئي ٿو evilcorp.com، لينڪس ڪارپوريٽ DNS ڏانهن وڃي ٿو، ۽ جيڪڏهن ڪجهه ٻيو گهربل هجي، پوء ڊفالٽ هڪ ڏانهن.

مون ڪافي وقت تائين گوگل ڪيو ۽ ڏٺم ته اهڙي ڪارڪردگي موجود آهي Ubuntu ۾ دٻي کان ٻاهر. ان جو مطلب آھي مقامي DNS سرور dnsmasq استعمال ڪرڻ جي صلاحيت نالن کي حل ڪرڻ لاءِ.

اهو آهي، توهان پڪ ڪري سگهو ٿا ته لينڪس هميشه IP پتي لاء مقامي DNS سرور ڏانهن وڃي ٿو، جنهن جي نتيجي ۾، ڊومين جي نالي تي منحصر ڪري، IP کي لاڳاپيل خارجي DNS سرور تي نظر ايندو.

نيٽ ورڪ ۽ نيٽ ورڪ ڪنيڪشن سان لاڳاپيل هر شي کي منظم ڪرڻ لاءِ، Ubuntu استعمال ڪري ٿو NetworkManager، ۽ چونڊڻ لاءِ گرافيڪل انٽرفيس، مثال طور، وائي فائي ڪنيڪشن صرف ان جي سامهون آهي.

اسان کي ان جي جوڙجڪ ۾ چڙهڻ جي ضرورت پوندي.

  1. /etc/NetworkManager/dnsmasq.d/evilcorp ۾ هڪ فائل ٺاهيو

پتو=/.evilcorp.com/192.168.430.534

بدڪاري جي سامهون واري نقطي تي ڌيان ڏيو. اهو dnsmasq کي اشارو ڏئي ٿو ته evilcorp.com جي سڀني ذيلي ڊومينز کي ڪارپوريٽ ڊي اين ايس ۾ ڳولهيو وڃي.

  1. نيٽ ورڪ مئنيجر کي چئو ته dnsmasq نالي جي حل لاءِ استعمال ڪري

نيٽ ورڪ مئنيجر جي ٺاھ جوڙ /etc/NetworkManager/NetworkManager.conf ۾ واقع آھي توھان کي اتي شامل ڪرڻ جي ضرورت آھي:

[main] dns = dnsmasq

  1. نيٽ ورڪ مئنيجر کي ٻيهر شروع ڪريو

service network-manager restart

ھاڻي، Openconnect ۽ vpn-slice استعمال ڪندي وي پي اين سان ڳنڍڻ کان پوء، ip عام طور تي طئي ڪيو ويندو، جيتوڻيڪ توھان علامتي پتا شامل نه ڪندا آھن دليلن ۾ vpnslice.

VPN ذريعي انفرادي خدمتن تائين ڪيئن رسائي حاصل ڪجي

وي پي اين سان ڳنڍڻ ۾ ڪامياب ٿيڻ کان پوءِ، مان ٻن ڏينهن لاءِ ڏاڍو خوش ٿيس، ۽ پوءِ معلوم ٿيو ته جيڪڏهن مان آفيس جي نيٽ ورڪ کان ٻاهر وي پي اين سان ڳنڍيندس، ته پوءِ ميل ڪم نٿو ڪري. علامت واقف آهي، ڇا اهو ناهي؟

اسان جو ميل mail.publicevilcorp.com ۾ واقع آهي، جنهن جو مطلب آهي ته اهو dnsmasq جي ضابطي هيٺ نٿو اچي ۽ ميل سرور ايڊريس عوامي DNS ذريعي ڳولهيو وڃي ٿو.

خير، آفيس اڃا تائين DNS استعمال ڪري ٿو، جنهن ۾ هي پتو شامل آهي. اهو ئي سوچيم. حقيقت ۾، لائن کي شامل ڪرڻ کان پوء dnsmasq

address=/mail.publicevilcorp.com/192.168.430.534

صورتحال بلڪل تبديل نه ڪئي آهي. ip ساڳيو رهيو. مون کي ڪم تي وڃڻو هو.

۽ صرف بعد ۾، جڏهن مون صورتحال ۾ تمام گهڻي غور ڪيو ۽ مسئلي کي ٿورو سمجهي ورتو، هڪ هوشيار شخص مون کي ٻڌايو ته ان کي ڪيئن حل ڪجي. اهو ضروري هو ته ميل سرور سان ڳنڍڻ نه رڳو انهي وانگر، پر وي پي اين ذريعي

مان استعمال ڪريان ٿو vpn-slice ذريعي وڃڻ لاءِ VPN انهن ايڊريس ڏانهن جيڪو شروع ٿئي ٿو 192.168.430. ۽ ميل سرور وٽ نه رڳو هڪ علامتي پتو آهي جيڪو نه آهي برائيڪورپ جو ذيلي ڊومين، اهو پڻ IP پتو نه آهي جيڪو 192.168.430 سان شروع ٿئي ٿو. ۽ يقيناً هو عام نيٽ ورڪ مان ڪنهن کي به هن وٽ اچڻ جي اجازت نٿو ڏئي.

لينڪس لاءِ وي پي اين ۽ ميل سرور ذريعي وڃڻ لاءِ، توهان کي ان کي شامل ڪرڻو پوندو vpn-slice ۾ پڻ. اچو ته چئو ته ميلر جو پتو 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 

هڪ دليل سان وي پي اين کي وڌائڻ لاءِ اسڪرپٽ

هي سڀ، يقينا، تمام آسان نه آهي. ها، توهان ٽيڪسٽ کي فائل ۾ محفوظ ڪري سگهو ٿا ۽ هٿ سان ٽائپ ڪرڻ بدران ان کي ڪنسول ۾ ڪاپي پيسٽ ڪري سگهو ٿا، پر اهو اڃا به ڏاڍو خوشگوار ناهي. عمل کي آسان بڻائڻ لاءِ، توھان حڪم کي لپي سگھوٿا ھڪڙي رسم الخط ۾ جيڪو 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 

جيڪڏھن توھان اسڪرپٽ کي ڳنڍڻ ۾ وجھو ~evilcorp~ توھان صرف ڪنسول ۾ لکي سگھو ٿا

connect_evil_corp 567987

پر ھاڻي توھان کي اڃا تائين اھو ڪنسول رکڻو آھي جنھن ۾ اوپن ڪنيڪٽ ڪنھن سبب لاءِ کليل آھي

پس منظر ۾ اوپن ڪنيڪٽ هلائي رهيو آهي

خوشقسمتيءَ سان، openconnect جي ليکڪن اسان جو خيال رکيو ۽ پروگرام جي پس منظر ۾ هڪ خاص ڪنجي شامل ڪئي، جيڪا پروگرام کي لانچ کان پوءِ پس منظر ۾ ڪم ڪري ٿي. جيڪڏهن توهان ان کي هلائيندا آهيو، توهان لانچ کان پوء ڪنسول بند ڪري سگهو ٿا

#!/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  

۽ ائين، اهو ظاهر ٿئي ٿو ته اوپن ڪنيڪٽ پس منظر ۾ ڪٿي ڪم ڪري رهيو آهي ۽ ڪنهن کي به تنگ نٿو ڪري، پر اهو واضح ناهي ته ان کي ڪيئن روڪيو وڃي. اهو آهي، توهان ڪري سگهو ٿا، يقينا، فلٽر ڪري سگهو ٿا پي ايس آئوٽ کي گريپ استعمال ڪندي ۽ هڪ پروسيس ڳوليو جنهن جو نالو 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-سلائس. هڪ لفظ جي بدران

اهو سمجھڻ ڏاڍو ڏکيو ٿي ويو ته وي پي اين-سليس کان سواء ڪيئن رهڻو آهي. مون کي تمام گهڻو پڙهڻ ۽ گوگل ڪرڻو پيو. خوشقسمتيءَ سان، هڪ مسئلي سان ايترو وقت گذارڻ کان پوءِ، ٽيڪنيڪل دستور ۽ حتي انسان اوپن ڪنيڪٽ پڙهي دلچسپ ناولن وانگر.

نتيجي طور، مون کي معلوم ٿيو ته 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 ڪالمن جي ميلاپ مان سمجهي سگهجي ٿو. IP پتي جا اهي حصا جيڪي Genmask ۾ نمبر 255 سان ملن ٿا انهن کي حساب ۾ ورتو وڃي ٿو، پر اهي نه آهن جتي 0 آهي. يعني Destination 192.168.0.0 ۽ Genmask 255.255.255.0 جي ميلاپ جو مطلب اهو آهي ته جيڪڏهن ايڊريس 192.168.0 سان شروع ٿئي ٿي، ته پوءِ ان لاءِ درخواست هن رستي سان ٿيندي. ۽ جيڪڏهن منزل 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

اوپن ڪنيڪٽ کي ڪال ڪرڻ کان پوءِ بغير vpn-slice اهو هن طرح ٿي ويو

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

اهو ڏسي سگهجي ٿو ته جيڪڏهن توهان استعمال نٿا ڪريو vpn-slice، پوء openconnect واضح طور تي لکي ٿو ته سڀئي پتا، سواءِ جيڪي خاص طور تي ظاهر ڪيا ويا آهن، وي پي اين ذريعي پهچڻ گهرجن.

ھتي صحيح آھي:

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-slice، پر توهان کي چڱي طرح ڄاڻڻ جي ضرورت آهي ته توهان ڇا ڪري رهيا آهيو. مان هاڻي سوچي رهيو آهيان اصلي اوپن ڪنيڪٽ اسڪرپٽ جي آخري لائين ۾ شامل ڪرڻ بابت ڊفالٽ روٽ کي هٽائڻ ۽ ميلر لاءِ رستو شامل ڪرڻ کان پوءِ وي پي اين سان ڳنڍڻ کان پوءِ، صرف انهي ڪري ته منهنجي سائيڪل ۾ گهٽ حرڪت وارا حصا آهن.

شايد، هي لفظ ڪافي هوندو ڪنهن لاءِ اهو سمجهڻ لاءِ ته ڪيئن هڪ وي پي اين سيٽ اپ ڪجي. پر جڏهن مان اهو سمجهڻ جي ڪوشش ڪري رهيو هوس ته ڇا ڪجي ۽ ڪيئن ڪجي، مون ڪافي اهڙيون هدايتون پڙهيون آهن جيڪي ليکڪ لاءِ ڪم اچن ٿيون، پر ڪجهه سببن جي ڪري مون لاءِ ڪم نه ٿيون اچن، ۽ مون فيصلو ڪيو ته هتي اهي سڀئي ٽڪرا شامل ڪيان، جيڪي مون کي مليا آهن. مون کي اهڙي شيء تي ڏاڍي خوشي ٿيندي.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو