Ubuntu 20.04 پر WireGuard VPN سرور اور کلائنٹ کو کیسے ترتیب دیا جائے

وائر گارڈ کا استعمال کرتے ہوئے ایک خود میزبان VPN ترتیب دیں۔

اے VPN (ورچوئل پرائیویٹ نیٹ ورک) صارف کو کسی نجی نیٹ ورک سے دور سے جڑنے کی اجازت دیتا ہے گویا صارف کا کمپیوٹر براہ راست پرائیویٹ نیٹ ورک سے جڑا ہوا ہے۔ ٹیکنالوجی کو ابتدائی طور پر کمپنی کے اندرونی نجی نیٹ ورک تک ریموٹ رسائی کی اجازت دینے کے لیے تیار کیا گیا تھا، ان ملازمین کے لیے جو درحقیقت اندرونی نیٹ ورک کے مقام پر موجود نہیں ہیں۔

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

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

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

ایسا ہی ایک پروٹوکول، جو حال ہی میں وسیع پیمانے پر استعمال ہو رہا ہے، ہے۔ وائر گارڈ. وائر گارڈ روایتی طور پر استعمال ہونے والے VPN پروٹوکول جیسے OpenVPN، IPSec سے ہلکا، آسان اور زیادہ پرفارمنس ہے۔ یہ پہلے سے ہی ونڈوز، میک OS اور لینکس کی تقسیم کی ایک بڑی تعداد کے لیے نافذ ہے۔ لینکس میں، اسے کرنل ماڈیول کے طور پر لاگو کیا جاتا ہے۔ یہ Ubuntu 20.04 کے سرکاری ذخیروں میں دستیاب ہے۔

اس مضمون میں، ہم دیکھیں گے کہ Ubuntu 20.04 میں Wireguard VPN سرور اور کلائنٹ کیسے ترتیب دیا جائے۔

تنصیب

اس مضمون کے لیے، میں Ubuntu 20.04 Linode پر ایک Wireguard Server اور Ubuntu 20.04 کے ساتھ اپنی مقامی مشین پر Wireguard کلائنٹ ترتیب دے رہا ہوں۔

پیکج وائر گارڈ وائر گارڈ سرور اور کلائنٹ دونوں کو انسٹال کرتا ہے۔ درج ذیل کمانڈ کو چلائیں۔ سرور مشین اور کلائنٹ مشین دونوں پر۔

sudo apt وائر گارڈ انسٹال کریں۔

سرور کنفیگریشن

سیکیورٹی کیز

ہمیں عوامی/نجی کلیدی جوڑوں کا ایک سیٹ تیار کرنے کی ضرورت ہے۔ وائر گارڈ کنکشن کی تصدیق اور محفوظ کرنے کے لیے۔ یہ مندرجہ ذیل کمانڈز کا استعمال کرتے ہوئے کیا جا سکتا ہے:

sudo su cd /etc/wireguard umask 077 wg genkey | tee private_key | wg pubkey > public_key

نوٹ کریں کہ ہم کنفیگریشن کے تمام کام بطور سپر یوزر کر رہے ہیں۔ وجہ یہ ہے کہ ڈائریکٹری تک رسائی /etc/wireguard عام صارفین کے لیے روکا جاتا ہے، اور ڈائرکٹری تک رسائی عام صارف کے لیے صرف sudo مراعات کے ساتھ حاصل نہیں کی جا سکتی۔

اگلا، ہم نے فائل تخلیق ماسک کو سیٹ کیا 077. اس کا مطلب یہ ہے کہ جب بھی اس فولڈر میں کسی بھی عمل سے کوئی نئی فائل بنتی ہے تو اس کی اجازت خود بخود 077 کے ساتھ ماسک ہو جاتی ہے۔ اگر کوئی فائل اس فولڈر میں اجازت 777 کے ساتھ بنتی ہے، تو یہ خود بخود ماسک ہو جاتی ہے اور اجازتیں مؤثر طریقے سے 700 ہو جاتی ہیں۔ ایسا اس لیے کیا جاتا ہے کہ فائل پر تمام اجازت صرف فائل کے مالک کے پاس ہوتی ہے، اور باقی سب کے پاس کوئی اجازت نہیں ہوتی ہے۔

