دسترسی به دستگاه‌های شبکه از خارج با MikroTik
سرفصل: میکروتیک

مدیر شرکت می‌خواهد از خانه تصویر دوربین‌ها را ببیند، کارشناس IT باید شب به سرور وصل شود و حسابدار باید از بیرون به نرم‌افزار حسابداری دسترسی داشته باشد. با میکروتیک سه راه اصلی برای این کار دارید. انتخاب درست، هم به راحتی کار بستگی دارد و هم به امنیت.

قبل از شروع: IP عمومی دارید؟

همهٔ روش‌های این مقاله فرض می‌کنند روتر شما از اینترنت قابل دسترسی است:

  • اگر اینترنت IP ثابت دارد، مشکلی نیست.
  • اگر IP شما عمومی اما متغیر است، از DDNS استفاده کنید (پایین‌تر توضیح داده‌ایم).
  • اگر سرویس‌دهنده به شما IP خصوصی داده (CGNAT؛ آدرس WAN روتر با 10. یا 100.64 شروع می‌شود)، هیچ اتصالی از بیرون به روتر نمی‌رسد. در این حالت یا از سرویس‌دهنده IP عمومی بخواهید، یا یک سرور با IP عمومی (مثلاً یک CHR روی سرور مجازی) واسطه کنید و روتر خودتان از داخل به آن VPN بزند.

روش اول: Port Forwarding (ساده، اما پرخطر)

با dstnat، یک پورت روی IP عمومی به دستگاه داخلی هدایت می‌شود. مثلاً NVR دوربین با آدرس 192.168.10.50:

/ip firewall nat add chain=dstnat in-interface-list=WAN protocol=tcp dst-port=8000 action=dst-nat to-addresses=192.168.10.50 to-ports=8000 comment="NVR from outside"

خطر: این پورت برای همهٔ اینترنت باز است. دستگاه‌هایی مثل دوربین، NVR و Remote Desktop مرتب هدف حمله‌اند و بسیاری از آن‌ها آسیب‌پذیری‌های شناخته‌شده دارند. اگر مجبورید پورت باز کنید:

  • دسترسی را به IPهای مشخص محدود کنید:
/ip firewall address-list add list=allowed-remote address=198.51.100.25 comment="Manager home"
/ip firewall nat set [find comment="NVR from outside"] src-address-list=allowed-remote
  • رمز دستگاه را قوی کنید و فریم‌ور آن را به‌روز نگه دارید.
  • هیچ‌وقت پنل مدیریت روتر، سوئیچ یا سرور را مستقیم باز نکنید.

جزئیات بیشتر در مقالهٔ انواع NAT در میکروتیک آمده است.

روش دوم: DDNS با IP Cloud

اگر IP شما تغییر می‌کند، نمی‌توانید با آدرس IP به روتر وصل شوید. میکروتیک سرویس رایگان IP Cloud دارد که به روتر یک نام ثابت می‌دهد:

/ip cloud set ddns-enabled=yes
/ip cloud print

در خروجی، فیلد dns-name نامی شبیه abcd1234.sn.mynetname.net است که همیشه به IP فعلی روتر شما اشاره می‌کند. از این نام در تنظیمات VPN یا برنامهٔ دوربین استفاده کنید. DDNS به‌تنهایی هیچ پورتی باز نمی‌کند؛ فقط آدرس را پیدا می‌کند.

روش سوم: VPN با WireGuard (روش پیشنهادی)

با VPN، دستگاه شما (لپ‌تاپ یا موبایل) مثل این است که داخل شبکهٔ شرکت است. فقط یک پورت VPN روی روتر باز است و بدون کلید معتبر هیچ‌کس نمی‌تواند وارد شود. WireGuard در RouterOS 7 وجود دارد؛ سریع، ساده و امن است و برای ویندوز، مک، اندروید و iOS برنامهٔ رسمی دارد.

تنظیم روی میکروتیک

