لديك شبكة افتراضية خاصة (VPN) ضرورية في هذا العصر التكنولوجي. أصبحت الـ VPNs أمرًا حاسمًا تدريجيًا للاستخدام الشخصي وخاصة للشركات والمؤسسات. وإذا كنت لا تزال تتردد في اختيار الحل الذي تراهجيدًا لـ VPN، فلماذا لا تفكر في OpenConnect VPN؟
OpenConnect VPN هو حلاً مجانيًا للـ VPN بأداء وميزات تجارية. وفي هذا البرنامج التعليمي، ستتعلم كيفية إعداد والاتصال بخادم OpenConnect VPN (ocserv).
استمر في القراءة وابق بعيدًا عن الجهات الشريرة عن شبكتك!
المتطلبات المسبقة
يشتمل هذا البرنامج التعليمي على عروض توضيحية عملية. لمتابعة، تأكد من وجود ما يلي:
- A Linux server running Debian- This tutorial uses a Debian 11 Bullseye with hostname ocserv-debian.
- مستخدم إداري أو مستخدم غير جذري مع صلاحيات sudo/root.
- A domain name pointed to your Linux server IP address – This tutorial uses a domain name vpn.atadomain.io.
- A client machine like Windows 10 or Linux Desktop – This tutorial uses a Windows 10 machine.
تثبيت خادم OpenConnect VPN
خادم OpenConnect VPN هو خادم VPN مفتوح المصدر قائم على SSL لنظام Linux، متوفر على معظم توزيعات Linux، مثل Debian، Ubuntu، RHEL/CentOS، و Fedora.
يدعم خادم OpenConnect VPN معظم العملاء من سطح المكتب/الكمبيوتر إلى الهواتف المحمولة (Android و iOS). بالمثل، يدعم خادم OpenConnect VPN العديد من خوادم المصادقة، مثل Radius، OpenID، Kerberos، و Smart Card.
ولكن قبل الاستفادة من هذه الميزات، يجب عليك أولاً تثبيت خادم OpenConnect VPN، على النحو التالي:
1. قم بتسجيل الدخول إلى خادمك عبر SSH وقم بتشغيل الأمر التالي apt update
لتحديث وتحديث فهرس الحزم. يتأكد هذا الأمر من أن لديك أحدث معلومات حول الحزمة.

2. بعد ذلك، قم بتشغيل الأمر التالي apt install
لتثبيت حزمة ocserv
.
بمجرد اكتمال التثبيت، سيكون الخدمة الجديدة في systemd تحت اسم ocserv
قائمة و

3. الآن، قم بتشغيل الأوامر التالية باستخدام systemctl
للتحقق من أن خدمة ocserv
قيد التشغيل.
كما يمكن رؤية من الناتج، فإن حالة خدمة ocserv
هي ممكنة وتعمل.

إنشاء شهادات SSL/TLS
بعد تثبيت خادم OpenConnect VPN، الخطوة التالية هي التأكد من أنه يمكنك الاتصال بشكل آمن بخادم OpenConnect VPN. كيف؟ الخطوة الأولى هي إنشاء شهادات SSL/TLS عبر Certbot و LetsEncrypt.
ولكن قبل إصدار الشهادات، تأكد من وجود عنوان البريد الإلكتروني للتسجيل في Let’s Encrypt، وأن اسم النطاق موجه إلى عنوان IP لخادم Debian.
لتوليد شهادات SSL/TLS:
1. قم بتشغيل الأمر أدناه لتثبيت certbot
على خادم Linux الخاص بك.

2. بعد ذلك، قم بتشغيل أمر certbot
أدناه لتوليد شهادات SSL/TLS. تأكد من تغيير عنوان البريد الإلكتروني ([email protected]
) واسم النطاق (vpn.atadomain.io
) وفقًا لذلك.

3. في الختام، قم بتشغيل الأمر التالي للتحقق من وجود شهادات SSL/TLS المولدة في دليل النطاق الخاص بك.
إذا نجحت العملية، سترى المفاتيح العامة (fullchain.pem) والخاصة (privkey.pem) كما هو موضح أدناه.

