ڪتاب ”لينڪس ان ايڪشن“

ڪتاب ”لينڪس ان ايڪشن“ سلام، خابرو شهرين! ڪتاب ۾، ڊيوڊ ڪلنٽن 12 حقيقي زندگي جي منصوبن کي بيان ڪري ٿو، جن ۾ توهان جي بيڪ اپ ۽ وصولي سسٽم کي خودڪار ڪرڻ، ڊروپباڪس طرز جي ذاتي فائل ڪلائوڊ کي ترتيب ڏيڻ، ۽ پنهنجو ميڊيا وڪي سرور ٺاهڻ شامل آهن. توهان ڳوليندا ورچوئلائيزيشن، آفت جي بحالي، سيڪيورٽي، بيڪ اپ، DevOps، ۽ سسٽم جي خرابين کي حل ڪرڻ جي دلچسپ ڪيس مطالعي ذريعي. هر باب بهترين عملن جي جائزي، نون اصطلاحن جي لغت، ۽ مشقن سان ختم ٿئي ٿو.

اقتباس “10.1. هڪ OpenVPN سرنگ ٺاهڻ"

مون اڳ ۾ ئي هن ڪتاب ۾ انڪرپشن بابت گهڻو ڪجهه ڳالهايو آهي. SSH ۽ SCP ريموٽ ڪنيڪشنز (باب 3) تي منتقل ٿيل ڊيٽا کي محفوظ ڪري سگھن ٿا، فائل انڪرپشن ڊيٽا کي بچائي سگھي ٿي جڏھن اھو سرور تي ذخيرو ٿيل آھي (باب 8)، ۽ TLS/SSL سرٽيفڪيٽ سائيٽن ۽ ڪلائنٽ برائوزرن جي وچ ۾ منتقل ٿيل ڊيٽا کي بچائي سگھن ٿا (باب 9) . پر ڪڏهن ڪڏهن توهان جي ڊيٽا کي ڪنيڪشن جي وسيع رينج ۾ محفوظ ڪرڻ جي ضرورت آهي. مثال طور، ٿي سگهي ٿو توهان جي ٽيم جا ڪجهه ميمبر روڊ تي ڪم ڪري رهيا آهن جڏهن ته عوامي هاٽ اسپاٽ ذريعي وائي فائي سان ڳنڍڻ دوران. توهان کي يقيني طور تي اهو نه سمجهڻ گهرجي ته اهي سڀئي رسائي پوائنٽون محفوظ آهن، پر توهان جي ماڻهن کي ڪمپني جي وسيلن سان ڳنڍڻ لاء هڪ طريقي جي ضرورت آهي- ۽ اهو آهي جتي هڪ وي پي اين مدد ڪري سگهي ٿو.

هڪ صحيح طرح سان ٺهيل وي پي اين سرنگ ريموٽ ڪلائنٽ ۽ سرور جي وچ ۾ سڌي طرح ڪنيڪشن مهيا ڪري ٿي جيڪا ڊيٽا کي لڪائي ٿي جيئن اهو هڪ غير محفوظ نيٽ ورڪ تي سفر ڪري ٿو. پوءِ ڇا؟ توھان اڳ ۾ ئي ڪيترائي اوزار ڏٺا آھن جيڪي انڪريشن سان ڪري سگھن ٿا. هڪ VPN جو اصل قدر اهو آهي ته هڪ سرنگ کولڻ سان، توهان ريموٽ نيٽ ورڪن کي ڳنڍي سگهو ٿا ڄڻ ته اهي سڀئي مقامي هئا. هڪ معنى ۾، توهان هڪ بائي پاس استعمال ڪري رهيا آهيو.

هن وڌايل نيٽ ورڪ کي استعمال ڪندي، منتظم پنهنجي ڪم کي پنهنجي سرور تي ڪٿي به ڪري سگهن ٿا. پر وڌيڪ اهم ڳالهه اها آهي ته، هڪ ڪمپني جيڪا وسيلن سان گڏ ڪيترن ئي هنڌن تي پکڙيل آهي، انهن سڀني کي ڏيکاري سگهي ٿي ۽ انهن سڀني گروهن تائين رسائي لائق بڻائي ٿي، جن کي انهن جي ضرورت آهي، جتي به اهي آهن (شڪل 10.1).

سرنگ پاڻ کي سيڪيورٽي جي ضمانت نٿو ڏئي. پر انڪوشن معيارن مان هڪ نيٽ ورڪ جي جوڙجڪ ۾ شامل ٿي سگھي ٿو، جيڪو خاص طور تي سيڪيورٽي جي سطح کي وڌائي ٿو. اوپن سورس OpenVPN پيڪيج استعمال ڪندي ٺاهيل سرنگون ساڳيون TLS/SSL انڪرپشن استعمال ڪن ٿيون جن بابت توهان اڳي ئي پڙهي چڪا آهيو. OpenVPN واحد سرنگنگ آپشن موجود ناهي، پر اهو هڪ بهترين سڃاتل آهي. اهو سمجهيو وڃي ٿو ٿورو تيز ۽ وڌيڪ محفوظ متبادل پرت 2 سرنگ پروٽوڪول کان جيڪو IPsec انڪرپشن استعمال ڪري ٿو.

