دليل المستخدم تعليمات بسيطة للعمل مع خدمة Profitserver
الرئيسية دليل المستخدم إعداد خادم VPN على Linux: PPTP أو OpenVPN؟

إعداد خادم VPN على Linux: PPTP أو OpenVPN؟


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

لتشغيل VPN الخاص بك، يجب عليك: استئجار خادم VPSهناك برامج مختلفة تتيح لك إنشاء اتصال VPN. تختلف هذه البرامج في أنظمة التشغيل المدعومة والخوارزميات المستخدمة. سنتناول طريقتين مستقلتين لإعداد خادم VPN. تعتمد الطريقة الأولى على بروتوكول PPTP، الذي يُعتبر قديمًا وغير آمن، ولكنه سهل الإعداد. أما الطريقة الثانية فتستخدم برنامج OpenVPN الحديث والآمن، ولكنها تتطلب تثبيت تطبيق عميل خارجي وعملية إعداد أكثر دقة.

في بيئة الاختبار الخاصة بنا، سنستخدم خادمًا افتراضيًا يعمل بنظام Ubuntu Server 18.04. سيتم تعطيل جدار الحماية على الخادم لأن تكوينه يستحق مقالًا منفصلًا. سنشرح عملية الإعداد على نظام Windows 10.

التحضير

أيًا كان خادم VPN الذي تختاره، سيتم إعداد الوصول إلى الإنترنت عبر أدوات مدمجة في نظام التشغيل. لفتح الوصول إلى الإنترنت عبر واجهة خدمة خارجية، يجب عليك تمكين إعادة توجيه الحزم بين الواجهات وتكوين ترجمة عناوين الشبكة.

لتشغيل إعادة توجيه الحزمة، افتح الملف "/etc/sysctl.conf" والتغيير "net.ipv4.ip_forward" قيمة المعلمة في 1.

قم بتشغيل إعادة توجيه الحزم لإعداد VPN

لتطبيق التغييرات دون إعادة تشغيل الكمبيوتر، قم بتشغيل الأمر

sudo sysctl -p /etc/sysctl.conf

يتم تكوين ترجمة عنوان الشبكة عن طريق يبتابليس. أولاً، تحقق من اسم واجهة الشبكة الخارجية التي تقوم بتشغيل الأمر "عرض رابط IP" - ستحتاجه في الخطوة التالية. اسمنا هو "ens3".

عرض رابط ip

تمكين ترجمة عنوان الشبكة على واجهتك الخارجية لجميع عقد الشبكة المحلية.

sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE

لاحظ أنه يتعين عليك تحديد الاسم الحقيقي لواجهة الخادم الخاص بك، فقد تكون مختلفة عن واجهتنا.

افتراضيًا، تُعاد تعيين جميع القواعد التي أنشأها iptables بعد إعادة تشغيل الخادم. لمنع ذلك، استخدم "iptables-persistent" قم بتثبيت الحزمة التالية:

sudo apt install iptables-persistent

في مرحلة ما أثناء عملية التثبيت، ستظهر لك نافذة تهيئة تقترح عليك حفظ قواعد iptables الحالية. بما أن القواعد مُعرّفة مسبقًا، ما عليك سوى التأكيد والنقر على "نعم" مرتين. منذ الآن، سيتم تطبيق القواعد تلقائيًا بعد إعادة تشغيل الخادم.

تشغيل ترجمة العنوان

خادم PPTP

تكوين الخادم

تثبيت الحزمة:

sudo apt install pptpd

بعد انتهاء التثبيت، افتح الملف "/etc/pptpd.conf" في أي محرر نصوص وقم بتحريره على النحو التالي:

option /etc/ppp/pptpd-options #path to the settings file
logwtmp #client connections logging mechanism
connections 100 #number of simultaneous connections
localip 172.16.0.1 #the address that will serve as a client gateway
remoteip 172.16.0.2-200 #range of addresses

بعد ذلك قم بتعديل الملف "/etc/ppp/pptpd-options". يتم إعداد معظم المعلمات بشكل افتراضي.

#name of the service for new client records
name pptpd
#restrict obsolete authentication methods
refuse-pap
refuse-chap
refuse-mschap
#allow a more secure authentication method
require-mschap-v2
#enable encryption
require-mppe-128
#specify dns servers for clients (use any available servers)
ms-dns 8.8.8.8
ms-dns 8.8.4.4
proxyarp
nodefaultroute
lock
nobsdcomp
novj
novjccomp
nologfd

