راه‌اندازی OpenVPN در MikroTik؛ آموزش کامل Server، Client و Certificate

OpenVPN یکی از شناخته‌شده‌ترین راهکارهای VPN برای اتصال امن کاربران دورکار، لپ‌تاپ‌ها، تلفن‌های همراه، شعب و سرورهای مختلف به شبکه سازمانی است. این پروتکل بر پایه SSL/TLS کار می‌کند و کلاینت آن برای Windows، Linux، macOS، Android و iOS در دسترس است.

در RouterOS می‌توان MikroTik را در نقش OpenVPN Server یا OpenVPN Client پیکربندی کرد. در سناریوی Server، کاربران از اینترنت به شبکه شرکت متصل می‌شوند. در سناریوی Client، خود روتر MikroTik به یک OpenVPN Server دیگر در دفتر مرکزی، دیتاسنتر یا سرویس ابری متصل می‌شود.

راه‌اندازی OpenVPN در MikroTik فقط به فعال‌کردن یک Server محدود نیست. برای پیاده‌سازی امن باید Certificateها، PPP Profile، کاربران، IP Pool، Firewall، Route، NAT و فایل تنظیم کلاینت به‌درستی با یکدیگر هماهنگ شوند.

در این راهنما ابتدا OpenVPN Server را برای کاربران دورکار راه‌اندازی می‌کنیم و سپس تنظیم MikroTik در نقش OpenVPN Client، حالت Split Tunnel، Full Tunnel و روش عیب‌یابی را بررسی خواهیم کرد.

نتیجه سریع: برای راه‌اندازی OpenVPN در MikroTik باید یک CA، گواهی Server و ترجیحاً گواهی اختصاصی برای هر Client بسازید، یک IP Pool و PPP Profile تعریف کنید، حساب PPP ایجاد نمایید، OVPN Server را فعال کنید و پورت TCP یا UDP موردنظر را در Input Firewall مجاز سازید. پس از آن فایل ovpn با Cipher، Certificate و Routeهای صحیح در اختیار کاربر قرار می‌گیرد.

هشدار پیش از اجرا: IPها، دامنه‌ها، نام Interfaceها و رمزهای این مقاله نمونه هستند. قبل از اعمال تغییرات روی روتر عملیاتی، از تنظیمات Backup و Export تهیه کنید و دستورات را با ساختار Firewall، WAN، LAN و نسخه RouterOS خود تطبیق دهید.

OpenVPN چیست؟

OpenVPN یک راهکار VPN مبتنی بر SSL/TLS است که می‌تواند یک Tunnel رمزگذاری‌شده میان Client و Server ایجاد کند. ترافیک داخل این Tunnel از طریق اینترنت عمومی منتقل می‌شود، اما محتوا برای اشخاصی که به کلیدها و مجوزهای لازم دسترسی ندارند قابل خواندن نیست.

OpenVPN می‌تواند در دو حالت اصلی اجرا شود:

  • حالت IP یا TUN: ایجاد Tunnel لایه سوم برای انتقال IPv4 و IPv6
  • حالت Ethernet یا TAP: ایجاد Tunnel لایه دوم برای انتقال فریم Ethernet

برای بیشتر سناریوهای کاربران دورکار و اتصال شعب، حالت IP یا TUN ساده‌تر، کم‌سربارتر و قابل‌کنترل‌تر است.

OpenVPN در RouterOS چه قابلیت‌هایی دارد؟

RouterOS پیاده‌سازی اختصاصی خود را از OpenVPN ارائه می‌کند. این پیاده‌سازی با کلاینت‌های رایج OpenVPN سازگار است، اما تمام Directiveها و قابلیت‌های نسخه اصلی OpenVPN را پوشش نمی‌دهد.

قابلیت‌های مهم عبارت‌اند از:

  • اجرای Server و Client
  • پشتیبانی از TCP و UDP
  • حالت IP و Ethernet
  • پشتیبانی از IPv4 و IPv6
  • احراز هویت Username و Password
  • استفاده از Certificate کلاینت و Server
  • مدیریت کاربران با PPP Secret
  • استفاده از PPP Profile و IP Pool
  • احراز هویت مرکزی با RADIUS
  • Push Route در نسخه‌های جدید RouterOS
  • پشتیبانی از Cipherهای AES-CBC و AES-GCM
  • اجرای چند OpenVPN Server Instance در نسخه‌های جدید
  • پشتیبانی از VRF در نسخه‌های جدید

برای آشنایی بیشتر با سیستم‌عامل و ساختار تجهیزات، مقاله میکروتیک چیست و RouterOS چه امکاناتی دارد؟ را مطالعه کنید.

محدودیت‌های مهم OpenVPN در MikroTik

  • تمام قابلیت‌ها و Directiveهای OpenVPN استاندارد پشتیبانی نمی‌شوند.
  • LZO Compression پشتیبانی نمی‌شود و اصولاً فعال‌کردن Compression توصیه نمی‌شود.
  • NCP یا Cipher Negotiation کامل پشتیبانی نمی‌شود.
  • Cipher باید در فایل ovpn به‌صورت صریح مشخص شود.
  • مدیریت تعداد زیاد Certificate و User به فرایند مستند نیاز دارد.
  • سرعت VPN به CPU روتر و Cipher انتخاب‌شده وابسته است.

OpenVPN برای چه سناریوهایی مناسب است؟