ڇا توھان چاھيو ٿا ته توھان جي ٽيم تي موجود ھر ماڻھو روڊ تي ھلڻ دوران يا مختلف عمارتن ۾ ڪم ڪرڻ دوران ھڪ ٻئي سان محفوظ طريقي سان رابطو ڪن؟ هن کي ڪرڻ لاء، توهان کي هڪ OpenVPN سرور ٺاهڻ جي ضرورت آهي ايپليڪيشن شيئرنگ ۽ سرور جي مقامي نيٽ ورڪ ماحول تائين رسائي جي اجازت ڏيڻ لاء. ھن لاءِ ڪم ڪرڻ لاءِ، توھان کي بس ڪرڻ جي ضرورت آھي ٻن ورچوئل مشينن يا ٻن ڪنٽينرز کي هلائڻ لاءِ: ھڪڙو ڪم ڪرڻ لاءِ سرور/ميزبان طور ۽ ھڪڙو ڪم ڪرڻ لاءِ ڪلائنٽ طور. هڪ وي پي اين ٺاهڻ هڪ سادي عمل ناهي، تنهنڪري اهو ذهن ۾ وڏي تصوير حاصل ڪرڻ لاء ڪجهه منٽ وٺڻ جي قابل آهي.

ڪتاب ”لينڪس ان ايڪشن“

10.1.1. OpenVPN سرور جي ترتيب

توھان شروع ڪرڻ کان پھريان، مان توھان کي ڪجھ مددگار مشورو ڏيندس. جيڪڏهن توهان اهو پاڻ ڪرڻ وارا آهيو (۽ مان توهان کي تمام گهڻي صلاح ڏيان ٿو)، توهان شايد توهان کي پنهنجي ڊيسڪ ٽاپ تي کليل ڪيترن ئي ٽرمينل ونڊوز سان ڪم ڪندي ڏسندا، هر هڪ مختلف مشين سان ڳنڍيل آهي. اتي هڪ خطرو آهي ته ڪجهه نقطي تي توهان ونڊو ۾ غلط حڪم داخل ڪندا. ھن کان بچڻ لاءِ، توھان استعمال ڪري سگھو ٿا hostname ڪمانڊ ڪمانڊ لائن تي ڏيکاريل مشين جو نالو تبديل ڪرڻ لاءِ جيڪو توھان کي واضح طور تي ٻڌائي ٿو توھان ڪٿي آھيو. هڪ دفعو توهان اهو ڪريو ٿا، توهان کي سرور مان لاگ آئوٽ ٿيڻو پوندو ۽ نئين سيٽنگون اثر انداز ٿيڻ لاءِ واپس لاگ ان ٿيڻو پوندو. اھو اھو آھي جيڪو ڏسڻ ۾ اچي ٿو:

ڪتاب ”لينڪس ان ايڪشن“
هن طريقي تي عمل ڪندي ۽ هر هڪ مشين کي مناسب نالا ڏيڻ سان توهان ڪم ڪري رهيا آهيو، توهان آساني سان ٽريڪ ڪري سگهو ٿا جتي توهان آهيو.

هوسٽ جو نالو استعمال ڪرڻ کان پوء، توهان کي شايد ناراضگي سان منهن ڏيڻو پوي ٿو ميزبان OpenVPN-Server پيغامن کي حل ڪرڻ ۾ ناڪام جڏهن ايندڙ حڪمن تي عمل ڪندي. مناسب نئين ميزبان نالي سان /etc/hosts فائل کي اپڊيٽ ڪرڻ سان مسئلو حل ڪرڻ گهرجي.

OpenVPN لاءِ توھان جو سرور تيار ڪري رھيو آھي

توھان جي سرور تي OpenVPN کي انسٽال ڪرڻ لاءِ، توھان کي ٻن پيڪيجز جي ضرورت آھي: openvpn ۽ easy-rsa (انڪريپشن ڪيئي نسل جي عمل کي منظم ڪرڻ لاءِ). CentOS صارفين کي پهريان انسٽال ڪرڻ گهرجي ايپيل-رليز مخزن جيڪڏهن ضروري هجي، جيئن توهان باب 2 ۾ ڪيو. سرور ايپليڪيشن تائين رسائي کي جانچڻ جي قابل ٿيڻ لاءِ، توهان پڻ انسٽال ڪري سگهو ٿا Apache ويب سرور (apache2 Ubuntu تي ۽ httpd CentOS تي).

جڏهن توهان پنهنجو سرور سيٽ ڪري رهيا آهيو، آئون هڪ فائر وال کي چالو ڪرڻ جي صلاح ڏيان ٿو جيڪو سڀني بندرگاهن کي بلاڪ ڪري ٿو سواءِ 22 (SSH) ۽ 1194 (اوپن وي پي اين جي ڊفالٽ پورٽ). هي مثال بيان ڪري ٿو ته ufw Ubuntu تي ڪيئن ڪم ڪندو، پر مون کي پڪ آهي ته توهان کي اڃا تائين ياد آهي CentOS فائر والڊ پروگرام باب 9 کان:

# ufw enable
# ufw allow 22
# ufw allow 1194

سرور تي نيٽ ورڪ انٽرفيس جي وچ ۾ اندروني روٽنگ کي فعال ڪرڻ لاءِ، توهان کي /etc/sysctl.conf فائل ۾ هڪ لڪير (net.ipv4.ip_forward = 1) کي ختم ڪرڻ جي ضرورت آهي. هي اجازت ڏيندو ريموٽ ڪلائنٽ کي ريڊائريڪٽ ڪرڻ جي ضرورت مطابق هڪ ڀيرو اهي ڳنڍيل آهن. نئين اختيار کي ڪم ڪرڻ لاء، sysctl -p کي هلائڻ لاء:

# nano /etc/sysctl.conf
# sysctl -p

توھان جي سرور جو ماحول ھاڻي مڪمل طور تي ٺھيل آھي، پر توھان جي تيار ٿيڻ کان پھريائين ھڪڙو وڌيڪ ڪم ڪرڻو آھي: توھان کي ھيٺين مرحلن کي پورو ڪرڻو پوندو (اسين انھن کي تفصيل سان ڍڪينداسين).

  1. آسان-rsa پيڪيج سان مهيا ڪيل اسڪرپٽ استعمال ڪندي سرور تي پبلڪ ڪيئي انفراسٽرڪچر (PKI) انڪرپشن ڪيز جو هڪ سيٽ ٺاهيو. لازمي طور تي، OpenVPN سرور پڻ ڪم ڪري ٿو پنھنجي سرٽيفڪيٽ اٿارٽي (CA).
  2. ڪلائنٽ لاءِ مناسب ڪنجيون تيار ڪريو
  3. سرور لاء سرور.conf فائل کي ترتيب ڏيو
  4. پنهنجو OpenVPN ڪلائنٽ سيٽ اپ ڪريو
  5. پنھنجي VPN چيڪ ڪريو

Encryption چابيون ٺاهي رهيو آهي

شين کي سادو رکڻ لاءِ، توهان سيٽ ڪري سگهو ٿا پنهنجو اهم انفراسٽرڪچر ساڳئي مشين تي جتي OpenVPN سرور هلي رهيو آهي. بهرحال، حفاظتي بهترين طريقا عام طور تي پيداوار جي ترتيبن لاءِ الڳ CA سرور استعمال ڪرڻ جي صلاح ڏين ٿا. OpenVPN ۾ استعمال لاءِ انڪرپشن جي اهم وسيلن کي پيدا ڪرڻ ۽ ورهائڻ جو عمل تصوير ۾ ڏيکاريل آهي. 10.2.

ڪتاب ”لينڪس ان ايڪشن“
جڏهن توهان OpenVPN انسٽال ڪيو، /etc/openvpn/ ڊاريڪٽري خود بخود ٺاهي وئي، پر ان ۾ اڃا تائين ڪجھ به ناهي. Openvpn ۽ آسان-rsa پيڪيجز مثال طور ٽيمپليٽ فائلن سان گڏ ايندا آھن جيڪي توھان استعمال ڪري سگھوٿا پنھنجي ترتيب جي بنياد طور. سرٽيفڪيشن جي عمل کي شروع ڪرڻ لاءِ، آسان-rsa ٽيمپليٽ ڊاريڪٽري کي نقل ڪريو /usr/share/ کان /etc/openvpn ۽ تبديل ڪريو easy-rsa/ ڊاريڪٽري:

# cp -r /usr/share/easy-rsa/ /etc/openvpn
$ cd /etc/openvpn/easy-rsa

آسان-rsa ڊاريڪٽري ۾ ھاڻي ڪجھ اسڪرپٽ شامل آھن. ٽيبل ۾ 10.1 انهن اوزارن کي لسٽ ڪري ٿو جيڪي توهان چاٻي ٺاهڻ لاءِ استعمال ڪندا.

ڪتاب ”لينڪس ان ايڪشن“

مٿين عملن کي روٽ استحقاق جي ضرورت آهي، تنهنڪري توهان کي روٽ ٿيڻ جي ضرورت آهي sudo su ذريعي.

پهرين فائل جنهن سان توهان ڪم ڪندا ان کي vars چئبو آهي ۽ ان ۾ ماحولياتي متغير شامل آهن جيڪي آسان-rsa استعمال ڪندا آهن جڏهن ڪنجيون ٺاهي رهيا آهن. توھان کي فائل کي تبديل ڪرڻ جي ضرورت آھي پنھنجيون قدرن کي استعمال ڪرڻ جي بجاءِ جيڪي اڳ ۾ ئي موجود آھن. اھو اھو آھي جيڪو منھنجي فائل وانگر نظر ايندو (فھرست 10.1).

لسٽنگ 10.1. فائل جا مکيه ٽڪرا /etc/openvpn/easy-rsa/vars

export KEY_COUNTRY="CA"
export KEY_PROVINCE="ON"
export KEY_CITY="Toronto"
export KEY_ORG="Bootstrap IT"
export KEY_EMAIL="[email protected]"
export KEY_OU="IT"