اگلی لائن پر، ہم عوامی/نجی کلیدی جوڑی تیار کرتے ہیں۔ سرور کے لیے وہ فائلوں میں محفوظ ہیں۔ نجی_کلید اور عوامی_کلید. چابیاں دیکھنے کے لیے، چلائیں:

بلی نجی_کلید بلی عوامی_کلید

نجی کلید کو کاپی کریں، ہمیں اگلے مرحلے میں اس کی ضرورت ہے۔

نوٹ: اپنی نجی کلید کو عوامی طور پر کبھی بھی شیئر نہ کریں!

کنفیگریشن فائل

آئیے وائر گارڈ سرور کے لیے ایک کنفیگریشن فائل بنائیں۔ آپ فائل کے لیے کوئی بھی نام منتخب کر سکتے ہیں۔ ہم ایک فائل بنائیں گے۔ wg0.conf اس مثال میں.

vim wg0.conf

فائل میں درج ذیل کو شامل کریں۔

[انٹرفیس] ایڈریس = 10.20.43.1/24 SaveConfig = true ListenPort = 51190 PrivateKey = PostUp = iptables -A FORWARD -i wg0 -j قبول کریں؛ iptables -t nat -A POSTROUTING -o -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j قبول کریں؛ ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D فارورڈ -i wg0 -j قبول کریں؛ iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j قبول کریں؛ ip6tables -t nat -D POSTROUTING -o -j MASQUERADE 

پرائیویٹ کلید کو چسپاں کریں جسے ہم نے پہلے اوپر کوڈ میں لائن 5 میں کاپی کیا تھا۔

ہمیں ایک مختلف (ورچوئل) سب نیٹ پر وائر گارڈ کو ترتیب دینا ہے۔ سرور کے IP ایڈریس سے زیادہ۔ یہاں، میں نے سرور کے لیے 10.20.43.1 استعمال کیا ہے اور کلائنٹ کے لیے 10.20.43.2 استعمال کروں گا۔ کوئی بھی ذیلی نیٹ یہاں استعمال کیا جا سکتا ہے۔ سرور اور انٹرفیس کا آئی پی ایڈریس حاصل کرنے کے لیے، چلائیں:

ifconfig

سرور کا آئی پی ایڈریس نوٹ کریں۔ یہ کلائنٹ کنفیگریشن کے دوران ضروری ہے۔

سرور کے ذریعہ استعمال کردہ انٹرفیس، جیسا کہ اوپر کی تصویر میں دیکھا گیا ہے۔ اخلاق0. انٹرفیس کا نام صارف کے نیٹ ورک کی بنیاد پر مختلف ہو سکتا ہے، یہ ہو سکتا ہے۔ wlan0 یا wlp2s0 اگر صارف وائرلیس کارڈ کا استعمال کرتے ہوئے وائی فائی نیٹ ورک سے منسلک ہے۔

کو تبدیل کریں۔ میں پوسٹ اپ اور پوسٹ ڈاؤن آپ کے انٹرفیس کے ساتھ؛ اس مثال میں یہ ہے اخلاق0.پوسٹ اپ اور پوسٹ ڈاؤن ہدایات کا استعمال یہ بتانے کے لیے کیا جاتا ہے کہ سرور کے بالترتیب شروع ہونے اور بند ہونے پر کن کمانڈز کو چلایا جانا چاہیے۔ ہماری مثال میں، ہم استعمال کرتے ہیں iptables آئی پی رولز سیٹ کرنے کا کمانڈ اس طرح کہ سرور کا آئی پی ایڈریس کلائنٹس کے ذریعہ شیئر کیا جائے۔ سرور کے بند ہونے کے بعد قوانین ختم ہو جائیں گے۔

فائل کو محفوظ کریں اور باہر نکلیں۔ ویم استعمال کرتے وقت، دبائیں۔ Esc، پھر ٹائپ کریں۔ :wq اور دبائیں داخل کریں۔ بچانے اور باہر نکلنے کے لیے۔

اگر آپ استعمال کر رہے ہیں a ufw سرور پر فائر وال، ہمیں VPN سرور، 51190 کے لیے پورٹ سے UDP کنکشن کی اجازت دینے کی ضرورت ہے۔

ufw 51190/udp کی اجازت دیتا ہے۔

سروس شروع کر رہا ہے۔