في المرحلة التالية، ستحتاج إلى إنشاء سجل لاتصالات العملاء. لنفترض أنك تريد إضافة مستخدم "مستخدم VPN" مع كلمة المرور "1" واسمح له بالتوجيه الديناميكي. افتح الملف "/إلخ/ppp/أسرار الفصل" وأضف السطر التالي مع معلمات المستخدم في نهاية الملف:

vpnuser pptpd 1 *

"pptpd" القيمة هي اسم الخدمة التي حددناها في الملف خيارات pptpd. بدلا من "*" يمكنك تحديد عنوان IP ثابت. في النتيجة، الملف "أسرار الفصل" يجب أن تبدو هكذا:

إعداد خادم VPN

لتطبيق الإعدادات قم بإعادة تعيين com.pptpd الخدمة وإضافتها إلى التحميل التلقائي.

sudo systemctl restart pptpd
sudo systemctl enable pptpd

تم الانتهاء من تكوين الخادم.

تكوين العميل

ساعات العمل "بداية" - "إعدادات" - "الشبكة والإنترنت" - "VPN" ثم انقر "إضافة اتصال VPN"

إعداد العميل لاتصال VPN

أدخل معلمات الاتصال في النافذة المفتوحة وانقر فوق "حفظ"

  • مزود VPN: "Windows (مدمج)"
  • اسم الاتصال: “vpn_connect” (يمكنك اختيار أي اسم)
  • اسم الخادم أو العنوان: (حدد عنوان IP الخارجي للخادم)
  • نوع VPN: "تلقائي"
  • نوع معلومات تسجيل الدخول: "اسم المستخدم وكلمة المرور"
  • اسم المستخدم: مستخدم vpn (الاسم المحدد في ملف "chap-secrets" على الخادم)
  • كلمه السر: 1 (كما هو الحال في ملف "أسرار الفصل")

بعد حفظ الإعدادات، ستظهر لك نافذة اتصال VPN الجديد. انقر بزر الماوس الأيسر على الاتصال وحدد "الاتصال". في حالة الاتصال الناجح، سوف ترى "متصل" الحالة.

إضافة اتصال VPN

في الخيارات، ستجد العناوين الداخلية للعميل والخادم. الحقل "عنوان الوجهة" يعرض عنوان الخادم الخارجي.

كيفية إعداد خادم VPN بنفسك

عند الاتصال، عنوان IP الداخلي للخادم، 172.16.0.1 في حالتنا، تصبح البوابة الافتراضية لجميع الحزم الصادرة.

التحقق من عنوان IP الخارجي

باستخدام أي خدمة عبر الإنترنت، يمكنك التأكد من أن عنوان IP الخارجي لجهاز الكمبيوتر الخاص بك أصبح الآن هو نفسه عنوان IP الخاص بخادم VPN.

خادم OpenVPN

تكوين الخادم

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

sudo -s

ثبّت جميع الحزم اللازمة. سنحتاج "إيزي-RSA" حزمة لإدارة مفاتيح التشفير.

apt install openvpn easy-rsa iptables-persistent

السماح بالاتصالات الواردة على المنفذ 1194 عبر بروتوكول UDP وتطبيق قواعد iptables.

sudo iptables -I INPUT -p udp --dport 1194 -j ACCEPT

sudo netfilter-persistent save

قم بإنشاء دليل بالملفات المنسوخة من حزمة "Easy-RSA" وانتقل إليه.

make-cadir ~/openvpn

cd ~/openvpn

إنشاء البنية التحتية للمفتاح العام (PKI).

./easyrsa init-pki

إنشاء شهادة الجذر للهيئة المصدقة (CA).

./easyrsa build-ca

أثناء عملية الإنشاء، سيُطلب منك تعيين كلمة مرور وتذكرها. ستحتاج أيضًا إلى الإجابة على أسئلة وإدخال معلومات حول مالك المفتاح. يمكنك ترك القيم الافتراضية بين قوسين مربعين. اضغط على "Enter" لإكمال الإدخال.

أنشئ مفتاحًا خاصًا وطلب شهادة. حدّد اسمًا عشوائيًا كحجة؛ في حالتنا، هو "خادم VPN".

./easyrsa gen-req vpn-server nopass