vars فائل کي هلائڻ سان ان جي قيمتن کي شيل ماحول ڏانهن منتقل ڪيو ويندو، جتي اهي توهان جي نئين ڪنٽين جي مواد ۾ شامل ڪيا ويندا. ڇو نه sudo حڪم پاڻ ڪم ڪري ٿو؟ ڇاڪاڻ ته پهرين مرحلي ۾ اسين vars نالي اسڪرپٽ کي ايڊٽ ڪندا آهيون ۽ پوءِ ان کي لاڳو ڪندا آهيون. لاڳو ڪرڻ ۽ ان جو مطلب آهي ته vars فائل ان جي قدرن کي شيل ماحول ڏانهن منتقل ڪري ٿي، جتي اهي توهان جي نئين ڪنٽين جي مواد ۾ شامل ڪيا ويندا.

اڻڄاتل عمل کي مڪمل ڪرڻ لاء نئين شيل استعمال ڪندي فائل کي ٻيهر هلائڻ جي پڪ ڪريو. جڏهن اهو ٿي چڪو آهي، اسڪرپٽ توهان کي هڪ ٻي اسڪرپٽ، صاف-سڀ، ڪنهن به مواد کي هٽائڻ لاءِ /etc/openvpn/easy-rsa/keys/ ڊاريڪٽري کي هلائڻ لاءِ اشارو ڪندي:

ڪتاب ”لينڪس ان ايڪشن“
قدرتي طور تي، ايندڙ قدم صاف-سڀ اسڪرپٽ کي هلائڻ آهي، بعد ۾ build-ca، جيڪو روٽ سرٽيفڪيٽ ٺاهڻ لاءِ pkitool اسڪرپٽ استعمال ڪري ٿو. توهان کي چيو ويندو ته vars پاران مهيا ڪيل سڃاڻپ جي سيٽنگن جي تصديق ڪرڻ لاءِ:

# ./clean-all
# ./build-ca
Generating a 2048 bit RSA private key

اڳيان اچي ٿو بلڊ-ڪي-سرور اسڪرپٽ. جيئن ته اهو ساڳيو pkitool اسڪرپٽ استعمال ڪري ٿو نئين روٽ سرٽيفڪيٽ سان گڏ، توهان کي ساڳيو سوال ڏسڻ ۾ ايندا ته ڪني جوڙو ٺاهڻ جي تصديق ڪرڻ لاء. چيڪن جو نالو رکيو ويندو ان دليلن جي بنياد تي جيڪي توهان پاس ڪندا، جيڪي، جيستائين توهان هن مشين تي گھڻن وي پي اينز نه هلائي رهيا آهيو، عام طور تي سرور هوندو، مثال طور:

# ./build-key-server server
[...]
Certificate is to be certified until Aug 15 23:52:34 2027 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

OpenVPN نئين ڪنيڪشن جي تصديق ڪرڻ لاءِ Diffie-Hellman algorithm (build-dh استعمال ڪندي) پاران ٺاهيل پيرا ميٽر استعمال ڪري ٿو. ھتي ٺاھيل فائل کي ڳجھو رکڻ جي ضرورت نه آھي، پر ان کي RSA ڪنجين لاءِ build-dh اسڪرپٽ استعمال ڪندي ٺاھيو وڃي جيڪي ھن وقت سرگرم آھن. جيڪڏهن توهان مستقبل ۾ نئين آر ايس اي ڪيچ ٺاهيندا آهيو، توهان کي پڻ اپڊيٽ ڪرڻ جي ضرورت پوندي Diffie-Hellman فائل:

# ./build-dh

توھان جي سرور سائڊ ڪيز ھاڻي ختم ٿي وينديون /etc/openvpn/easy-rsa/keys/ ڊاريڪٽري، پر OpenVPN اھو نه ٿو ڄاڻي. ڊفالٽ طور، OpenVPN /etc/openvpn/ ۾ چابيون ڳوليندا، پوء انھن کي نقل ڪريو:

# cp /etc/openvpn/easy-rsa/keys/server* /etc/openvpn
# cp /etc/openvpn/easy-rsa/keys/dh2048.pem /etc/openvpn
# cp /etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn

ڪلائنٽ انڪرپشن ڪيز تيار ڪرڻ

جيئن توهان اڳ ۾ ئي ڏٺو آهي، TLS انڪرپشن استعمال ڪري ٿي ملندڙ چابين جو جوڙو: هڪ انسٽال ٿيل سرور تي ۽ ٻيو انسٽال ٿيل آهي ريموٽ ڪلائنٽ تي. هن جو مطلب آهي ته توهان کي ڪلائنٽ چابيون جي ضرورت پوندي. اسان جو پراڻو دوست pkitool اهو ئي آهي جيڪو توهان کي هن جي ضرورت آهي. هن مثال ۾، جڏهن اسان پروگرام کي هلائيندا آهيون /etc/openvpn/easy-rsa/ ڊاريڪٽري ۾، اسان ان کي ڪلائنٽ دليل کي پاس ڪندا آهيون فائلون پيدا ڪرڻ لاءِ client.crt ۽ client.key:

# ./pkitool client

ٻه ڪلائنٽ فائلون، اصل ca.crt فائل سان گڏ جيڪي اڃا تائين ڪيز/ ڊاريڪٽري ۾ آهن، انهن کي هاڻي محفوظ طور تي توهان جي ڪلائنٽ ڏانهن منتقل ڪيو وڃي. انهن جي ملڪيت ۽ رسائي جي حقن جي ڪري، اهو شايد ايترو آسان ناهي. آسان طريقو اهو آهي ته دستي طور تي ماخذ فائل جي مواد کي نقل ڪيو وڃي (۽ انهي مواد کان سواءِ ٻيو ڪجهه به ناهي) توهان جي PC جي ڊيسڪ ٽاپ تي هلندڙ ٽرمينل ۾ (ٽيڪسٽ چونڊيو، ان تي صحيح ڪلڪ ڪريو ۽ مينيو مان ڪاپي چونڊيو). پوءِ ھن کي پيسٽ ڪريو ھڪڙي نئين فائل ۾ ساڳئي نالي سان جيڪو توھان ٺاھيو ٿا ھڪڙي ٻئي ٽرمينل ۾ جيڪو توھان جي ڪلائنٽ سان ڳنڍيل آھي.

پر ڪو به ڪٽ ۽ پيسٽ ڪري سگهي ٿو. ان جي بدران، هڪ منتظم وانگر سوچيو ڇو ته توهان کي هميشه GUI تائين رسائي نه هوندي جتي ڪٽ / پيسٽ آپريشن ممڪن آهن. فائلن کي نقل ڪريو پنھنجي يوزر جي ھوم ڊاريڪٽري ۾ (جيئن ته ريموٽ scp آپريشن انھن تائين پھچائي سگھي)، ۽ پوءِ استعمال ڪريو chown فائلن جي ملڪيت کي روٽ کان ھڪڙي غير روٽ استعمال ڪندڙ کي تبديل ڪرڻ لاءِ ته جيئن ريموٽ scp عمل ڪري سگھجي. پڪ ڪريو ته توهان جون سڀئي فائلون هن وقت نصب ٿيل آهن ۽ رسائي لائق آهن. توھان انھن کي ٿوري دير بعد ڪلائنٽ ڏانھن منتقل ڪندا:

# cp /etc/openvpn/easy-rsa/keys/client.key /home/ubuntu/
# cp /etc/openvpn/easy-rsa/keys/ca.crt /home/ubuntu/
# cp /etc/openvpn/easy-rsa/keys/client.crt /home/ubuntu/
# chown ubuntu:ubuntu /home/ubuntu/client.key
# chown ubuntu:ubuntu /home/ubuntu/client.crt
# chown ubuntu:ubuntu /home/ubuntu/ca.crt

وڃڻ لاءِ تيار ٿيل انڪرپشن ڪيز جي مڪمل سيٽ سان، توهان کي سرور کي ٻڌائڻو پوندو ته توهان VPN ڪيئن ٺاهڻ چاهيو ٿا. اهو سرور.conf فائل استعمال ڪندي ڪيو ويندو آهي.

Keystrokes جو تعداد گھٽائڻ

ڇا اتي تمام گهڻو ٽائپنگ آهي؟ بریکٹ سان توسيع انهن ڇهن حڪمن کي ٻن تائين گهٽائڻ ۾ مدد ڪندي. مون کي پڪ آهي ته توهان انهن ٻن مثالن جو مطالعو ڪري سگهو ٿا ۽ سمجهي سگهو ٿا ته ڇا ٿي رهيو آهي. وڌيڪ اهم طور تي، توهان سمجهي سگهندا ته انهن اصولن کي ڪيئن لاڳو ڪيو وڃي انهن عملن تي جنهن ۾ ڏهه يا سوين عنصر شامل آهن:

# cp /etc/openvpn/easy-rsa/keys/{ca.crt,client.{key,crt}} /home/ubuntu/
# chown ubuntu:ubuntu /home/ubuntu/{ca.crt,client.{key,crt}}

سرور.conf فائل کي ترتيب ڏيڻ

توهان ڪيئن ڄاڻو ٿا ته server.conf فائل ڇا ڏسڻ گهرجي؟ ياد رکو آسان-rsa ڊاريڪٽري ٽيمپليٽ جيڪو توهان نقل ڪيو آهي /usr/share/؟ جڏهن توهان OpenVPN انسٽال ڪيو، توهان وٽ رهجي ويو هڪ ڪمپريس ٿيل ترتيب واري ٽيمپليٽ فائل جنهن کي توهان نقل ڪري سگهو ٿا /etc/openvpn/. مان ان حقيقت تي تعمير ڪندس ته ٽيمپليٽ محفوظ ٿيل آهي ۽ توهان کي هڪ مفيد اوزار سان متعارف ڪرايو ويندو: zcat.