اب جیسے ہی کنفیگریشن ہو چکی ہے، ہم Wireguard VPN سروس شروع کر سکتے ہیں۔

چالو کرنے کے لئے بوٹ کے وقت شروع ہونے والی سروس، چلائیں:

systemctl wg-quick@wg0 کو فعال کریں۔

یہاں نوٹ کریں۔ wg0 کنفیگریشن فائل کا نام ہے۔

شروع کرنے کے لئے سروس، چلائیں:

سروس wg-quick@wg0 start

تصدیق کریں۔ کہ سروس کامیابی سے شروع ہوئی ہے:

سروس wg-quick@wg0 اسٹیٹس

تصدیق کریں کہ انٹرفیس آئی پی کمانڈ کا استعمال کرتے ہوئے ہم نے کنفیگریشن فائل میں بنائی شروع کر دی ہے۔

ip a شو wg0

وائر گارڈ VPN سرور اب سیٹ اپ اور چل رہا ہے۔ آئیے اب کلائنٹ کو کنفیگر کرتے ہیں۔

کلائنٹ کنفیگریشن

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

سیکیورٹی کیز

عوامی/نجی کلید بنانے کے لیے کلائنٹ کے لیے جوڑی، چلائیں:

sudo su cd /etc/wireguard umask 077 wg genkey | tee client_private_key | wg pubkey > client_public_key

کلائنٹ کے لیے عوامی اور نجی کلیدیں اب بالترتیب فائلوں میں تیار کی جاتی ہیں۔ کلائنٹ_پرائیویٹ_کلید اور کلائنٹ_عوامی_کلید.

چیک کریں کہ وہ استعمال کرتے ہوئے بنائے گئے ہیں۔ کیٹ کمانڈ.

cat client_private_key بلی کلائنٹ_پبلک_کلی

ظاہر کردہ نجی کلید کو کاپی کریں کیونکہ ہمیں اسے کلائنٹ کے لیے کنفیگریشن فائل میں شامل کرنے کی ضرورت ہے۔

کنفیگریشن فائل

کنفیگریشن فائل بنائیں کسی بھی نام کے ساتھ جو آپ چاہتے ہیں۔ ہم اسے نام کے ساتھ بنائیں گے۔ wg0-کلائنٹ اس مثال کے لئے.

vim wg0-client.conf

درج ذیل ترتیب شامل کریں۔

[انٹرفیس] # IP ایڈریس اور کلائنٹ ایڈریس کی پرائیویٹ کلید = 10.20.43.2/24 PrivateKey = [Peer] # پبلک کلید، IP ایڈریس اور پورٹ آف دی سرور PublicKey = Endpoint = :51190 AllowedIPs = 0.0.0.0/0, : :/0

کلائنٹ کے لیے سب نیٹ ایڈریس درج کریں۔ جیسا کہ پہلے بیان کیا گیا ہے، ہم استعمال کرتے ہیں۔ 10.20.43.2 اس مثال میں کلائنٹ کے لیے۔

کلائنٹ کی نجی کلید شامل کریں۔ اوپر کنفیگریشن کوڈ میں لائن 4 میں پچھلے مرحلے میں تیار کیا گیا ہے۔

'پیئر' کے تحت، ہم Wireguard VPN سرور کے بارے میں معلومات شامل کرتے ہیں۔ ہم سے رابطہ قائم کرنا چاہتے ہیں.

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

دیے گئے (0.0.0.0/0) کے مطابق اجازت یافتہ آئی پی درج کیے جائیں تاکہ کلائنٹ کے ذریعے استعمال ہونے والے متحرک عوامی IP پر کوئی بھی درخواست ہمیشہ VPN سرور کو بھیجی جائے۔

فائل کو محفوظ کریں اور باہر نکلیں۔ ویم استعمال کرتے وقت، دبائیں۔ Esc، پھر ٹائپ کریں۔ :wq اور دبائیں داخل کریں۔ بچانے اور باہر نکلنے کے لیے۔

کلائنٹ سروس کو فعال کریں۔ ہر بوٹ کے ساتھ چلانے کے لیے، اور اسے شروع کرنا۔

systemctl wg-quick@wg-client سروس کو چالو کریں wg-quick@wg-client اسٹارٹ

تصدیق کریں۔ اگر سروس شروع ہو گئی ہے۔