OpenVPN در سناریوهای زیر کاربرد دارد:

  • اتصال کارکنان دورکار به شبکه شرکت
  • دسترسی مدیر شبکه به تجهیزات داخلی
  • اتصال لپ‌تاپ‌های Windows، Linux و macOS
  • اتصال تلفن همراه Android و iOS
  • اتصال یک شعبه به دفتر مرکزی
  • اتصال MikroTik به OpenVPN Server لینوکسی
  • عبور VPN از شبکه‌هایی که فقط پورت TCP خاصی را مجاز می‌کنند
  • استفاده در شبکه‌های دارای Proxy سازگار

OpenVPN می‌تواند روی TCP/443 اجرا شود و از نظر ظاهری به ترافیک HTTPS نزدیک باشد. این ویژگی در شبکه‌هایی که UDP محدود شده است کاربرد دارد، اما نباید برای مخفی‌کردن فعالیت غیرمجاز یا دورزدن سیاست‌های سازمانی استفاده شود.

OpenVPN را با TCP اجرا کنیم یا UDP؟

معیارUDPTCP
سربارمعمولاً کمتربیشتر
کارایی در اینترنت پایدارمعمولاً بهترممکن است کندتر باشد
عبور از Firewall محدودممکن است UDP مسدود شودروی TCP/443 معمولاً سازگارتر است
TCP over TCPایجاد نمی‌شودممکن است باعث افت عملکرد شود
پیشنهاد عمومیانتخاب اول برای بیشتر پروژه‌هابرای شبکه‌های محدود یا نیاز خاص

در این مقاله Server را روی UDP پورت 1194 راه‌اندازی می‌کنیم. برای استفاده از TCP کافی است Protocol را در Server، Firewall و فایل Client به TCP تغییر دهید.

پیش‌نیازهای راه‌اندازی OpenVPN Server

  1. RouterOS به نسخه Stable جدید و پشتیبانی‌شده ارتقا یافته باشد.
  2. روتر از اینترنت قابل دسترسی باشد.
  3. IP عمومی یا DDNS معتبر وجود داشته باشد.
  4. در صورت وجود مودم بالادستی، Port Forward انجام شود.
  5. ساعت، تاریخ و NTP روتر صحیح باشند.
  6. شبکه VPN با LAN و شبکه کاربران تداخل نداشته باشد.
  7. Backup و Export از تنظیمات فعلی تهیه شده باشد.
  8. قوانین Input و Forward Firewall بررسی شده باشند.
  9. نام دامنه‌ای مانند vpn.example.com به IP عمومی روتر اشاره کند.

برای تنظیمات اولیه RouterOS می‌توانید ابتدا مقاله راه‌اندازی سریع روتر MikroTik از صفر را مطالعه کنید.

توپولوژی نمونه مقاله

در مثال این راهنما از ساختار زیر استفاده می‌کنیم:

بخشمقدار نمونه
نام دامنه VPNvpn.example.com
پروتکلUDP
پورت1194
شبکه داخلی شرکت192.168.10.0/24
Gateway داخلی192.168.10.1
شبکه OpenVPN10.77.10.0/24
IP سمت Server10.77.10.1
IP کاربران10.77.10.10-10.77.10.200

مرحله اول: تنظیم ساعت و NTP

Certificateها دارای تاریخ شروع و پایان اعتبار هستند. اگر ساعت روتر اشتباه باشد، Server یا Client ممکن است گواهی معتبر را Expired یا Not Yet Valid تشخیص دهد.

/system clock
set time-zone-name=Asia/Tehran

/system ntp client
set enabled=yes

/system ntp client servers
add address=time.cloudflare.com
add address=time.google.com

وضعیت را بررسی کنید:

/system clock print
/system ntp client print

مرحله دوم: ساخت Certificateهای OpenVPN

برای ساختار امن‌تر، سه نوع Certificate ایجاد می‌کنیم:

  • CA Certificate: مرجع امضای گواهی‌ها
  • Server Certificate: هویت OpenVPN Server
  • Client Certificate: هویت اختصاصی هر دستگاه کاربر

ساخت CA

/certificate
add name=ovpn-ca-template \
 common-name=Bistoon-OVPN-CA \
 key-size=2048 \
 digest-algorithm=sha256 \
 days-valid=3650 \
 key-usage=key-cert-sign,crl-sign

/certificate
sign ovpn-ca-template name=ovpn-ca

/certificate
set ovpn-ca trusted=yes trust-store=ovpn

ساخت Server Certificate

نام دامنه در Common Name و Subject Alternative Name باید با آدرسی که Client به آن متصل می‌شود هماهنگ باشد.

/certificate
add name=ovpn-server-template \
 common-name=vpn.example.com \
 subject-alt-name=DNS:vpn.example.com \
 key-size=2048 \
 digest-algorithm=sha256 \
 days-valid=825 \
 key-usage=digital-signature,key-encipherment,tls-server

/certificate
sign ovpn-server-template \
 ca=ovpn-ca \
 name=ovpn-server

/certificate
set ovpn-server trusted=yes

ساخت Certificate اختصاصی Client

برای هر لپ‌تاپ یا تلفن همراه یک Certificate جداگانه بسازید. مثال زیر مربوط به لپ‌تاپ کاربر اول است:

/certificate
add name=ovpn-client-user01-template \
 common-name=ovpn-user01-laptop \
 key-size=2048 \
 digest-algorithm=sha256 \
 days-valid=825 \
 key-usage=digital-signature,key-encipherment,tls-client