توهان پهريان ئي ڄاڻو ٿا ته فائل جي ٽيڪسٽ مواد کي پرنٽ ڪرڻ جي باري ۾ ڪيٽ ڪمانڊ استعمال ڪندي اسڪرين تي، پر ڇا ٿيندو جيڪڏهن فائل کي gzip استعمال ڪندي ڪمپريشن ڪيو وڃي؟ توھان هميشه فائل کي ان زپ ڪري سگھو ٿا ۽ پوءِ ٻلي خوشيءَ سان ان کي ٻاھر ڪڍندي، پر اھو ضروري کان ھڪڙو يا ٻه وڌيڪ قدم آھي. ان جي بدران، جيئن توهان اندازو ڪيو هوندو، توهان جاري ڪري سگهو ٿا zcat ڪمانڊ لوڊ ڪرڻ لاءِ اڻ پيڪ ٿيل متن کي ميموري ۾ هڪ قدم ۾. هيٺ ڏنل مثال ۾، اسڪرين تي ٽيڪسٽ پرنٽ ڪرڻ جي بدران، توهان ان کي هڪ نئين فائل ڏانهن موڪليندا سين جنهن کي سرور.conf سڏيو ويندو آهي:

# zcat 
  /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz 
  > /etc/openvpn/server.conf
$ cd /etc/openvpn

اچو ته وسيع ۽ مددگار دستاويزن کي هڪ طرف رکون جيڪي فائل سان گڏ اچن ٿيون ۽ ڏسو ته اهو ڪيئن نظر ايندو جڏهن توهان ترميم ڪري رهيا آهيو. نوٽ ڪريو ته سيميڪولن (؛) OpenVPN کي ٻڌائي ٿو ته نه پڙهڻ يا عمل ڪرڻ لاءِ ايندڙ لائن (فهرست 10.2).

ڪتاب ”لينڪس ان ايڪشن“
اچو ته انهن مان ڪجهه سيٽنگون ذريعي وڃو.

  • ڊفالٽ طور، OpenVPN پورٽ 1194 تي هلندو آهي. توهان هن کي تبديل ڪري سگهو ٿا، مثال طور، توهان جي سرگرمين کي وڌيڪ لڪائڻ يا ٻين فعال سرنگن سان تڪرار کان بچڻ لاء. 1194 کان وٺي گراهڪن سان گهٽ ۾ گهٽ ڪوآرڊينيشن جي ضرورت آهي، اهو هن طريقي سان ڪرڻ بهتر آهي.
  • OpenVPN استعمال ڪري ٿو يا ته ٽرانسميشن ڪنٽرول پروٽوڪول (TCP) يا يوزر ڊيٽاگرام پروٽوڪول (UDP) ڊيٽا منتقل ڪرڻ لاءِ. TCP ٿورو سست ٿي سگهي ٿو، پر اهو وڌيڪ قابل اعتماد آهي ۽ وڌيڪ ممڪن آهي ته سرنگ جي ٻنهي سرن تي هلندڙ ايپليڪيشنن کي سمجهي سگهجي.
  • توھان وضاحت ڪري سگھو ٿا dev tun جڏھن توھان چاھيو ٿا ھڪڙو آسان، وڌيڪ موثر IP سرنگ جيڪو ڊيٽا مواد کڻندو آھي ۽ ٻيو ڪجھ به نه. جيڪڏهن، ٻئي طرف، توهان کي ڪيترن ئي نيٽ ورڪ انٽرفيس کي ڳنڍڻ جي ضرورت آهي (۽ نيٽ ورڪ جيڪي اهي نمائندگي ڪن ٿا)، هڪ ايٿرنيٽ پل ٺاهي، توهان کي ديو ٽيپ چونڊڻو پوندو. جيڪڏهن توهان نٿا سمجهو ته هي سڀ مطلب ڇا آهي، استعمال ڪريو tun دليل.
  • ايندڙ چار لائينون OpenVPN کي سرور تي ٽن تصديق واري فائلن جا نالا ۽ dh2048 آپشن فائل ڏين ٿيون جيڪي توھان اڳ ۾ ٺاھيون.
  • سرور لائن رينج ۽ سب نيٽ ماسڪ سيٽ ڪري ٿو جيڪو لاگ ان ٿيڻ تي ڪلائنٽ کي IP پتي تفويض ڪرڻ لاءِ استعمال ڪيو ويندو.
  • اختياري پش پيٽرول "روٽ 10.0.3.0 255.255.255.0" ريموٽ ڪلائنٽ کي اجازت ڏئي ٿو سرور جي پويان نجي سبنيٽس تائين رسائي. اهو ڪم ڪرڻ لاءِ پڻ سرور تي نيٽ ورڪ قائم ڪرڻ جي ضرورت آهي ته جيئن پرائيويٽ سب نيٽ کي OpenVPN سب نيٽ (10.8.0.0) بابت ڄاڻ هجي.
  • پورٽ شيئر لوڪل هوسٽ 80 لائن توهان کي اجازت ڏئي ٿي ته پورٽ 1194 تي اچڻ واري ڪلائنٽ ٽرئفڪ کي پورٽ 80 تي ٻڌندڙ مقامي ويب سرور ڏانهن. پوء جڏهن tcp پروٽوڪول چونڊيو ويو آهي.
  • استعمال ڪندڙ ڪو به نه ۽ گروپ نوگروپ لائينون سيميڪولن (؛) کي هٽائڻ سان فعال ٿيڻ گهرجن. ريموٽ ڪلائنٽ کي مجبور ڪرڻ لاءِ ڪو به نه ۽ نوگروپ جي طور تي هلائڻ کي يقيني بڻائي ٿو ته سرور تي سيشن غير امتيازي آهن.
  • log بيان ڪري ٿو ته موجوده لاگ انٽريون پراڻن داخلن کي اوور رائٽ ڪنديون هر وقت OpenVPN شروع ٿيندي، جڏهن ته log-append موجوده لاگ فائل ۾ نيون داخلائون شامل ڪندو. openvpn.log فائل پاڻ کي لکيو ويو آهي /etc/openvpn/ ڊاريڪٽري.

