آموزش نصب و راه‌اندازی OpenConnect VPN Server بر روی اوبونتو 22.04 با Let's Encrypt
راهنمای گام‌به‌گام نصب OpenConnect VPN Server (ocserv) بر روی اوبونتو 22.04 و دریافت گواهی Let’s Encrypt.

آموزش نصب و راه‌اندازی (ocserv) OpenConnect Server بر روی اوبونتو 22.04 با Let’s Encrypt

در این مقاله به آموزش راه‌اندازی OpenConnect VPN Server (ocserv) در اوبونتو 22.04 با گواهی‌نامه‌های Let’s Encrypt می‌پردازیم. این راهنما شامل نصب، پیکربندی و نکات امنیتی و بهینه‌سازی سرویس VPN می‌باشد.
0 Shares
0
0
0
0

 

چه چیزهایی در این راهنمای فنی پوشش داده می‌شود؟

در این راهنمای فنی گام‌به‌گام نحوهٔ راه‌اندازی سرویس OpenConnect (ocserv) On Ubuntu 22.04 همراه با دریافت و مدیریت گواهی‌های Let’s Encrypt، پیکربندی امن، تنظیمات فایروال و NAT، احراز هویت کاربران، و نکات مربوط به اتصال کلاینت‌ها و اتوماسیون تمدید گواهی پوشش داده شده است.

برای محیط‌های حساس مانند ترید، گیمینگ یا دسترسی سازمانی، انتخاب لوکیشن مناسب و استفاده از سرورهای دارای حفاظت ضد DDoS بسیار مهم است. شرکت ما بیش از 85+ لوکیشن جهانی، سرورهای ضد DDoS و شبکه BGP را ارائه می‌دهد.

 

پیش‌نیازها و انتخاب لوکیشن

قبل از شروع مطمئن شوید که:

  • A server Ubuntu 22.04 با دسترسی root یا sudo در اختیار دارید.
  • یک دامنه (مثلاً vpn.example.com) به IP سرور اشاره می‌کند.
  • پورت‌های 80 and 443 روی فایروال برای دریافت گواهی Let’s Encrypt باز هستند.

چرا لوکیشن مهم است؟

  • برای تریدرها و گیمرها، انتخاب لوکیشن با پینگ پایین (مثلاً London، Frankfurt یا Tokyo) اولویت دارد.
  • سازمان‌ها ممکن است به چند لوکیشن با BGP و CDN نیاز داشته باشند تا پایداری افزایش یابد.
  • برای حفاظت و پایداری، سرورهای دارای محافظت ضد DDoS توصیه می‌شوند.

 

نصب ocserv و بسته‌های مورد نیاز

ابتدا سیستم را به‌روز کنید و بسته‌های پایه را نصب کنید:

sudo apt update && sudo apt upgrade -y
sudo apt install ocserv certbot libnss3-tools -y

بسته‌های پیشنهادی برای محیط عملیاتی:

  • ufw یا nftables برای مدیریت فایروال
  • fail2ban برای محافظت در برابر حملات brute‑force
  • openssl یا gnutls‑bin در صورت نیاز به تست TLS

 

دریافت گواهی Let’s Encrypt (روش‌ها)

دو روش معمول برای دریافت گواهی:

روش A — با استفاده از nginx (در صورت وجود وب‌سرور)

اگر nginx دارید، می‌توانید virtual host را فعال کرده و از certbot با پلاگین nginx استفاده کنید:

sudo apt install nginx
sudo certbot --nginx -d vpn.example.com

سپس در فایل پیکربندی ocserv مسیر گواهی را به‌صورت زیر تعیین کنید:

server-cert = /etc/letsencrypt/live/vpn.example.com/fullchain.pem
server-key = /etc/letsencrypt/live/vpn.example.com/privkey.pem

روش B — standalone (اگر nginx ندارید)

چون ocserv به‌طور پیش‌فرض به پورت 443 گوش می‌دهد، قبل از اجرای certbot standalone باید ocserv را موقتاً متوقف کنید یا از DNS challenge استفاده کنید:

sudo systemctl stop ocserv
sudo certbot certonly --standalone -d vpn.example.com
sudo systemctl start ocserv

 

پیکربندی ocserv — نمونه ocserv.conf

فایل اصلی پیکربندی: /etc/ocserv/ocserv.conf. نمونه بخش‌های کلیدی:

# ports
tcp-port = 443
udp-port = 443

# certificates
server-cert = /etc/letsencrypt/live/vpn.example.com/fullchain.pem
server-key = /etc/letsencrypt/live/vpn.example.com/privkey.pem

# network
default-domain = vpn.example.com
dns = 1.1.1.1
dns = 1.0.0.1
route = 0.0.0.0/0
no-route = 192.168.0.0/16

# limits
max-clients = 250
max-same-clients = 2

# security and performance
keepalive = 60
auth = "plain[passwd=/etc/ocserv/ocpasswd]"
compression = false
tls-priorities = "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2"
allow-roaming = true