/certificate
sign ovpn-client-user01-template \
 ca=ovpn-ca \
 name=ovpn-client-user01

بررسی Certificateها

/certificate print detail

گواهی‌های امضاشده باید دارای Private Key و تاریخ اعتبار صحیح باشند. CA نیز باید Authority و Trusted باشد.

امنیت CA: Private Key مربوط به CA امکان امضای Client جدید را فراهم می‌کند. فایل کلید CA را در اختیار کاربران قرار ندهید و دسترسی مدیریتی به روتر صادرکننده را محدود کنید.

مرحله سوم: Export کردن Certificate کلاینت

Certificate کلاینت را با یک Passphrase قوی Export کنید:

/certificate
export-certificate ovpn-client-user01 \
 type=pkcs12 \
 export-passphrase="CHANGE-THIS-P12-PASSPHRASE" \
 file-name=ovpn-user01

CA را نیز به‌صورت PEM یا CRT Export کنید:

/certificate
export-certificate ovpn-ca \
 type=pem \
 file-name=ovpn-ca

فایل‌ها از بخش Files قابل دریافت هستند. آن‌ها را همراه با رمز در یک کانال واحد و ناامن برای کاربر ارسال نکنید.

مرحله چهارم: ساخت IP Pool و PPP Profile

ساخت IP Pool

/ip pool
add name=ovpn-pool \
 ranges=10.77.10.10-10.77.10.200

ساخت PPP Profile

/ppp profile
add name=ovpn-profile \
 local-address=10.77.10.1 \
 remote-address=ovpn-pool \
 dns-server=192.168.10.10 \
 only-one=yes \
 use-encryption=required \
 comment="OpenVPN remote access profile"

در صورت نداشتن DNS داخلی می‌توانید DNS روتر یا DNS عمومی موردنظر را تعیین کنید. برای دسترسی به نام‌های داخلی شرکت، DNS داخلی توصیه می‌شود.

برای آشنایی بیشتر با PPP Profile و مدیریت حساب‌ها، مقاله PPP و مدیریت کاربران در RouterOS را مطالعه کنید.

مرحله پنجم: ایجاد کاربر OpenVPN

برای هر کاربر یک PPP Secret مستقل بسازید:

/ppp secret
add name=ovpn-user01 \
 password="CHANGE-THIS-STRONG-USER-PASSWORD" \
 service=ovpn \
 profile=ovpn-profile \
 comment="Accounting laptop"

برای کاربر دوم:

/ppp secret
add name=ovpn-user02 \
 password="CHANGE-THIS-SECOND-PASSWORD" \
 service=ovpn \
 profile=ovpn-profile \
 comment="Network administrator"

توصیه: حساب و Certificate مشترک برای چند کاربر ایجاد نکنید. با حساب مستقل می‌توان دسترسی یک کارمند خارج‌شده یا دستگاه سرقت‌شده را بدون قطع سایر کاربران لغو کرد.

مرحله ششم: فعال‌سازی OpenVPN Server

دستور زیر برای RouterOS جدید و ساختار چند Server Instance نوشته شده است:

/interface ovpn-server server
add name=ovpn-server1 \
 disabled=no \
 protocol=udp \
 port=1194 \
 mode=ip \
 certificate=ovpn-server \
 require-client-certificate=yes \
 default-profile=ovpn-profile \
 auth=sha256 \
 cipher=aes256-gcm,aes256-cbc \
 tls-version=only-1.2 \
 user-auth-method=pap \
 max-mtu=1420 \
 keepalive-timeout=60 \
 comment="OpenVPN remote access server"

برای مشاهده Server:

/interface ovpn-server server print detail

انتخاب Cipher

AES-256-GCM گزینه مدرن‌تری است و رمزگذاری و Authentication داده را یکپارچه انجام می‌دهد. AES-256-CBC می‌تواند برای سازگاری با بعضی Clientهای قدیمی‌تر حفظ شود.

کلاینت باید Cipher را صریحاً مشخص کند. اگر از RouterOS قدیمی استفاده می‌کنید، سازگاری GCM و Auth را در همان نسخه آزمایش کنید.

مرحله هفتم: تنظیم Firewall برای OpenVPN

اجازه اتصال به پورت OpenVPN

Rule زیر باید پیش از Rule نهایی Drop در Input Chain قرار گیرد:

/ip firewall filter
add chain=input \
 action=accept \
 protocol=udp \
 dst-port=1194 \
 in-interface-list=WAN \
 comment="Allow OpenVPN UDP"

اگر از TCP استفاده می‌کنید:

/ip firewall filter
add chain=input \
 action=accept \
 protocol=tcp \
 dst-port=1194 \
 in-interface-list=WAN \
 comment="Allow OpenVPN TCP"

کنترل دسترسی کاربران VPN

بهتر است کاربران VPN به تمام LAN دسترسی کامل نداشته باشند. مثال زیر فقط HTTPS و RDP را به یک Server مشخص مجاز می‌کند:

/ip firewall filter
add chain=forward \
 action=accept \
 src-address=10.77.10.0/24 \
 dst-address=192.168.10.20 \
 protocol=tcp \
 dst-port=443,3389 \
 comment="OpenVPN users to application server"

add chain=forward \
 action=drop \
 src-address=10.77.10.0/24 \
 dst-address=192.168.10.0/24 \
 comment="Block other OpenVPN access to LAN"

Ruleهای مربوط به Established و Related باید قبل از این بخش وجود داشته باشند.

