هل تشعر بالقلق بشأن كيف يمكنك الوصول بحرية إلى الإنترنت دون قيود كثيرة واستخدامات غير آمنة للبيانات؟ لا داعي للقلق بعد الآن! ابدأ في استضافة خادم VPN الخاص بك باستخدام OpenVPN في Docker.
مع تقنيات Docker و OpenVPN ، يمكنك إعداد وتشغيل خادم VPN الخاص بك في وقت قصير. وفي هذا البرنامج التعليمي ، ستتعلم الأساسيات الأساسية لتشغيل خادم OpenVPN المستضاف في حاوية Docker.
ابق على اتصال واحمي خادم VPN الخاص بك بأمان مع OpenVPN Docker!
المتطلبات المسبقة
سيكون هذا البرنامج التعليمي عرضًا تطبيقيًا. إذا كنت تتبع معي ، ستحتاج إلى ما يلي:
- A Linux-based operating system (OS) – This tutorial uses Ubuntu v22.04, but other Linux distributions will work.
- تثبيت Docker وتشغيله – يستخدم هذا البرنامج التعليمي Docker v20.10.17.
- جهاز Android مع تطبيق OpenVPN Connect مثبت – يستخدم هذا البرنامج التعليمي Android v11 و OpenVPN Connect v3.2.7.
إنشاء حاوية Docker لـ OpenVPN
التحجيم العنقودي هو مثل تجميع الشفرة وجميع تبعياتها كوحدة برمجية قياسية لتشغيل تطبيقك بسرعة وموثوقية. هناك العديد من الطرق لإنشاء حاوية Docker لـ OpenVPN. يمكنك إما بناء الحاوية من البداية أو سحب حاوية جاهزة من Docker Hub.
ولكن في هذا البرنامج التعليمي ، ستستخدم ملف صورة Docker موجود بالفعل لـ OpenVPN. توفر الحاويات الجاهزة العديد من المزايا حيث يتم اختبارها بشكل جيد ضد الثغرات المختلفة مع دعم من مجتمع واسع من المطورين. علاوة على ذلك ، تساعدك هذه الحاويات في توفير الوقت والتخلص من الحاجة إلى اختراع العجلة.
لإنشاء حاوية Docker لـ OpenVPN ، قم بما يلي:
1. افتح الطرفية الخاصة بك وقم بتشغيل الأمر OVPN_DATA أدناه ، والذي لا يعطي نتيجة ولكن يعين اسمًا لحجم البيانات على ovpn-data-test في المتغير OVPN_DATA.
2. بعد ذلك ، قم بتشغيل أمر إنشاء حجم Docker التالي لإنشاء حجم بيانات بالاسم الذي قمت بتعيينه في المتغير $OVPN_DATA.
هذا الأمر لا يعطي نتيجة ولكنه ينشئ حاوية حجم بيانات لـ OpenVPN حيث يتم تخزين جميع البيانات وملفات التكوين والشهادات.
3. أخيرًا ، قم بتشغيل أمر docker run التالي لتنزيل وتثبيت صورة Docker لـ OpenVPN بما يلي:
- حدد مساحة التخزين (
-v
) داخل الحاوية التي تكون منفصلة عن باقي نظام ملفات الحاوية. في هذه الحالة، يتم تخزين صورة Docker لـ OpenVPN في دليل/etc/openvpn
.
- حدد آلية التسجيل (
--log-driver
) التي تحتفظ بمعلومات الحاويات والخدمات الجارية (none
).
- يوجه Docker بإزالة الحاوية تلقائيًا (–rm) عندما تكون موجودة بالفعل.
تأكد من استبدال (YourPublicIP.com) بعنوان IP العام للخادم الخاص بك (host) أو اسم النطاق (إذا كان لديك واحد) عبر بروتوكول UDP. ولكن لاحظ أنه يمكنك أيضًا استخدام بروتوكول TCP.
TCP هو بروتوكول موجه للاتصالات، بينما UDP هو بروتوكول بدون اتصال

لاحظ أنه إذا كنت تنوي استخدام الاستضافة الذاتية أو عنوان IP العام، يجب عليك إجراء توجيه المنفذ على جهاز التوجيه/المودم الخاص بك.
تأمين عميل OpenVPN بشهادات
لقد قمت بتثبيت عميل Docker لـ OpenVPN بنجاح على جهازك، فرائع! ولكن قبل استخدام OpenVPN، يجب عليك أولاً إعداد تكوين عميل OpenVPN.
فقط لأنك تعمل على OpenVPN لا يعني أنه يجب عليك فتح خادم VPN للعالم. ستحتاج إلى شهادات لتأمين عميل OpenVPN الخاص بك:
1. قم بتشغيل الأمر docker run أدناه لإنشاء واسترداد شهادات CA والعميل. ينشئ هذا الأمر حاويات OpenVPN الجارية (–it) من الصورة المحددة داخل الحاوية الرئيسية.
في معظم الحالات ، قد يستغرق إنشاء شهادات خادم CA وقتًا ، اعتمادًا على موارد الجهاز الذي تستخدمه.
اكتب نعم ، واضغط على Enter ، كما هو موضح أدناه ، لبدء نظام OpenVPN PKI.