اترك قيمة الاسم الشائع كقيمة افتراضية.

قم بتوقيع طلب شهادة الخادم المُنشأ.

./easyrsa sign-req server vpn-server

في هذه الخطوة، أجب بـ "نعم" لتأكيد التوقيع، ثم أدخل كلمة المرور التي تم إنشاؤها أثناء إنشاء شهادة الجذر.

إنشاء معلمات ديفي-هيلمان. تُستخدم هذه المعلمات لتبادل المفاتيح بشكل آمن بين الخادم والعميل.

./easyrsa gen-dh

تم إنشاء جميع الملفات اللازمة. لننشئ مجلد "keys" في دليل عمل OpenVPN لتخزين المفاتيح ونسخ الملفات المُنشأة إليه.

mkdir /etc/openvpn/keys

sudo cp pki/ca.crt pki/issued/vpn-server.crt pki/private/vpn-server.key pki/dh.pem /etc/openvpn/keys

تكوين NAT باستخدام iptables القواعد. أنشئ ملفًا باسم nat وافتحه للتحرير في /etc/openvpn/ الدليل.

#!/bin/sh

# Reset firewall settings
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X

# (eth0 in our case, may vary)
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# (eth0 in our case, may vary)
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT

# Allow OpenVPN connections (eth0 in our case, may vary)
iptables -A INPUT -i eth0 -p udp --dport 1194 -j ACCEPT

iptables -A INPUT -i tun0 -j ACCEPT

# (eth0 in our case, may vary):
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT

# (eth0 in our case, may vary)
iptables -A FORWARD -i eth0 -o tun0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Enable masquerading for the local network (eth0 in our case, may vary)
iptables -t nat -A POSTROUTING -o eth0 -s 10.8.0.0/24 -j MASQUERADE

# Deny incoming connections from outside
iptables -A INPUT -i eth0 -j DROP

# Deny transit traffic from outside (eth0 in our case, may vary)
iptables -A FORWARD -i eth0 -o tun0 -j DROP

sudo netfilter-persistent save

احفظ الملف وجعله قابلاً للتنفيذ.

sudo chmod 755 /etc/openvpn/nat

انسخ قالب تكوين الخادم.

cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/

فتح الملف "/etc/openvpn/server.conf" للتحرير، تأكد من أنه يحتوي على الأسطر التالية، وقم بتحريرها إذا لزم الأمر:

#Port, protocol, and interface

port 1194

proto udp

dev tun
#Path to the encryption keys

ca /etc/openvpn/keys/ca.crt

cert /etc/openvpn/keys/vpn-server.crt

key /etc/openvpn/keys/vpn-server.key

dh /etc/openvpn/keys/dh.pem

#SHA256 Hashing Algorithm

auth SHA256
#Switching off additional encryption

#tls-auth ta.key 0
#Network parameters

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist /var/log/openvpn/ipp.txt

push "redirect-gateway def1 bypass-dhcp"

push "dhcp-option DNS 8.8.8.8"

push "dhcp-option DNS 8.8.4.4"
#Ping every 10 seconds to check the connection.

keepalive 10 120
#Set up AES-256 encryption for the tunnel.

cipher AES-256-GCM
#Demoting the service OpenVPN after launch

user nobody

group nogroup
#Switching on parameters saving after reboot

persist-key

persist-tun
#Set log verbosity

verb 3
#Redirecting logs

log-append /var/log/openvpn/openvpn.log
#Script the rule installation launch.

up /etc/openvpn/nat

تمكين إعادة توجيه حركة المرور على الخادم.

sudo sysctl -w net.ipv4.ip_forward=1

echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf

ابدأ تشغيل OpenVPN لتطبيق التكوين.

systemctl restart openvpn@server

تم الانتهاء من تكوين الخادم!

تكوين العميل

انتقل إلى الموقع الرسمي لـ OpenVPNhttps://openvpn.net"، اذهب إلى "المجتمع" والقسم الخاص به.

انتقل إلى الموقع الرسمي لمشروع "https://openvpn.net"، وانتقل إلى قسم "COMUNITY".

مرر للأسفل وحمّل برنامج التثبيت المناسب لإصدار نظام التشغيل لديك. في حالتنا، هو Windows 11 ARM64.

قم بالتسجيل وتسجيل المثبت لنظام التشغيل الخاص بك. في حالتنا هذا Windows 11 ARM64.