اصل حداقل دسترسی: اتصال موفق VPN به معنای اعتماد کامل به دستگاه کاربر نیست. دسترسی هر گروه باید فقط به Serverها، VLANها و Portهای موردنیاز محدود شود.

برای بررسی تنظیمات امنیتی تکمیلی، مقاله راهنمای افزایش امنیت MikroTik را مطالعه کنید.

مرحله هشتم: تنظیم Split Tunnel

در Split Tunnel فقط ترافیک شبکه‌های سازمانی از OpenVPN عبور می‌کند. اینترنت عمومی کاربر از اتصال محلی منزل یا موبایل استفاده می‌کند.

در نسخه‌های جدید RouterOS می‌توان Route شبکه داخلی را از Server به Client ارسال کرد:

/interface ovpn-server server
set ovpn-server1 \
 push-routes="192.168.10.0 255.255.255.0"

اگر Push Route با Client موردنظر سازگار نبود، Route را مستقیماً در فایل ovpn اضافه کنید:

route 192.168.10.0 255.255.255.0

مزایای Split Tunnel:

  • مصرف کمتر پهنای باند دفتر مرکزی
  • کاهش بار CPU روتر
  • تأخیر کمتر برای اینترنت عمومی کاربر

محدودیت آن این است که ترافیک اینترنت کاربر از Firewall سازمان عبور نمی‌کند.

مرحله نهم: تنظیم Full Tunnel

در Full Tunnel تمام اینترنت IPv4 کاربر از طریق MikroTik عبور می‌کند.

در Server می‌توان Redirect Gateway را فعال کرد:

/interface ovpn-server server
set ovpn-server1 redirect-gateway=def1

برای خروج کاربران VPN از اینترنت شرکت، NAT لازم است:

/ip firewall nat
add chain=srcnat \
 action=masquerade \
 src-address=10.77.10.0/24 \
 out-interface-list=WAN \
 comment="Internet access for OpenVPN clients"

همچنین Forward Firewall باید ترافیک VPN به WAN را مجاز کند:

/ip firewall filter
add chain=forward \
 action=accept \
 src-address=10.77.10.0/24 \
 out-interface-list=WAN \
 comment="OpenVPN full tunnel to internet"

ظرفیت اینترنت: در Full Tunnel، Download کاربر از Upload دفتر مرکزی و توان CPU روتر عبور می‌کند. پیش از فعال‌سازی برای تعداد زیاد کاربر، ظرفیت لینک و روتر را آزمایش کنید.

مرحله دهم: ساخت فایل Client با پسوند ovpn

نمونه زیر برای OpenVPN Connect و حالت Split Tunnel است. Certificateها و کلیدها باید با مقادیر واقعی جایگزین شوند.

client
dev tun
proto udp
remote vpn.example.com 1194

nobind
persist-key
persist-tun

remote-cert-tls server
verify-x509-name vpn.example.com name

auth-user-pass
auth SHA256
cipher AES-256-GCM
data-ciphers AES-256-GCM
data-ciphers-fallback AES-256-GCM

tls-version-min 1.2

route 192.168.10.0 255.255.255.0

verb 3

<ca>
-----BEGIN CERTIFICATE-----
PASTE-CA-CERTIFICATE-HERE
-----END CERTIFICATE-----
</ca>

<cert>
-----BEGIN CERTIFICATE-----
PASTE-CLIENT-CERTIFICATE-HERE
-----END CERTIFICATE-----
</cert>

<key>
-----BEGIN PRIVATE KEY-----
PASTE-CLIENT-PRIVATE-KEY-HERE
-----END PRIVATE KEY-----
</key>

نکته سازگاری: RouterOS از NCP Autonegotiation کامل استفاده نمی‌کند؛ بنابراین Cipher باید در پروفایل Client مشخص باشد. اگر AES-256-GCM با نسخه Client یا RouterOS سازگار نبود، هر دو سمت را به AES-256-CBC و SHA256 تغییر دهید و مجدداً آزمایش کنید.

نمونه تغییر به TCP

proto tcp-client
remote vpn.example.com 443

در این حالت Server و Firewall نیز باید روی TCP/443 تنظیم شوند. پیش از استفاده مطمئن شوید پورت 443 توسط سرویس دیگری روی همان IP اشغال نشده باشد.

اتصال Windows با OpenVPN Connect

  1. OpenVPN Connect را از منبع رسمی نصب کنید.
  2. فایل ovpn را Import کنید.
  3. نام کاربری و رمز PPP Secret را وارد کنید.
  4. رمز Private Key را در صورت وجود وارد نمایید.
  5. اتصال را فعال کنید.
  6. IP اختصاص‌یافته و Routeها را بررسی کنید.
  7. ابتدا IP روتر VPN و سپس Server داخلی را Ping کنید.

در Windows می‌توانید Routeها را با دستور زیر بررسی کنید:

route print

بررسی IP:

ipconfig /all

اتصال Android و iOS

  1. OpenVPN Connect را نصب کنید.
  2. فایل ovpn را با روش امن به دستگاه منتقل کنید.
  3. پروفایل را Import نمایید.
  4. نام کاربری، رمز و Passphrase گواهی را وارد کنید.
  5. مجوز ایجاد VPN را تأیید نمایید.
  6. پس از اتصال، دسترسی به منابع داخلی را آزمایش کنید.

