کتاب "لینکس ان ایکشن"

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

اقتباس "10.1. ایک OpenVPN سرنگ بنانا"

میں نے پہلے ہی اس کتاب میں خفیہ کاری کے بارے میں بہت بات کی ہے۔ SSH اور SCP ریموٹ کنکشنز (باب 3) پر منتقل ہونے والے ڈیٹا کی حفاظت کر سکتے ہیں، فائل انکرپشن ڈیٹا کی حفاظت کر سکتی ہے جب اسے سرور پر محفوظ کیا جاتا ہے (باب 8)، اور TLS/SSL سرٹیفکیٹس سائٹس اور کلائنٹ براؤزرز کے درمیان منتقل ہونے والے ڈیٹا کی حفاظت کر سکتے ہیں (باب 9) . لیکن بعض اوقات آپ کے ڈیٹا کو کنکشن کی وسیع رینج میں محفوظ کرنے کی ضرورت ہوتی ہے۔ مثال کے طور پر، ہوسکتا ہے کہ آپ کی ٹیم کے کچھ ارکان عوامی ہاٹ سپاٹ کے ذریعے Wi-Fi سے منسلک ہوتے ہوئے سڑک پر کام کرتے ہوں۔ آپ کو یقینی طور پر یہ نہیں سمجھنا چاہئے کہ اس طرح کے تمام رسائی پوائنٹس محفوظ ہیں، لیکن آپ کے لوگوں کو کمپنی کے وسائل سے جڑنے کے لیے ایک طریقہ کی ضرورت ہے — اور اسی جگہ ایک VPN مدد کر سکتا ہے۔

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

اس توسیعی نیٹ ورک کا استعمال کرتے ہوئے، منتظمین کہیں سے بھی اپنے سرورز پر اپنا کام انجام دے سکتے ہیں۔ لیکن زیادہ اہم بات یہ ہے کہ ایک کمپنی جس کے وسائل متعدد مقامات پر پھیلے ہوئے ہیں ان سب کو ان تمام گروپس کے لیے مرئی اور قابل رسائی بنا سکتے ہیں جنہیں ان کی ضرورت ہے، وہ جہاں بھی ہوں (شکل 10.1)۔

سرنگ خود سیکورٹی کی ضمانت نہیں دیتی۔ لیکن خفیہ کاری کے معیارات میں سے ایک کو نیٹ ورک کے ڈھانچے میں شامل کیا جا سکتا ہے، جس سے سیکورٹی کی سطح میں نمایاں اضافہ ہوتا ہے۔ اوپن سورس اوپن وی پی این پیکیج کا استعمال کرتے ہوئے بنائی گئی سرنگیں وہی TLS/SSL انکرپشن استعمال کرتی ہیں جس کے بارے میں آپ پہلے ہی پڑھ چکے ہیں۔ اوپن وی پی این واحد ٹنلنگ آپشن دستیاب نہیں ہے، لیکن یہ سب سے مشہور میں سے ایک ہے۔ اسے متبادل پرت 2 ٹنل پروٹوکول سے قدرے تیز اور زیادہ محفوظ سمجھا جاتا ہے جو IPsec انکرپشن کا استعمال کرتا ہے۔

کیا آپ چاہتے ہیں کہ آپ کی ٹیم کا ہر فرد سڑک پر یا مختلف عمارتوں میں کام کرتے ہوئے ایک دوسرے سے محفوظ طریقے سے بات چیت کرے؟ ایسا کرنے کے لیے، آپ کو ایک OpenVPN سرور بنانے کی ضرورت ہے تاکہ ایپلیکیشن شیئرنگ اور سرور کے مقامی نیٹ ورک ماحول تک رسائی کی اجازت دی جا سکے۔ اس کے کام کرنے کے لیے، آپ کو بس دو ورچوئل مشینیں یا دو کنٹینرز چلانے کی ضرورت ہے: ایک سرور/میزبان کے طور پر کام کرنا اور دوسرا کلائنٹ کے طور پر کام کرنا۔ وی پی این بنانا کوئی آسان عمل نہیں ہے، اس لیے بڑی تصویر کو ذہن میں لانے کے لیے شاید چند منٹ لگانے کے قابل ہے۔

کتاب "لینکس ان ایکشن"

10.1.1 اوپن وی پی این سرور کنفیگریشن

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

کتاب "لینکس ان ایکشن"
اس نقطہ نظر کی پیروی کرکے اور جن مشینوں کے ساتھ آپ کام کرتے ہیں ان میں سے ہر ایک کو مناسب نام دے کر، آپ آسانی سے اس بات پر نظر رکھ سکتے ہیں کہ آپ کہاں ہیں۔