اضافي طور تي، ڪلائنٽ کان ڪلائنٽ جي قيمت اڪثر ڪري ترتيب واري فائل ۾ شامل ڪئي وئي آهي ته جيئن ڪيترائي ڪلائنٽ هڪ ٻئي کي ڏسي سگهن OpenVPN سرور کان علاوه. جيڪڏھن توھان پنھنجي ترتيب سان مطمئن آھيو، توھان شروع ڪري سگھو ٿا OpenVPN سرور:

# systemctl start openvpn

OpenVPN ۽ systemd جي وچ ۾ تعلق جي بدلجندڙ نوعيت جي ڪري، هيٺين نحو کي ڪڏهن ڪڏهن خدمت شروع ڪرڻ جي ضرورت پوندي: systemctl start openvpn@server.

توھان جي سرور جي نيٽ ورڪ انٽرفيس کي لسٽ ڪرڻ لاءِ ip addr ھاڻي ھاڻي tun0 نالي ھڪڙي نئين انٽرفيس لاءِ لنڪ ڪڍڻ گھرجي. OpenVPN ان کي ٺاهي ويندي ايندڙ گراهڪن جي خدمت ڪرڻ لاء:

$ ip addr
[...]
4: tun0: mtu 1500 qdisc [...]
      link/none
      inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
          valid_lft forever preferred_lft forever

توھان کي شايد سرور کي ريبوٽ ڪرڻ جي ضرورت پوندي ان کان اڳ جو سڀ ڪجھ مڪمل طور تي ڪم ڪرڻ شروع ڪري. ايندڙ اسٽاپ ڪلائنٽ ڪمپيوٽر آهي.

10.1.2. OpenVPN ڪلائنٽ کي ترتيب ڏيڻ

روايتي طور تي، سرنگون گهٽ ۾ گهٽ ٻن نڪتن سان ٺهيل هونديون آهن (ٻي صورت ۾ اسين انهن کي غار سڏيندا آهيون). هڪ صحيح ترتيب ڏنل OpenVPN سرور تي هڪ پاسي کان سرنگ جي اندر ۽ ٻاهر ٽرئفڪ کي سڌو ڪري ٿو. پر توهان کي ڪلائنٽ جي پاسي تي هلندڙ ڪجهه سافٽ ويئر جي ضرورت پوندي، اهو آهي، سرنگ جي ٻئي پاسي.

هن حصي ۾، مان دستي طور تي ڪجهه قسم جي لينڪس ڪمپيوٽر کي ترتيب ڏيڻ تي ڌيان ڏيڻ وارو آهيان OpenVPN ڪلائنٽ طور ڪم ڪرڻ لاء. پر اهو واحد طريقو ناهي جنهن ۾ اهو موقعو موجود آهي. OpenVPN ڪلائنٽ ايپليڪيشنن کي سپورٽ ڪري ٿو جيڪي ونڊوز يا macOS تي هلندڙ ڊيسڪ ٽاپ ۽ ليپ ٽاپ تي انسٽال ۽ استعمال ڪري سگھجن ٿيون، انهي سان گڏ Android ۽ iOS اسمارٽ فونز ۽ ٽيبلٽس. تفصيل لاءِ openvpn.net ڏسو.

OpenVPN پيڪيج کي ڪلائنٽ مشين تي انسٽال ڪرڻ جي ضرورت پوندي جيئن اهو سرور تي نصب ڪيو ويو آهي، جيتوڻيڪ هتي آسان-rsa جي ڪا ضرورت ناهي ڇو ته اهي چابيون جيڪي توهان استعمال ڪري رهيا آهيو اڳ ۾ ئي موجود آهن. توهان کي ڪلائنٽ.conf ٽيمپليٽ فائل کي نقل ڪرڻ جي ضرورت آهي /etc/openvpn/ ڊاريڪٽري ۾ جيڪو توهان ٺاهيو آهي. هن ڀيري فائل زپ نه ڪئي ويندي، تنهن ڪري باقاعده سي پي ڪمانڊ ڪم ڪندو صرف ٺيڪ:

# apt install openvpn
# cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf 
  /etc/openvpn/