فایل Client شامل Private Key است و باید مانند رمز عبور محافظت شود. آن را در فضای عمومی، گروه پیام‌رسان یا ایمیل بدون حفاظت نگهداری نکنید.

تنظیم MikroTik در نقش OpenVPN Client

در این سناریو یک روتر شعبه به OpenVPN Server دفتر مرکزی متصل می‌شود.

Import Certificateهای Client

فایل CA و PKCS12 را در Files روتر شعبه Upload کنید و سپس Import نمایید:

/certificate
import file-name=ovpn-ca.crt trusted=yes

/certificate
import file-name=ovpn-user01.p12 \
 passphrase="P12-FILE-PASSPHRASE"

نام Certificate واردشده را بررسی کنید:

/certificate print detail

ساخت OVPN Client Interface

/interface ovpn-client
add name=ovpn-to-hq \
 connect-to=vpn.example.com \
 port=1194 \
 protocol=udp \
 mode=ip \
 user=ovpn-branch01 \
 password="CHANGE-THIS-BRANCH-PASSWORD" \
 certificate=ovpn-client-branch01 \
 auth=sha256 \
 cipher=aes256-gcm \
 verify-server-certificate=yes \
 tls-version=only-1.2 \
 add-default-route=no \
 use-peer-dns=no \
 disabled=no \
 comment="OpenVPN connection to HQ"

افزودن Route شبکه دفتر مرکزی

/ip route
add dst-address=192.168.10.0/24 \
 gateway=ovpn-to-hq \
 comment="Route to HQ over OpenVPN"

اعتبارسنجی Server: در صورت فعال‌بودن verify-server-certificate، نام دامنه یا IP تنظیم‌شده در connect-to باید در CN یا SAN گواهی Server وجود داشته باشد.

OpenVPN به‌صورت Site-to-Site

برای اتصال دو شعبه، هر سایت باید Subnet منحصربه‌فرد داشته باشد:

  • دفتر مرکزی: 192.168.10.0/24
  • شعبه: 192.168.20.0/24
  • شبکه Tunnel: 10.77.10.0/24

در دفتر مرکزی Route شبکه شعبه باید از طریق Interface مربوط به کاربر شعبه هدایت شود. برای داشتن نام Interface ثابت می‌توان یک Static OVPN Server Interface با نام کاربر ساخت.

/interface ovpn-server
add name=ovpn-branch01 \
 user=ovpn-branch01 \
 comment="Static interface for Branch 01"

سپس Route شبکه شعبه:

/ip route
add dst-address=192.168.20.0/24 \
 gateway=ovpn-branch01 \
 comment="Route to Branch 01 LAN"

در شعبه نیز Route شبکه دفتر مرکزی از طریق OVPN Client تعریف می‌شود.

برای شبکه‌های چندشعبه‌ای باید Naming، IP Plan، Certificateها، PPP Secretها و Firewall Ruleها به‌صورت استاندارد مستند شوند.

آیا میان شعب NAT لازم است؟

در یک طراحی Routed Site-to-Site معمولاً میان دو LAN، NAT انجام نمی‌شود. حفظ IP واقعی دستگاه‌ها عیب‌یابی، Logging و کنترل Firewall را ساده‌تر می‌کند.

اگر یک Masquerade عمومی بدون شرط WAN دارید، بررسی کنید ترافیک VPN به‌اشتباه NAT نشود.

برای استثناکردن ترافیک میان دو شعبه می‌توان Rule مناسب را پیش از Masquerade قرار داد:

/ip firewall nat
add chain=srcnat \
 action=accept \
 src-address=192.168.10.0/24 \
 dst-address=192.168.20.0/24 \
 comment="No NAT between HQ and Branch"

مدیریت OpenVPN با RADIUS

برای تعداد زیاد کاربر می‌توان Authentication و Accounting را به RADIUS منتقل کرد.

/radius
add service=ppp \
 address=192.168.10.30 \
 secret="CHANGE-THIS-RADIUS-SECRET" \
 authentication-port=1812 \
 accounting-port=1813

/ppp aaa
set use-radius=yes accounting=yes

RADIUS مدیریت متمرکز کاربران را ساده می‌کند، اما Certificate Client همچنان باید براساس سیاست امنیتی سازمان مدیریت شود.

مانیتورینگ اتصال‌های OpenVPN

مشاهده کاربران فعال

/ppp active print detail

مشاهده Interfaceهای OpenVPN

/interface ovpn-server print detail

مشاهده Logها

/log print where topics~"ovpn"
/log print where topics~"ppp"
/log print where message~"certificate"

برای Debug موقت:

/system logging
add topics=ovpn,debug action=memory
add topics=ppp,debug action=memory

توجه: Debug Logging می‌تواند حجم زیادی Log تولید کند. پس از پایان عیب‌یابی Ruleهای Debug را غیرفعال یا حذف کنید.

بررسی CPU و منابع

/system resource print
/tool profile

اگر CPU هنگام انتقال VPN به 100 درصد می‌رسد، روتر به محدودیت پردازشی نزدیک شده است.

عیب‌یابی خطاهای رایج OpenVPN

Client به Server متصل نمی‌شود

  1. دامنه یا IP عمومی را بررسی کنید.
  2. پورت TCP یا UDP را در Firewall کنترل کنید.
  3. Port Forward مودم بالادستی را بررسی نمایید.
  4. وجود CGNAT را کنترل کنید.
  5. Protocol و Port دو سمت را یکسان کنید.
  6. با Packet Sniffer ورود Packetها را بررسی نمایید.