2. بعد ذلك ، قم بتقديم وتأكيد كلمة مرور جديدة لشهادة CA ، واضغط على Enter. احتفظ بكلمة المرور في مكان آمن حيث تحتاج إليها لاحقًا أثناء إعداد وإنشاء شهادة العميل.

3. قم بتعيين اسم فريد لشهادة CA الخاصة بك ، واضغط على Enter.

4. الآن ، أدخل عبارة المرور CA التي قمت بتعيينها في الخطوة الثانية للتحقق من تطابق الطلب مع التوقيع.

5. أدخل عبارة المرور الخاصة بك مرة أخرى لتوليد المفتاح الخاص.

6. بعد ذلك ، قم بتشغيل الأمر أدناه لبدء خدمة خادم OpenVPN على Docker لإعداد عميل OpenVPN ، حيث:
- تعيين الخيار -p البورت (1194) الذي يستمع ويبدأ الاتصال بين الخادم والعميل.
يمكنك تغيير المنفذ 1194 ليتناسب مع تفضيلاتك إذا لم تكن مرتاحًا باستخدام منفذ OpenVPN الافتراضي.
- نطاق الوسائط الإضافي -cap-add=NET_ADMIN يطبق القدرات الإضافية لنظام Linux بتعديل واجهات الشبكة التي لا يمنحها Docker بشكل افتراضي.

7. بمجرد تعيين المنفذ ، قم بتشغيل الأمر docker run أدناه لأداء ما يلي:
- توليد شهادة العميل وتنزيل ملف تكوين العميل (.ovpn) من حاوية Docker إلى خادم المضيف. الشهادة المولدة ليست محمية بكلمة مرور، كما هو محدد في الوسيطة no-pass في الأمر.
- قم بتعيين اسم ملف شهادة OpenVPN وتعريف العميل إلى CLIENTAPP. تُخزن الشهادة في دليل مستخدم المضيف، وليس في حاوية Docker.
أدخل كلمة السر الخاصة بك، كما هو موضح أدناه، لإكمال توليد الشهادة.

8. بعد ذلك، قم بتشغيل الأمر أدناه لتوليد وتنزيل ملف تكوين اتصال OpenVPN (ovpn_getclient) من الحاوية إلى خادم المضيف.
9. انتقل إلى دليل user/home في خادم المضيف الخاص بك (جهاز Linux)، وقم بنقل ملف .ovpn (CLIENTAPP.ovpn) إلى جهاز Android الخاص بك.
10. في النهاية، قم بتشغيل تطبيق عميل OpenVPN Connect على جهاز Android الخاص بك.
اضغط على BROWSE تحت علامة التبويب FILE، وحدد ملف .ovpn (CLIENTAPP.ovpn) الذي نقلته إلى جهاز Android الخاص بك. سيتم بذلك إضافة ملف تعريف جديد إلى عميل OpenVPN Connect.

بعد الاتصال الناجح، سترى النتيجة أدناه.

الوصول إلى واجهة المستخدم عبر الويب لـ OpenVPN
هل تقلق بشأن عدد الأوامر التي تحتاج لتغطيتها للوصول إلى خادم VPN الخاص بك؟ لماذا لا تجرب واجهة مستخدم ويب بسيطة؟
`OpenVPN` تقدم مجموعة أدوات لتثبيت وتكوين قائمة على الويب تمكن من نشر حلول الوصول البعيدة لـ VPN بسرعة. يأتي هذا الطقم في حزمة واحدة تسمى خادم الوصول `OpenVPN`.
للوصول إلى واجهة المستخدم على الويب لـ `OpenVPN` ، يجب عليك تثبيت الحزمة:
1. قم بتشغيل الأمر التالي docker pull لتنزيل وتثبيت أحدث حاوية `Docker` لـ `OpenVPN` (openvpn-as) من مستودع `Docker` لخادم `Linux` (linuxserver).

2. بعد التنزيل ، قم بتشغيل الأمر docker create أدناه لإنشاء حاوية `Docker` جديدة تسمى openvpn-as مع ما يلي:
-v /home/docker/openvpn-as/config: /config
– يحدد الدليل لتخزين ملفات التكوين.
--restart=always
– يضمن أن تبدأ الحاوية دائمًا عند تشغيل النظام. يمكنك عدم إضافة هذه الوسيطة إذا لم ترغب في إعادة تشغيل الحاوية.
-e PGID=1001 -e PUID=1001
– يحدد معرف المستخدم للتخلص من مشاكل الإذن بين خادم الاستضافة والحاوية.
-e TZ=Africa/Nairobi
– يحدد معلومات التوقيت.
- –net=host –privileged – يحدد كيف يعمل خادم الوصول `OpenVPN` في الحاوية.