توهان جي client.conf فائل ۾ اڪثر سيٽنگون خوبصورت خود وضاحت ڪندڙ هونديون: انهن کي سرور جي قدرن سان ملائڻ گهرجي. جيئن توهان هيٺ ڏنل مثال فائل مان ڏسي سگهو ٿا، منفرد پيٽرولر ريموٽ 192.168.1.23 1194 آهي، جيڪو ڪلائنٽ کي سرور جو IP پتو ٻڌائي ٿو. ٻيهر، پڪ ڪريو ته هي توهان جو سرور پتو آهي. توهان کي لازمي طور تي ڪلائنٽ ڪمپيوٽر کي سرور سرٽيفڪيٽ جي صداقت جي تصديق ڪرڻ لاءِ مجبور ڪيو وڃي ته جيئن ممڪن طور تي وچين حملي کي روڪي سگهجي. اهو ڪرڻ جو هڪ طريقو اهو آهي ته لائين remote-cert-tls سرور (Listing 10.3).

ڪتاب ”لينڪس ان ايڪشن“
توھان ھاڻي /etc/openvpn/ ڊاريڪٽري ڏانھن وڃو ۽ سرور مان سرٽيفڪيشن ڪيز ڪڍي سگھو ٿا. تبديل ڪريو سرور IP پتي يا ڊومين جو نالو مثال ۾ پنھنجي قدرن سان:

ڪتاب ”لينڪس ان ايڪشن“
ڪجھ به دلچسپ نه ٿيندو جيستائين توھان ڪلائنٽ تي OpenVPN هلائيندا. جتان توھان کي ڪجھ دليلن کي پاس ڪرڻ جي ضرورت آھي، توھان ان کي ڪمانڊ لائن مان ڪندا. --tls-ڪلائنٽ دليل OpenVPN کي ٻڌائي ٿو ته توهان ڪلائنٽ طور ڪم ڪندا ۽ TLS انڪريپشن ذريعي ڳنڍيندا، ۽ --config پوائنٽون توهان جي ڪنفيگريشن فائل ڏانهن:

# openvpn --tls-client --config /etc/openvpn/client.conf

پڙھو ڪمانڊ آئوٽ کي احتياط سان پڪ ڪرڻ لاءِ ته توھان صحيح طرح سان ڳنڍيل آھيو. جيڪڏهن پهريون ڀيرو ڪجهه غلط ٿي وڃي ٿو، اهو ٿي سگهي ٿو سرور ۽ ڪلائنٽ ڪنفيگريشن فائلن جي وچ ۾ سيٽنگن ۾ بي ترتيبي يا نيٽ ورڪ ڪنيڪشن/فائر وال مسئلو. هتي ڪجھ مسئلا حل ڪرڻ جا طريقا آهن.

  • ڪلائنٽ تي OpenVPN آپريشن جي آئوٽ کي احتياط سان پڙھو. اهو اڪثر ڪري قيمتي مشورو تي مشتمل آهي ته ڇا نه ٿو ڪري سگهجي ۽ ڇو.
  • سرور تي /etc/openvpn/ ڊاريڪٽري ۾ openvpn.log ۽ openvpn-status.log فائلن ۾ غلطي جا پيغام چيڪ ڪريو.
  • OpenVPN سان لاڳاپيل ۽ وقتي پيغامن لاءِ سرور ۽ ڪلائنٽ تي سسٽم لاگ چيڪ ڪريو. (journalctl -ce سڀ کان تازيون داخلون ڏيکاريندو.)
  • پڪ ڪريو ته توهان وٽ سرور ۽ ڪلائنٽ جي وچ ۾ هڪ فعال نيٽ ورڪ ڪنيڪشن آهي (هن بابت وڌيڪ باب 14 ۾).

ليکڪ بابت

ڊيوڊ ڪلنٽن - سسٽم ايڊمنسٽريٽر، استاد ۽ ليکڪ. هن ڪيترن ئي اهم ٽيڪنيڪل شعبن لاءِ تعليمي مواد ترتيب ڏنو آهي، ان بابت لکيو آهي ۽ ٺاهيو آهي، جنهن ۾ لينڪس سسٽم، ڪلائوڊ ڪمپيوٽنگ (خاص طور تي AWS)، ۽ ڪنٽينر ٽيڪنالاجيون جهڙوڪ ڊڪر. هن ڪتاب لکيو آهي Learn Amazon Web Services in a Month of Lunches (Manning, 2017). هن جا ڪيترائي وڊيو ٽريننگ ڪورسز Pluralsight.com تي ملي سگهن ٿا، ۽ سندس ٻين ڪتابن جا لنڪ (لينڪس ايڊمنسٽريشن ۽ سرور ورچوئلائيزيشن تي) موجود آهن. bootstrap-it.com.

» ڪتاب بابت وڌيڪ معلومات لاء، مهرباني ڪري دورو ڪريو پبلشر جي ويب سائيٽ
» مضمونن جو جدول
» اقتباس

Khabrozhiteli لاءِ ڪوپن تي 25٪ رعايت - لينڪس
ڪتاب جي پيپر ورشن جي ادائگي تي، هڪ ڪتاب اي ميل تي موڪليو ويندو.

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

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