/tool sniffer quick \
 interface=ether1 \
 port=1194

خطای Certificate Verification

دلایل رایج:

  • ساعت یا تاریخ اشتباه است.
  • Certificate منقضی شده است.
  • CA صحیح در Client وارد نشده است.
  • CN یا SAN با نام دامنه Server مطابقت ندارد.
  • گواهی Server دارای Key Usage مناسب نیست.
  • Certificate Client توسط CA دیگری امضا شده است.

خطای Cipher یا Data Channel

اگر Client پیام Cipher Negotiation یا No Shared Cipher نمایش می‌دهد:

  • Cipher را در فایل ovpn صریحاً مشخص کنید.
  • Cipher Client باید در فهرست Cipherهای Server وجود داشته باشد.
  • برای RouterOS جدید AES-256-GCM را آزمایش کنید.
  • برای سازگاری بیشتر AES-256-CBC و SHA256 را در هر دو سمت قرار دهید.
  • Compression و Directiveهای پشتیبانی‌نشده را حذف کنید.

خطای AUTH_FAILED

  • Username و Password را بررسی کنید.
  • PPP Secret باید Service برابر ovpn داشته باشد.
  • Profile کاربر را کنترل کنید.
  • طول Username را کوتاه و استاندارد نگه دارید.
  • در صورت استفاده از RADIUS، Shared Secret و پاسخ Server را بررسی کنید.

VPN متصل است ولی LAN باز نمی‌شود

  1. IP اختصاص‌یافته به Client را بررسی کنید.
  2. Route شبکه داخلی را روی Client کنترل کنید.
  3. Forward Firewall را بررسی نمایید.
  4. Firewall سیستم مقصد را کنترل کنید.
  5. Route برگشت از LAN به شبکه OpenVPN را بررسی کنید.
  6. تداخل Subnet منزل کاربر و LAN شرکت را حذف کنید.

تداخل شبکه منزل و شرکت

اگر شبکه شرکت و منزل کاربر هر دو 192.168.1.0/24 باشند، سیستم‌عامل ممکن است شبکه محلی را به‌جای Tunnel انتخاب کند.

راهکار اصلی استفاده از Subnetهای منحصربه‌فرد و غیررایج برای شبکه سازمانی است. NAT داخل VPN فقط باید به‌عنوان راهکار موقت و با شناخت محدودیت‌ها استفاده شود.

سرعت OpenVPN پایین است

  • CPU Load روتر را بررسی کنید.
  • UDP را به‌جای TCP آزمایش کنید.
  • MTU را بررسی نمایید.
  • Packet Loss اینترنت را اندازه‌گیری کنید.
  • Queue و Mangle Ruleها را کنترل کنید.
  • توان Upload هر دو سمت را بررسی نمایید.
  • Cipher سبک‌تر و امن سازگار را آزمایش کنید.

مشکل MTU و بازنشدن بعضی سایت‌ها

نشانه‌های مشکل MTU:

  • Ping کوچک موفق است ولی فایل منتقل نمی‌شود.
  • بعضی سایت‌ها نیمه‌کاره باز می‌شوند.
  • RDP یا HTTPS قطع می‌شود.
  • اتصال برقرار است ولی Throughput بسیار پایین است.

می‌توانید MTU را به‌صورت آزمایشی کاهش دهید:

/interface ovpn-server server
set ovpn-server1 max-mtu=1400

مقدار نهایی باید با آزمایش مسیر تعیین شود و نباید صرفاً به‌صورت تصادفی کاهش یابد.

چک‌لیست امنیتی OpenVPN در MikroTik

  1. RouterOS را به نسخه Stable پشتیبانی‌شده ارتقا دهید.
  2. ساعت و NTP را صحیح تنظیم کنید.
  3. برای Server از Certificate دارای SAN معتبر استفاده کنید.
  4. Require Client Certificate را فعال کنید.
  5. برای هر کاربر Certificate و PPP Secret مستقل بسازید.
  6. از رمزهای طولانی و منحصربه‌فرد استفاده کنید.
  7. AES-GCM یا Cipher امن سازگار را انتخاب کنید.
  8. MD5، Cipherهای قدیمی و Compression را استفاده نکنید.
  9. TLS 1.2 را حداقل نسخه مجاز قرار دهید.
  10. پورت OpenVPN را فقط روی WAN موردنیاز باز کنید.
  11. دسترسی کاربران VPN را با Forward Firewall محدود کنید.
  12. Private Key را از طریق پیام‌رسان عمومی ارسال نکنید.
  13. در زمان خروج کاربر، Secret و Certificate او را غیرفعال یا Revoke کنید.
  14. Certificateهای نزدیک به انقضا را مانیتور کنید.
  15. Log ورودها و IPهای مبدأ را بررسی کنید.
  16. Backup رمزگذاری‌شده از تنظیمات نگهداری کنید.
  17. روی Clientها از Disk Encryption، EDR و به‌روزرسانی منظم استفاده کنید.

لغو دسترسی کاربر

ابتدا PPP Secret را غیرفعال کنید:

/ppp secret
disable [find name="ovpn-user01"]

سپس Certificate را Revoke کنید:

/certificate
revoke ovpn-client-user01

در ساختارهای حساس باید وضعیت CRL و روش اعتبارسنجی Clientها نیز بررسی شود.

مقایسه OpenVPN با WireGuard و IPsec