3. بعد ذلك، قم بتشغيل الأمر docker start أدناه للوصول إلى واجهة المستخدم عبر الويب لـ OpenVPN عبر حاوية Docker لخادم الوصول إلى OpenVPN التي قمت بإنشائها في الخطوة الثانية.

4. في النهاية، افتح متصفح الويب المفضل لديك وانتقل إلى واجهة المستخدم عبر الويب لـ OpenVPN باستخدام عنوان IP المحلي الخاص بك (على سبيل المثال، https://YourIP:943/admin). استبدل YourIP بعنوان IP الخادم الفعلي.
سيُرحب بك بصفحة تسجيل الدخول لخادم الوصول إلى OpenVPN إذا كان كل شيء على ما يرام، كما هو موضح أدناه.
أدخل “admin” و”password” لاسم المستخدم وكلمة المرور، ثم انقر فوق تسجيل الدخول للوصول إلى لوحة تحكم خادم الوصول إلى OpenVPN.
يرجى ملاحظة أن اسم المستخدم وكلمة المرور الافتراضيين هما “admin” و”password” على التوالي. يمكنك تغيير بيانات الاعتماد حسب تفضيلاتك.

بعد تسجيل الدخول، سترى لوحة تحكم خادم الوصول إلى OpenVPN كما هو موضح أدناه.

تكوين DNS للاتصال الأسرع والأمن
في هذه المرحلة، يعمل خادم الوصول إلى OpenVPN الخاص بك بشكل صحيح. ولكن لتحسين أداء خادم VPN الخاص بك، يجب عليك تكوين DNS.
لتكوين DNS، يجب عليك الوصول إلى واجهة المستخدم عبر الويب لخادم OpenVPN وتحديث إعدادات DNS بـ Google أو عناوين DNS المفضلة لديك. تقدم Google أسرع خوادم DNS المتاحة، التي ستستخدمها في خادم الوصول إلى OpenVPN الخاص بك.
1. انقر على إعدادات VPN (لوحة اليسار) تحت علامة التبويب CONFIGURATION على لوحة تحكم خادم الوصول إلى OpenVPN الخاص بك.
تمرير إلى قسم إعدادات DNS وتمكين خيار استخدام خوادم DNS المحددة من قبل العملاء، كما هو موضح أدناه.

2. بعد ذلك، قم بتحديث خادم DNS الأساسي (8.8.8.8) والثانوي (8.8.8.4) بعناوين DNS الخاصة بجوجل كما هو موضح أدناه، ثم انقر على حفظ الإعدادات لحفظ التغييرات.

3. بعد حفظ التغييرات، انقر على تحديث الخادم الجاري لإعادة تشغيل الخادم لتنفيذ التغييرات.

4. الآن، انتقل إلى خادم الوصول OpenVPN (على سبيل المثال، https://YourIP:943/admin) على جهاز Linux الخاص بك. استبدل YourIP بعنوان IP الخاص بخادمك. إذا كان التكوين يعمل بشكل صحيح، سترى نفس الصفحة أدناه.
قم بتسجيل الدخول باستخدام بيانات الاعتماد الافتراضية (admin وpassword) كاسم مستخدم وكلمة مرور.

5. انقر على أي رموز منصة لتنزيل تطبيق العميل وانقر على نفسك (ملف مقفل للمستخدم) لتنزيل ملف .ovpn.

6. في النهاية، قم بتشغيل عميل OpenVPN الذي قمت بتنزيله واستيراد ملف .ovpn كما فعلت في الخطوة الأخيرة من “تأمين عميل OpenVPN بشهادات”، كما هو موضح أدناه.

الختام
لا يجب أبدًا أن يكون استضافة خادم VPN مهمة معقدة، وخصوصاً تأمين اتصال الخادم. لحسن الحظ، يعتبر OpenVPN Docker على بُعد خطوة واحدة لإنقاذ الوضع. وفي هذا البرنامج التعليمي، لقد تعلمت كيفية تثبيت وإعداد وتكوين OpenVPN باستخدام Docker في Ubuntu. كما لمسة على تأمين الوصول إلى OpenVPN في حاوية Docker مع OpenVPN CA وشهادات العميل.
بخلاف الوصول إلى خادم OpenVPN الخاص بك عبر واجهة سطر الأوامر، يمكنك الآن القيام بذلك بطريقة بصرية عبر واجهة مستخدم الويب لخادم OpenVPN Access. لقد فهمت بأنك تمكنت من نشر VPN بسرعة عن طريق إنشاء ملفات تكوين العميل لتطبيقات العميل OpenVPN.
لماذا لا تبني على هذه المعرفة الجديدة عن طريق إنشاء خدمات نفق VPN لتطبيقاتك باستخدام WireGuard VPN؟ استكشف عالم الإمكانيات غير المحدودة باستخدام خدمات VPN المستضافة ذاتيًا!