توضیحات مهم: route = 0.0.0.0/0 برای Full Tunnel است. برای Split‑Tunnel فقط شبکه‌های مورد نیاز را اضافه کنید. به‌دلایل امنیتی compression = false Recommended.

 

تنظیمات فایروال و NAT (IP forwarding)

فعال‌سازی IP forwarding:

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

نمونه قواعد iptables برای NAT (فرض interface خروجی eth0 و شبکه داخلی 10.10.10.0/24):

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -s 10.10.10.0/24 -j ACCEPT

برای حفظ قواعد پس از راه‌اندازی مجدد از iptables-persistent یا ذخیره config در nftables استفاده کنید.

نمونه دستورات UFW:

sudo ufw allow 443/tcp
sudo ufw allow 443/udp
sudo ufw allow 80/tcp
sudo ufw enable

 

احراز هویت و مدیریت کاربران

روش ساده مبتنی بر فایل passwd محلی:

sudo ocpasswd -c /etc/ocserv/ocpasswd alice

می‌توانید از PAM برای یکپارچه‌سازی با LDAP/AD استفاده کنید (تنظیم auth = "pam" در ocserv.conf).

برای احراز هویت مبتنی بر گواهی (x.509) تولید کلید/گواهی کلاینت:

sudo certtool --generate-privkey --outfile client-key.pem
sudo certtool --generate-certificate --load-privkey client-key.pem --outfile client-cert.pem --template client.tmpl

برای افزودن 2FA می‌توانید از libpam-google-authenticator و تنظیم PAM در /etc/pam.d/ocserv Use.

 

امنیت، hardening و بهینه‌سازی

  • محدود کردن نسخه‌های TLS Using tls-priorities.
  • غیرفعال‌سازی compression به دلایل امنیتی (مانند CRIME).
  • محدود کردن تعداد اتصالات هم‌زمان (max-same-clients).
  • فعال کردن logging و مانیتور منابع.
  • نصب و پیکربندی fail2ban برای جلوگیری از تلاش‌های مکرر ورود.

نمونه تنظیم ساده fail2ban:

[ocserv]
enabled = true
port = 443
filter = ocserv
logpath = /var/log/syslog
maxretry = 5

لازم است فیلتر مناسب (regex) مطابق لاگ‌های ocserv ساخته شود.

 

تست و اتصال کلاینت‌ها

کلاینت خط فرمان لینوکس با openconnect:

sudo apt install openconnect
sudo openconnect vpn.example.com

در دسکتاپ لینوکس از network-manager-openconnect و در Windows/macOS از OpenConnect GUI یا Cisco AnyConnect-compatible clients استفاده کنید.

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

sudo systemctl status ocserv
sudo journalctl -u ocserv -f

 

اتو‌میشن تمدید گواهی و نگهداری

اگر از nginx یا apache به‌عنوان reverse proxy استفاده می‌کنید، certbot معمولاً می‌تواند گواهی را بدون توقف سرویس تجدید کند و پس از تجدید ocserv را ری‌لود کنید:

sudo certbot renew --deploy-hook "systemctl reload ocserv"

اگر از standalone استفاده می‌کنید و ocserv روی 443 فعال است، گزینه‌ها عبارت‌اند از DNS challenge یا استفاده از pre/post hooks:

sudo certbot renew --pre-hook "systemctl stop ocserv" --post-hook "systemctl start ocserv"

 

نکات عملی و موارد تخصصی برای کاربردها

  • ترید: سروری در نزدیک‌ترین لوکیشن برای کمترین latency انتخاب کنید؛ VPSهای مخصوص ترید با پورت 443 و UDP/DTLS می‌توانند مفید باشند.
  • Gaming: از split‑tunneling استفاده کنید تا فقط ترافیک لازم از VPN عبور کند و پینگ بازی کاهش یابد.
  • Artificial Intelligence and Rendering: استفاده از سرورهای GPU در همان منطقه می‌تواند بار شبکه و تاخیر را کاهش دهد.
  • امنیت سازمانی: ترکیب LDAP/AD، 2FA، مانیتورینگ و سرورهای ضد DDoS توصیه می‌شود.

شرکت ما سرویس‌های ابری با عملکرد بالا، سرور گرافیکی (GPU)، VPS ترید/گیم، ثبت دامنه، CDN و شبکه BGP در 85+ global locations ارائه می‌دهد تا بتوانید VPN را نزدیک به کاربران خود قرار دهید و از حفاظت DDoS بهره‌مند شوید.

 

Conclusion

این راهنما به‌طور عملی مراحل راه‌اندازی OpenConnect (ocserv) روی Ubuntu 22.04 را از نصب تا دریافت گواهی Let’s Encrypt، پیکربندی امن، فایروال و NAT، احراز هویت، بهینه‌سازی و اتوماسیون تمدید پوشش داد.

با رعایت نکات امنیتی مانند TLS مدرن, غیرفعال‌سازی compression، محدودیت اتصالات، فعال‌سازی 2FA و fail2ban می‌توان یک سرویس VPN امن و قابل‌اعتماد برای تیم‌ها، گیمرها و تریدرها فراهم کرد.

You May Also Like