Step-by-step guide to setting up and configuring OpenVPN on Ubuntu 22.04
یک راهنمای کامل برای تنظیم و پیکربندی OpenVPN سرور در اوبونتو 22.04 با روش‌های امنیتی و بهینه‌سازی مناسب.

Step-by-step guide to setting up and configuring OpenVPN on Ubuntu 22.04

This article will teach you how to install and configure OpenVPN server on Ubuntu 22.04. This guide covers various steps including installing packages, configuring a firewall, and security tips.
0 Shares
0
0
0
0

چرا باید OpenVPN روی Ubuntu 22.04 راه‌اندازی کنیم؟

در این راهنما یک آموزش عملی و جامع برای راه‌اندازی و کانفیگ OpenVPN On Ubuntu 22.04 ارائه شده است که مناسب مدیران سیستم، DevOps، تریدرها و گیمرهاست. مراحل شامل نصب بسته‌ها، ایجاد PKI با EasyRSA، پیکربندی سرور و کلاینت، تنظیم فایروال (ufw/iptables)، فعال‌سازی مسیریابی و راهکارهای امنیتی مانند tls-crypt، مدیریت لغو گواهی (CRL) و استفاده از fail2ban It will be.

Prerequisites

برای دنبال کردن این راهنما به موارد زیر نیاز دارید:

  • A server Ubuntu 22.04 با کاربر دارای دسترسی sudo
  • یک آدرس IP عمومی یا رنج IP اختصاصی (IPv4/IPv6 در صورت نیاز)
  • پورت آزاد (پیشنهاد: UDP 1194 یا پورت سفارشی برای کاهش احتمال اسکن)
  • حداقل 1GB رم برای بار پایه؛ برای استفاده سازمانی یا صدها اتصال منابع را افزایش دهید

بخش اول — نصب OpenVPN و EasyRSA

ابتدا بسته‌ها را به‌روز و سپس OpenVPN و EasyRSA را نصب کنید.

sudo apt update && sudo apt upgrade -y
sudo apt install -y openvpn easy-rsa

کپی قالب EasyRSA و آماده‌سازی PKI:

make-cadir /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
./easyrsa init-pki

بخش دوم — ساخت CA، کلیدها و گواهی‌ها

مراحل ایجاد CA، کلید‌ها و گواهی‌ها با EasyRSA:

./easyrsa build-ca nopass
./easyrsa gen-req server nopass
./easyrsa sign-req server server
./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1
./easyrsa gen-dh
openvpn --genkey --secret /etc/openvpn/ta.key
./easyrsa gen-crl
cp pki/crl.pem /etc/openvpn/crl.pem
chmod 644 /etc/openvpn/crl.pem

فایل‌های مورد نیاز برای سرور:

  • /etc/openvpn/server.crt
  • /etc/openvpn/server.key
  • /etc/openvpn/ca.crt
  • /etc/openvpn/dh.pem
  • /etc/openvpn/ta.key
  • /etc/openvpn/crl.pem

بخش سوم — پیکربندی سرور OpenVPN

یک فایل کانفیگ نمونه در /etc/openvpn/server/server.conf ایجاد کنید. مثال زیر یک پیکربندی پایه و امن با استفاده از AES-256-GCM و tls-crypt است.

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-crypt /etc/openvpn/ta.key

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 1.1.1.1"
push "dhcp-option DNS 8.8.8.8"

keepalive 10 120
cipher AES-256-GCM
auth SHA256
ncp-ciphers AES-256-GCM
persist-key
persist-tun

user nobody
group nogroup

status /var/log/openvpn/status.log
log /var/log/openvpn/openvpn.log
verb 3

crl-verify /etc/openvpn/crl.pem

Tips:

  • Use of AES-256-GCM and auth SHA256 Recommended.
  • برای کمترین تاخیر در شبکه‌های حساس مثل ترید یا گیم، UDP مناسب‌تر است؛ در شبکه‌های محدود ممکن است TCP لازم باشد.
  • می‌توانید tls-version-min 1.2 Or tls-version-min 1.3 و لیست cipherهای سخت‌گیرانه‌تر اضافه کنید.

