چطور با میکروتیک یک سرور OpenVPN برای کاربران راه دور بسازیم؟ (راهنمای گامبهگام)

در دنیای امروز که دورکاری و دسترسی از خارج سازمان به یک نیاز رایج تبدیل شده، استفاده از یک بستر امن برای اتصال کاربران به شبکه داخلی اهمیت زیادی دارد. یکی از راهکارهای قابلاعتماد در این زمینه، OpenVPN است.
OpenVPN یک پروتکل متنباز (Open Source) برای ایجاد تونل امن بین کاربر و شبکه مقصد است که با استفاده از رمزنگاری قوی (SSL/TLS) امکان انتقال امن اطلاعات را فراهم میکند. این پروتکل بهدلیل امنیت بالا، انعطافپذیری و سازگاری با سیستمعاملهای مختلف، بهطور گسترده در سناریوهای سازمانی مورد استفاده قرار میگیرد.
در این مقاله، تمرکز ما بر روی سناریوی Remote Access است. در این سناریو، کاربران شرکت (مانند کارمندان دورکار یا نیروهای خارج از دفتر) از طریق اینترنت به سرور VPN که روی MikroTik راهاندازی شده متصل میشوند و پس از احراز هویت، به منابع داخلی شبکه (مثل فایل سرورها، نرمافزارهای سازمانی و…) دسترسی پیدا میکنند. به بیان ساده، کاربر از هر نقطهای میتواند طوری به شبکه متصل شود که انگار داخل سازمان حضور دارد.
فهرست مطالب
گام اول: ایجاد و مدیریت Certificateها
یکی از مهمترین و در عین حال حساسترین بخشهای راهاندازی اوپن وی پی ان، ایجاد و مدیریت Certificateها (گواهیهای دیجیتال) است. برخلاف برخی پروتکلهای سادهتر، OpenVPN برای برقراری ارتباط امن از زیرساخت SSL/TLS استفاده میکند و به همین دلیل، وجود Certificateها کاملاً ضروری است.
چرا Certificateها مورد نیاز هستند؟
در OpenVPN، امنیت فقط به نام کاربری و رمز عبور محدود نمیشود. بلکه از احراز هویت دوطرفه (Mutual Authentication) استفاده میشود. یعنی: کلاینت باید مطمئن شود که به سرور واقعی متصل شده (نه یک سرور جعلی) و سرور هم باید هویت کلاینت را تأیید کند. این کار از طریق Certificateها انجام میشود. بهطور خلاصه، Certificateها سه وظیفه اصلی دارند:
۱. احراز هویت (Authentication): تأیید اینکه کاربر یا سرور همان چیزی است که ادعا میکند
۲. رمزنگاری (Encryption): ایجاد یک تونل امن برای جلوگیری از شنود اطلاعات
۳. جلوگیری از حملات (مثل Man-in-the-Middle): اطمینان از اینکه ارتباط بین کلاینت و سرور دستکاری نشده است
انواع Certificateهایی که نیاز داریم
در این سناریو، سه نوع Certificate ایجاد میکنیم:
۱. CA Certificate (Certificate Authority)
این گواهی، ریشه اعتماد (Root of Trust) در ساختار ما است.
- توسط خودمان ساخته میشود (Self-Signed)
- برای امضای سایر Certificateها استفاده میشود
- اگر CA امن نباشد، کل ساختار امنیتی از بین میرود
۲. Server Certificate
این گواهی مخصوص MikroTik (سرور OpenVPN) است.
- توسط CA امضا میشود
- کلاینتها با بررسی این گواهی، از معتبر بودن سرور مطمئن میشوند
- هنگام برقراری اتصال، سرور این Certificate را ارائه میدهد
۳. Client Certificate
برای هر کاربر (یا هر دستگاه) یک Certificate جداگانه ایجاد میشود.
- توسط CA امضا میشود
- سرور با استفاده از آن هویت کلاینت را بررسی میکند
- میتوان برای هر کاربر یک Certificate مجزا داشت (امنتر و قابل مدیریتتر)
روند کلی ساخت Certificateها در MikroTik
مراحل کار بهصورت کلی به این شکل است:
۱. ایجاد CA
- تعریف یک Certificate بهعنوان CA
- امضای آن بهصورت Self-Signed
۲. ایجاد Server Certificate
- ساخت Certificate برای سرور
- امضای آن با CA
۳. ایجاد Client Certificate
- ساخت Certificate برای کاربران
- امضای آن با CA
۴. Export گرفتن
- خروجی گرفتن از Certificateها (بهخصوص برای کلاینتها)
- انتقال به سیستم کاربران
آموزش ساخت Certificateها در MikroTik برای OpenVPN
حالا میرسیم به بخش عملی کار؛ یعنی ساخت Certificateها داخل MikroTik. این کار معمولاً از طریق Winbox یا CLI انجام میشود. در این بخش، تمام مراحل ساخت Certificateها را فقط از طریق محیط گرافیکی Winbox انجام میدهیم؛ بدون استفاده از ترمینال.
🔹 مرحله ۱: ورود به بخش Certificate
System → Certificates
در این قسمت، لیست تمام Certificateها نمایش داده میشود.
🔹 مرحله ۲: ساخت CA (Certificate Authority)
۱. روی + (Add New) کلیک کنید
2. تنظیمات زیر را وارد کنید:
- Name: ca-cert
- Country: AE
- State: Dubai
- Locality: Dubai
- Organization: company.com
- Common Name: company.com
- Days Valid: 3650
- در بخش Key Usage گزینههای زیر را تیک بزنید:
- key-cert-sign
- crl-sign
۳. روی Apply و سپس OK کلیک کنید. حالا CA ساخته شده، اما هنوز فعال نیست.
✳️ Sign کردن CA: CA ساختهشده را باز کنید. روی دکمه Sign کلیک کنید. در قسمت Certificate خودش را انتخاب کنید. OK کنید. بعد از این مرحله در کنار CA ساخته شده عبارت KAT را خواهید دید که نشان از موفقیت آمیز بودن این مراحل دارد.
🔹 مرحله ۳: ساخت Server Certificate
دوباره روی + کلیک کنید. همان ورودیهایی که در مرحله قبل دادید را مجدد وارد کنید.
در بخش Key Usage این موارد را انتخاب کنید:
- `digital-signature`
- `key-encipherment`
- `tls-server`
✳️ Sign کردن:
- وارد Certificate شوید
- روی Sign کلیک کنید
- در قسمت CA، گزینه `ca-cert` را انتخاب کنید
- OK کنید
سپس گزینه Trusted را فعال کنید. بعد از این مرحله در کنار CA ساخته شده عبارت KIT را خواهید دید که نشان از موفقیت آمیز بودن این مراحل دارد.
🔹 مرحله ۴: ساخت Client Certificate
برای هر کاربر این مرحله را جدا انجام دهید:
۱. روی + کلیک کنید
2. تنظیمات:
- Name: client1-cert
- Common Name: client1 (یا نام کاربر)
۳. در بخش Key Usage:
- `digital-signature`
- `key-encipherment`
- `tls-client`
۴. Apply و OK
✳️ Sign کردن:
- وارد Certificate شوید
- روی Sign کلیک کنید
- CA را روی `ca-cert` قرار دهید
- OK کنید
سپس گزینه Trusted را فعال کنید.
🔹 مرحله ۵: Export گرفتن از Certificateها
برای استفاده در کلاینت، باید خروجی بگیرید:
📌 Export از CA:
- روی `ca-cert` کلیک کنید
- گزینه Export را بزنید
- بدون پسورد هم میتوانید خروجی بگیرید
📌 Export از Client:
- روی `client1-cert` کلیک کنید
- گزینه Export را بزنید
- یک Export Passphrase (رمز) وارد کنید (مثلاً ۱۲۳۴)
این کار فایلهای موردنیاز کلاینت را ایجاد میکند.
🔹 مرحله ۶: دریافت فایلها
۱. از منوی Winbox وارد Files شوید
۲. فایلهای زیر را خواهید دید:
- `ca-cert.crt`
- `client1-cert.crt`
- `client1-cert.key` یا `.p12`
۳. آنها را دانلود کرده و به سیستم کاربر منتقل کنید
فعالسازی OpenVPN Server روی میکروتیک
بعد از ساخت Certificateها، حالا نوبت به راهاندازی OpenVPN Server روی MikroTik میرسد. در این مرحله، سرور VPN را فعال میکنیم و پارامترهای مهمی مثل پورت، Certificate و روش احراز هویت را تنظیم میکنیم.
🔹 مرحله ۱: ورود به تنظیمات OpenVPN Server
در Winbox مسیر زیر را بروید:
PPP → Interface → OVPN Server
در این بخش تنظیمات مربوط به سرور OpenVPN قرار دارد.
🔹 مرحله ۲: فعالسازی سرور
در پنجره OVPN Server گزینه Enabled را تیک بزنید. (در نسخههای جدید میکروتیک این گزینه وجود ندارد.)
🔹 مرحله ۳: تنظیم پارامترهای اصلی
حالا مهمترین بخش تنظیمات را انجام میدهیم:
📌 Port (پورت سرویس)
- مقدار پیشفرض: ۱۱۹۴
- میتوانید در صورت نیاز تغییر دهید (مثلاً برای افزایش امنیت)
📌 Mode
- روی ip قرار دهید (حالت استاندارد برای اکثر سناریوها)
📌 Netmask
معمولاً: ۲۴ (برای رنج IP کاربران)
📌 Max MTU
در راهاندازی اولیه، خیلی حیاتی نیست و معمولاً میتوان آن را روی مقدار پیشفرض رها کرد. اما در شرایط خاص، میتواند بسیار مهم شود. MTU (Maximum Transmission Unit) حداکثر اندازه هر بسته (Packet) در شبکه است. در VPN، بهدلیل اضافه شدن سربار (Encryption + Tunnel)، اندازه واقعی بستهها بزرگتر میشود. اگر MTU بهدرستی تنظیم نشود، ممکن است بستهها Fragment شوند (تکهتکه شدن) یا حتی Drop شوند (از بین بروند). عدد ۱۵۰۰ در حالت عادی پیشنهاد میشود. اما گاهی نیاز است که آن بالا یا پایین ببرید.
📌 Certificate
- Certificate سرور را انتخاب کنید
(مثلاً: `server-cert` که در مرحله قبل ساختیم)
📌 Authentication
روش احراز هویت کاربران: معمولاً تیک همه به غیر از null را میزنیم.
📌 Cipher (رمزنگاری)
الگوریتم رمزنگاری تونل
گزینههای رایج:
- `aes128`
- `aes256` (امنتر و پیشنهادی)
📌 Require Client Certificate
این گزینه را فعال (Yes) کنید. البنه اگر نمیخواهید از Client Certificate استفاده کنید، آن را فعال نکنید.
🔹 مرحله ۴: تنظیم Profile پیشفرض
در همان صفحه:
📌 Default Profile
- یک PPP Profile انتخاب کنید (در مرحله بعدی مقاله میسازیم)
- فعلاً میتوانید روی `default` بگذارید
🔹 مرحله ۵: اعمال تنظیمات
بعد از انجام تنظیمات روی Apply و سپس OK کلیک کنید.
ایجاد IP Pool برای کاربران VPN
در این مرحله، باید محدودهای از آدرسهای IP تعریف کنیم تا هنگام اتصال کاربران به VPN، بهصورت خودکار یک IP از این رنج به آنها اختصاص داده شود. این کار باعث میشود هر کاربر در تونل VPN یک هویت شبکهای مشخص داشته باشد و بتواند با منابع داخلی ارتباط برقرار کند.
IP Pool مجموعهای از IPهاست که میکروتیک از آن برای اختصاص دادن آدرس به کاربران استفاده میکند. وقتی یک کاربر از طریق OpenVPN متصل میشود:
- MikroTik یک IP از این Pool به او میدهد
- کاربر بهعنوان عضوی از شبکه داخلی شناخته میشود
- امکان دسترسی به سرورها، سیستمها و منابع داخلی فراهم میشود
🔹 ساخت IP Pool
در Winbox مسیر زیر را بروید:
IP → Pool
مراحل:
۱. روی + (Add) کلیک کنید
2. تنظیمات را وارد کنید:
Name:
مثلاً: `ovpn-pool`
Addresses:
رنج IP موردنظر، مثلاً:
۱۹۲.۱۶۸.۱۰.۲-۱۹۲.۱۶۸.۱۰.۵۰
📌 بهتر است:
* IP اول (مثلاً .۱) را برای Gateway یا سرور رزرو کنید
۳. روی Apply و سپس OK کلیک کنید.
🔹 قدم بعدی چیست؟
بعد از ساخت IP Pool، باید:
➡️ یک PPP Profile بسازید و این Pool را به آن اختصاص دهید تا هنگام اتصال، کاربران IP دریافت کنند.
ساخت Profile و User برای کاربران
در این مرحله، ما تعیین میکنیم که کاربران بعد از اتصال به OpenVPN، چه تنظیماتی دریافت کنند (IP Pool، DNS، محدودیتها و…) و با چه نام کاربری و رمز عبوری احراز هویت شوند. این بخش در میکروتیک تحت سرویس PPP مدیریت میشود.
🔹 بخش اول: ساخت PPP Profile
PPP Profile مثل یک «قالب تنظیمات» برای کاربران VPN است.
🔹 ایجاد Profile جدید
- به مسیر PPP → Profiles بروید.
- روی + (Add) کلیک کنید.
- تنظیمات مهم را وارد کنید:
- Name: ovpn-profile
- Local Address: 192.168.1.1
- Remote Address: ovpn-pool
- DNS Server (اختیاری ولی مهم)
- Use Compression (توصیه نمیشود)
🔹 بخش دوم: ساخت User (کاربر VPN)
حالا باید کاربران واقعی را تعریف کنیم.
- به مسیر PPP → Secrets بروید.
- روی + (Add) کلیک کنید.
- تنظیمات مهم را وارد کنید:
- Name: Test
- Password: test
- Service: ovpn
- Profile: ovpn-profile
- Local Address (اختیاری) معمولاً خالی میماند (سیستم خودش مدیریت میکند)
- Remote Address (اختیاری) در غیر این صورت از Pool استفاده میشود.
تنظیم NAT و Firewall در میکروتیک برای OpenVPN
در این مرحله کاری میکنیم که کاربران VPN بعد از اتصال:
- بتوانند به شبکه داخلی سازمان دسترسی داشته باشند.
- یا در صورت نیاز، به اینترنت هم از طریق میکروتیک وصل شوند.
اگر این بخش درست تنظیم نشود، حتی اگر VPN کاملاً وصل شود، کاربران هیچ دسترسی واقعی نخواهند داشت.
🔹 بخش اول: اجازه دادن به ترافیک VPN در فایروال
اول باید مطمئن شویم ترافیک OpenVPN توسط فایروال Block نمیشود.
IP → Firewall → Filter Rules
🔹 اجازه دادن به پورت OpenVPN
اگر پورت شما مثلاً `۱۰۴۱۸` است:
۱. روی + (Add) کلیک کنید
2. تنظیمات:
📌 Chain: input
📌 Protocol: tcp
📌 Dst. Port: ۱۰۴۱۸
📌 Action: accept
✔ این Rule باعث میشود اتصال VPN اصلاً مسدود نشود.
🔹 بخش دوم: اجازه دسترسی به شبکه داخلی (LAN)
اگر میخواهید کاربران VPN به شبکه داخلی دسترسی داشته باشند:
📌 مثال:
- LAN: `192.168.1.0/24`
- VPN: `192.168.10.0/24`
🔹 ایجاد Rule برای Allow LAN Access
📍 مسیر:
IP → Firewall → Filter Rules
تنظیم:
Chain: `forward`
Src. Address: `192.168.10.0/24` (شبکه VPN)
Dst. Address: `192.168.1.0/24` (شبکه داخلی)
Action: `accept`
✔ این Rule اجازه میدهد کاربران VPN به شبکه داخلی برسند.
🔹 بخش سوم: NAT برای اینترنت (در صورت نیاز)
اگر میخواهید کاربران VPN از اینترنت MikroTik استفاده کنند:
📍 مسیر:
IP → Firewall → NAT
🔹 ایجاد NAT Rule
📌 Chain: srcnat
📌 Src. Address: ۱۹۲.۱۶۸.۱۰.۰/۲۴
📌 Out. Interface: Internet interface (For example): ether1
📌 Action: masquerade
✔ این کار باعث میشود کاربران VPN بتوانند اینترنت داشته باشند.
🔹 بخش چهارم: ترتیب مهم Ruleها (خیلی مهم)
در MikroTik ترتیب قوانین مهم است:
✔ Allow VPN Port باید بالا باشد
✔ Allow LAN Access بعد از آن
✔ Drop Ruleها در انتها
دریافت فایل OpenVPN برای کاربر
درنهایت باید از مسیر PPP → Interface → OVPN Server، سرور ساخته شده را باز کرده و بر روی Export .ovpn بزنید. آدرس IP میکروتیک را وارد کرده و CA خود را انتخاب کنید و بر روی Start بزنید. درنهایت فایل مورد در نظر در قسمت Files قرار داده میشود و میتوانید آن را بردارید و به کاربران خود بدهید.