معیارOpenVPNWireGuardIPsec
ساختار احراز هویتCertificate و Username/PasswordPublic KeyPSK یا Certificate
TransportTCP یا UDPUDPIKE، ESP و NAT-T
پیچیدگیمتوسطکمتربیشتر
عبور از Firewall محدودمناسب، به‌ویژه روی TCPوابسته به UDPممکن است محدود شود
مدیریت کاربرPPP، Certificate و RADIUSمدیریت Peer و Keyقابل اتصال به ساختارهای Enterprise
کاربرد مناسبکلاینت‌های متنوع و شبکه‌های محدودشعب و کاربران با پیکربندی ساده‌ترSite-to-Site و محیط سازمانی

OpenVPN زمانی گزینه‌ای جدی است که سازگاری گسترده Client، Username و Password، Certificate، TCP یا عبور از شبکه‌های محدود اهمیت داشته باشد.

برای بررسی گزینه سبک‌تر و مدرن‌تر، مقاله اتصال امن شعب و نیروی دورکار با WireGuard را مطالعه کنید.

انتخاب روتر MikroTik مناسب OpenVPN

وجود منوی OpenVPN در RouterOS به معنای مناسب‌بودن تمام مدل‌ها برای تعداد زیاد کاربر یا سرعت بالا نیست.

معیارهای انتخاب روتر:

  • تعداد کاربران هم‌زمان
  • سرعت موردنیاز داخل Tunnel
  • TCP یا UDP
  • نوع Cipher
  • Split Tunnel یا Full Tunnel
  • Firewall و NAT هم‌زمان
  • تعداد VLANها و Routeها
  • تعداد شعب
  • سرعت اینترنت و Uplink
  • برنامه توسعه شبکه

برای شبکه کوچک و VPN سبک می‌توان MikroTik hEX S 2025 را بررسی کرد.

برای دفتر یا شعبه متوسط، MikroTik L009UiGS-RM گزینه قابل بررسی است.

برای کاربران بیشتر، Firewall سنگین‌تر و Uplink سریع‌تر، MikroTik RB5009UG+S+IN ظرفیت سخت‌افزاری بیشتری ارائه می‌دهد.

برای انتخاب دقیق‌تر از راهنمای با ۵ سؤال روتر مناسب خود را پیدا کنید استفاده کنید.

چک‌لیست اجرای پروژه OpenVPN

  1. سناریوی Remote Access یا Site-to-Site را مشخص کنید.
  2. شبکه VPN مستقل طراحی کنید.
  3. تداخل Subnetهای کاربران را بررسی کنید.
  4. IP عمومی، DDNS و Port Forward را آماده کنید.
  5. NTP روتر را تنظیم نمایید.
  6. CA، Server Certificate و Client Certificate بسازید.
  7. IP Pool و PPP Profile را تعریف کنید.
  8. برای هر کاربر PPP Secret مستقل بسازید.
  9. OpenVPN Server را با TLS و Cipher مناسب فعال کنید.
  10. Input Firewall را تنظیم نمایید.
  11. Forward Firewall را براساس حداقل دسترسی بسازید.
  12. Split Tunnel یا Full Tunnel را انتخاب کنید.
  13. فایل ovpn اختصاصی هر کاربر را آماده کنید.
  14. اتصال را ابتدا با یک کاربر آزمایشی تست کنید.
  15. Route، DNS، MTU و سرعت را بررسی کنید.
  16. فرایند لغو دسترسی کاربر را مستند کنید.
  17. Backup نهایی و مستندات شبکه را ذخیره کنید.

راه‌اندازی OpenVPN و انتخاب تجهیزات با گروه بیستون

پیاده‌سازی OpenVPN فقط شامل فعال‌کردن یک Server نیست. Certificate، Firewall، Routing، NAT، DNS، MTU، دسترسی کاربران، ظرفیت CPU و امنیت Endpoint باید به‌صورت یکپارچه بررسی شوند.

گروه فناوری ارتباطات پندار بیستون امکان بررسی تجهیزات MikroTik، استعلام قیمت و موجودی و دریافت مشاوره برای انتخاب روتر و طراحی VPN را فراهم می‌کند.

برای بررسی پروژه، اطلاعات زیر را آماده کنید:

  • مدل روتر و نسخه RouterOS
  • تعداد کاربران و شعب
  • سرعت اینترنت دو سمت
  • نوع IP عمومی یا CGNAT
  • شبکه‌های LAN و VLAN
  • منابع موردنیاز کاربران
  • Split Tunnel یا Full Tunnel
  • نوع سیستم‌عامل Clientها
  • سرعت موردانتظار VPN
  • برنامه توسعه آینده

برای بررسی روترهای مناسب VPN به صفحه خرید تجهیزات MikroTik مراجعه کنید. برای طراحی OpenVPN، Certificate، Firewall و اتصال شعب نیز از طریق صفحه پشتیبانی و مشاوره فنی گروه بیستون درخواست خود را ثبت کنید.

سؤالات متداول درباره OpenVPN در MikroTik

آیا MikroTik از OpenVPN پشتیبانی می‌کند؟

بله. RouterOS می‌تواند در نقش OpenVPN Server و Client اجرا شود و از TCP، UDP، Certificate و احراز هویت PPP پشتیبانی می‌کند.

پورت پیش‌فرض OpenVPN چیست؟

پورت رایج OpenVPN برابر 1194 است. این پورت قابل تغییر بوده و باید در Server، Client و Firewall یکسان باشد.