بخش چهارم — فعال‌سازی مسیریابی و NAT

برای عبور ترافیک کلاینت‌ها به اینترنت باید forwarding فعال و NAT تنظیم شود.

فعال‌سازی IPv4 forwarding موقتاً:

sudo sysctl -w net.ipv4.ip_forward=1

برای دائمی کردن:

echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-openvpn.conf
sudo sysctl --system

افزودن قانون NAT با iptables (فرض رابط خروجی eth0):

sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

برای ماندگاری قوانین از iptables-persistent یا netfilter-persistent استفاده کنید:

sudo apt install -y iptables-persistent
sudo netfilter-persistent save

If from nftables استفاده می‌کنید معادل NAT را در nft تعریف کنید.

پیکربندی UFW (اگر فعال است)

If from ufw استفاده می‌کنید قبل از فعال‌سازی NAT، فایل /etc/ufw/before.rules را ویرایش و بخش NAT را اضافه کنید. مثال کوتاه:

*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
COMMIT

سپس در /etc/default/ufw مقدار IPV4_FORWARDING را به “yes” تغییر دهید یا از sysctl استفاده کنید. سپس پورت OpenVPN را باز کنید و ufw را فعال کنید:

sudo ufw allow 1194/udp
sudo ufw enable

بخش پنجم — راه‌اندازی سرویس OpenVPN

سرویس را اجرا و فعال کنید (نام سرویس ممکن است بسته به توزیع متفاوت باشد):

sudo systemctl start [email protected]
sudo systemctl enable [email protected]

برای بررسی وضعیت و لاگ:

sudo systemctl status openvpn-server@server
journalctl -u openvpn-server@server -f

بخش ششم — ساخت فایل کلاینت (.ovpn) با Certificate Inline

برای سهولت توزیع، یک فایل .ovpn بسازید که همه cert/key به‌صورت inline داخل آن قرار گرفته باشند. نمونه زیر را بر اساس مقادیر تولیدشده جایگزین کنید:

client
dev tun
proto udp
remote YOUR_SERVER_IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-GCM
auth SHA256
verb 3

<ca>
-----BEGIN CERTIFICATE-----
(محتوای ca.crt)
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
(محتوای client1.crt)
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
(محتوای client1.key)
-----END PRIVATE KEY-----
</key>
<tls-crypt>
-----BEGIN OpenVPN Static key V1-----
(محتوای ta.key)
-----END OpenVPN Static key V1-----
</tls-crypt>

این فایل را به کلاینت‌های ویندوز، مک یا لینوکس منتقل کنید. در لینوکس می‌توانید از NetworkManager یا دستور openvpn --config client.ovpn Use.

بخش هفتم — مدیریت کاربران، لغو گواهی و امنیت

مدیریت کاربران و امنیت شامل موارد زیر است:

  • افزودن کاربر جدید: تولید کلید و sign مانند client1.
  • لغو گواهی (revoke): ./easyrsa revoke client1 && ./easyrsa gen-crl سپس کپی crl.pem به /etc/openvpn/crl.pem و reload سرور.
  • استفاده ترکیبی از cert-based و auth-user-pass: می‌توان از PAM یا RADIUS استفاده کرد و برای امنیت بیشتر OTP/2FA را اضافه نمود.
  • Fail2ban: نصب و پیکربندی برای مانیتور لاگ‌ها و مسدودسازی تلاش‌های مزاحم.
  • Log management: کاهش سطح لاگ در تولید و استفاده از logrotate برای نگهداری فایل‌های لاگ.
sudo apt install -y fail2ban
# create a custom jail for openvpn as needed

بخش هشتم — نکات فنی و بهینه‌سازی برای کاربردها

