ثبت سفارش آنلاین به‌زودی فعال می‌شود. تا آن موقع برای سفارش با ما تماس بگیرید.Online ordering is coming soon. Until then, please contact us to order.تماس با ماContact us
JolfaCLOUD

مرکز آموزش / شبکه و میکروتیک

VPN در میکروتیک: اتصال شعبه‌ها و دسترسی کارمندها با WireGuard و L2TP/IPsec

کدام پروتکل VPN برای چه کاری؛ اتصال دو دفتر با WireGuard (site-to-site)، دسترسی کارمند از خانه به شبکهٔ شرکت، L2TP/IPsec برای دستگاه‌های قدیمی، و نکته‌های فایروال و MTU.

۱۲ دقیقه مطالعه · به‌روزرسانی آبان ۱۴۰۵

This guide is available in Persian for now. Switch to FA to read it.

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

کدام پروتکل؟

پروتکلمزیتعیبکجا
WireGuardسریع، ساده، رمزنگاری مدرنفقط RouterOS 7انتخاب پیش‌فرض
L2TP/IPsecکلاینت داخلی ویندوز، اندروید و iOSکندتر، تنظیم IPsec حساسوقتی نصب برنامه ممکن نیست
SSTPروی پورت ۴۴۳، از پشت فایروال‌های سخت رد می‌شودکند، گواهی می‌خواهدشبکه‌های محدود
PPTP—رمزنگاری شکستهاستفاده نکنید

اتصال دو دفتر با WireGuard

فرض: دفتر مرکزی IP عمومی ثابت 203.0.113.10 و شبکهٔ 192.168.10.0/24 دارد؛ شعبه شبکهٔ 192.168.30.0/24 دارد و IP عمومی‌اش مهم نیست (می‌تواند پشت NAT باشد). آدرس‌های داخل تونل 10.10.10.1 و 10.10.10.2 هستند.

دفتر مرکزی

RouterOS
/interface/wireguard/add name=wg-branch listen-port=13231
/ip/address/add address=10.10.10.1/30 interface=wg-branch
/interface/wireguard/print

خروجی آخر، public-key مرکز را نشان می‌دهد. در شعبه هم همین کار را بکنید و کلید عمومی شعبه را بردارید. بعد در مرکز:

RouterOS
/interface/wireguard/peers/add interface=wg-branch public-key="BRANCH-PUBLIC-KEY" \
    allowed-address=10.10.10.2/32,192.168.30.0/24
/ip/route/add dst-address=192.168.30.0/24 gateway=wg-branch
/ip/firewall/filter/add chain=input protocol=udp dst-port=13231 action=accept \
    place-before=4 comment="WireGuard"

شعبه

RouterOS
/interface/wireguard/add name=wg-hq listen-port=13231
/ip/address/add address=10.10.10.2/30 interface=wg-hq
/interface/wireguard/peers/add interface=wg-hq public-key="HQ-PUBLIC-KEY" \
    endpoint-address=203.0.113.10 endpoint-port=13231 \
    allowed-address=10.10.10.1/32,192.168.10.0/24 persistent-keepalive=25s
/ip/route/add dst-address=192.168.10.0/24 gateway=wg-hq

persistent-keepalive در شعبه تونل را از پشت NAT باز نگه می‌دارد. allowed-address دو کار می‌کند: مشخص می‌کند کدام آدرس‌ها از این peer پذیرفته شوند و کدام ترافیک به آن فرستاده شود.

دسترسی کارمند از خانه

برای هر کارمند یک peer با آدرس جدا بسازید. کلید را روی خود روتر بسازید و فایل کانفیگ را به کارمند بدهید:

RouterOS
/interface/wireguard/add name=wg-staff listen-port=13232
/ip/address/add address=10.20.0.1/24 interface=wg-staff
/interface/wireguard/peers/add interface=wg-staff name=ali-laptop \
    allowed-address=10.20.0.11/32 private-key=auto \
    client-address=10.20.0.11/32 client-dns=192.168.10.1 \
    client-endpoint=203.0.113.10 client-allowed-address=192.168.10.0/24
/interface/wireguard/peers/show-client-config [find name=ali-laptop]

دستور آخر یک کانفیگ آماده (و QR کد) می‌دهد که در برنامهٔ رسمی WireGuard برای ویندوز، مک، اندروید و iOS وارد می‌شود. چون client-allowed-address فقط شبکهٔ شرکت است، اینترنت کارمند از مسیر خودش می‌رود و فقط ترافیک شرکت از تونل رد می‌شود (split tunnel).

L2TP/IPsec برای دستگاه‌هایی که برنامه ندارند

RouterOS
/ip/pool/add name=vpn-pool ranges=10.30.0.10-10.30.0.50
/ppp/profile/add name=vpn local-address=10.30.0.1 remote-address=vpn-pool dns-server=192.168.10.1
/interface/l2tp-server/server/set enabled=yes use-ipsec=required ipsec-secret="LONG-RANDOM-PSK" \
    default-profile=vpn
/ppp/secret/add name=reza password="STRONG-PASSWORD" service=l2tp profile=vpn
/ip/firewall/filter/add chain=input protocol=udp dst-port=500,1701,4500 action=accept place-before=4
/ip/firewall/filter/add chain=input protocol=ipsec-esp action=accept place-before=4

وقتی تونل وصل است ولی بعضی سایت‌ها و فایل‌ها باز نمی‌شوند

تقریباً همیشه مشکل MTU است: بسته‌ها با سربار تونل بزرگ‌تر از حد مسیر می‌شوند. MTU اینترفیس WireGuard به‌طور پیش‌فرض ۱۴۲۰ است؛ روی خطوطی مثل PPPoE آن را کمتر کنید (مثلاً ۱۳۸۰) یا MSS را تنظیم کنید:

RouterOS
/ip/firewall/mangle/add chain=forward protocol=tcp tcp-flags=syn out-interface=wg-branch \
    action=change-mss new-mss=clamp-to-pmtu passthrough=yes

وقتی هیچ‌کدام از دفترها IP ثابت ندارند

WireGuard حداقل یک طرف با آدرس ثابت می‌خواهد. اگر هیچ دفتری IP ثابت ندارد، یک سرور مجازی با IP اختصاصی وسط بگذارید و همهٔ دفترها به آن وصل شوند. روی آن سرور می‌شود خود میکروتیک را نصب کرد؛ کاربردهای سرور میکروتیک را ببینید.

سرور مجازی با IP اختصاصی برای میکروتیک، داکر و سرویس‌های خودتاندیدن پلن‌های سرور مجازی

منابع

  1. MikroTik Manual — WireGuard manual.mikrotik.com/docs/virtual-private-networks/wireguard
  2. WireGuard — Installation (clients) www.wireguard.com/install