strongSwan هو تطبيق مفتوح المصدر ومتعدد المنصات وذو ميزات كاملة وشائع الاستخدام ومبني على بروتوكول IPsec VPN (شبكة افتراضية خاصة) يعمل على نظامي Linux وFreeBSD وOS X وWindows وAndroid وiOS. يعتبر في المقام الأول دايمون لإنشاء المفاتيح الذي يدعم بروتوكولات تبادل المفاتيح عبر الإنترنت (IKEv1 و IKEv2) لإنشاء اتصالات أمان (SA) بين جهازين.
هذه المقالة توضح كيفية إعداد بوابات IPSec VPN بين المواقع باستخدام strongSwan على خوادم Ubuntu و Debian. بواسطة بوابات الموقع إلى الموقع نعني أن لكل بوابة أمان مجموعة فرعية خلفها. بالإضافة إلى ذلك، سيتم المصادقة على بعضها البعض باستخدام مفتاح مشترك مسبق (PSK).
بيئة الاختبار
تذكر أن تقوم بتعويض العناوين الآتية بعناوين الـIP الحقيقية الخاصة بك لتكوين بيئتك.
بوابة الموقع 1 (tecmint-devgateway)
OS 1: Debian or Ubuntu Public IP: 10.20.20.1 Private IP: 192.168.0.101/24 Private Subnet: 192.168.0.0/24
بوابة الموقع 2 (tecmint-prodgateway)
OS 2: Debian or Ubuntu Public IP: 10.20.20.3 Private IP: 10.0.2.15/24 Private Subnet: 10.0.2.0/24
الخطوة 1: تمكين إعادة توجيه حزم النواة
1. أولاً، تحتاج إلى تكوين النواة لتمكين إعادة توجيه الحزم عن طريق إضافة المتغيرات النظامية المناسبة في ملف التكوين /etc/sysctl.conf على كل من بوابات الأمان.
$ sudo vim /etc/sysctl.conf
ابحث عن الأسطر التالية وقم بفك التعليق عنها وضع قيمها كما هو موضح (اقرأ التعليقات في الملف للمزيد من المعلومات).
net.ipv4.ip_forward = 1 net.ipv6.conf.all.forwarding = 1 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0
2. بعد ذلك، قم بتحميل الإعدادات الجديدة عن طريق تشغيل الأمر التالي.
$ sudo sysctl -p

