Let's Encryptを使ってUbuntu 22.04にOpenConnect VPNサーバーをインストールして設定する方法
راهنمای گام‌به‌گام نصب OpenConnect VPN Server (ocserv) بر روی اوبونتو 22.04 و دریافت گواهی Let’s Encrypt.

Let's Encrypt を使って Ubuntu 22.04 に OpenConnect Server (ocserv) をインストールして設定する方法

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

 

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

در این راهنمای فنی گام‌به‌گام نحوهٔ راه‌اندازی سرویس OpenConnect (ocserv) の上 ウブントゥ 22.04 همراه با دریافت و مدیریت گواهی‌های レッツ・エンクリプト، پیکربندی امن، تنظیمات فایروال و NAT، احراز هویت کاربران، و نکات مربوط به اتصال کلاینت‌ها و اتوماسیون تمدید گواهی پوشش داده شده است.

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

 

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

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

  • サーバー ウブントゥ 22.04 با دسترسی root یا sudo در اختیار دارید.
  • یک دامنه (مثلاً vpn.example.com) به IP سرور اشاره می‌کند.
  • پورت‌های 80 そして 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 推奨。.

 

تنظیمات فایروال و 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 使用。.

 

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

  • محدود کردن نسخه‌های TLS 使用 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 می‌توانند مفید باشند.
  • گیمینگ: از split‑tunneling استفاده کنید تا فقط ترافیک لازم از VPN عبور کند و پینگ بازی کاهش یابد.
  • 人工知能とレンダリング: استفاده از سرورهای GPU در همان منطقه می‌تواند بار شبکه و تاخیر را کاهش دهد.
  • امنیت سازمانی: ترکیب LDAP/AD، 2FA، مانیتورینگ و سرورهای ضد DDoS توصیه می‌شود.

شرکت ما سرویس‌های ابری با عملکرد بالا، سرور گرافیکی (GPU)، VPS ترید/گیم، ثبت دامنه، CDN و شبکه BGP در 世界85か所以上の拠点 ارائه می‌دهد تا بتوانید VPN را نزدیک به کاربران خود قرار دهید و از حفاظت DDoS بهره‌مند شوید.

 

結論

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

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

あなたも気に入るかもしれない