أوبن في بي إن (OpenVPN) هو حل في بي إن (VPN) قوي ومفتوح المصدر يتيح اتصالات آمنة إلى الشبكات البعيدة عبر الإنترنت. في هذا الدليل، سنشرح لك عملية إعداد أوبن في بي إن على خادم دبيان.
الطريقة 1:
التثبيت باستخدام نص برمجي
ابدأ بالحصول على نص التثبيت وجعله قابلاً للتنفيذ:
$ curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
$ chmod +x openvpn-install.sh
ثم قم بتشغيل النص البرمجي (تأكد من أن لديك صلاحيات الجذر وأن وحدة TUN مفعّلة):
$ ./openvpn-install.sh
عند أول تشغيل، سيُطلب منك الإجابة على بعض الأسئلة لتهيئة خادم VPN الخاص بك. بمجرد تثبيت OpenVPN، يمكنك إعادة تشغيل النص البرمجي للقيام بما يلي:
$ ./openvpn-install.sh
مرحبًا بك في تثبيت OpenVPN!
مستودع git متاح على: https://github.com/angristan/openvpn-install
يبدو أن OpenVPN مثبّت بالفعل.
ماذا تريد أن تفعل؟
1) إضافة مستخدم جديد
2) إلغاء مستخدم موجود
3) إزالة OpenVPN
4) الخروج
حدد خيارًا [1-4]:
وهذا يتيح لك إضافة مستخدمين جدد أو إلغاء مستخدمين موجودين.
الطريقة 2:
الخطوة 1: تحديث وترقية دبيان
قبل تثبيت أي برنامج، من الضروري تحديث وترقية نظام دبيان الخاص بك. نفّذ الأوامر التالية:
$ sudo apt update
$ sudo apt upgrade
الخطوة 2: تثبيت OpenVPN
قم بتثبيت OpenVPN على خادم دبيان الخاص بك باستخدام الأمر التالي:
$ sudo apt install openvpn easy-rsa
الخطوة 3: إنشاء الشهادات والمفاتيح
يعتمد OpenVPN على الشهادات والمفاتيح للمصادقة بين العميل والخادم. لإنشاء هذه الملفات، استخدم نص easy-rsa المضمّن:
$ make-cadir ~/openvpn-ca && cd ~/openvpn-ca
قم بتعديل ملف vars
لتكوين متغيرات سلطة الشهادة:
set_var EASYRSA_REQ_COUNTRY "SA"
set_var EASYRSA_REQ_PROVINCE "الرياض"
set_var EASYRSA_REQ_CITY "الرياض"
set_var EASYRSA_REQ_ORG "مؤسستي"
set_var EASYRSA_REQ_EMAIL "[email protected]"
set_var EASYRSA_REQ_OU "وحدتي التنظيمية"
قم بإنشاء الشهادات والمفاتيح المطلوبة:
$ ./easyrsa init-pki
$ ./easyrsa build-ca
$ ./easyrsa gen-req server nopass
$ ./easyrsa sign-req server server
$ ./easyrsa gen-dh
$ openvpn --genkey --secret pki/ta.key
سيتم تخزين هذه الشهادات والمفاتيح في الدليل /root/openvpn-ca/pki
.
الخطوة 4: تهيئة OpenVPN
بعد إنشاء الشهادات والمفاتيح، تابع تهيئة OpenVPN. أنشئ ملف تكوين جديد باستخدام الأمر التالي:
$ zcat /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf > /dev/null
انسخ الملفات الضرورية إلى دليل OpenVPN:
$ cp /root/openvpn-ca/pki/{ca.crt,dh.pem,ta.key} /etc/openvpn
$ cp /root/openvpn-ca/pki/issued/server.crt /etc/openvpn
$ cp /root/openvpn-ca/pki/private/server.key /etc/openvpn
عدّل /etc/openvpn/server.conf
ليتطابق مع ما يلي:
ca ca.crt
cert server.crt
key server.key #احتفظ بهذا الملف آمنًا
dh dh.pem
;tls-auth ta.key 0
tls-crypt ta.key
احفظ الملف وأغلقه.
الخطوة 5: تمكين تمرير IP
عدّل تهيئة sysctl:
$ sudo nano /etc/sysctl.conf
ألغِ تعليق السطر التالي:
net.ipv4.ip_forward=1
طبّق التغييرات:
$ sudo sysctl -p
الخطوة 6: تشغيل OpenVPN وتفعيله
شغّل خدمة OpenVPN وفعّلها:
$ sudo systemctl start openvpn@server
$ sudo systemctl enable openvpn@server
يحدد @server
ملف التكوين الذي أنشأته سابقًا.
الخطوة 7: تهيئة جدار الحماية
اسمح بمرور حركة OpenVPN عبر جدار الحماية من خلال إنشاء قاعدة جديدة:
$ sudo ufw allow OpenVPN
الخطوة 8: الاتصال بخادم OpenVPN
مع تشغيل خادم OpenVPN، يمكنك الاتصال به من جهاز كمبيوتر عميل. قم بتثبيت برنامج عميل OpenVPN وقم بتنزيل ملف تهيئة العميل من الخادم:
$ ./easyrsa gen-req client1 nopass
$ ./easyrsa sign-req client client1
$ cp pki/private/client1.key /etc/openvpn/client/
$ cp pki/issued/client1.crt /etc/openvpn/client/
$ cp pki/{ca.crt,ta.key} /etc/openvpn/client/
أنشئ ملف تكوين عميل في الدليل /root/openvpn-ca
:
$ cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /root/openvpn-ca/
عدّل الملف باستخدام nano
وقم بتهيئة المتغيرات:
remote my-server-1 1194 # my-server-1 هو عنوان IP العام للخادم
user nobody
group nogroup
;ca ca.crt
;cert client.crt
;key client.key
;tls-auth ta.key 1
key-direction 1
أنشئ نص برمجي لدمج تهيئة الأساس مع ملفات الشهادة والمفتاح والتشفير الضرورية:
$ nano config_gen.sh
ضَمِّن المحتوى التالي:
#!/bin/bash
# الوسيط الأول: معرف العميل
KEY_DIR=/etc/openvpn/client
OUTPUT_DIR=/root
BASE_CONFIG=/root/openvpn-ca/client.conf
cat ${BASE_CONFIG} \
<(echo -e '<ca>') \
${KEY_DIR}/ca.crt \
<(echo -e '</ca>\n<cert>') \
${KEY_DIR}/${1}.crt \
<(echo -e '</cert>\n<key>') \
${KEY_DIR}/${1}.key \
<(echo -e '</key>\n<tls-crypt>') \
${KEY_DIR}/ta.key \
<(echo -e '</tls-crypt>') \
> ${OUTPUT_DIR}/${1}.ovpn
جعل النص البرمجي قابلاً للتنفيذ:
$ chmod 700 /root/openvpn-ca/config_gen.sh
$ ./config_gen.sh client1
ستنشئ هذه الأوامر ملف client1.ovpn
في الدليل /root/
. انسخ هذا الملف إلى جهاز الكمبيوتر الخاص بك واستخدمه للاتصال بخادم OpenVPN.
الخلاصة
في هذا الدليل، أوضحنا كيفية تثبيت وتهيئة OpenVPN على خادم دبيان. مع OpenVPN، يمكنك الوصول بأمان إلى الشبكات البعيدة ومواردها من أي مكان في العالم.