3. إذا كانت لديك خدمة جدار حماية UFW ممكنة، فستحتاج إلى إضافة القواعد التالية إلى ملف التكوين /etc/ufw/before.rules مباشرة قبل القواعد المرشحة في بوابات الأمان.
بوابة الموقع 1 (tecmint-devgateway)
*nat :POSTROUTING ACCEPT [0:0] -A POSTROUTING -s 10.0.2.0/24 -d 192.168.0.0/24 -j MASQUERADE COMMIT
بوابة الموقع 2 (tecmint-prodgateway)
*nat :POSTROUTING ACCEPT [0:0] -A POSTROUTING -s 192.168.0.0/24 -d 10.0.2.0/24 -j MASQUERADE COMMIT
4. بمجرد إضافة قواعد الحماية الجدارية، ثم قم بتطبيق التغييرات الجديدة عن طريق إعادة تشغيل UFW كما هو موضح.
$ sudo ufw disable $ sudo ufw enable
الخطوة 2: تثبيت strongSwan في Debian و Ubuntu
5. قم بتحديث ذاكرة التخزين المؤقت للحزمة على كلتا البوابتين الأمنيتين وقم بتثبيت حزمة strongswan باستخدام مدير الحزم APT.
$ sudo apt update $ sudo apt install strongswan
6. بمجرد اكتمال التثبيت، سيبدأ نص التثبيت خدمة strongswan ويمكنها التشغيل تلقائيًا عند بدء تشغيل النظام. يمكنك التحقق من حالتها وما إذا كانت ممكنة باستخدام الأمر التالي.
$ sudo systemctl status strongswan.service $ sudo systemctl is-enabled strongswan.service
الخطوة 3: تكوين بوابات الأمان
7. بعد ذلك، تحتاج إلى تكوين بوابات الأمان باستخدام ملف التكوين /etc/ipsec.conf.
بوابة الموقع 1 (tecmint-devgateway)
$ sudo cp /etc/ipsec.conf /etc/ipsec.conf.orig $ sudo nano /etc/ipsec.conf
انسخ والصق الاعدادات التالية في الملف.
config setup charondebug="all" uniqueids=yes conn devgateway-to-prodgateway type=tunnel auto=start keyexchange=ikev2 authby=secret left=10.20.20.1 leftsubnet=192.168.0.101/24 right=10.20.20.3 rightsubnet=10.0.2.15/24 ike=aes256-sha1-modp1024! esp=aes256-sha1! aggressive=no keyingtries=%forever ikelifetime=28800s lifetime=3600s dpddelay=30s dpdtimeout=120s dpdaction=restart
بوابة الموقع 2 (tecmint-prodgateway)
$ sudo cp /etc/ipsec.conf /etc/ipsec.conf.orig $ sudo nano /etc/ipsec.conf
انسخ والصق الاعدادات التالية في الملف.
config setup charondebug="all" uniqueids=yes conn prodgateway-to-devgateway type=tunnel auto=start keyexchange=ikev2 authby=secret left=10.20.20.3 leftsubnet=10.0.2.15/24 right=10.20.20.1 rightsubnet=192.168.0.101/24 ike=aes256-sha1-modp1024! esp=aes256-sha1! aggressive=no keyingtries=%forever ikelifetime=28800s lifetime=3600s dpddelay=30s dpdtimeout=120s dpdaction=restart
وهنا معنى كل معلمة في الاعدادات:
- اعداد التكوين – يحدد معلومات التكوين العامة لبروتوكول IPSec التي تنطبق على جميع الاتصالات.
- تفعيل التصحيح الأوتوماتيكي – يعرف كم من مخرجات تصحيح Charon يجب تسجيلها.
- معرفات فريدة – يحدد ما إذا كان يجب الاحتفاظ بمعرف مشارك معين فريدًا.
- conn prodgateway-to-devgateway – يعرف اسم الاتصال.
- نوع – يحدد نوع الاتصال.
- تلقائي – كيفية التعامل مع الاتصال عند بدء أو إعادة تشغيل IPSec.
- تبادل المفاتيح – يحدد إصدار بروتوكول IKE المستخدم.
- المصادقة عن طريق – يحدد كيفية مصادقة الأقران على بعضهم البعض.
- اليسار – يحدد عنوان IP لواجهة الشبكة العامة للمشارك الأيسر.
- الشبكة الفرعية اليسرى – يحدد الشبكة الفرعية الخاصة خلف المشارك الأيسر.
- اليمين – يحدد عنوان IP لواجهة الشبكة العامة للمشارك الأيمن.
- الشبكة الفرعية اليمنى – يحدد الشبكة الفرعية الخاصة خلف المشارك الأيسر.
- ike – يحدد قائمة من خوارزميات تشفير/المصادقة لاتفاقية تبادل المفاتيح الإنترنت (IKE/ISAKMP) التي يجب استخدامها. يمكنك إضافة قائمة مفصولة بفواصل.
- esp – يحدد قائمة من خوارزميات تشفير/المصادقة ESP التي يجب استخدامها للاتصال. يمكنك إضافة قائمة مفصولة بفواصل.
- aggressive – يحدد ما إذا كان يجب استخدام وضع الاتصال القوي (Aggressive) أو الوضع الرئيسي (Main Mode).
- keyingtries – يحدد عدد المحاولات التي يجب إجراؤها للتفاوض على اتصال.
- ikelifetime – يحدد مدة صلاحية قناة التبادل الرئيسية للاتصال قبل إعادة التفاوض.
- lifetime – يحدد مدى صلاحية حالة معينة من الاتصال، من التفاوض الناجح إلى الانتهاء.
- dpddelay – يحدد فاصل زمني لإرسال رسائل “أنت هنا” (R_U_THERE) أو تبادلات معلوماتية إلى النظير.
- dpdtimeout – يحدد فاصل زمني مهلة، بعد الذي يتم فيه حذف جميع الاتصالات إلى نظير في حالة الخمول.
- dpdaction – يحدد كيفية استخدام بروتوكول الكشف عن النظير الميت (DPD) لإدارة الاتصال.
لمزيد من المعلومات حول المعلمات التكوينية أعلاه، اقرأ صفحة الرجل الخاصة بملف ipsec.conf بتشغيل الأمر.
$ man ipsec.conf
الخطوة 4: تكوين PSK للمصادقة من نقطة إلى نقطة
8. بعد تكوين بوابتي الأمان، قم بإنشاء PSK آمن لاستخدامه من قبل النقاط باستخدام الأمر التالي.
$ head -c 24 /dev/urandom | base64

9. بعد ذلك، أضف الـ PSK في ملف /etc/ipsec.secrets على كل من البوابات.
$ sudo vim /etc/ipsec.secrets
انسخ والصق السطر التالي.
------- Site 1 Gateway (tecmint-devgateway) ------- 10.20.20.1 10.20.20.3 : PSK "qLGLTVQOfqvGLsWP75FEtLGtwN3Hu0ku6C5HItKo6ac=" ------- Site 2 Gateway (tecmint-prodgateway) ------- 10.20.20.3 10.20.20.1 : PSK "qLGLTVQOfqvGLsWP75FEtLGtwN3Hu0ku6C5HItKo6ac="
10. أعد تشغيل برنامج IPSec وتحقق من حالته لعرض الاتصالات.
$ sudo ipsec restart $ sudo ipsec status

11. في النهاية، تأكد من أنه يمكنك الوصول إلى الشبكات الفرعية الخاصة من أي من بوابات الأمان عن طريق تشغيل أمر ping.
$ ping 192.168.0.101 $ ping 10.0.2.15

12. بالإضافة إلى ذلك، يمكنك إيقاف وبدء تشغيل IPSec كما هو موضح.
$ sudo ipsec stop $ sudo ipsec start
13. لمعرفة المزيد عن أوامر IPSec لإحضار الاتصالات يدوياً وغير ذلك، راجع صفحة المساعدة الخاصة بـ IPSec.
$ ipsec --help
هذا كل شيء! في هذه المقالة، قدمنا وصفاً لكيفية إعداد VPN IPSec من موقع إلى موقع باستخدام strongSwan على خوادم Ubuntu و Debian، حيث تم تكوين كل من بوابات الأمان للمصادقة على بعضها البعض باستخدام PSK. إذا كانت لديك أي أسئلة أو أفكار للمشاركة، فالرجاء التواصل معنا عبر نموذج التعليقات أدناه.
Source:
https://www.tecmint.com/setup-ipsec-vpn-with-strongswan-on-debian-ubuntu/