WireGuard اور Raspberry Pi کے ساتھ بطور سرور ایک سادہ VPN ترتیب دینا

کیونکہ وائر گارڈ حصہ بن جائے گا آنے والے لینکس کرنل 5.6 میں سے، میں نے یہ دیکھنے کا فیصلہ کیا کہ اس VPN کو اپنے ساتھ کس طرح مربوط کرنا ہے۔ Raspberry Pi پر LTE روٹر/ایکسیس پوائنٹ.

سامان

  • Raspberry Pi 3 LTE ماڈیول اور عوامی IP ایڈریس کے ساتھ۔ یہاں ایک VPN سرور ہوگا (اس کے بعد متن میں اسے کہا گیا ہے۔ کنارے چلنے والا)
  • ایک اینڈرائیڈ فون جو تمام مواصلات کے لیے VPN کا استعمال کرے۔
  • لینکس لیپ ٹاپ جو نیٹ ورک کے اندر صرف وی پی این استعمال کرے۔

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

اس بات پر غور کرتے ہوئے کہ وائرڈ اور وائرلیس کنکشن وقت کے ساتھ ساتھ کم محفوظ ہوتے جا رہے ہیں (ٹارگٹڈ حملے, KRACK WPA2 کریکنگ اٹیک и WPA3 کے خلاف ڈریگن بلڈ حملہمیں اپنے تمام آلات کے لیے WireGuard استعمال کرنے پر سنجیدگی سے غور کر رہا ہوں، چاہے وہ کسی بھی ماحول میں ہوں۔

سافٹ ویئر کی تنصیب

وائر گارڈ فراہم کرتا ہے۔ پہلے سے مرتب شدہ پیکجز زیادہ تر لینکس، ونڈوز اور میک او ایس ڈسٹری بیوشنز کے لیے۔ اینڈرائیڈ اور آئی او ایس ایپس کو ایپ ڈائریکٹریز کے ذریعے ڈیلیور کیا جاتا ہے۔

میرے پاس تازہ ترین فیڈورا لینکس 31 ہے، اور میں انسٹال کرنے سے پہلے دستی پڑھنے میں بہت سست تھا۔ ابھی پیکجز مل گئے۔ wireguard-tools، انہیں انسٹال کیا، اور پھر یہ نہیں جان سکا کہ کچھ کام کیوں نہیں کر رہا ہے۔ مزید تفتیش سے معلوم ہوا کہ میرے پاس پیکیج انسٹال نہیں ہے۔ wireguard-dkms (ایک نیٹ ورک ڈرائیور کے ساتھ)، لیکن یہ میری تقسیم کے ذخیرے میں نہیں تھا۔

اگر میں ہدایات کو پڑھ لیتا، تو میں صحیح اقدامات کرتا:

$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools

میرے Raspberry Pi پر Raspbian Buster ڈسٹری بیوشن انسٹال ہے، وہاں پہلے سے ہی ایک پیکیج موجود ہے۔ wireguard، اسے انسٹال کریں:

$ sudo apt install wireguard

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

چابیاں کی تنصیب

ہم مرتبہ کی توثیق کے لیے، وائر گارڈ VPN ساتھیوں کی تصدیق کے لیے ایک سادہ نجی/عوامی کلیدی اسکیم کا استعمال کرتا ہے۔ آپ درج ذیل کمانڈ کا استعمال کرتے ہوئے آسانی سے VPN کیز بنا سکتے ہیں۔

$ wg genkey | tee wg-laptop-private.key |  wg pubkey > wg-laptop-public.key
$ wg genkey | tee wg-server-private.key |  wg pubkey > wg-server-public.key
$ wg genkey | tee wg-mobile-private.key |  wg pubkey > wg-mobile-public.key

یہ ہمیں تین کلیدی جوڑے (چھ فائلیں) دیتا ہے۔ ہم کنفیگس میں فائلوں کا حوالہ نہیں دیں گے، لیکن مواد کو یہاں کاپی کریں گے: ہر کلید بیس 64 میں ایک لائن ہے۔

VPN سرور (Raspberry Pi) کے لیے کنفیگریشن فائل بنانا

ترتیب کافی آسان ہے، میں نے درج ذیل فائل بنائی ہے۔ /etc/wireguard/wg0.conf:

[Interface]
Address = 10.200.200.1/24
ListenPort = 51820
PrivateKey = <copy private key from wg-server-private.key>
PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o wwan0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o wwan0 -j MASQUERADE

[Peer]
# laptop
PublicKey = <copy public key from wg-laptop-public.key>
AllowedIPs = 10.200.200.2/32

[Peer]
# mobile phone
PublicKey = <copy public key from wg-mobile-public.key>
AllowedIPs = 10.200.200.3/32

چند نوٹ:

  • مناسب جگہوں پر آپ کو چابیاں کے ساتھ فائلوں سے لائنیں ڈالنے کی ضرورت ہے۔
  • میرا VPN اندرونی بینڈ استعمال کر رہا ہے۔ 10.200.200.0/24
  • ٹیموں کے لیے PostUp/PostDown میرے پاس ایکسٹرنل نیٹ ورک انٹرفیس wwan0 ہے، آپ کے پاس ایک مختلف ہو سکتا ہے (مثال کے طور پر، eth0)

مندرجہ ذیل کمانڈ کے ساتھ VPN نیٹ ورک آسانی سے اٹھایا جاتا ہے۔

$ sudo wg-quick up wg0

ایک چھوٹی سی تفصیل: جیسا کہ میں نے DNS سرور استعمال کیا۔ dnsmasq نیٹ ورک انٹرفیس سے منسلک br0میں نے آلات بھی شامل کیے ہیں۔ wg0 اجازت شدہ آلات کی فہرست میں۔ dnsmasq میں یہ کنفیگریشن فائل میں نیٹ ورک انٹرفیس کے ساتھ ایک نئی لائن شامل کرکے کیا جاتا ہے۔ /etc/dnsmasq.confمثال کے طور پر:

interface=br0
interface=wg0

مزید برآں، میں نے UDP سننے والے بندرگاہ (51280) پر ٹریفک کی اجازت دینے کے لیے ایک قابل اطلاق اصول شامل کیا:

$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPT

اب جب کہ سب کچھ کام کر رہا ہے، ہم VPN ٹنل کے خودکار لانچ کو ترتیب دے سکتے ہیں:

$ sudo systemctl enable [email protected]

لیپ ٹاپ پر کلائنٹ کی ترتیب

لیپ ٹاپ پر کنفیگریشن فائل بنائیں /etc/wireguard/wg0.conf اسی ترتیبات کے ساتھ:

[Interface]
Address = 10.200.200.2/24
PrivateKey = <copy private key from wg-laptop-private.key>

[Peer]
PublicKey = <copy public key from wg-server-public.key>
AllowedIPs = 10.200.200.0/24
Endpoint = edgewalker:51820

نوٹ:

  • ایج واکر کے بجائے آپ کو عوامی IP یا VPN سرور ہوسٹ کی وضاحت کرنے کی ضرورت ہے۔
  • انسٹال کر کے AllowedIPs پر 10.200.200.0/24، ہم صرف اندرونی نیٹ ورک تک رسائی کے لیے VPN استعمال کرتے ہیں۔ دیگر تمام آئی پی ایڈریسز/سرورز پر ٹریفک "نارمل" اوپن چینلز سے گزرتی رہے گی۔ یہ لیپ ٹاپ پر پہلے سے تشکیل شدہ DNS سرور بھی استعمال کرے گا۔

جانچ اور خودکار لانچ کے لیے ہم وہی کمانڈز استعمال کرتے ہیں۔ wg-quick и systemd:

$ sudo wg-quick up wg0
$ sudo systemctl enable [email protected]

اینڈرائیڈ فون پر کلائنٹ ترتیب دینا

اینڈرائیڈ فون کے لیے ہم ایک بہت ہی ملتی جلتی کنفیگریشن فائل بناتے ہیں (آئیے اسے کال کریں۔ mobile.conf):

[Interface]
Address = 10.200.200.3/24
PrivateKey = <copy private key from wg-mobile-private.key>
DNS = 10.200.200.1
        
[Peer]
PublicKey = <copy public key from wg-server-public.key>
AllowedIPs = 0.0.0.0/0
Endpoint = edgewalker:51820

لیپ ٹاپ پر ترتیب کے برعکس، فون کو ہمارے VPN سرور کو DNS سرور کے طور پر استعمال کرنا چاہیے (لائن DNS)، اور تمام ٹریفک کو VPN ٹنل سے بھی گزاریں (AllowedIPs = 0.0.0.0/0).

فائل کو اپنے موبائل ڈیوائس پر کاپی کرنے کے بجائے، آپ اسے QR کوڈ میں تبدیل کر سکتے ہیں:

$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.conf

QR کوڈ ASCII کے بطور کنسول میں آؤٹ پٹ ہوگا۔ اسے اینڈرائیڈ وی پی این ایپ سے اسکین کیا جا سکتا ہے اور یہ خود بخود وی پی این سرنگ ترتیب دے گا۔

آؤٹ پٹ

اوپن وی پی این کے مقابلے میں وائر گارڈ کو ترتیب دینا محض جادوئی ہے۔

ماخذ: www.habr.com

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