تكوين خادم OpenConnect VPN
حتى مع وجود شهادات SSL/TSL في تصرفك، ستظل هناك ما لم تقم بتكوين خادم OpenConnect VPN. ستقوم بتعديل تكوين خادم OpenConnect VPN الافتراضي (/etc/ocserv/ocserv.conf) على النحو التالي:
- قم بتغيير طريقة المصادقة الافتراضية.
- قم بتعطيل UDP على خادم OpenConnect VPN.
- قم بتغيير شهادات SSL/TLS الافتراضية.
- إعداد اسم النطاق وشبكة داخلية أو عنوان IP للعملاء.
لتكوين خادم OpenConnect VPN، اتبع الخطوات التالية:
1. قم أولاً بتشغيل الأمر cp
أدناه لنسخ تكوين خادم OpenConnect VPN الافتراضي (ocserv.conf
) إلى ocserv.conf.orig
المخزن في دليل /etc/ocserv
.
2. بعد ذلك، افتح تكوين خادم OpenConnect VPN (/etc/ocserv/ocserv.conf) باستخدام محررك المفضل.
3. قم بتغيير قيمة المعلمة auth
إلى plain[passwd=/etc/ocserv/ocpasswd]
، كما هو موضح أدناه. وبذلك، ستستبدل المصادقة الافتراضية بملف كلمات المرور.
auth = "plain[passwd=/etc/ocserv/ocpasswd]"

4. الآن، ضع علامة #
أمام معلمة udp-port
لتعطيل الاتصالات UDP الافتراضية.
ستستخدم OpenConnect VPN بوضع TCP فقط، والذي يمكنك زيادة سرعته من خلال معلمات النواة.
tcp-port = 443
#udp-port = 443

5. استبدل مسار ملف الشهادة في معلمة server-cert
بالمفتاح العام ومعلمة server-key
بالمفتاح الخاص.
server-cert = /etc/letsencrypt/live/vpn.atadomain.io/fullchain.pem
server-key = /etc/letsencrypt/live/vpn.atadomain.io/privkey.pem

6. غيِّر قيمة المعلمة try-mtu-discovery
إلى true
لتمكين اكتشاف MTU. يزيد ذلك من سرعة وأداء خادم OpenConnect VPN.
try-mtu-discovery = true

7. بعد ذلك، أدخل اسم المجال لخادم OpenConnect VPN إلى معلمة default-domain
، وقم بتغيير عنوان IP الداخلي الافتراضي في المعلمة ipv4-network
.
في هذا المثال، سيستخدم عملاء VPN الشبكة الداخلية 10.11.0.0/24
.
default-domain = vpn.atadomain.io
ipv4-network = 10.11.0.0

8. قم بتعليق معلمات الطريق الافتراضية route
عن طريق إضافة رمز #
في بداية كل سطر لتعطيل بوابة الطريق الافتراضية. بعد الانتهاء، احفظ الملف واخرج من المحرر.
#route = 10.0.0.0/8
#route = 172.16.0.0/12
#route = 192.168.0.0/16
#route = fd00::/8
#route = default

9. الآن، قم بتشغيل الأوامر التالية لـ إعادة تشغيل
خدمة ocserv
، وتطبيق التغييرات، وعرض جميع المنافذ المفتوحة (ss
) على نظامك.
إذا كان خادم OpenConnect VPN قيد التشغيل، سترى المنفذ 443 في حالة الاستماع والمستخدمة من خدمة ocserv، كما هو موضح أدناه.