چند پیشنهاد عملی برای سناریوهای مختلف:

برای ترید/فارکس و کریپتو

  • انتخاب لوکیشن نزدیک به صرافی‌ها یا سرورهای معاملاتی برای کاهش RTT (مثلاً لندن، فرانکفورت، نیویورک، توکیو).
  • استفاده از VPS مخصوص ترید با پینگ کم، منابع اختصاصی و سرور ضد-DDoS.
  • استفاده از UDP و تنظیم MTU مناسب (مثلاً tun-mtu 1500 یا کمتر) برای جلوگیری از fragmentation.

برای گیمینگ

  • انتخاب لوکیشن با کمترین پینگ و استفاده از VPS یا سرورهای پرسرعت با شبکه سریع.
  • تست A/B برای بررسی اینکه VPN واقعاً باعث بهبود مسیریابی و کاهش پینگ می‌شود یا خیر.

برای هوش مصنوعی و رندرینگ

  • برای انتقال داده‌های بزرگ، استفاده از شبکه‌های خصوصی ابری (VPC) یا VPN سطح شبکه با BGP بهتر است.
  • برای اتصال به سرور GPU از سرورهای با شبکه 10Gbps استفاده کنید.

بخش نهم — مقایسه لوکیشن‌ها و زیرساخت

نمونه مزایا بر اساس منطقه:

  • اروپا (فرانکفورت، لندن، آمستردام): مناسب برای تریدرهای اروپا و تأخیر کم به صرافی‌ها.
  • آمریکا (NY, NJ, Miami): مناسب برای بازارهای آمریکای شمالی و بارهای حساس به تاخیر.
  • آسیا (توکیو، سنگاپور، سئول): مناسب برای بازارهای APAC و سرویس‌های بازی و AI در منطقه.

شرکت ما بیش از ۸۵ لوکیشن جهانی، شبکه BGP و CDN ارائه می‌دهد که می‌تواند برای کاهش تأخیر، افزایش پایداری و جلوگیری از حملات DDoS موثر باشد.

بخش دهم — مانیتورینگ و نگهداری

نکات نگهداری و مقیاس‌پذیری:

  • مانیتورینگ OpenVPN با Prometheus/Grafana یا Zabbix (استفاده از exporterها یا آنالیز لاگ).
  • نگهداری منظم CRL و بررسی لاگ‌های اتصال.
  • برای تعداد زیاد کلاینت از Load Balancer و چند سرور OpenVPN با HA و shared CA استفاده کنید.

عیب‌یابی سریع

  • بررسی لاگ: sudo journalctl -u openvpn-server@server -e
  • بررسی تونل: ip a show tun0
  • بررسی پورت: sudo ss -ulpn | grep 1194
  • تست NAT: از یک کلاینت VPN پینگ به 8.8.8.8 و به IP عمومی سرور را تست کنید.

جمع‌بندی و توصیه‌های امنیتی

توصیه‌های کلیدی:

  • همیشه از TLS (tls-crypt) و CA قوی استفاده کنید.
  • از رمزنگاری قوی (AES-256-GCM) و حداقل TLS 1.2 بهره ببرید.
  • روال revoke و CRL را پیاده کنید تا در صورت نشت کلید، دسترسی‌ها حذف شوند.
  • از fail2ban و قوانین rate-limit در فایروال استفاده کنید.
  • مانیتورینگ و بررسی دوره‌ای لاگ‌ها را فراموش نکنید.

مزایای زیرساخت و لوکیشن‌های ارائه‌شده

استفاده از زیرساخت‌های آماده با لوکیشن‌های متعدد مزایایی از جمله کاهش پینگ، افزایش پایداری و محافظت DDoS فراهم می‌کند. گزینه‌هایی مثل VPS مخصوص ترید، سرور گیم، سرور GPU و سرور ضد-DDoS برای سناریوهای تخصصی پیشنهاد می‌شود.

Frequently Asked Questions

You May Also Like