ديف أوبس

إعداد OpenVPN على أوبنتو

الضبط المتقدم لـ OpenVPN على أوبنتو

مقدمة

تُعتبر الشبكات الخاصة الافتراضية (VPN) أداة أساسية في تأمين الاتصال عبر الإنترنت وحماية الخصوصية. تعد أداة OpenVPN واحدة من أبرز الحلول المستخدمة لتأمين الاتصال على الشبكة، وذلك بفضل مرونتها العالية، أمانها، وسهولة تكاملها مع مختلف الأنظمة الأساسية. على الرغم من أن OpenVPN يدعم العديد من الأنظمة، إلا أن توزيعة أوبنتو تُعد واحدة من الأنظمة الأكثر شيوعًا التي يتم استخدامها مع OpenVPN نظرًا لقوة النظام والمزايا التي يوفرها.

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

1. تثبيت OpenVPN على أوبنتو

قبل البدء في الضبط المتقدم لـ OpenVPN، يجب أولاً تثبيت الحزمة الأساسية للبرنامج. يمكن تنفيذ هذا بسهولة من خلال مدير الحزم في أوبنتو.

لتثبيت OpenVPN، يمكنك اتباع الخطوات التالية:

  1. تحديث مستودعات الحزم:

    bash
    sudo apt update
  2. تثبيت الحزمة:

    bash
    sudo apt install openvpn
  3. بعد التثبيت، تأكد من أن الخدمة تعمل بشكل صحيح باستخدام الأمر التالي للتحقق من حالة OpenVPN:

    bash
    systemctl status openvpn@server

2. إعداد خادم OpenVPN

بعد تثبيت OpenVPN، يجب إعداد الخادم قبل استخدامه. يشمل إعداد الخادم إنشاء شهادة SSL، مفاتيح، وتكوين ملفات الإعدادات الخاصة بالخادم.

2.1 إنشاء شهادة الخادم ومفاتيح التشفير

الخطوة الأولى هي إنشاء شهادة خادم SSL. سنتبع استخدام أداة easy-rsa لإنشاء الشهادات والمفاتيح المطلوبة.

  1. تثبيت easy-rsa:

    bash
    sudo apt install easy-rsa
  2. نسخ ملفات easy-rsa إلى دليل مناسب:

    bash
    make-cadir ~/openvpn-ca cd ~/openvpn-ca
  3. إعداد متغيرات OpenVPN عن طريق تحرير ملف vars:

    bash
    nano vars

    يجب تعديل القيم الافتراضية لتلائم بيئة الشبكة الخاصة بك، مثل اسم الدولة، المنظمة، واسم الشهادة.

  4. بناء الشهادات والمفاتيح:

    bash
    source vars ./clean-all ./build-ca

    ستتبع نفس الخطوات لإنشاء الشهادة الخاصة بالخادم (build-server) والمفاتيح الخاصة به.

2.2 إعداد خادم OpenVPN
  1. إنشاء ملف إعدادات الخادم (server.conf):

    قم بإنشاء الملف في المجلد /etc/openvpn/:

    bash
    sudo nano /etc/openvpn/server.conf
  2. املأ الملف بالإعدادات الأساسية، مثل:

    bash
    port 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"
  3. قم بتفعيل الخدمة الخاصة بـ OpenVPN وبدء تشغيلها:

    bash
    sudo systemctl start openvpn@server sudo systemctl enable openvpn@server

3. إعداد العميل

الخطوة التالية هي إعداد العميل ليتصل بخادم OpenVPN الذي قمت بإعداده. تشمل العملية إنشاء شهادات العميل، وإنشاء ملف إعدادات العميل.

3.1 إنشاء شهادات العميل
  1. العودة إلى مجلد easy-rsa الذي قمت بإنشائه في الخطوات السابقة، ثم إنشاء شهادة ومفتاح للعميل باستخدام الأوامر التالية:

    bash
    cd ~/openvpn-ca source vars ./build-key client1
  2. بعد إنشاء الشهادات، قم بنقل الملفات اللازمة إلى جهاز العميل. تتضمن هذه الملفات client1.crt، client1.key، ca.crt، و ta.key.

3.2 إعداد ملف العميل
  1. قم بإنشاء ملف إعدادات العميل في جهاز العميل في المجلد /etc/openvpn/ أو أي مكان مناسب:

    bash
    sudo nano /etc/openvpn/client.conf
  2. أضف المحتويات التالية إلى الملف:

    bash
    client 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
  3. بعد حفظ الملف، قم بتشغيل OpenVPN على جهاز العميل:

    bash
    sudo 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، أضف السطر التالي لتفعيل التشفير:

bash
cipher AES-256-CBC
4.2 استخدام المصادقة الثنائية (2FA)

لتعزيز الأمان، يمكنك تفعيل المصادقة الثنائية (2FA) باستخدام شهادة TLS-Auth. تضيف هذه الخطوة طبقة أمان إضافية للتحقق من أن الاتصال قادم من العميل المصرح به.

  1. على الخادم، قم بإنشاء مفتاح TLS-Auth:

    bash
    openvpn --genkey --secret ta.key
  2. نقل الملف ta.key إلى جهاز العميل و تحديث إعدادات الملف ليشمل السطر التالي:

    bash
    tls-auth ta.key 1
4.3 تحديد نطاقات IP مخصصة للعميل

لتخصيص عناوين IP مخصصة للعميل عند الاتصال بشبكة OpenVPN، يمكنك تحديد نطاقات IP مختلفة لكل عميل باستخدام خيار ifconfig-pool في ملف server.conf.

مثال:

bash
ifconfig-pool 10.8.0.10 10.8.0.20
4.4 تفعيل الضغط لتحسين الأداء

إذا كنت تستخدم شبكة بطيئة أو تحتاج إلى تحسين الأداء، يمكنك تفعيل الضغط بين العميل والخادم باستخدام خيار comp-lzo.

أضف السطر التالي إلى ملف إعدادات OpenVPN:

bash
comp-lzo
4.5 توجيه حركة المرور عبر OpenVPN

إذا كنت ترغب في أن يتم توجيه كل حركة المرور من الإنترنت عبر OpenVPN، يمكنك تمكين خاصية redirect-gateway في ملف الإعدادات:

bash
push "redirect-gateway def1 bypass-dhcp"

5. إدارة الجدار الناري

عند تشغيل OpenVPN، يجب التأكد من أن الجدار الناري يتيح مرور البيانات على المنفذ المخصص لـ OpenVPN (المنفذ 1194 في هذه الحالة). يمكنك تكوين الجدار الناري باستخدام ufw أو iptables للسماح بالاتصالات.

على سبيل المثال، لفتح المنفذ 1194 باستخدام ufw:

bash
sudo ufw allow 1194/udp

6. مراقبة وإدارة OpenVPN

لضمان أن OpenVPN يعمل بشكل مستقر، من المهم مراقبة الأداء وحالة الخادم. يمكنك استخدام الأدوات التالية:

  1. عرض حالة OpenVPN:

    bash
    systemctl status openvpn@server
  2. عرض سجلات OpenVPN:

    bash
    journalctl -u openvpn@server
  3. عرض اتصالات OpenVPN:

    bash
    sudo openvpn3 show sessions

الخاتمة

يعد إعداد OpenVPN على أوبنتو أحد الخيارات الرائعة لإنشاء شبكة خاصة آمنة، سواء على مستوى الأفراد أو المؤسسات. من خلال اتباع الخطوات المتقدمة التي تم ذكرها في هذا المقال، يمكن للمستخدمين تخصيص بيئة OpenVPN لتلبية احتياجات الأمان الخاصة بهم.