میزبان نام استعمال کرنے کے بعد، آپ کو بعد کے حکموں پر عمل کرتے وقت ہوسٹ OpenVPN-Server پیغامات کو حل کرنے میں ناکامی کا سامنا کرنا پڑ سکتا ہے۔ مناسب نئے میزبان نام کے ساتھ /etc/hosts فائل کو اپ ڈیٹ کرنے سے مسئلہ حل ہونا چاہیے۔

آپ کے سرور کو OpenVPN کے لیے تیار کیا جا رہا ہے۔

اپنے سرور پر اوپن وی پی این کو انسٹال کرنے کے لیے، آپ کو دو پیکجز کی ضرورت ہے: اوپن وی پی این اور ایزی آر ایس اے (انکرپشن کلیدی جنریشن کے عمل کو منظم کرنے کے لیے)۔ CentOS صارفین کو اگر ضروری ہو تو پہلے ایپل ریلیز ریپوزٹری کو انسٹال کرنا چاہیے، جیسا کہ آپ نے باب 2 میں کیا تھا۔ سرور ایپلیکیشن تک رسائی کی جانچ کرنے کے لیے، آپ اپاچی ویب سرور (اوبنٹو پر apache2 اور CentOS پر httpd) بھی انسٹال کر سکتے ہیں۔

جب آپ اپنا سرور ترتیب دے رہے ہوں تو، میں ایک فائر وال کو چالو کرنے کی تجویز کرتا ہوں جو 22 (SSH) اور 1194 (OpenVPN کی ڈیفالٹ پورٹ) کے علاوہ تمام بندرگاہوں کو روکتا ہے۔ یہ مثال بتاتی ہے کہ Ubuntu پر ufw کیسے کام کرے گا، لیکن مجھے یقین ہے کہ آپ کو ابھی بھی باب 9 کا CentOS فائر والڈ پروگرام یاد ہے:

# 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. آسان آر ایس اے پیکیج کے ساتھ فراہم کردہ اسکرپٹس کا استعمال کرتے ہوئے سرور پر پبلک کلیدی انفراسٹرکچر (PKI) انکرپشن کیز کا ایک سیٹ بنائیں۔ بنیادی طور پر، OpenVPN سرور اپنے سرٹیفکیٹ اتھارٹی (CA) کے طور پر بھی کام کرتا ہے۔
  2. کلائنٹ کے لیے مناسب چابیاں تیار کریں۔
  3. سرور کے لیے server.conf فائل کو ترتیب دیں۔
  4. اپنا اوپن وی پی این کلائنٹ ترتیب دیں۔
  5. اپنا VPN چیک کریں۔

خفیہ کاری کی چابیاں تیار کی جا رہی ہیں۔

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

کتاب "لینکس ان ایکشن"
جب آپ نے OpenVPN انسٹال کیا تو /etc/openvpn/ ڈائرکٹری خود بخود بن گئی، لیکن ابھی تک اس میں کچھ نہیں ہے۔ اوپن وی پی این اور ایزی آر ایس اے پیکجز مثال کے طور پر ٹیمپلیٹ فائلوں کے ساتھ آتے ہیں جنہیں آپ اپنی کنفیگریشن کی بنیاد کے طور پر استعمال کر سکتے ہیں۔ سرٹیفیکیشن کا عمل شروع کرنے کے لیے، easy-rsa ٹیمپلیٹ ڈائرکٹری کو /usr/share/ سے /etc/openvpn میں کاپی کریں اور easy-rsa/ ڈائریکٹری میں تبدیل کریں:

# cp -r /usr/share/easy-rsa/ /etc/openvpn
$ cd /etc/openvpn/easy-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 اسکرپٹ کا استعمال کرتا ہے، آپ کو کلیدی جوڑے کی تخلیق کی تصدیق کے لیے وہی سوالات نظر آئیں گے۔ کلیدوں کا نام آپ کے پاس ہونے والے دلائل کی بنیاد پر رکھا جائے گا، جو، جب تک کہ آپ اس مشین پر ایک سے زیادہ VPN نہیں چلا رہے ہیں، عام طور پر سرور ہوگا، جیسا کہ مثال میں:

# ./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 الگورتھم (build-dh استعمال کرتے ہوئے) کے ذریعے تیار کردہ پیرامیٹرز کا استعمال کرتا ہے۔ یہاں بنائی گئی فائل کو خفیہ ہونے کی ضرورت نہیں ہے، لیکن RSA کیز جو فی الحال فعال ہیں کے لیے build-dh اسکرپٹ کا استعمال کرکے تیار کی جانی چاہیے۔ اگر آپ مستقبل میں نئی ​​RSA کیز بناتے ہیں، تو آپ کو Diffie-Hellman فائل کو بھی اپ ڈیٹ کرنے کی ضرورت ہوگی۔