/interface wireguard add name=wg-remote listen-port=13231
/ip address add address=10.99.0.1/24 interface=wg-remote
/interface wireguard print

دستور آخر کلید عمومی (public-key) روتر را نشان می‌دهد؛ آن را یادداشت کنید.

پورت WireGuard را در فایروال input باز کنید. این قانون باید بالاتر از قانون drop انتهای زنجیره باشد:

/ip firewall filter add chain=input protocol=udp dst-port=13231 action=accept comment="WireGuard" place-before=[find comment="input: drop everything else"]

اگر قانون‌های فایروال شما توضیح دیگری دارند، جای قانون را در Winbox با کشیدن جابه‌جا کنید.

ساخت کلاینت

در برنامهٔ WireGuard روی لپ‌تاپ یا موبایل، یک تونل خالی بسازید؛ برنامه خودش کلید خصوصی و عمومی کلاینت را می‌سازد. کلید عمومی کلاینت را روی روتر به‌عنوان peer اضافه کنید:

/interface wireguard peers add interface=wg-remote public-key="CLIENT_PUBLIC_KEY" allowed-address=10.99.0.2/32 comment="Manager laptop"

تنظیمات تونل در برنامهٔ کلاینت:

[Interface]
PrivateKey = (ساخته‌شده توسط برنامه)
Address = 10.99.0.2/32
DNS = 192.168.10.1

[Peer]
PublicKey = ROUTER_PUBLIC_KEY
Endpoint = abcd1234.sn.mynetname.net:13231
AllowedIPs = 192.168.10.0/24, 10.99.0.0/24
PersistentKeepalive = 25
  • AllowedIPs تعیین می‌کند چه ترافیکی از تونل برود؛ در این مثال فقط ترافیک شبکهٔ شرکت. اینترنت کاربر از مسیر خودش می‌رود.
  • برای هر کاربر یک peer با آدرس جدا (10.99.0.3، 10.99.0.4 و …) بسازید تا بتوانید دسترسی هر نفر را جداگانه قطع کنید.

دسترسی به شبکهٔ داخلی

با فایروالی که در مقالهٔ امنیت شبکه با میکروتیک ساختیم، ترافیک از تونل به شبکهٔ داخلی اجازهٔ عبور دارد، چون فقط اتصال‌های جدید از لیست WAN مسدود می‌شوند. اگر می‌خواهید کاربران VPN به Winbox روتر هم دسترسی داشته باشند، wg-remote را عضو لیست LAN کنید. اگر نمی‌خواهید، عضوش نکنید.

برای محدود کردن دسترسی هر کاربر، در chain=forward قانون بنویسید؛ مثلاً حسابدار فقط به سرور حسابداری:

/ip firewall filter add chain=forward src-address=10.99.0.3 dst-address=!192.168.10.40 action=drop comment="Accountant only to accounting server" place-before=0

مقایسهٔ سه روش

  • Port Forwarding: راه‌اندازی سریع؛ اما هر دستگاه مستقیم در معرض اینترنت است. فقط برای موارد محدود و با محدودیت IP.
  • DDNS: روش دسترسی نیست؛ فقط مشکل IP متغیر را حل می‌کند و در کنار دو روش دیگر استفاده می‌شود.
  • VPN: کمی تنظیم بیشتر، اما امن‌ترین راه است؛ یک پورت، رمزنگاری کامل و امکان کنترل دسترسی هر کاربر.

جمع‌بندی

برای دسترسی از بیرون، اول وضعیت IP خود را بدانید؛ ثابت، متغیر یا CGNAT. با IP Cloud مشکل IP متغیر را حل کنید و تا جای ممکن به جای باز کردن پورت دستگاه‌ها، VPN با WireGuard راه بیندازید. برای اتصال شعب هم می‌توانید از همین WireGuard یا اتصال L2TP استفاده کنید.

  • MikroTik
  • WireGuard
  • VPN
  • DDNS
  • IP Cloud
  • Port Forwarding