الضبط المتقدم لـ OpenVPN على أوبنتو
مقدمة
تُعتبر الشبكات الخاصة الافتراضية (VPN) أداة أساسية في تأمين الاتصال عبر الإنترنت وحماية الخصوصية. تعد أداة OpenVPN واحدة من أبرز الحلول المستخدمة لتأمين الاتصال على الشبكة، وذلك بفضل مرونتها العالية، أمانها، وسهولة تكاملها مع مختلف الأنظمة الأساسية. على الرغم من أن OpenVPN يدعم العديد من الأنظمة، إلا أن توزيعة أوبنتو تُعد واحدة من الأنظمة الأكثر شيوعًا التي يتم استخدامها مع OpenVPN نظرًا لقوة النظام والمزايا التي يوفرها.
في هذا المقال، سنتناول كيفية ضبط OpenVPN على أوبنتو بطريقة متقدمة، مع التركيز على المفاهيم الأساسية والإعدادات المتقدمة التي تساعد على تأمين الاتصال وتخصيص الإعدادات لتلبية احتياجات الشبكة الخاصة بك.
1. تثبيت OpenVPN على أوبنتو
قبل البدء في الضبط المتقدم لـ OpenVPN، يجب أولاً تثبيت الحزمة الأساسية للبرنامج. يمكن تنفيذ هذا بسهولة من خلال مدير الحزم في أوبنتو.
لتثبيت OpenVPN، يمكنك اتباع الخطوات التالية:
-
تحديث مستودعات الحزم:
bashsudo apt update -
تثبيت الحزمة:
bashsudo apt install openvpn -
بعد التثبيت، تأكد من أن الخدمة تعمل بشكل صحيح باستخدام الأمر التالي للتحقق من حالة OpenVPN:
bashsystemctl status openvpn@server
2. إعداد خادم OpenVPN
بعد تثبيت OpenVPN، يجب إعداد الخادم قبل استخدامه. يشمل إعداد الخادم إنشاء شهادة SSL، مفاتيح، وتكوين ملفات الإعدادات الخاصة بالخادم.
2.1 إنشاء شهادة الخادم ومفاتيح التشفير
الخطوة الأولى هي إنشاء شهادة خادم SSL. سنتبع استخدام أداة easy-rsa لإنشاء الشهادات والمفاتيح المطلوبة.
-
تثبيت easy-rsa:
bashsudo apt install easy-rsa -
نسخ ملفات easy-rsa إلى دليل مناسب:
bashmake-cadir ~/openvpn-ca cd ~/openvpn-ca -
إعداد متغيرات OpenVPN عن طريق تحرير ملف
vars:bashnano varsيجب تعديل القيم الافتراضية لتلائم بيئة الشبكة الخاصة بك، مثل اسم الدولة، المنظمة، واسم الشهادة.
-
بناء الشهادات والمفاتيح:
bashsource vars ./clean-all ./build-caستتبع نفس الخطوات لإنشاء الشهادة الخاصة بالخادم (
build-server) والمفاتيح الخاصة به.
2.2 إعداد خادم OpenVPN
-
إنشاء ملف إعدادات الخادم (
server.conf):قم بإنشاء الملف في المجلد
/etc/openvpn/:bashsudo nano /etc/openvpn/server.conf -
املأ الملف بالإعدادات الأساسية، مثل:
bashport 1194 proto udp dev tun ca ca.crt cert server.crt key server.key dh dh2048.pem server 10.8.0.0 255.255.255.0 push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 8.8.8.8" -
قم بتفعيل الخدمة الخاصة بـ OpenVPN وبدء تشغيلها:
bashsudo systemctl start openvpn@server sudo systemctl enable openvpn@server
3. إعداد العميل
الخطوة التالية هي إعداد العميل ليتصل بخادم OpenVPN الذي قمت بإعداده. تشمل العملية إنشاء شهادات العميل، وإنشاء ملف إعدادات العميل.
3.1 إنشاء شهادات العميل
-
العودة إلى مجلد easy-rsa الذي قمت بإنشائه في الخطوات السابقة، ثم إنشاء شهادة ومفتاح للعميل باستخدام الأوامر التالية:
bashcd ~/openvpn-ca source vars ./build-key client1 -
بعد إنشاء الشهادات، قم بنقل الملفات اللازمة إلى جهاز العميل. تتضمن هذه الملفات
client1.crt،client1.key،ca.crt، وta.key.
3.2 إعداد ملف العميل
-
قم بإنشاء ملف إعدادات العميل في جهاز العميل في المجلد
/etc/openvpn/أو أي مكان مناسب:bashsudo nano /etc/openvpn/client.conf -
أضف المحتويات التالية إلى الملف:
bashclient dev tun proto udp remote your-server-ip 1194 resolv-retry infinite nobind user nobody group nogroup persist-key persist-tun ca ca.crt cert client1.crt key client1.key tls-auth ta.key 1 cipher AES-256-CBC comp-lzo verb 3 -
بعد حفظ الملف، قم بتشغيل OpenVPN على جهاز العميل:
bashsudo systemctl start openvpn@client sudo systemctl enable openvpn@client
4. إعدادات متقدمة لـ OpenVPN
تتعدد الخيارات المتقدمة التي يمكنك تطبيقها على OpenVPN لتخصيص إعداداته بشكل أفضل وفقًا لاحتياجاتك. هنا سنناقش بعض الإعدادات المتقدمة التي يمكن أن تعزز الأمان والأداء.
4.1 تفعيل التشفير باستخدام AES-256-CBC
لضمان أقصى درجات الأمان، يمكنك تكوين OpenVPN لاستخدام خوارزمية تشفير قوية مثل AES-256-CBC. يتم تفعيل ذلك عن طريق تعديل إعدادات التشفير في ملف الإعدادات الخاص بالخادم والعميل.
في ملف server.conf و client.conf، أضف السطر التالي لتفعيل التشفير:
bashcipher AES-256-CBC
4.2 استخدام المصادقة الثنائية (2FA)
لتعزيز الأمان، يمكنك تفعيل المصادقة الثنائية (2FA) باستخدام شهادة TLS-Auth. تضيف هذه الخطوة طبقة أمان إضافية للتحقق من أن الاتصال قادم من العميل المصرح به.
-
على الخادم، قم بإنشاء مفتاح TLS-Auth:
bashopenvpn --genkey --secret ta.key -
نقل الملف
ta.keyإلى جهاز العميل و تحديث إعدادات الملف ليشمل السطر التالي:bashtls-auth ta.key 1
4.3 تحديد نطاقات IP مخصصة للعميل
لتخصيص عناوين IP مخصصة للعميل عند الاتصال بشبكة OpenVPN، يمكنك تحديد نطاقات IP مختلفة لكل عميل باستخدام خيار ifconfig-pool في ملف server.conf.
مثال:
bashifconfig-pool 10.8.0.10 10.8.0.20
4.4 تفعيل الضغط لتحسين الأداء
إذا كنت تستخدم شبكة بطيئة أو تحتاج إلى تحسين الأداء، يمكنك تفعيل الضغط بين العميل والخادم باستخدام خيار comp-lzo.
أضف السطر التالي إلى ملف إعدادات OpenVPN:
bashcomp-lzo
4.5 توجيه حركة المرور عبر OpenVPN
إذا كنت ترغب في أن يتم توجيه كل حركة المرور من الإنترنت عبر OpenVPN، يمكنك تمكين خاصية redirect-gateway في ملف الإعدادات:
bashpush "redirect-gateway def1 bypass-dhcp"
5. إدارة الجدار الناري
عند تشغيل OpenVPN، يجب التأكد من أن الجدار الناري يتيح مرور البيانات على المنفذ المخصص لـ OpenVPN (المنفذ 1194 في هذه الحالة). يمكنك تكوين الجدار الناري باستخدام ufw أو iptables للسماح بالاتصالات.
على سبيل المثال، لفتح المنفذ 1194 باستخدام ufw:
bashsudo ufw allow 1194/udp
6. مراقبة وإدارة OpenVPN
لضمان أن OpenVPN يعمل بشكل مستقر، من المهم مراقبة الأداء وحالة الخادم. يمكنك استخدام الأدوات التالية:
-
عرض حالة OpenVPN:
bashsystemctl status openvpn@server -
عرض سجلات OpenVPN:
bashjournalctl -u openvpn@server -
عرض اتصالات OpenVPN:
bashsudo openvpn3 show sessions
الخاتمة
يعد إعداد OpenVPN على أوبنتو أحد الخيارات الرائعة لإنشاء شبكة خاصة آمنة، سواء على مستوى الأفراد أو المؤسسات. من خلال اتباع الخطوات المتقدمة التي تم ذكرها في هذا المقال، يمكن للمستخدمين تخصيص بيئة OpenVPN لتلبية احتياجات الأمان الخاصة بهم.