# ./build-dh

آپ کی سرور سائڈ کیز اب /etc/openvpn/easy-rsa/keys/ ڈائریکٹری میں ختم ہو جائیں گی، لیکن اوپن وی پی این کو یہ معلوم نہیں ہے۔ پہلے سے طے شدہ طور پر، 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 فائل کے ساتھ جو ابھی تک کیز/ ڈائرکٹری میں ہے، اب محفوظ طریقے سے آپ کے کلائنٹ کو منتقل کی جانی چاہیے۔ ان کی ملکیت اور رسائی کے حقوق کی وجہ سے، یہ اتنا آسان نہیں ہوسکتا ہے۔ سب سے آسان طریقہ یہ ہے کہ آپ کے کمپیوٹر کے ڈیسک ٹاپ پر چلنے والے ٹرمینل میں سورس فائل (اور اس مواد کے علاوہ کچھ نہیں) کے مواد کو دستی طور پر کاپی کرنا ہے (متن کو منتخب کریں، اس پر دائیں کلک کریں اور مینو سے کاپی کو منتخب کریں)۔ پھر اسے اسی نام کے ساتھ ایک نئی فائل میں چسپاں کریں جو آپ اپنے کلائنٹ سے منسلک دوسرے ٹرمینل میں بناتے ہیں۔

لیکن کوئی بھی کاٹ اور پیسٹ کر سکتا ہے۔ اس کے بجائے، ایک منتظم کی طرح سوچیں کیونکہ آپ کو ہمیشہ GUI تک رسائی حاصل نہیں ہوگی جہاں کٹ/پیسٹ آپریشن ممکن ہوں۔ فائلوں کو اپنے صارف کی ہوم ڈائرکٹری میں کاپی کریں (تاکہ ریموٹ ایس سی پی آپریشن ان تک رسائی حاصل کر سکے) اور پھر فائلوں کی ملکیت کو روٹ سے باقاعدہ غیر روٹ صارف میں تبدیل کرنے کے لیے چاؤن کا استعمال کریں تاکہ ریموٹ ایس سی پی ایکشن کو انجام دیا جاسکے۔ یقینی بنائیں کہ آپ کی تمام فائلیں فی الحال انسٹال اور قابل رسائی ہیں۔ آپ انہیں تھوڑی دیر بعد کلائنٹ کے پاس منتقل کریں گے:

# 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 کیسے بنانا چاہتے ہیں۔ یہ server.conf فائل کا استعمال کرتے ہوئے کیا جاتا ہے۔

کی اسٹروک کی تعداد کو کم کرنا

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

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

server.conf فائل کو ترتیب دینا

آپ کیسے جان سکتے ہیں کہ server.conf فائل کیسی ہونی چاہیے؟ Easy-rsa ڈائریکٹری ٹیمپلیٹ کو یاد رکھیں جسے آپ نے /usr/share/ سے کاپی کیا تھا؟ جب آپ نے OpenVPN انسٹال کیا تو آپ کے پاس ایک کمپریسڈ کنفیگریشن ٹیمپلیٹ فائل رہ گئی جسے آپ /etc/openvpn/ میں کاپی کر سکتے ہیں۔ میں اس حقیقت کو بناؤں گا کہ ٹیمپلیٹ محفوظ شدہ ہے اور آپ کو ایک مفید ٹول سے متعارف کراؤں گا: zcat۔

آپ پہلے ہی cat کمانڈ کا استعمال کرتے ہوئے فائل کے متنی مواد کو اسکرین پر پرنٹ کرنے کے بارے میں جانتے ہیں، لیکن اگر فائل کو 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 ٹنل بنانا چاہتے ہیں جس میں ڈیٹا کا مواد ہوتا ہے اور کچھ نہیں۔ اگر، دوسری طرف، آپ کو ایک سے زیادہ نیٹ ورک انٹرفیس (اور وہ نیٹ ورکس جن کی وہ نمائندگی کرتے ہیں) کو جوڑنے کی ضرورت ہے، ایک ایتھرنیٹ برج بناتے ہوئے، آپ کو dev tap کا انتخاب کرنا ہوگا۔ اگر آپ نہیں سمجھتے ہیں کہ اس سب کا کیا مطلب ہے، تو tun argument استعمال کریں۔
  • اگلی چار لائنیں 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 سرور شروع کر سکتے ہیں:

# systemctl start openvpn

