لماذا تستضيف OpenVPN Server على خادم VPS؟
تفرض حلول VPN التجارية المشتركة الوثوق بمزوّد خارجي يمكنه تسجيل بيانات اتصالك أو إعادة بيعها أو كشفها. باستضافة OpenVPN Server على خادم VPS الخاص بك، تكون المسؤول الوحيد: فأنت تختار مستوى التسجيل والمستخدمين المصرّح لهم وبروتوكولات التشفير (TLS 1.3، AES-256-GCM). إنه أيضاً الحل المثالي لربط الفرق الموزّعة أو تأمين الوصول إلى خدماتك الداخلية أو تجاوز قيود الشبكة في بيئة مؤسسية، كل ذلك بتكلفة مضبوطة.
ما يمكنك فعله بـ OpenVPN Server
- تأمين اتصالات موظفيك العاملين عن بُعد عبر نفق مشفّر نحو شبكتك الداخلية
- عرض خدماتك الداخلية (قواعد البيانات، الواجهة الخلفية، أدوات المراقبة) عبر VPN فقط، دون فتحها على الإنترنت
- ربط عدة مواقع أو مكاتب في شبكة خاصة افتراضية من موقع إلى موقع (site-to-site)
- حماية اتصالاتك على شبكات Wi-Fi العامة أو غير الموثوقة
- إدارة حقوق الوصول لكل مستخدم بدقّة بفضل نظام شهادات OpenVPN
- تدقيق وتسجيل الاتصالات الواردة إلى بنيتك التحتية من نقطة مركزية تحت سيطرتك
المتطلبات المسبقة: الخادم والشبكة
قبل البدء، تحقق من هذه النقاط على خادم VPS الخاص بك.
الموارد الدنيا: 1 vCPU و512 ميغابايت من RAM تكفي للاستخدام الشخصي أو حتى 10 مستخدمين متزامنين. فوق 50 اتصالاً نشطاً، خطّط لـ 2 vCPU وغيغابايت من RAM لامتصاص التشفير دون تدهور النطاق الترددي.
نظام التشغيل: Ubuntu 22.04 LTS أو Debian 12 (كلاهما مدعومان من مستودع OpenVPN الرسمي). AlmaLinux 9 وRocky Linux 9 يعملان أيضاً مع حزم EPEL.
منفذ الشبكة: UDP 1194 (الافتراضي) أو TCP 443 لتجاوز جدران الحماية المقيّدة. على خادم VPS من ServOrbit، افتح هذا المنفذ في قواعد الأمان قبل بدء التثبيت. منفذ واحد يكفي.
وصول root: ضروري لإنشاء واجهات الشبكة الافتراضية (tun0) وتعديل قواعد iptables وتفعيل توجيه IP.
توجيه IP: فعّله قبل المتابعة:
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
sysctl -pتثبيت OpenVPN وEasy-RSA (المسار المجتمعي)
تحديث النظام وتثبيت الحزم
apt update && apt upgrade -y apt install -y openvpn easy-rsaهذا النهج لا يحدّ من عدد العملاء ولا يتطلب أي ترخيص تجاري. يدير Easy-RSA هيئة التصديق (CA) المحلية الخاصة بك.
تهيئة هيئة التصديق مع Easy-RSA
make-cadir /etc/openvpn/easy-rsa cd /etc/openvpn/easy-rsa ./easyrsa init-pki ./easyrsa build-ca nopassbuild-ca nopassينشئ CA بدون عبارة مرور — مناسب للإنتاج غير التفاعلي. للاستخدام الأكثر حساسية، أزلnopassوخزّن عبارة المرور خارج الخادم.إنشاء شهادة الخادم ومعاملات Diffie-Hellman
./easyrsa gen-req server nopass ./easyrsa sign-req server server openssl dhparam -out /etc/openvpn/dh.pem 2048 openvpn --genkey secret /etc/openvpn/ta.keyمفتاح
ta.key(TLS Auth) يحمي من هجمات DoS على منفذ UDP قبل بدء مفاوضة TLS.إنشاء شهادة عميل
./easyrsa gen-req client1 nopass ./easyrsa sign-req client client1كرّر هذه العملية لكل مستخدم. الثنائي
client1.crt+client1.key+ca.crt+ta.keyيُكوّن ملف.ovpnالذي يُوزَّع.نسخ الملفات الضرورية إلى /etc/openvpn
cp pki/ca.crt pki/issued/server.crt pki/private/server.key /etc/openvpn/احتفظ بملفات
pki/private/بصلاحيات600: يجب ألا تكون قابلة للقراءة إلا بواسطة root.
إعداد server.conf
أنشئ /etc/openvpn/server.conf بالمحتوى التالي.
port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh.pem
tls-auth /etc/openvpn/ta.key 0
key-direction 0
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 9.9.9.9"
push "dhcp-option DNS 149.112.112.112"
keepalive 10 120
cipher AES-256-GCM
tls-version-min 1.2
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append /var/log/openvpn/openvpn.log
verb 3فعّل الخدمة وابدأها:
mkdir -p /var/log/openvpn
systemctl enable --now openvpn@server
systemctl status openvpn@serverالنفق الكامل أو النفق المقسّم: اختيار الوضع المناسب
النفق الكامل (redirect-gateway def1): يمر كل حركة مرور العميل عبر VPN. مفيد لحماية المستخدمين على الشبكات غير الموثوقة أو لتوحيد مخارج الإنترنت. العيب: يصبح نطاق VPS الترددي هو عنق الزجاجة لجميع التدفقات.
النفق المقسّم: يمر فقط حركة المرور المتجهة إلى شبكتك الخاصة (مثلاً 10.8.0.0/24) عبر VPN. يخرج الباقي مباشرة من جهاز العميل. لتفعيله، استبدل سطر redirect-gateway بمسارات محددة في server.conf:
push "route 192.168.1.0 255.255.255.0"هذا يقلل الحمل على الخادم ويحسن الأداء العام، لكن الاتصالات خارج VPN لن تكون محمية.
إنشاء وتوزيع ملف عميل .ovpn
ملف .ovpn المستقل يضمّ كل الشهادات. يُنشأ هكذا:
cat > /tmp/client1.ovpn << EOF
client
dev tun
proto udp
remote <IP-خادمك> 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-GCM
verb 3
key-direction 1
<ca>
$(cat /etc/openvpn/easy-rsa/pki/ca.crt)
</ca>
<cert>
$(cat /etc/openvpn/easy-rsa/pki/issued/client1.crt)
</cert>
<key>
$(cat /etc/openvpn/easy-rsa/pki/private/client1.key)
</key>
<tls-auth>
$(cat /etc/openvpn/ta.key)
</tls-auth>
EOFانقل هذا الملف إلى العميل عبر قناة آمنة (SCP أو رابط للاستخدام الواحد). يكفي بعد ذلك استيراده في OpenVPN Connect (Windows، macOS، Android، iOS) أو NetworkManager (Linux) لإنشاء الاتصال.
الأمان: fail2ban وufw وتعطيل IPv6
جدار الحماية ufw — افتح فقط ما هو ضروري:
ufw allow ssh
ufw allow 1194/udp
ufw enableإن كنت تستخدم TCP 443 بدلاً من UDP 1194، عدّل القاعدة وفقاً لذلك.
fail2ban لمنفذ OpenVPN:
أنشئ /etc/fail2ban/jail.d/openvpn.conf:
[openvpn]
enabled = true
port = 1194
protocol = udp
filter = openvpn
logpath = /var/log/openvpn/openvpn.log
maxretry = 5
bantime = 3600ثم أنشئ الفلتر /etc/fail2ban/filter.d/openvpn.conf:
[Definition]
failregex = .*TLS Error: TLS key negotiation failed.*<HOST>.*
.*VERIFY ERROR:.*<HOST>.*فعّل:
systemctl restart fail2ban
fail2ban-client status openvpnتعطيل IPv6 إن لم يكن ضرورياً: واجهة IPv6 غير محمية يمكنها تجاوز النفق. إن لم تحتج بنيتك التحتية إلى IPv6:
echo 'net.ipv6.conf.all.disable_ipv6=1' >> /etc/sysctl.conf
echo 'net.ipv6.conf.default.disable_ipv6=1' >> /etc/sysctl.conf
sysctl -pالأداء: MTU واختيار التشفير
MTU والتجزئة: يضيف تشفير OpenVPN رؤوسَ بيانات. افتراضياً، MTU النفق (tun-mtu) هو 1500، لكن التغليف UDP قد يسبب تجزئة على بعض الشبكات. لتجنب ذلك، أضف إلى server.conf:
tun-mtu 1400
mssfix 1360إن لاحظت بطء نقل أو انقطاعات على اتصالات بـ MTU منخفض (شبكات الجوال، بعض VPN المؤسسية)، قلّل tun-mtu إلى 1300.
اختيار التشفير: يُوصى بـ AES-256-GCM لأنوية Linux الحديثة التي تستفيد من تعليمات AES-NI المادية (تحقق بـ grep -m1 'aes' /proc/cpuinfo). للخوادم المحدودة جداً بالمعالج، AES-128-GCM يخفّض تكلفة التشفير بمعامل 2 دون تقليص أمني معتبر.
UDP أم TCP: UDP 1194 هو الوضع الافتراضي والأكثر أداءً. TCP 443 مفيد لتجاوز جدران الحماية المؤسسية المقيّدة، لكنه يُدخل مشكلة "TCP over TCP" (إعادات الإرسال المكررة) التي تُدهور الأداء عند فقدان الحزم.
استكشاف الأخطاء: الأخطاء الشائعة
TLS Error: TLS key negotiation failed
يظهر هذا الخطأ حين لا يتمكن العميل من الوصول إلى الخادم على المنفذ المعيّن. تحقق من أن المنفذ مفتوح (ss -ulnp | grep 1194)، وأن قاعدة جدار الحماية نشطة، وأن مفتاح ta.key متطابق على الخادم (key-direction 0) وعلى العميل (key-direction 1).
المسارات غير مُطبَّقة بعد الاتصال
إن لم يمر حركة المرور عبر النفق رغم إنشاء الاتصال، تحقق من أن توجيه IP نشط (cat /proc/sys/net/ipv4/ip_forward يجب أن يُعيد 1) وأن قاعدة NAT موجودة:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADEاستبدل eth0 بالواجهة الرئيسية لـ VPS (ip route get 8.8.8.8 للتعرف عليها).
انقطاع الاتصالات بشكل منتظم
إن انقطع النفق كل دقيقتين، تحقق من keepalive في server.conf (keepalive 10 120: ping كل 10 ثوان، مهلة 120 ثانية). على جانب العميل، أضف ping-restart 60 إلى ملف .ovpn لإجبار إعادة اتصال نظيفة قبل مهلة الخادم.
VERIFY ERROR: depth=0, error=certificate is not yet valid
ساعة الخادم أو العميل غير متزامنة. زامن NTP: timedatectl set-ntp true.
OpenVPN مقابل WireGuard: أيّهما تختار؟
مرّر الجدول أفقيًا
| المعيار | OpenVPN | WireGuard |
|---|---|---|
| البروتوكول | TLS/SSL (OpenSSL) | ChaCha20-Poly1305 (تشفير حديث) |
| الأداء | جيد، أبطأ قليلاً | مرتفع جداً، وقت استجابة محسّن وفق المعيار المقيس |
| الإعداد | ملفات .conf مفصّلة، منحنى تعلّم | أبسط، أزواج مفاتيح عامة/خاصة |
| التوافق | كل أنظمة التشغيل، جدران الحماية المقيّدة (TCP 443) | ممتاز على Linux، أقل شمولاً |
| إلغاء الشهادة | CRL مدمجة، إدارة دقيقة لكل مستخدم | حذف المفتاح العام فقط |
| حالة الاستخدام المثالية | الفرق، site-to-site، البيئات المؤسسية | الوصول الشخصي، التنقل، الأداء |
VPS من ServOrbit كخادم OpenVPN خاص
خادم VPS من ServOrbit مع وصول root وIPv4 مخصصة وخيار نظام التشغيل هو المنصة المثالية لخادم OpenVPN: تحتفظ بالتحكم الكامل في الشهادات والسجلات وقواعد الوصول. قالب OpenVPN Server متاح في Marketplace للبدء السريع، أو اتبع هذا الدليل للتثبيت اليدوي الكامل عبر المسار المجتمعي. للبدء: /vps-cloud.
الوثائق الرسمية
للتهيئة المتقدّمة والخيارات الخاصة بالأداة وتغييرات الإصدار، راجع الوثائق الرسمية لـ OpenVPN Community. يغطّي هذا الدليل النشر على خادم VPS من ServOrbit؛ وتبقى وثائق الناشر المرجع للضبط الدقيق.