قم بتثبيت التطبيق مع ترك كافة المعلمات بشكل افتراضي.

في المرحلة التالية، ستحتاج إلى إعداد الملف التالي على الخادم ونقله إلى جهاز الكمبيوتر العميل:

  • المفاتيح العامة والخاصة؛
  • نسخة من مفتاح مركز التصديق؛
  • قالب ملف التكوين.

الاتصال بالخادم ورفع الامتيازات والانتقال إلى الدليل الذي تم إنشاؤه "~/openvpn".

sudo -s

cd ~/openvpn

إنشاء مفتاح خاص وطلب شهادة للعميل. حدّد اسمًا عشوائيًا كحجة؛ في حالتنا، هو "client1".

./easyrsa gen-req client1 nopass

أدخل كلمة المرور التي حددناها عند إنشاء شهادة الجذر واترك قيمة الاسم الشائع كقيمة افتراضية.

إطلاق سراح مشروط تم تعزيزه من خلال الحصول على شهادة جامعية وإلغاء تسمية الاسم الشائع في حالة الطوارئ.

قم بتوقيع طلب شهادة العميل المُنشأ.

./easyrsa sign-req client client1

في هذه الخطوة، أجب بـ "نعم" لتأكيد التوقيع، ثم أدخل كلمة المرور التي تم إنشاؤها أثناء إنشاء شهادة الجذر.

في هذه الحالة، أجب بـ "نعم" للموافقة على الموافقة، بعد إطلاق سراح مشروط الذي تم إنشاؤه قبل ولادة الطفل الشهادة.

لتسهيل الأمر، دعنا ننشئ مجلدًا باسم "client1" في الدليل الرئيسي وننسخ فيه جميع الملفات المخصصة للنقل إلى جهاز الكمبيوتر العميل.

mkdir ~/client1

cp pki/issued/client1.crt pki/private/client1.key pki/ca.crt ~/client1/

انسخ قالب ملف تكوين العميل إلى نفس الدليل. غيّر امتداد الملف إلى ".ovpn" أثناء النسخ.

cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client1/client.ovpn

تغيير مالك الدليل وجميع الملفات "~/العميل1/" لكي نتمكن من توزيعها على العميل. لنقم بذلك "ميخائيل" المالك في حالتنا.

chown -R mihail:mihail ~/client1

انتقل إلى جهاز الكمبيوتر العميل وانسخ محتوى "~/العميل1/" المجلد. يمكنك القيام بذلك بمساعدة "PSCP" الأداة المساعدة التي تأتي مع Putty.

PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1

يمكنك تخزين الملفات الرئيسية "ca.crt", "client1.crt", "client1.key" أينما تريد. في حالتنا، هم موجودون في هذا المجلد "c:\Program Files\OpenVPN\keys"، وقمنا بتعديل ملف التكوين "client.ovpn" في "c:\Program Files\OpenVPN\config" الدليل.

الآن لنبدأ بتكوين العميل. افتح الملف "c:\Program Files\OpenVPN\config\client.ovpn" في محرر النصوص وتحرير الأسطر التالية:

#announce that this is the client

client
#interface and protocol just like on the server

dev tun

proto udp
#IP address of the server and port

remote ip_address 1194
#saving parameters after reload

persist-key

persist-tun
#key paths

ca “c:\\Program Files\\OpenVPN\\keys\\ca.cert”

cert “c:\\Program Files\\OpenVPN\\keys\\client1.crt”

key “c:\\Program Files\\OpenVPN\\keys\\client1.key”
#enable server verification

remote-cert-tls server
#disable extra encryption

#tls-auth ta.key 1

cipher AES-256-CBC

auth-nocache

verb 3

اترك الباقي دون مساس.

احفظ الملف وقم بتشغيل تطبيق العميل "واجهة المستخدم الرسومية لـ OpenVPN".

تم الانتهاء من إعداد VPN

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

استخدم أي خدمة عبر الإنترنت للتأكد من أن عنوان IP العام الخاص بك قد تغير وأصبح الآن هو نفسه عنوان IP الخاص بالخادم.

❮ المقال السابق كيفية إعداد Wireguard VPN على الخادم الخاص بك
المقال التالي ❯ إعداد خادم FTP

اسألنا عن VPS

نحن على استعداد دائمًا للإجابة على أسئلتك في أي وقت من النهار أو الليل.