التصنيفات
غير مصنف

اعداد WireGuard والاتصال به

السلام عليكم ورحمة الله وبركاته
هذا مقال يشرح كيفية تثبيت واعداد WireGuard من جهة العميل والخادم لانشاء شبكة انترنت وهمية (VPN) واستخدامه للتخفي او لعمل Reverse Proxy واستضافة مواقع او تطبيقات محلي خلف اي NAT

اولا ماهو WireGuard؟

هو بروتوكول مفتوح المصدر لانشاء شبكة انترنت وهمية مشفرة وهو يمتاز بالسرعة وسهولة الاعداد وياتي مدمج مع نواة لينكس لذلك الاداء فيه اعلى بكثير من اي بديل اخر مثل OpenVPN

المتطلبات

1- خادم لا يعمل خلف NAT (مثل CGNAT) ويملك عنوان WAN يمكن الوصول له عبر الانترنت
2- امكانية الوصول لمنافذ UDP (UDP ports) بسبب استخدامها من WireGuard
3- جهاز عميل (يمكن ان يكون هاتفك او جهازك المكتبي او المتنقل) يملك وصول للانترنت وللخادم

الإعداد

ساشرح تثبيت WireGuard على Ubuntu Server 20.04 Focal Fossa (ربما اصدارات اقدم من Ubuntu لن يكون مدعوم فيها) طبعًا بامكانك تثبيته على اي خادم تحب لكن اوامر تثبيت الحزم ستختلف

تثبيت WireGuard في جهاز العميل والخادم بامر واحد لا غير (قد يختلف من توزيعة لاخرى)

sudo apt install wireguard

بعد التثبيت ستحتاج الى انشاء مفتاح عام وخاص لكل جهاز (الخادم واي عميل) عن طريق امر wg وياتي بعد تثبيت WireGuard
لتوليد المفتاح الخاص نفذ الامر التالي

umask 077 # تغيير الصلاحيات الافتراضي لاي ملف ينشاء من المستخدم لمنع الوصول للمفاتيح
wg genkey > privatekey # توليد المفتاح الخاص

بعدها استخدم المفتاح الخاص لتوليد المفتاح العمل (يستخدم للاتصال من جهة العمل ولمصادقة العميل من جهة الخادم) عن طريق الامر التالي

wg pubkey < privatekey > publickey

الان تملك مفتاحين هما publickey وprivatekey وهذه مخصص للخادم فقط
عليك اعادة العملية بانشاء مفاتيح للعميل وسوف اغير اسمها الى clientpublickey وclientprivatekey لتسهيل الشرح

umask 077
wg genkey > clientprivatekey
wg pubkey < clientprivatekey > clientpublickey

الان تملك 4 مفاتيح وهم مفتاحين عامة ومفتاحية خاصة وتنقسم الى مفتاح عام publickey ومفتاح خاص privatekey للخادم ومفتاح عام clientpublickey ومفتاح خاص clientprivatekey للعميل


فاصل اشرح الشبكة :sweat_smile:
الشبكة التي سوف اقوم باعدادها ستكون كتالي
الخادم يملك عنوان 10.0.0.1 والعميل يملك عنوان 10.0.0.2 ويملكون اتصال مفتوح فيما بينهم
اكمل المقال…


الان بعد توليد المفاتيح علينا استخدمها :slight_smile:
سنحتاج الى انشاء interface خاص بـ WireGuard للخادم يحفظ بصلاحية جذر في
/etc/wireguard/wg0.conf
ويحتوي التالي

[Interface]
PrivateKey = <استبدال هذا بـ privatekey للخادم>
Address = 10.0.0.1/24
ListenPort = 51820

[Peer]
PublicKey = <استبدال هذا بـ clientpublickey للعميل>
AllowedIPs = 10.0.0.2/32

في هذا الاعداد حددنا المفتاح privatekey للخادم وحددنا عنوانه الخاصة داخل الشبكة الوهمية 10.0.0.1 والمنفذ 51820 (تقدر تغيره لان بعض الشركات الساحبية تحجبة :slight_smile: ) ليستمع بواسطته على اي اتصال عميل WireGuard
وايضا حددت Peer (مقترن وامكانك اضافة عدد لا محدود منهم) واستخدمة المفتاح العام clientpublickey للعميل وحددت عنوانه في الشبكة الخاصة 10.0.0.2
بعد ان تحفظ الملف عليك تنفيذ امر wg-quick up لتبدا الشبكة

wg-quick up wg0

ولتفعيله في systemd عن اعادة تشغيل الجهاز يفتح الشبكة مرة اخرى نفذ الامر التالي

systemctl enable [email protected]

لتحقق من حالة الشبكة نفذ امر wg بصلاحية جذر

wg

الان متبقي فقط انشاء interface في جهة العميل وهو مطابق بعض الشيء
انشاء ملف في
/etc/wireguard/wg0.conf واحفظة بصلاحيات جذر ومحتواه التالي

[Interface]
Address = 10.6.0.2/24
PrivateKey = <استبدل هذا بـ clientprivatekey للعميل>

[Peer]
PublicKey = <استبدل هذا بـ publickey للخادم>
AllowedIPs = 10.0.0.0/24
Endpoint = <استبدل هذا بـ IP للخادم>:51820
PersistentKeepalive = 15

بعد ان تحفظ الملف عليك تنفيذ امر wg-quick up لتبدا الشبكة

wg-quick up wg0

ولتفعيله في systemd عند اعادة تشغيل الجهاز يتصل بالشبكة مرة اخرى
نفذ الامر التالي

systemctl enable [email protected]

لتحقق من حالة الشبكة نفذ امر wg بصلاحية جذر

wg

والان ان كان تنفيذك للشرح صحيح ستتمكن من عمل ping للخادم من جهة العميل

ping 10.0.0.1

وللعميل من جهة الخادم

ping 10.0.0.2
التصنيفات
غير مصنف

أهلاً بالعالم !

مرحباً بك في ووردبريس. هذه مقالتك الأولى. حررّها أو احذفها، ثم ابدأ النشر!