OpenVPN هو برنامج VPN مجاني مفتوح المصدر (شبكة افتراضية خاصة) يتيح لك الاتصال بشكل آمن بشبكة بعيدة عبر الإنترنت. في هذه المقالة، سنرشدك خلال عملية تثبيت OpenVPN على خادم Ubuntu 18.04/20.04/22.04.
الطريقة 1:
تثبيت OpenVPN باستخدام سكربت.
أولاً، احصل على النص واجعله قابلاً للتنفيذ:
$ curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
$ chmod +x openvpn-install.sh
ثم قم بتشغيله:
$ ./openvpn-install.sh
تحتاج إلى تشغيل النص كجذر وتمكين وحدة TUN.
في المرة الأولى التي تقوم فيها بتشغيله، سيتعين عليك متابعة المساعد والإجابة على بعض الأسئلة لإعداد خادم VPN الخاص بك.
عندما يتم تثبيت OpenVPN، يمكنك تشغيل النص مرة أخرى، وستحصل على الخيار التالي:
root@ubuntu:~# ./openvpn-install.sh Welcome to OpenVPN-install! The git repository is available at: https://github.com/angristan/openvpn-install It looks like OpenVPN is already installed. What do you want to do? 1) Add a new user 2) Revoke existing user 3) Remove OpenVPN 4) Exit Select an option [1-4]:
يمكنك إضافة مستخدم جديد أو إلغاء مستخدم موجود.
الطريقة 2:
الخطوة 1: تحديث وتحديث Ubuntu
قبل تثبيت أي برنامج جديد، يوصى دائمًا بتحديث وتحديث نظام Ubuntu الخاص بك. يمكنك القيام بذلك من خلال تشغيل الأوامر التالية:
$ sudo apt update
$ sudo apt upgrade
الخطوة 2: تثبيت OpenVPN
يمكنك تثبيت OpenVPN على Ubuntu عن طريق تشغيل الأمر التالي:
$ sudo apt install openvpn easy-rsa
الخطوة 3: إنشاء الشهادات والمفاتيح
يستخدم OpenVPN الشهادات والمفاتيح لمصادقة العملاء والخوادم. يمكنك إنشاء هذه الملفات عن طريق تشغيل البرنامج النصي السهل مع OpenVPN. للقيام بذلك، اتبع هذه الخطوات:
$ make-cadir ~/openvpn-ca && cd ~/openvpn-ca
قم بتحرير ملف vars
لإنشاء متغيرات هيئة الشهادات (CA):
$ nano ./vars
تحرير المتغيرات حسب الحاجة، على سبيل المثال:
set_var EASYRSA_REQ_COUNTRY "US"
set_var EASYRSA_REQ_PROVINCE "California"
set_var EASYRSA_REQ_CITY "San Francisco"
set_var EASYRSA_REQ_ORG "Copyleft Certificate Co"
set_var EASYRSA_REQ_EMAIL "[email protected]"
set_var EASYRSA_REQ_OU "My Organizational Unit"
$ ./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. للقيام بذلك، قم بإنشاء ملف تكوين جديد مع الأمر التالي:
$ sudo cp pki/dh.pem pki/ca.crt pki/ta.key pki/issued/server.crt pki/private/server.key /etc/openvpn/
$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/server.conf
حرر المحتوى التالي في ملف التكوين /etc/openvpn/server.conf
:
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh.pem
;tls-auth ta.key 0
tls-crypt ta.key
push "redirect-gateway def1 bypass-dhcp"
حفظ وإغلاق الملف.
تمكين إعادة توجيه IP
$ sudo nano /etc/sysctl.conf
# Uncomment the following line:
net.ipv4.ip_forward=1
ثم طبق التغييرات:
$ sudo sysctl -p
الخطوة 5: بدء وتمكين OpenVPN
يمكنك بدء خدمة OpenVPN وتمكينها بالأوامر التالية:
$ sudo systemctl start openvpn@server
$ sudo systemctl enable openvpn@server
يحدد الجزء @server
اسم ملف التكوين الذي قمت بإنشائه سابقًا.
الخطوة 6: ضبط جدار الحماية
تحتاج إلى السماح بحركة مرور OpenVPN عبر جدار الحماية. يمكنك القيام بذلك عن طريق إنشاء قاعدة جديدة بالأمر التالي:
$ sudo ufw allow OpenVPN # تجاهل إذا كنت لا تستخدم جدار الحماية
إضافة توجيه iptables التوجيه
$ ifconfig
.
.
.
venet0: flags=211<UP,BROADCAST,POINTOPOINT,RUNNING,NOARP> mtu 1500
inet 127.0.0.1 netmask 255.255.255.255 broadcast 0.0.0.0 destination 127.0.0.1
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 0 (UNSPEC)
RX packets 4825 bytes 467045 (467.0 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3331 bytes 322185 (322.1 KB)
TX errors 0 dropped 1167 overruns 0 carrier 0 collisions 0
venet0:0: flags=211<UP,BROADCAST,POINTOPOINT,RUNNING,NOARP> mtu 1500
inet 7.249.98.8 netmask 255.255.255.0 broadcast 7.249.98.255 destination 7.249.98.8
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 0 (UNSPEC)
.
.
شبكتنا الرئيسية هي venet0 قد يكون لديك eth0 أو أي شيء آخر
$ sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE
الخطوة 7: الاتصال بخادم OpenVPN
الآن بعد أن بدأ تشغيل خادم OpenVPN، يمكنك الاتصال به من كمبيوتر العميل. للقيام بذلك، تحتاج إلى تثبيت برنامج عميل OpenVPN على جهاز الكمبيوتر الخاص بك وتنزيل ملف تكوين العميل من الخادم. يمكنك القيام بذلك عن طريق تشغيل الأمر التالي على الخادم:
$ ./easyrsa gen-req client1 nopass
$ ./easyrsa sign-req client client1
$ sudo cp pki/private/client1.key /etc/openvpn/client/
$ sudo cp pki/issued/client1.crt /etc/openvpn/client/
$ sudo cp pki/{ca.crt,ta.key} /etc/openvpn/client/
قم بإنشاء ملف تكوين العميل في دليل /root/openvpn-ca
لاستخدامه كتكوين أساسي:
$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /root/openvpn-ca/
افتح هذا الملف باستخدام النانو وقم بتحرير هذه المتغيرات:
remote 192.168.1.5 1194 # 192.168.1.5 هو عنوان 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
# First argument: Client identifier
KEY_DIR=/etc/openvpn/client
OUTPUT_DIR=/root # تغييره إلى دليل الخروج
BASE_CONFIG=/root/openvpn-ca/client.conf # قم بتغييره إلى 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
بعد كتابة النص، حفظ وإغلاق ملف config_gen.sh
.
لا تنسى جعل الملف قابلاً للتنفيذ من خلال التشغيل:
$ sudo chmod 700 /root/openvpn-ca/config_gen.sh
$ sudo ./config_gen.sh client1
سينشئ هذا الأمر ملفًا جديدًا يسمى client1.ovpn
في /root/
دليل.
قم بنسخ هذا الملف إلى جهاز الكمبيوتر الخاص بالعميل واستخدمه للاتصال بخادم OpenVPN.
خلاصة
في هذه المقالة، أوضحنا لك كيفية تثبيت وتكوين OpenVPN على خادم Ubuntu. باستخدام OpenVPN، يمكنك الاتصال بشبكة بعيدة بشكل آمن والوصول إلى مواردها من أي مكان في العالم.