سروس wg-quick@wg-client کی حیثیت

سرور میں پیر کو شامل کرنا

اب ہمارے پاس VPN سرور اور کلائنٹ اپ اور چل رہا ہے۔ تاہم، دونوں کے درمیان ایک محفوظ سرنگ اس وقت تک قائم نہیں ہوتی جب تک کہ ہم سرور اور کلائنٹ کے درمیان پیئر ٹو پیئر کنکشن قائم نہ کریں۔

واپس جاو سرور کو پہلا، وی پی این سروس بند کریں۔.

سروس wg-quick@wg0 stop

اگلا، کنفیگریشن فائل کو کھولیں۔ ہم مرتبہ کے لیے ترتیب شامل کریں۔ (کلائنٹ).

vim /etc/wireguard/wg0.conf

شامل کریں فائل میں درج ذیل لائنیں

[پیر] PublicKey = AllowedIPs = 10.20.43.2/32

ابھی، VPN سروس دوبارہ شروع کریں۔.

سروس wg-quick@wg0 start

یہی ہے! یہ وائر گارڈ وی پی این کلائنٹ اور سرور سیٹ اپ کے لیے درکار تمام کنفیگریشن ہے۔ آئیے اب اپنے VPN کی جانچ کریں۔

وی پی این کی جانچ کرنا

پہلے، آئیے کلائنٹ سے سرور تک ایک سادہ پنگ کرتے ہیں، یہ یقینی بنانے کے لیے کہ VPN ٹنل کمیونیکیشن کام کرتی ہے۔ کلائنٹ پر درج ذیل کو چلائیں۔:

پنگ 10.20.43.1

اگلے، ایک ویب براؤزر کھولیں اور کوئی بھی ویب سائٹ کھولیں۔ یہ چیک کرنے کے لیے کہ آیا آپ کلائنٹ مشین سے انٹرنیٹ سے جڑنے کے قابل ہیں۔ آپ کمانڈ لائن کا استعمال کرتے ہوئے اپنے انٹرنیٹ کنیکٹیویٹی کو بھی چیک کر سکتے ہیں۔ wget.

wget 

اب، ہم نے ٹنل کنیکٹیویٹی اور انٹرنیٹ کنیکٹیویٹی کی جانچ کی ہے۔ اگر دونوں کام کر رہے ہیں، تو ہمیں اب یہ یقینی بنانا ہوگا کہ کلائنٹ کے پاس آنے والا تمام انٹرنیٹ ٹریفک سرور سے گزر رہا ہے۔

اس کے لیے، ہمیں صرف کلائنٹ کا آئی پی ایڈریس چیک کرنے کی ضرورت ہے جیسا کہ انٹرنیٹ پر نظر آتا ہے۔ ایسا کرنے کا ایک طریقہ whatsmyip.org پر جانا ہے۔ یا پھر کمانڈ لائن سے، ہم کرل کا استعمال کرتے ہوئے، آئی پی انفو نامی ایک اور اسی طرح کی سروس سے استفسار کر سکتے ہیں۔

کلائنٹ مشین پر درج ذیل کو چلائیں۔

curl //ipinfo.io/ip

جی ہاں. یہ Linode کا عوامی IP پتہ ہے جہاں VPN سرور ہوسٹ کیا جاتا ہے۔ VPN کا استعمال کرتے ہوئے اس طرح گمنامی حاصل کی جاتی ہے، کیونکہ اب پورے انٹرنیٹ پر VPN سرور کا IP دیکھا جاتا ہے نہ کہ آپ کے کمپیوٹر کا۔

نتیجہ

سیٹ اپ کی آسانی OpenVPN جیسے روایتی VPN سافٹ ویئر پر Wireguard کے سب سے اہم فوائد میں سے ایک ہے، جس کو سیٹ اپ کرنے کے لیے نیٹ ورکنگ اور روٹنگ کے علم کی اعلی سطح کی ضرورت ہوتی ہے۔ تاہم، Wireguard کے لیے تفصیلی سرکاری دستاویزات کا فقدان ہے جس کی وجہ سے مسائل پیدا ہو سکتے ہیں اگر آپ کے Wireguard سیٹ اپ میں غلطیاں ہو رہی ہیں یا توقع کے مطابق کام نہیں کر رہے ہیں۔

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