اربط شبكتك الخاصة (بوابة VPN)
اصِل إلى خدمات شبكة خاصة من حاسوبك المحمول أو مكتبك أو سحابة أخرى، بالاسم المستعار، عبر بوابة WireGuard تفتحها من صفحة الشبكات.
ما الذي تفعله
يعمل كل تطبيق وقاعدة بيانات وخدمة تنشرها على شبكة خاصة: شبكة VXLAN تراكبية لا
يراها شيء خارج العنقود. في داخلها تصل الخدمات إلى بعضها بالأسماء المستعارة -
api وdb وredis - دون نشر أي منفذ في أي مكان.
تمدّ البوابة تلك الشبكة إليك. افتح واحدة على شبكة، فيستطيع أي جهاز أو موقع في العالم الانضمام إليها قرينًا: حاسوب محمول، هاتف، موجّه مكتبك، VPC في سحابة أخرى. يصل القرين بعدها إلى خدمات الشبكة مباشرةً، دون أي تعريض عام، ويحلّ أسماءها تمامًا كما تفعل حاوياتك:
curl http://api:8000/health # اسم مستعار مجرّد، عبر محلّل البوابة
curl http://api.app-tier.isogrid.internal:8000/health # أو تحت منطقة الشبكة
psql -h db -U app # قاعدة بيانات غير منشورة إطلاقًا
النفق هو WireGuard - الـ VPN المدمج في نواة لينكس، وله عملاء رسميون لويندوز وماك وiOS وأندرويد، وتدعمه أغلب الموجّهات (MikroTik وOPNsense وpfSense وOpenWrt وUbiquiti) وبوابات VPN السحابية. لا وكيل يُثبَّت على خوادمك ولا حساب عند طرف ثالث: الاتصال زوجا مفاتيح ومنفذ UDP.
فتح بوابة
في صفحة الشبكات، يفتح زر اتصالات VPN على إحدى شبكاتك اللوحة. انقر إنشاء بوابة VPN. تعرض في ثوانٍ:
- نقطة الدخول التي يتصل بها الأقران (عنوان ومنفذ UDP)؛
- المحلّل، عنوان البوابة نفسها داخل النفق؛
- لاحقة الأسماء
<network>.isogrid.internal، التي يجيب تحتها كل اسم مستعار على الشبكة أيضًا؛ - الشبكة الفرعية للشبكة الخاصة، التي يوجّهها الأقران عبر النفق.
مالك الشبكة وحده يمكنه فتح بوابة، ويجب أن تبيعها المنطقة: البوابة التي لا يمكن إنشاؤها بعد تقول ذلك، ويسعّرها المشغّل لكل منطقة.
تُختار عناوين النفق لك من مجال العنونة المشترك (100.64.0.0/10) الذي لا تستعمله
أي شبكة مكتب أو سحابة، فلا تتعارض أبدًا مع الشبكة المحلية لقرين. حدّدها بنفسك فقط
إن كانت شبكتك تستعمله.
إضافة قرين
القرين جهاز واحد أو موقع واحد. أعطه اسمًا، وللموقع الشبكات الفرعية خلفه؛ اتركها فارغة لحاسوب محمول أو هاتف. يحصل كل قرين على زوج مفاتيح ومفتاح مشترك مسبقًا، وعلى إعدادات للاستيراد:
- حاسوب محمول أو هاتف. ثبّت WireGuard، استورد الإعدادات (تمسح تطبيقات الهاتف رمز QR)، فعّلها. تُحلّ الخدمات بعدها بأسمائها المستعارة، مجرّدةً أو تحت المنطقة، عبر محلّل البوابة.
- موقع كامل أو VPC. حمّل الإعدادات على الموجّه أو بوابة VPN السحابية، مع
إعلان الشبكات الفرعية خلفه على القرين. ثم وجّه المنطقة
<network>.isogrid.internalإلى عنوان المحلّل في DNS لديك ليحلّ كل جهاز في الموقع أسماء الخدمات دون تغيير محلّله.
تحوي الإعدادات المفتاح الخاص للقرين. عاملها ككلمة مرور: استوردها، ثم عُد لجلبها من هنا عند الحاجة بدل الاحتفاظ بنسخ في محادثة أو مجلد مشترك.
تدوير المفاتيح
لا يبقى أي مفتاح في إعدادات لا تستطيع استبدالها. ثمة تدويران، وكلاهما نافذ في الثواني التي تحتاجها البوابة لإعادة التشغيل:
- تدوير مفاتيح قرين يستبدل زوج مفاتيح ذلك القرين وحده ومفتاحه المشترك. تتوقف إعداداته الحالية عن العمل؛ استورد الجديدة على الجهاز. لا يلاحظ غيره شيئًا. هذا ما تفعله عند فقدان جهاز أو تسرّب إعدادات.
- تدوير مفاتيح البوابة يستبدل زوج مفاتيح البوابة نفسها. تحويه إعدادات كل قرين، فعلى كل قرين استيراد إعدادات جديدة. هذا تدوير «لا نعرف ما الذي تسرّب».
يمكن أيضًا تعطيل قرين، فيبقى خارجًا دون حذفه، وإزالته. كل عملية من هذه انقطاع لثوانٍ لكل الأقران، يعيد خلالها عملاء WireGuard المحاولة ويتصلون من جديد تلقائيًا.
ما يستطيعه القرين وما لا يستطيعه
البوابة باب للدخول لا للخروج:
- يصل القرين إلى شبكة الشبكة الخاصة الفرعية وإلى محلّل البوابة، ولا شيء غيرهما: لا عُقد العنقود، ولا الإنترنت عبر البوابة، ولا الأقران الآخرين.
- يتدفق المرور من شبكتك إلى الشبكة الخاصة. لا تصل خدمات الشبكة إلى شبكتك المحلية في الاتجاه المعاكس.
- العناوين التي يجوز للقرين الإرسال منها يفرضها WireGuard نفسه من الشبكات الفرعية المعلنة للقرين، قبل أي قاعدة جدار ناري.
- يستعمل كل نفق مفتاحًا مشتركًا مسبقًا فوق أزواج المفاتيح، فتبقى الجلسة خاصة حتى أمام من قد يكسر يومًا تبادل المفاتيح العمومية.
تُعرض آخر مصافحة وعدّادات المرور لكل قرين في اللوحة (تحديث الحالة يسأل العنقود)، وبها تميّز موقعًا متصلًا من آخر غير متصل.
من سطر الأوامر
isogrid networks gateway open --network app-tier
isogrid networks peers add laptop --network app-tier --out .
isogrid networks peers add office --network app-tier --subnet 192.168.1.0/24 --out office.conf
isogrid networks gateway show --network app-tier --live
isogrid networks peers rotate laptop --network app-tier --out .
isogrid networks gateway rotate --network app-tier
انظر مرجع CLI لكل الخيارات.
استكشاف الأخطاء
يصافح القرين لكن لا يُحلّ أي اسم. لا يستعمل العميل محلّل البوابة. على جهاز،
أبقِ سطر DNS في الإعدادات؛ في موقع، وجّه المنطقة إلى عنوان المحلّل، أو استعمل
عناوين الشبكة الخاصة مباشرةً.
لا تكتمل المصافحة أبدًا. UDP نحو نقطة الدخول محجوب في مكان ما من جهتك (جدار ناري مؤسسي، مشغّل هاتف). لا يحتاج WireGuard إلا منفذ UDP واحدًا خارجًا؛ منفذ نقطة الدخول معروض في اللوحة.
تُحلّ الخدمات لكن الاتصالات تعلّق. شبكة الشبكة الخاصة الفرعية تتعارض مع شبكة فرعية من جهتك، فيسلك المسار الاتجاه الخطأ. أنشئ الشبكة بشبكة فرعية من اختيارك، أو أعد عنونة الجهة المتعارضة.
تعرض البوابة خطأ. قد تفتقر عقدة المنطقة إلى وحدة نواة WireGuard أو تعمل بإصدار Docker قديم؛ يرى المشغّل الرسالة بالضبط في لوحة الإدارة، وتُعرض حالة المهمة في اللوحة.