إضافة مستخدمين إلى خادم OpenConnect VPN
بعد تكوين خادم OpenConnect VPN، تحتاج إلى وسيلة للاتصال به. كيف؟ عن طريق إنشاء وإضافة مستخدم VPN إلى خادم OpenConnect VPN.
لإضافة مستخدم إلى خادم OpenConnect VPN، ستقوم بإنشاء مستخدم VPN وإنشاء ملف كلمة مرور عبر أداة ocpasswd
كما يلي:
قم بتشغيل الأمر ocpasswd
أدناه لإنشاء مستخدم جديد. عند الطلب، أدخل كلمة مرور جديدة للمستخدم وكررها. اختيار هذا البرنامج التعليمي لاسم المستخدم هو atauser
، ولكن يمكنك تقديم اسمك الخاص.
بمجرد إنشاء المستخدم، يتم أيضًا إنشاء ملف كلمة المرور (/etc/ocserv/ocpasswd
).

الآن، قم بتشغيل الأمر cat
التالي لفحص تفاصيل ملف كلمة المرور (/etc/ocserv/ocpasswd
).

إضافة قواعد جدار الحماية UFW لفتح المنافذ الحاسمة لـ OpenConnect
على نظام Debian، الجدار الافتراضي هو IPTables، والذي يتطلب فهمًا عميقًا للشبكات لإعداده. لماذا لا تبسط العملية؟ في هذا البرنامج التعليمي، ستقوم بتثبيت وتكوين UFW كجدار حماية افتراضي.
1. قم بتشغيل الأمر أدناه لـ تثبيت
UFW مع قبول جميع الطلبات تلقائيًا (-y
)

2. بمجرد تثبيت UFW، قم بتشغيل أوامر ufw
التالية لفتح المنافذ الحاسمة لخادم OpenConnect VPN للعمل بشكل صحيح.
عند الطلب، أدخل Y واضغط على Enter للمتابعة مع العملية، كما هو موضح أدناه.

3. في النهاية، قم بتشغيل الأمر التالي للتحقق من حالة UFW والتأكد من تشغيل UFW.
المخرجات أدناه تظهر حالة UFW النشطة، وجميع القواعد الجدار الناري المضافة.

تمكين توجيه المنافذ
مع تشغيل خادم VPN، يجب عليك توجيه حركة المرور من العالم الخارجي إلى خادمك عن طريق تمكين توجيه المنافذ. ستسمح بتوجيه المنافذ على خادم Debian الخاص بك عبر معلمات النواة.
لتمكين توجيه المنافذ، اتبع هذه الخطوات:
قم بتشغيل الأمر التالي، الذي لا ينتج مخرجات إلى الطرفية، لكنه ينشئ ملفًا جديدًا يسمى /etc/sysctl.d/60-ocserv.conf
. يحتوي هذا الملف على معلمات النواة لتمكين توجيه المنافذ على نظامك.
الآن، قم بتشغيل الأمر sysctl
أدناه لتطبيق معلمات النواة الجديدة وتمكين توجيه المنافذ.

إعداد NAT مع UFW
تمكين توجيه المنافذ هو واحد فقط من أولى الخطوات التي يجب اتخاذها. في هذا الوقت، يجب عليك التأكد من أن عملاء VPN يمكنهم الاتصال بالإنترنت أو الشبكات المحددة عبر خادم OpenConnect VPN. كيف؟ عن طريق إعداد NAT عبر UFW.
لإعداد NAT مع UFW لخادم OpenConnect VPN:
1. قم بتشغيل الأمر التالي لفحص قائمة الواجهات على نظامك.
في هذا المثال، ستكون الواجهة eth1 بوابة NAT لعملاء VPN.

2. بعد ذلك، افتح تكوين UFW (/etc/ufw/before.rules) باستخدام محررك المفضل، وأضف الأسطر التالية قبل *filter
الخيار. ستقوم هذه التكوينات بتحويل عملاء VPN (حدد واجهة الإرسال) أو الشبكة الداخلية إلى واجهة eth1
.
تأكد من تغيير الشبكة الفرعية (10.11.0.0/24
) بشبكات عملاء VPN والواجهة (eth1
) بواجهة الشبكة الخاصة بك.
# NAT لخادم OpenConnect VPN
# مع شبكة العملاء 10.11.0.0/24
# إلى واجهة eth1
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.11.0.0/24 -o eth1 -j MASQUERADE
COMMIT

