دليل تثبيت وإعداد WireGuard لإنشاء شبكة VPN وهمية

السلام عليكم ورحمة الله وبركاته

مقدمة

بروتوكول WireGuard هو بروتوكول مفتوح المصدر لإنشاء شبكة VPN مشفرة، يتميز بالسرعة وسهولة الإعداد مقارنة بالبدائل الأخرى مثل OpenVPN. كما أنه مدمج في نواة لينكس، مما يجعله أكثر كفاءة وأداءً.

المتطلبات

قبل البدء، تأكد من توفر المتطلبات التالية:

  1. خادم غير محجوب خلف NAT (مثل CGNAT) ويملك عنوان WAN يمكن الوصول إليه عبر الإنترنت.
  2. إمكانية الوصول لمنافذ UDP، حيث يعتمد WireGuard على بروتوكول UDP.
  3. جهاز عميل (مثل هاتف ذكي أو كمبيوتر) يمكنه الاتصال بالإنترنت والوصول إلى الخادم.

تثبيت WireGuard

على الخادم والعميل

قم بتثبيت WireGuard باستخدام الأمر التالي (قد يختلف حسب التوزيعة المستخدمة):

sudo apt install wireguard

توليد المفاتيح

لكل جهاز (الخادم والعميل)، ستحتاج إلى إنشاء مفتاح عام وخاص:

توليد المفاتيح على الخادم:

umask 077  # لتحديد صلاحيات الملفات
wg genkey > privatekey
wg pubkey < privatekey > publickey

توليد المفاتيح على العميل:

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

بعد تنفيذ هذه الأوامر، ستحصل على:

  • مفتاح عام وخاص للخادم (publickey و privatekey ).
  • مفتاح عام وخاص للعميل (clientpublickey و clientprivatekey ).

إعداد الشبكة

سيتم إعداد شبكة VPN بحيث يكون عنوان الخادم 10.0.0.1 وعنوان العميل 10.0.0.2.

إعداد الخادم

أنشئ ملف الإعداد التالي:

sudo nano /etc/wireguard/wg0.conf

أضف المحتوى التالي:

[Interface]
PrivateKey = <ضع هنا privatekey الخاص بالخادم>
Address = 10.0.0.1/24
ListenPort = 51820

[Peer]
PublicKey = <ضع هنا clientpublickey الخاص بالعميل>
AllowedIPs = 10.0.0.2/32

احفظ الملف، ثم قم بتشغيل WireGuard:

wg-quick up wg0

ولتفعيل الخدمة تلقائيًا بعد إعادة التشغيل:

systemctl enable wg-quick@wg0

للتحقق من حالة الشبكة:

wg

إعداد العميل

على الجهاز العميل، أنشئ ملف الإعداد:

sudo nano /etc/wireguard/wg0.conf

أضف المحتوى التالي:

[Interface]
Address = 10.0.0.2/24
PrivateKey = <ضع هنا clientprivatekey الخاص بالعميل>

[Peer]
PublicKey = <ضع هنا publickey الخاص بالخادم>
Endpoint = <عنوان IP للخادم>:51820
AllowedIPs = 0.0.0.0/0

شغل WireGuard على العميل:

wg-quick up wg0

اختبار الاتصال

بعد الإعداد، تحقق من الاتصال بين العميل والخادم:

ping 10.0.0.1

إذا استقبلت ردًا، فهذا يعني أن الشبكة تعمل بشكل صحيح.

خاتمة

بذلك تكون قد أعددت شبكة WireGuard بنجاح، مما يتيح لك إنشاء اتصال VPN آمن وسريع. يمكنك توسيع الإعداد لدعم عملاء إضافيين أو استخدامه كـ Reverse Proxy لاستضافة التطبيقات والخدمات خلف NAT.

إعجاب واحد (1)

شكراً لك اخي @xlmnxp على الشرح الجميل.

تم تثبيت WG على جهازي بنجاح : )

شرح وافي وكافي. بالنسبة للWAN IP كيف اجيبه؟ عجزت اتواصل مع الشركة ولا هم فاهمين وش قاعد اقول!

تثبت خادم WireGuard داخل VPS وهو يكون مع IP WAN

طيب راح تصير عندك مشكلة. وهي ان بياناتك تمر من خلال سيرفرات WireGuard قبل ماتوصلك. فماراح تستفيد من القوة المعالجية للسيرفر الي عندك وراح يصير البنق مرتفع.

يوجد حل. هو استخدام بروتوكول IPv6 بدل IPv4. ولكن، بندخل في مشكلة ثانية! وهي دعم المناطق والراوترات لهذا البروتوكول. حتى لو توفر الدعم، أنا شخصيا جربت افتح سيرفر بإستخدام بروتوكول IPv6. ولكن، وجدت انه مخفي خلف جدار من نوع ما ولم استطع ارسال او استقبال الإشارة (Packet)!

في ظني الحل للمشكلة الثانية هو الحصول على IPv6 مفتوح، عام، وليس خلف اي جدار.
وهنا ندخل في مشكلة اخرى. وهي طريقة الحصول على IPv6 عام. حيث ان بعض الشركات يحدونه على باقات الأعمال، البعض الآخر تكلمهم ولايفيدونك، والبعض يعطون الIPv6 عام وجاهز بدون وجع راس.

إعجاب واحد (1)