OpenVPN روی TCP بهتر است یا UDP؟

UDP معمولاً سربار کمتر و عملکرد بهتری دارد. TCP برای شبکه‌هایی مناسب است که UDP را مسدود می‌کنند یا فقط پورت‌های محدود را مجاز می‌سازند.

آیا Certificate کلاینت الزامی است؟

RouterOS می‌تواند فقط با Server Certificate و Username و Password کار کند، اما برای امنیت بیشتر توصیه می‌شود Require Client Certificate فعال باشد.

آیا OpenVPN در MikroTik از Username و Password استفاده می‌کند؟

بله. کاربران معمولاً از طریق PPP Secret یا RADIUS احراز هویت می‌شوند. Certificate می‌تواند به‌عنوان عامل امنیتی مکمل استفاده شود.

آیا Windows به OpenVPN MikroTik متصل می‌شود؟

بله. با OpenVPN Connect یا Client سازگار و فایل ovpn مناسب می‌توان Windows را به MikroTik متصل کرد.

آیا Android و iPhone پشتیبانی می‌شوند؟

بله. OpenVPN Connect برای Android و iOS موجود است و فایل ovpn را Import می‌کند.

آیا OpenVPN به IP ثابت نیاز دارد؟

الزاماً خیر. می‌توان از DDNS استفاده کرد؛ اما Server باید از اینترنت قابل دسترسی باشد. در صورت CGNAT ممکن است دریافت IP عمومی یا استفاده از VPS لازم شود.

آیا OpenVPN پشت CGNAT کار می‌کند؟

کلاینت می‌تواند پشت CGNAT باشد، اما Server پشت CGNAT معمولاً از اینترنت مستقیماً قابل دسترسی نیست مگر اینکه اپراتور Port Mapping ارائه دهد یا یک Server واسط استفاده شود.

تفاوت Split Tunnel و Full Tunnel چیست؟

در Split Tunnel فقط شبکه‌های سازمانی از VPN عبور می‌کنند. در Full Tunnel تمام اینترنت کاربر از روتر شرکت عبور می‌کند.

چرا OpenVPN متصل است ولی شبکه داخلی باز نمی‌شود؟

Route، Push Route، Forward Firewall، Firewall سیستم مقصد، Route برگشت و تداخل Subnetها باید بررسی شوند.

چرا Client خطای Cipher می‌دهد؟

RouterOS از NCP کامل پشتیبانی نمی‌کند و Cipher باید در فایل ovpn مشخص باشد. Cipher انتخاب‌شده باید در Server و Client یکسان و پشتیبانی‌شده باشد.

آیا AES-256-GCM در MikroTik قابل استفاده است؟

در نسخه‌های جدید RouterOS از AES-GCM پشتیبانی می‌شود. نسخه RouterOS، Auth و Client مورد استفاده باید از نظر سازگاری آزمایش شوند.

OpenVPN بهتر است یا WireGuard؟

OpenVPN برای سازگاری گسترده، TCP، Proxy و احراز هویت Username مناسب است. WireGuard تنظیمات ساده‌تر و ساختار سبک‌تری دارد. انتخاب به سناریوی شبکه بستگی دارد.

چه عواملی سرعت OpenVPN را محدود می‌کنند؟

پردازنده روتر، Cipher، TCP یا UDP، MTU، Packet Loss، Upload اینترنت، Firewall، Queue و تعداد کاربران هم‌زمان بر سرعت اثر می‌گذارند.

چرا نام دامنه باید داخل Certificate باشد؟

کلاینت هنگام Verify کردن Server، نام دامنه اتصال را با CN یا SAN گواهی مقایسه می‌کند. عدم تطابق می‌تواند باعث خطای اعتبارسنجی شود.

جمع‌بندی

راه‌اندازی OpenVPN در MikroTik امکان اتصال امن کاربران دورکار، تلفن‌های همراه، لپ‌تاپ‌ها و شعب را به شبکه سازمانی فراهم می‌کند.

پیاده‌سازی صحیح شامل ساخت CA، Server Certificate و Client Certificate، ایجاد PPP Profile و PPP Secret، تعریف IP Pool، فعال‌سازی OpenVPN Server و تنظیم Input و Forward Firewall است.

در Split Tunnel فقط شبکه‌های داخلی از VPN عبور می‌کنند. در Full Tunnel، اینترنت کاربر نیز از MikroTik عبور می‌کند و به NAT و ظرفیت بیشتر اینترنت و پردازنده نیاز دارد.

مهم‌ترین نکات امنیتی، استفاده از Certificate اختصاصی، رمزهای منحصربه‌فرد، TLS 1.2، Cipher صریح و امن، محدودسازی دسترسی کاربران و لغو سریع مجوز دستگاه‌های خارج‌شده هستند.

OpenVPN برای همه سناریوها بهترین گزینه نیست. در پروژه‌هایی که سادگی، سرعت و مدیریت Peerها اولویت دارد، WireGuard نیز باید بررسی شود. در شبکه‌های سازمانی دارای تجهیزات متنوع و الزامات خاص، IPsec ممکن است انتخاب مناسب‌تری باشد.

برای انتخاب روتر مناسب OpenVPN و دریافت مشاوره درباره Certificate، Firewall، VPN شعب و کاربران دورکار، به فروشگاه MikroTik گروه بیستون یا صفحه پشتیبانی و مشاوره فنی مراجعه کنید.