3. أضف الأسطر التالية أدناه في قسم ok icmp code for FORWARD
من خيارات ufw-before-forward
، احفظ الملف، واخرج من المحرر.
تمكين إمكانية إعادة توجيه (المصدر والوجهة) لشبكة عملاء VPN.
# السماح بإعادة توجيه شبكة العملاء VPN
-A ufw-before-forward -s 10.11.0.0/24 -j ACCEPT
-A ufw-before-forward -d 10.11.0.0/24 -j ACCEPT

4. بمجرد الحفظ، قم بتشغيل الأمر التالي لإعادة تحميل قواعد UFW وإعادة تشغيل خدمة UFW. يضمن ذلك تطبيق تكوين NAT على النظام.
5. أخيراً، قم بتشغيل الأمر التالي لفحص حالة NAT على UFW حيث أن الجزء الخلفي لـ UFW هو IPTables.
عند نجاح العملية، ستتلقى إخراجًا مشابهًا للمثال أدناه.

الاتصال بخادم OpenConnect VPN عبر OpenConnect-GUI
بعد اتباع التعليمات، يجب أن يكون لديك الآن خادم OpenConnect VPN الذي يعمل بشكل كامل. ولكن بعد كل الجهد، حان لحظة الحقيقة.
قد يكون خادم OpenConnect VPN قيد التشغيل، ولكن هناك طريقة وحيدة للتحقق — الاتصال بخادم OpenConnect VPN.
للاتصال بخادم OpenConnect VPN، يجب عليك تثبيت تطبيق OpenConnect-GUI:
1. افتح متصفح الويب المفضل لديك وقم بزيارة صفحة GitHub لـ OpenConnect-GUI.
2. بعد ذلك، قم بتنزيل وتثبيت تطبيق OpenConnect VPN لنظام التشغيل Windows.

3. افتح عميل OpenConnect-GUI VPN، وانقر فوق قائمة File → Profiles → New profile (advanced) (أو اضغط على Ctrl+Shift+N). يظهر نافذة صغيرة حيث يمكنك ملء تفاصيل الملف الشخصي الجديد (الخطوة الرابعة).

4. الآن، قم بملء معلومات ملف التكوين الخاص بـ VPN كما يلي:
- الاسم – قدم اسم الاتصال (على سبيل المثال، testvpn).
- البوابة – حدد اسم النطاق لخادم OpenConnect VPN الخاص بك (على سبيل المثال، https://vpn.atadomain.io).
- اسم المستخدم – اسم المستخدم الذي تمت إضافته (atauser) إلى خادم OpenConnect VPN.
بمجرد ملء هذه المعلومات، انقر على حفظ لتأكيد البيانات وإنشاء ملف التكوين الخاص بالـ VPN.

5. بعد ذلك، قم بتعيين ملف تعريف VPN الذي تم إنشاؤه حديثًا (testvpn) كـ الخادم، وانقر على الاتصال لإنشاء اتصال بخادم OpenConnect VPN.

6. عند الطلب، أدخل كلمة المرور الخاصة بمستخدم VPN الخاص بك وانقر فوق موافق.

7. بمجرد الاتصال، يتغير لون القفل إلى اللون الأخضر، كما هو موضح أدناه.

8. في النهاية، انقر على علامة التبويب معلومات VPN للحصول على حالة الاتصال التفصيلية. يجب أن ترى عنوان IP الداخلي الذي حصلت عليه من خادم VPN، وخادم DNS، ونسخة TLS التي تستخدمها.

الختام
خلال هذا البرنامج التعليمي، تعلمت كيفية إعداد خادم VPN OpenConnect. في الوقت نفسه، تعلمت استخدام شهادات SSL/TSL وإضافة قواعد جدار الحماية لإنشاء اتصال آمن بخادم VPN OpenConnect.
بهذه المعرفة الجديدة، لماذا لا تدمج خادم VPN OpenConnect مع عدة خوادم مصادقة متعددة، مثل راديوس و فتح الهوية؟ أو إضافة طبقة من الأمان لمصادقة العميل عبر المصادقة ثنائية العوامل؟