OpenVPN اور systemd کے درمیان تعلقات کی بدلتی ہوئی نوعیت کی وجہ سے، سروس شروع کرنے کے لیے بعض اوقات درج ذیل نحو کی ضرورت پڑ سکتی ہے: systemctl start openvpn@server۔

آپ کے سرور کے نیٹ ورک انٹرفیس کی فہرست بنانے کے لیے ip addr چلانے سے اب tun0 نامی نئے انٹرفیس کا لنک آؤٹ پٹ ہونا چاہیے۔ اوپن وی پی این اسے آنے والے کلائنٹس کی خدمت کے لیے بنائے گا:

$ 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.net دیکھیں۔

اوپن وی پی این پیکیج کو کلائنٹ مشین پر انسٹال کرنے کی ضرورت ہوگی جیسا کہ سرور پر انسٹال کیا گیا تھا، حالانکہ یہاں آسان آر ایس اے کی ضرورت نہیں ہے کیونکہ آپ جو چابیاں استعمال کررہے ہیں وہ پہلے سے موجود ہیں۔ آپ کو client.conf ٹیمپلیٹ فائل کو /etc/openvpn/ ڈائریکٹری میں کاپی کرنے کی ضرورت ہے جو آپ نے ابھی بنائی ہے۔ اس بار فائل کو زپ نہیں کیا جائے گا، لہذا باقاعدہ cp کمانڈ کام کو ٹھیک کرے گی:

# 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-client دلیل OpenVPN کو بتاتی ہے کہ آپ ایک کلائنٹ کے طور پر کام کریں گے اور TLS انکرپشن کے ذریعے جڑیں گے، اور --config آپ کی کنفیگریشن فائل کی طرف اشارہ کریں گے:

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

یہ یقینی بنانے کے لیے کہ آپ صحیح طریقے سے جڑے ہوئے ہیں کمانڈ آؤٹ پٹ کو غور سے پڑھیں۔ اگر پہلی بار کچھ غلط ہو جاتا ہے، تو اس کی وجہ سرور اور کلائنٹ کنفیگریشن فائلوں کے درمیان سیٹنگز میں مماثلت یا نیٹ ورک کنکشن/فائر وال کا مسئلہ ہو سکتا ہے۔ یہاں کچھ ٹربل شوٹنگ کی تجاویز ہیں.

  • کلائنٹ پر اوپن وی پی این آپریشن کے آؤٹ پٹ کو احتیاط سے پڑھیں۔ اس میں اکثر قیمتی مشورے ہوتے ہیں کہ بالکل کیا نہیں کیا جا سکتا اور کیوں۔
  • سرور پر /etc/openvpn/ ڈائریکٹری میں openvpn.log اور openvpn-status.log فائلوں میں خرابی کے پیغامات کو چیک کریں۔
  • OpenVPN سے متعلقہ اور وقتی پیغامات کے لیے سرور اور کلائنٹ پر سسٹم لاگز کو چیک کریں۔ (journalctl -ce تازہ ترین اندراجات دکھائے گا۔)
  • یقینی بنائیں کہ آپ کا سرور اور کلائنٹ کے درمیان ایک فعال نیٹ ورک کنکشن ہے (اس پر مزید باب 14 میں)۔

مصنف کے بارے میں

ڈیوڈ کلنٹن - سسٹم ایڈمنسٹریٹر، استاد اور مصنف۔ اس نے بہت سے اہم تکنیکی شعبوں کے لیے تعلیمی مواد کا انتظام کیا ہے، لکھا ہے، اور تخلیق کیا ہے، بشمول لینکس سسٹم، کلاؤڈ کمپیوٹنگ (خاص طور پر AWS)، اور کنٹینر ٹیکنالوجیز جیسے ڈوکر۔ اس نے لنچز کے مہینے میں Amazon Web Services سیکھیں (میننگ، 2017) کتاب لکھی۔ ان کے بہت سے ویڈیو ٹریننگ کورسز Pluralsight.com پر مل سکتے ہیں، اور ان کی دوسری کتابوں کے لنکس (لینکس ایڈمنسٹریشن اور سرور ورچوئلائزیشن پر) پر دستیاب ہیں۔ bootstrap-it.com.

»کتاب کے بارے میں مزید تفصیلات یہاں پر دیکھی جا سکتی ہیں۔ پبلشر کی ویب سائٹ
» مواد کی میز
» اقتباس

Khabrozhiteley کے لیے کوپن کا استعمال کرتے ہوئے 25% ڈسکاؤنٹ - لینکس
کتاب کے کاغذی ورژن کی ادائیگی پر، ایک الیکٹرانک کتاب بذریعہ ای میل بھیجی جائے گی۔

ماخذ: www.habr.com

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