WireGuard چگونه اتصال امن شعب و نیروی دورکار را ساده می‌کند؟

اتصال دفاتر، شعب، کارکنان دورکار و مدیران شبکه به منابع داخلی شرکت، یکی از نیازهای اصلی زیرساخت‌های امروزی است. نرم‌افزارهای مالی، فایل‌سرورها، سیستم‌های ERP، سامانه تلفنی، پنل‌های مدیریتی و سرویس‌های داخلی نباید مستقیماً روی اینترنت عمومی منتشر شوند.

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

WireGuard یک پروتکل VPN مدرن، سبک و مبتنی بر کلید عمومی است. این پروتکل در RouterOS v7 به‌صورت داخلی پشتیبانی می‌شود و می‌تواند برای اتصال Site-to-Site میان شعب، دسترسی کارکنان دورکار، مدیریت امن تجهیزات و اتصال دفتر به دیتاسنتر یا Cloud استفاده شود.

سادگی WireGuard به این معنا نیست که طراحی شبکه، Firewall و مدیریت کلیدها دیگر اهمیت ندارند. یک Tunnel ممکن است Handshake موفق داشته باشد، اما به دلیل Route اشتباه، Allowed Address نامناسب، Rule فایروال، NAT یا تداخل آدرس‌ها ترافیک کاربردی از آن عبور نکند.

در این مقاله بررسی می‌کنیم WireGuard چگونه کار می‌کند، چرا برای اتصال شعب و نیروی دورکار مناسب است، چه تفاوتی میان Site-to-Site، Split Tunnel و Full Tunnel وجود دارد و چگونه می‌توان آن را به‌صورت اصولی روی MikroTik پیاده‌سازی کرد.

نتیجه سریع: WireGuard با استفاده از کلید عمومی و خصوصی، ساختار Peer-to-Peer، تنظیمات محدود و انتقال روی UDP، راه‌اندازی VPN را در بسیاری از شبکه‌ها ساده‌تر می‌کند. برای استفاده امن باید برای هر شعبه و کاربر Peer مستقل ایجاد شود، Allowed Address دقیق تعریف گردد، UDP ورودی در Firewall مجاز شود و دسترسی داخل Tunnel نیز براساس اصل حداقل دسترسی محدود شود.

WireGuard چیست؟

WireGuard یک VPN لایه سوم است که برای ایجاد ارتباط رمزگذاری‌شده میان Peerها استفاده می‌شود. هر Peer دارای یک کلید خصوصی و یک کلید عمومی است.

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

WireGuard برخلاف بعضی VPNهای سنتی، ساختار پیچیده‌ای از Phase، Proposal، Profile و Negotiationهای متعدد در اختیار مدیر قرار نمی‌دهد. تعداد گزینه‌های کمتر می‌تواند احتمال انتخاب الگوریتم نامناسب یا ایجاد ناسازگاری میان دو سمت را کاهش دهد.

ویژگی‌های اصلی WireGuard عبارت‌اند از:

  • احراز هویت مبتنی بر کلید عمومی
  • انتقال ترافیک رمزگذاری‌شده روی UDP
  • ساختار ساده Interface و Peer
  • پشتیبانی از IPv4 و IPv6
  • امکان Site-to-Site و Remote Access
  • پشتیبانی از جابه‌جایی Endpoint و شبکه‌های متغیر
  • امکان استفاده روی Windows، Linux، macOS، Android و iOS
  • پشتیبانی داخلی در RouterOS v7

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

WireGuard چگونه کار می‌کند؟

در WireGuard هر دستگاه یک Interface مجازی می‌سازد و یک جفت کلید برای آن تولید می‌کند. سپس دستگاه‌های مجاز به‌عنوان Peer به این Interface اضافه می‌شوند.

برای هر Peer معمولاً اطلاعات زیر تعریف می‌شود:

  • کلید عمومی طرف مقابل
  • آدرس‌ها و شبکه‌های مجاز
  • IP یا نام دامنه Endpoint
  • پورت UDP
  • Persistent Keepalive در صورت نیاز

هنگامی که یک Packet به مقصد شبکه تعریف‌شده در Peer ارسال می‌شود، WireGuard آن را رمزگذاری و به Endpoint مرتبط می‌فرستد. سمت مقابل پس از احراز اعتبار Packet، آن را رمزگشایی و وارد Interface مجازی می‌کند.

WireGuard یک ساختار ذاتی Server و Client مانند بعضی سرویس‌های قدیمی ندارد. تمام طرف‌ها Peer هستند؛ اما در طراحی عملی معمولاً روتر دفتر مرکزی نقش Endpoint در دسترس و لپ‌تاپ‌ها یا شعب نقش Initiator را دارند.

اجزای اصلی تنظیمات WireGuard

WireGuard Interface

Interface مجازی WireGuard محل عبور Packetهای رمزگشایی‌شده است. برای این Interface معمولاً یک نام، Listen Port، MTU و آدرس IP تعریف می‌شود.

در RouterOS هنگام ساخت Interface، جفت کلید خصوصی و عمومی به‌صورت خودکار تولید می‌شود؛ مگر آنکه مدیر کلید مشخصی وارد کند.

کلید خصوصی و عمومی

کلید خصوصی هویت محرمانه دستگاه است و نباید در ایمیل، پیام‌رسان، مستندات عمومی یا Ticket پشتیبانی ارسال شود.

کلید عمومی را می‌توان در تنظیم Peer طرف مقابل قرار داد. هر کاربر یا شعبه باید کلید اختصاصی داشته باشد تا در صورت خروج کارمند یا سرقت دستگاه، فقط همان Peer غیرفعال یا حذف شود.

هشدار: استفاده از یک فایل تنظیم یا یک Private Key مشترک برای چند کاربر، مدیریت دسترسی و ابطال مجوز را دشوار می‌کند. برای هر دستگاه یک Peer و کلید مستقل بسازید.

Allowed Address چیست؟

Allowed Address یکی از مهم‌ترین و درعین‌حال پراشتباه‌ترین بخش‌های WireGuard است.

این گزینه مشخص می‌کند:

  • چه آدرس‌هایی از سمت آن Peer پذیرفته شوند.
  • چه مقصدهایی از طریق همان Peer ارسال شوند.
  • کدام Tunnel IP به آن کاربر یا شعبه تعلق دارد.

برای یک کاربر دورکار معمولاً یک آدرس /32 مانند 10.77.0.10/32 تعریف می‌شود. برای یک شعبه می‌توان علاوه بر Tunnel IP، شبکه LAN آن شعبه را نیز اضافه کرد.

مثال:

10.255.255.2/32,192.168.20.0/24

این تنظیم می‌گوید Tunnel IP و شبکه داخلی شعبه دوم متعلق به همان Peer هستند.

توجه: Allowed Address مربوط به Peerهای یک WireGuard Interface نباید با یکدیگر هم‌پوشانی داشته باشد. برای هر کاربر و شعبه محدوده منحصربه‌فرد تعریف کنید.

Endpoint چیست؟

Endpoint آدرس IP عمومی یا نام دامنه‌ای است که Peer برای برقراری ارتباط به آن متصل می‌شود.

نمونه:

vpn.example.com:13231

برای کاربر دورکار معمولاً Endpoint روتر مرکزی مشخص می‌شود. در سمت روتر مرکزی الزاماً نیازی نیست Endpoint ثابت کاربر تعریف شود؛ زیرا IP اینترنت موبایل یا منزل ممکن است تغییر کند.

Persistent Keepalive چیست؟

اگر یک Peer پشت NAT قرار داشته باشد و مدت زیادی ترافیک ارسال نکند، Mapping ایجادشده در مودم یا Firewall ممکن است منقضی شود.

Persistent Keepalive با ارسال دوره‌ای یک Packet احراز هویت‌شده و خالی، Mapping را فعال نگه می‌دارد. مقدار 25 ثانیه در بسیاری از سناریوهای Peer پشت NAT استفاده می‌شود، اما نباید بدون نیاز روی تمام Peerها فعال شود.

WireGuard چگونه اتصال شعب را ساده می‌کند؟

در اتصال Site-to-Site، روتر هر شعبه شبکه LAN خود را از طریق Tunnel به شبکه شعبه دیگر معرفی می‌کند. کاربران بدون اجرای نرم‌افزار VPN روی کامپیوتر، از طریق Gateway شعبه به منابع مجاز دسترسی پیدا می‌کنند.

مزایای WireGuard برای اتصال شعب عبارت‌اند از:

  • تعداد کم پارامترهای اصلی
  • عدم نیاز به ساخت Proposalهای متعدد
  • مدیریت ساده کلید عمومی Peerها
  • قابلیت استفاده از نام دامنه برای IPهای متغیر
  • امکان قرارگیری شعبه پشت NAT در صورت آغاز اتصال از داخل
  • امکان تعریف Route و Firewall اختصاصی برای هر شعبه
  • پشتیبانی از شبکه‌های IPv4 و IPv6
  • مشاهده سریع زمان آخرین Handshake و حجم RX/TX

یک سناریوی Site-to-Site می‌تواند برای موارد زیر استفاده شود:

  • دسترسی شعب به نرم‌افزار مالی مرکزی
  • اتصال تلفن‌های VoIP به IP PBX دفتر اصلی
  • ارسال Backup شعبه به دیتاسنتر
  • مدیریت دوربین‌ها و NVRهای سایت‌های مختلف
  • دسترسی مدیر شبکه به روترها و سوئیچ‌ها
  • اتصال دفاتر به سرورهای Cloud یا VPS

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

WireGuard برای نیروی دورکار چگونه استفاده می‌شود؟

در سناریوی Remote Access یا Road Warrior، برنامه WireGuard روی لپ‌تاپ یا تلفن همراه کاربر نصب می‌شود. کاربر با فعال‌کردن Tunnel به شبکه شرکت متصل می‌شود.

هر کاربر یک Tunnel IP و یک کلید عمومی اختصاصی دارد. روتر مرکزی می‌تواند براساس IP WireGuard آن کاربر، دسترسی به منابع مشخصی را مجاز کند.

برای مثال:

  • کارمند مالی فقط به سرور حسابداری دسترسی داشته باشد.
  • مدیر شبکه فقط به VLAN مدیریت متصل شود.
  • کارشناس فروش به CRM و فایل‌سرور فروش دسترسی داشته باشد.
  • پیمانکار فقط به یک سرور و یک پورت مشخص متصل شود.

این روش بهتر از قراردادن همه کاربران VPN در شبکه LAN مورد اعتماد است. خود Tunnel فقط مسیر امن ایجاد می‌کند؛ سطح دسترسی باید با Firewall تعیین شود.

تفاوت Site-to-Site و Remote Access

معیارSite-to-SiteRemote Access
طرف‌های اتصالدو روتر یا Gatewayکاربر و روتر مرکزی
نصب نرم‌افزار روی کاربرانمعمولاً نیاز نیستروی هر دستگاه لازم است
Allowed AddressTunnel IP و شبکه LAN شعبهیک Tunnel IP اختصاصی برای کاربر
کاربرداتصال دائمی دفاتر و سایت‌هاکارکنان، مدیران و پیمانکاران
مدیریت دسترسیبراساس Subnetهای دو شعبهبراساس Peer و IP هر کاربر

تفاوت Split Tunnel و Full Tunnel

Split Tunnel

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

نمونه Allowed IPs:

AllowedIPs = 192.168.10.0/24, 10.77.0.0/24

مزایای Split Tunnel:

  • مصرف کمتر پهنای باند دفتر مرکزی
  • سرعت بهتر سرویس‌های عمومی کاربر
  • کاهش بار روتر و اینترنت شرکت

محدودیت آن این است که ترافیک عمومی اینترنت از تجهیزات امنیتی شرکت عبور نمی‌کند و دستگاه کاربر هم‌زمان به اینترنت محلی و شبکه سازمانی متصل است.

Full Tunnel

در Full Tunnel تمام ترافیک IPv4 یا IPv6 کاربر وارد VPN می‌شود.

نمونه:

AllowedIPs = 0.0.0.0/0, ::/0

مزایای Full Tunnel:

  • عبور اینترنت کاربر از Firewall و IP عمومی شرکت
  • امکان اعمال DNS و Policy مرکزی
  • کنترل بیشتر روی ترافیک دستگاه دورکار

در مقابل، پهنای باند Upload و Download دفتر، توان روتر و تأخیر مسیر روی تجربه کاربر اثر می‌گذارند. برای Full Tunnel باید NAT، Forwarding و DNS به‌درستی تنظیم شوند.

پیش‌نیازهای راه‌اندازی WireGuard

  1. RouterOS v7 روی روتر MikroTik نصب باشد.
  2. آدرس‌دهی LAN شعب با یکدیگر تداخل نداشته باشد.
  3. یک Tunnel Subnet مستقل طراحی شود.
  4. حداقل یک سمت دارای IP عمومی یا Endpoint قابل دسترسی باشد.
  5. پورت UDP انتخاب‌شده در Firewall و مودم مجاز باشد.
  6. Route شبکه‌های راه دور تعریف شود.
  7. دسترسی میان شبکه‌ها در Forward Chain مجاز شود.
  8. NAT ناخواسته میان شبکه‌های خصوصی بررسی شود.
  9. کلیدهای عمومی به‌صورت امن مبادله شوند.
  10. تنظیمات قبل و بعد از تغییر Backup و مستند شوند.

نمونه برنامه آدرس‌دهی

بخششبکه نمونه
LAN دفتر مرکزی192.168.10.0/24
LAN شعبه192.168.20.0/24
Tunnel شعب10.255.255.0/30
کاربران دورکار10.77.0.0/24

مشکل رایج: اگر هر دو شعبه از شبکه‌ای مانند 192.168.1.0/24 استفاده کنند، Routing مستقیم میان آن‌ها مبهم می‌شود. پیش از ایجاد VPN، آدرس‌دهی شعب را منحصربه‌فرد کنید.

نمونه تنظیم Site-to-Site WireGuard میان دو شعبه

در مثال زیر:

  • LAN شعبه A برابر 192.168.10.0/24 است.
  • LAN شعبه B برابر 192.168.20.0/24 است.
  • شبکه Tunnel برابر 10.255.255.0/30 است.
  • پورت UDP برابر 13231 انتخاب شده است.

قبل از اجرا: مقادیر Public Key، Endpoint، نام Interfaceها و محل Ruleهای Firewall را با شبکه واقعی تطبیق دهید. دستورات نمونه را مستقیماً روی روتر Production اجرا نکنید.

تنظیم شعبه A

/interface wireguard
add name=wg-branches listen-port=13231 mtu=1420 comment="WireGuard branches"

/ip address
add address=10.255.255.1/30 interface=wg-branches comment="WG tunnel IP"

/interface wireguard peers
add interface=wg-branches \
 public-key="<BRANCH_B_PUBLIC_KEY>" \
 allowed-address=10.255.255.2/32,192.168.20.0/24 \
 endpoint-address=branch-b.example.com \
 endpoint-port=13231 \
 persistent-keepalive=25 \
 comment="Branch B"

/ip route
add dst-address=192.168.20.0/24 gateway=wg-branches comment="Route to Branch B"

تنظیم شعبه B

/interface wireguard
add name=wg-branches listen-port=13231 mtu=1420 comment="WireGuard branches"

/ip address
add address=10.255.255.2/30 interface=wg-branches comment="WG tunnel IP"

/interface wireguard peers
add interface=wg-branches \
 public-key="<BRANCH_A_PUBLIC_KEY>" \
 allowed-address=10.255.255.1/32,192.168.10.0/24 \
 endpoint-address=branch-a.example.com \
 endpoint-port=13231 \
 persistent-keepalive=25 \
 comment="Branch A"

/ip route
add dst-address=192.168.10.0/24 gateway=wg-branches comment="Route to Branch A"

قوانین Firewall موردنیاز

در هر دو روتر باید UDP مربوط به WireGuard پیش از Ruleهای Drop در Input Chain مجاز شود:

/ip firewall filter
add chain=input action=accept protocol=udp dst-port=13231 \
 in-interface-list=WAN comment="Allow WireGuard handshake"

برای عبور ترافیک میان دو LAN نیز Ruleهای Forward باید براساس نیاز ایجاد شوند. در شعبه A:

/ip firewall filter
add chain=forward action=accept \
 src-address=192.168.10.0/24 dst-address=192.168.20.0/24 \
 comment="Branch A to Branch B"

add chain=forward action=accept \
 src-address=192.168.20.0/24 dst-address=192.168.10.0/24 \
 comment="Branch B to Branch A"

در شبکه واقعی بهتر است به‌جای مجازکردن کامل دو Subnet، فقط سرویس‌های موردنیاز مانند DNS، RDP، HTTPS، SMB یا VoIP مجاز شوند.

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

در یک طراحی Routed Site-to-Site معمولاً میان دو شبکه خصوصی NAT انجام نمی‌شود و آدرس واقعی دستگاه‌ها حفظ می‌گردد.

اگر یک Rule عمومی Masquerade بدون شرط Interface یا مقصد دارید، بررسی کنید ترافیک WireGuard به‌اشتباه NAT نشود.

نمونه تنظیم WireGuard برای کاربر دورکار

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

/interface wireguard
add name=wg-remote listen-port=13231 mtu=1420 comment="Remote workers"

/ip address
add address=10.77.0.1/24 interface=wg-remote comment="Remote VPN gateway"

/interface wireguard peers
add interface=wg-remote \
 public-key="<USER_DEVICE_PUBLIC_KEY>" \
 allowed-address=10.77.0.10/32 \
 comment="User - Accounting Laptop"

برای هر کاربر آدرس متفاوتی مانند 10.77.0.11/32 یا 10.77.0.12/32 در نظر بگیرید.

Firewall کاربر دورکار

ابتدا Handshake ورودی را مجاز کنید:

/ip firewall filter
add chain=input action=accept protocol=udp dst-port=13231 \
 in-interface-list=WAN comment="Allow WireGuard remote access"

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

/ip firewall filter
add chain=forward action=accept \
 src-address=10.77.0.10 \
 dst-address=192.168.10.20 \
 protocol=tcp dst-port=443 \
 comment="Accounting user to accounting server"

Rule باید پیش از Drop Ruleهای مربوط به Forward قرار گیرد. پاسخ Connection معمولاً توسط Rule استاندارد Established و Related پذیرفته می‌شود.

نمونه فایل تنظیم Split Tunnel کاربر

[Interface]
PrivateKey = <USER_PRIVATE_KEY>
Address = 10.77.0.10/32
DNS = 192.168.10.10

[Peer]
PublicKey = <MIKROTIK_PUBLIC_KEY>
Endpoint = vpn.example.com:13231
AllowedIPs = 192.168.10.0/24, 10.77.0.0/24
PersistentKeepalive = 25

Private Key باید روی دستگاه کاربر باقی بماند و Public Key آن در Peer روتر ثبت شود.

تنظیم Full Tunnel و NAT

برای Full Tunnel مقدار AllowedIPs سمت کاربر به شکل زیر تغییر می‌کند:

AllowedIPs = 0.0.0.0/0, ::/0

برای خروج IPv4 کاربران VPN از اینترنت شرکت، می‌توان Rule زیر را با ساختار شبکه تطبیق داد:

/ip firewall nat
add chain=srcnat action=masquerade \
 src-address=10.77.0.0/24 \
 out-interface-list=WAN \
 comment="Internet for WireGuard remote users"

Firewall Forward و DNS نیز باید متناسب با Policy شرکت تنظیم شوند.

Firewall و امنیت WireGuard

رمزگذاری Tunnel فقط از داده در مسیر محافظت می‌کند. اگر یک Peer پس از اتصال به تمام VLANها و سرورها دسترسی داشته باشد، خطر دسترسی بیش از حد همچنان وجود دارد.

اصول امنیتی پیشنهادی:

  • برای هر کاربر و شعبه Peer مستقل ایجاد کنید.
  • Allowed Address را به حداقل محدوده لازم محدود کنید.
  • WireGuard Interface را بدون بررسی به LAN مورد اعتماد اضافه نکنید.
  • دسترسی کاربران را در Forward Chain محدود کنید.
  • دسترسی به خود روتر را در Input Chain جداگانه کنترل کنید.
  • مدیریت روتر را فقط برای Peerهای مدیریتی مجاز کنید.
  • کلید خصوصی را در فایل‌های عمومی یا Ticketها قرار ندهید.
  • در زمان خروج کارمند، Peer او را فوراً غیرفعال کنید.
  • Log و زمان آخرین Handshake را بررسی کنید.

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

آیا Preshared Key لازم است؟

WireGuard به‌صورت اصلی با کلیدهای عمومی و خصوصی کار می‌کند. امکان افزودن Preshared Key نیز وجود دارد تا یک لایه رمزنگاری متقارن اضافی به Peer اضافه شود.

در صورت استفاده، برای هر Peer مقدار مجزا ایجاد کرده و آن را از مسیر امن انتقال دهید. ذخیره و مدیریت این کلید نیز باید مانند سایر Secrets سازمان انجام شود.

WireGuard پشت NAT و CGNAT

Peer پشت NAT

کاربر منزل، اینترنت موبایل یا شعبه‌ای که پشت NAT قرار دارد معمولاً می‌تواند اتصال خروجی WireGuard را به روتر مرکزی آغاز کند.

در این حالت Persistent Keepalive می‌تواند Mapping را فعال نگه دارد و روتر مرکزی پس از دریافت Packet معتبر، Current Endpoint کاربر را تشخیص دهد.

مشکل CGNAT

اگر روتر مرکزی پشت CGNAT باشد، Port Forward عادی روی مودم الزاماً آن را از اینترنت قابل دسترسی نمی‌کند؛ زیرا IP عمومی در اختیار اپراتور است.

راهکارهای احتمالی:

  • دریافت IP عمومی از سرویس‌دهنده
  • استفاده از IPv6 عمومی با Firewall مناسب
  • استفاده از یک VPS دارای IP عمومی به‌عنوان Hub
  • قرار دادن Endpoint مرکزی در دیتاسنتر یا Cloud
  • آغاز اتصال از سمت شعبه پشت NAT به Endpoint عمومی

اگر هر دو سمت پشت CGNAT باشند و هیچ Endpoint عمومی در دسترس نباشد، معمولاً به یک سرور واسط یا Hub دارای IP عمومی نیاز است.

IP پویا و DDNS

برای سایتی که IP عمومی آن تغییر می‌کند می‌توان از نام دامنه یا DDNS به‌عنوان Endpoint Address استفاده کرد.

بااین‌حال باید بررسی شود:

  • رکورد DNS پس از تغییر IP به‌سرعت به‌روزرسانی شود.
  • TTL بیش از حد طولانی نباشد.
  • Peer مقابل بتواند نام دامنه را Resolve کند.
  • مودم یا NAT مسیر UDP را به روتر درست هدایت کند.

MTU و مشکلات Fragmentation

WireGuard یک Header رمزگذاری‌شده به Packet اصلی اضافه می‌کند؛ بنابراین MTU Interface معمولاً از Ethernet استاندارد کمتر است. مقدار پیش‌فرض رایج RouterOS برای WireGuard برابر 1420 است.

در مسیرهایی مانند PPPoE، LTE، تونل تو در تو یا سرویس‌هایی با MTU پایین‌تر ممکن است لازم باشد مقدار MTU کاهش یابد.

نشانه‌های مشکل MTU عبارت‌اند از:

  • Ping کوچک موفق ولی انتقال فایل ناموفق
  • بازشدن ناقص بعضی وب‌سایت‌ها
  • قطع Sessionهای RDP یا HTTPS
  • کندی غیرعادی با وجود Handshake سالم
  • کارکردن بعضی سرویس‌ها و شکست سرویس‌های دیگر

MTU را بدون آزمایش تصادفی تغییر ندهید. مسیر را با Ping دارای Do Not Fragment، Packet Sniffer و بررسی Interfaceها آزمایش کنید. در بعضی سناریوها تنظیم MSS نیز ممکن است لازم باشد.

Routing در WireGuard

WireGuard به‌تنهایی جایگزین کامل طراحی Routing نیست. در RouterOS معمولاً باید برای شبکه دوردست Route تعریف شود، مگر آنکه ساختار دیگری مانند Dynamic Routing روی Tunnel اجرا شود.

در شبکه چندشعبه‌ای می‌توان از ساختارهای زیر استفاده کرد:

  • Static Route برای تعداد محدود شعب
  • Hub-and-Spoke برای مدیریت متمرکز
  • Full Mesh برای ارتباط مستقیم شعب خاص
  • OSPF روی WireGuard برای شبکه‌های پیچیده‌تر
  • VRF و Routing Table مستقل در طراحی‌های پیشرفته

برای تعداد کم شعب، Static Route ساده‌تر و قابل‌پیش‌بینی‌تر است. با افزایش سایت‌ها، مدیریت Route و Peerها باید با Naming، Template و Automation انجام شود.

آیا WireGuard شبکه لایه دوم ایجاد می‌کند؟

WireGuard یک Tunnel لایه سوم است و Ethernet Broadcast را به‌صورت مستقیم منتقل نمی‌کند.

این ویژگی در بیشتر پروژه‌ها مزیت است؛ زیرا هر شعبه Subnet مستقل دارد و Broadcast Domainها گسترش پیدا نمی‌کنند.

اگر برنامه‌ای به Layer 2 Extension نیاز داشته باشد، می‌توان فناوری‌هایی مانند EoIP یا VXLAN را روی یک Tunnel امن اجرا کرد؛ اما این طراحی پیچیدگی، سربار و ریسک Broadcast را افزایش می‌دهد.

در بیشتر شبکه‌های سازمانی، طراحی Routed Site-to-Site نسبت به کشیدن یک LAN مشترک میان شعب پایدارتر و قابل‌کنترل‌تر است.

WireGuard در شبکه دارای چند اینترنت

در روتر دارای چند WAN، پاسخ Handshake باید از همان مسیری خارج شود که Packet ورودی از آن دریافت شده است. در غیر این صورت Peer ممکن است پاسخ را از IP دیگری دریافت کند و Tunnel پایدار نشود.

در چنین سناریویی باید موارد زیر بررسی شوند:

  • Policy Routing ترافیک UDP مربوط به WireGuard
  • Connection Mark و Routing Mark
  • Route Table مربوط به هر WAN
  • Responder Mode در نسخه‌های سازگار RouterOS
  • Failover Endpointها
  • به‌روزرسانی DNS پس از تغییر لینک

Multi-WAN WireGuard باید همراه با سناریوی Failover واقعی آزمایش شود؛ صرف موفقیت Tunnel در وضعیت عادی کافی نیست.

مانیتورینگ WireGuard در RouterOS

RouterOS برای هر Peer اطلاعات عملیاتی مهمی نمایش می‌دهد:

  • Last Handshake: زمان سپری‌شده از آخرین Handshake موفق
  • Current Endpoint Address: آخرین IP معتبر Peer
  • Current Endpoint Port: پورت فعلی Peer
  • RX: حجم داده دریافت‌شده
  • TX: حجم داده ارسال‌شده

دستور بررسی:

/interface wireguard peers print detail

وجود Handshake فقط نشان می‌دهد ارتباط رمزنگاری‌شده برقرار شده است. برای تأیید عملکرد کامل، Tunnel IP، Route، DNS، Firewall و سرویس مقصد نیز باید آزمایش شوند.

چک‌لیست عیب‌یابی WireGuard

اگر Handshake برقرار نمی‌شود

  1. Public Key دو سمت را بررسی کنید.
  2. Endpoint Address و Port را کنترل کنید.
  3. UDP ورودی را در Firewall مجاز کنید.
  4. Port Forward مودم را بررسی کنید.
  5. وجود CGNAT را کنترل کنید.
  6. زمان و ساعت سیستم‌ها را بررسی کنید.
  7. با Packet Sniffer ورود UDP را مشاهده کنید.

اگر Handshake برقرار است ولی ترافیک عبور نمی‌کند

  1. Allowed Address دو سمت را بررسی کنید.
  2. Route شبکه دوردست را کنترل کنید.
  3. Forward Chain را بررسی کنید.
  4. تداخل Subnetها را حذف کنید.
  5. Ruleهای NAT را کنترل کنید.
  6. Gateway و Firewall دستگاه مقصد را بررسی کنید.
  7. ابتدا Tunnel IP و سپس LAN مقصد را Ping کنید.

اگر ارتباط یک‌طرفه است

  • Route برگشت در سمت مقصد وجود ندارد.
  • Allowed Address فقط در یک سمت صحیح است.
  • Firewall پاسخ را مسدود می‌کند.
  • دستگاه مقصد Gateway دیگری دارد.
  • NAT آدرس مبدأ را به‌شکل غیرمنتظره تغییر داده است.

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

  • CPU Load روتر را بررسی کنید.
  • سرعت Upload هر دو سمت را اندازه‌گیری کنید.
  • MTU و Fragmentation را آزمایش کنید.
  • Queue و Mangle Ruleها را بررسی کنید.
  • Packet Loss و Latency اینترنت را اندازه‌گیری کنید.
  • تعداد Tunnelها و کاربران هم‌زمان را کنترل کنید.

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

معیارWireGuardIPsecOpenVPN
پیچیدگی تنظیممعمولاً کمتربیشتر و وابسته به Profile و Proposalمتوسط و وابسته به Certificate و Mode
احراز هویتکلید عمومیPSK یا CertificateCertificate و در بعضی طراحی‌ها Username
TransportUDPIKE، ESP یا NAT-TTCP یا UDP براساس پیاده‌سازی
مدیریت کاربرPeer و Keyقابل اتصال به ساختارهای سازمانی مختلفقابل استفاده با Certificate و روش‌های هویتی
کاربرد مناسبشعب، کاربران دورکار و مدیریت امنسازمان‌ها، تجهیزات متنوع و الزامات Enterpriseکلاینت‌های نرم‌افزاری و سناریوهای سازگار با TLS

WireGuard همیشه جایگزین قطعی IPsec یا OpenVPN نیست. انتخاب VPN باید براساس تجهیزات دو سمت، سیستم‌عامل کاربران، احراز هویت، Compliance، مدیریت مرکزی و مسیرهای قابل دسترسی انجام شود.

محدودیت‌های WireGuard

  • مدیریت هویت آن ذاتاً مبتنی بر کلید است، نه Username و Password.
  • MFA و اتصال به Directory بخشی از پروتکل پایه نیستند.
  • برای هر کاربر باید Peer و کلید جداگانه مدیریت شود.
  • در شبکه‌های بزرگ، مدیریت دستی Peerها دشوار می‌شود.
  • فقط روی UDP کار می‌کند و ممکن است در بعضی شبکه‌های محدود مسدود شود.
  • لایه دوم را مستقیماً منتقل نمی‌کند.
  • توزیع Route پویا را به‌تنهایی انجام نمی‌دهد.
  • هر دو سمت پشت CGNAT معمولاً به Endpoint عمومی واسط نیاز دارند.
  • لوگ آن به‌اندازه بعضی VPN Gatewayهای Enterprise جزئیات هویتی ارائه نمی‌کند.
  • سرعت واقعی همچنان به سخت‌افزار و کیفیت اینترنت وابسته است.

WireGuard جایگزین چه ابزارهایی نیست؟

WireGuard ترافیک میان Peerها را رمزگذاری می‌کند، اما به‌تنهایی موارد زیر را فراهم نمی‌کند:

  • آنتی‌ویروس یا EDR روی دستگاه کاربر
  • بررسی سلامت Endpoint پیش از اتصال
  • مدیریت Patch و سیستم‌عامل
  • جلوگیری از سرقت اطلاعات توسط کاربر مجاز
  • Backup و بازیابی اطلاعات
  • فیلترینگ حرفه‌ای وب و ایمیل
  • مدیریت هویت سازمانی و MFA

اگر لپ‌تاپ کارمند آلوده باشد، VPN می‌تواند مسیر دسترسی آن دستگاه آلوده به منابع داخلی را نیز فراهم کند. امنیت Endpoint و محدودسازی Firewall همچنان ضروری هستند.

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

در دسترس‌بودن WireGuard در RouterOS به معنای مناسب‌بودن تمام مدل‌ها برای هر حجم VPN نیست.

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

  1. سرعت اینترنت دفتر و شعب
  2. حجم واقعی ترافیک داخل Tunnel
  3. تعداد شعب
  4. تعداد کاربران هم‌زمان
  5. تعداد Firewall Ruleها
  6. Queue و مدیریت پهنای باند
  7. اندازه Packetها
  8. تعداد پورت‌ها و سرعت Uplink
  9. بار Routing و NAT خارج از VPN
  10. برنامه توسعه آینده

برای شعبه کوچک یا متوسط می‌توان مشخصات روتر MikroTik L009UiGS-RM را بررسی کرد.

برای دفتر مرکزی، کاربران بیشتر یا ترافیک بالاتر، مدل‌هایی مانند MikroTik RB5009UG+S+IN و MikroTik RB4011iGS+RM می‌توانند براساس ظرفیت پروژه بررسی شوند.

در شبکه‌های بزرگ‌تر یا دارای تعداد زیاد Tunnel و Connection، خانواده CCR مانند MikroTik CCR2004-16G-2S+ قابل ارزیابی است.

نکته انتخاب: مدل روتر را فقط براساس تعداد پورت یا عبارت «پشتیبانی از WireGuard» انتخاب نکنید. Throughput واقعی باید با Firewall، NAT، Queue و سایر سرویس‌های فعال سنجیده شود.

مراحل پیشنهادی اجرای پروژه WireGuard

  1. تمام شعب، کاربران و منابع موردنیاز را فهرست کنید.
  2. IP Plan و Tunnel Subnetها را طراحی کنید.
  3. تداخل آدرس شبکه‌های شعب را برطرف کنید.
  4. تصمیم بگیرید کدام سایت Endpoint عمومی باشد.
  5. Split Tunnel یا Full Tunnel را تعیین کنید.
  6. سطح دسترسی هر شعبه و کاربر را مستند کنید.
  7. برای هر Peer کلید مستقل ایجاد کنید.
  8. WireGuard را ابتدا با یک کاربر یا شعبه آزمایشی اجرا کنید.
  9. Firewall و Route برگشت را بررسی کنید.
  10. MTU، DNS و سرویس‌های کاربردی را آزمایش کنید.
  11. Failover و تغییر IP را شبیه‌سازی کنید.
  12. مانیتورینگ Last Handshake را فعال کنید.
  13. روش ابطال Peer و خروج کارکنان را مستند کنید.
  14. Backup و Export نهایی تهیه کنید.

چک‌لیست امنیتی WireGuard

  1. RouterOS را به نسخه Stable پشتیبانی‌شده ارتقا دهید.
  2. برای هر دستگاه Peer و Key مستقل بسازید.
  3. Private Key را خارج از دستگاه منتشر نکنید.
  4. Allowed Address را به محدوده ضروری محدود کنید.
  5. UDP WireGuard را فقط روی Interfaceهای WAN لازم باز کنید.
  6. Rule ورودی را پیش از Drop Rule و با Comment مشخص قرار دهید.
  7. Forward Access را براساس نقش کاربر محدود کنید.
  8. دسترسی به WinBox و SSH را فقط برای مدیران مجاز کنید.
  9. Peer کارکنان خارج‌شده را فوراً غیرفعال کنید.
  10. فایل تنظیم کاربر را در کانال عمومی ارسال نکنید.
  11. لپ‌تاپ‌های دورکار را با Disk Encryption و EDR محافظت کنید.
  12. Last Handshake و Endpointهای غیرعادی را بررسی کنید.
  13. Backup رمزگذاری‌شده از تنظیمات نگهداری کنید.
  14. تنظیمات و مالک هر Peer را مستند کنید.

طراحی اتصال شعب و نیروی دورکار با گروه بیستون

راه‌اندازی WireGuard فقط به ساخت Interface و واردکردن Public Key محدود نمی‌شود. آدرس‌دهی، Routing، Firewall، NAT، Multi-WAN، DNS، MTU و ظرفیت روتر همگی بر نتیجه نهایی تأثیر دارند.

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

برای دریافت پیشنهاد دقیق‌تر، اطلاعات زیر را آماده کنید:

  • تعداد شعب
  • تعداد کاربران دورکار
  • سرعت اینترنت هر سایت
  • نوع IP عمومی یا CGNAT
  • شبکه داخلی هر شعبه
  • سرویس‌های موردنیاز کاربران
  • تعداد Tunnelهای هم‌زمان
  • نوع Failover و تعداد WANها
  • مدل فعلی روترها
  • برنامه توسعه آینده

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

سؤالات متداول درباره WireGuard

WireGuard چیست؟

WireGuard یک پروتکل VPN مدرن و مبتنی بر کلید عمومی است که ارتباط رمزگذاری‌شده میان Peerها را روی UDP ایجاد می‌کند.

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

بله. WireGuard در RouterOS v7 به‌صورت داخلی در دسترس است. برای استفاده باید دستگاه به نسخه مناسب RouterOS v7 ارتقا داده شود.

آیا WireGuard برای اتصال دو شعبه مناسب است؟

بله. می‌توان برای هر شعبه یک Peer، Tunnel IP، Allowed Address و Route شبکه دوردست تعریف کرد و ترافیک مجاز را از طریق Firewall کنترل نمود.

آیا کارکنان دورکار می‌توانند از WireGuard استفاده کنند؟

بله. برنامه WireGuard روی Windows، macOS، Linux، Android و iOS قابل استفاده است و هر دستگاه می‌تواند Peer و کلید اختصاصی داشته باشد.

WireGuard از چه پورتی استفاده می‌کند؟

WireGuard از UDP استفاده می‌کند. پورت قابل تغییر است و در RouterOS معمولاً هنگام ساخت Interface تعیین می‌شود. مقدار پیش‌فرض رایج RouterOS برابر 13231 است.

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

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

آیا WireGuard پشت NAT کار می‌کند؟

بله. Peer پشت NAT می‌تواند اتصال را به Endpoint عمومی آغاز کند. Persistent Keepalive ممکن است برای حفظ Mapping لازم باشد.

Allowed Address چه کاری انجام می‌دهد؟

Allowed Address مشخص می‌کند چه آدرس‌هایی به یک Peer تعلق دارند، چه ترافیکی از آن پذیرفته شود و چه مقصدهایی از طریق همان Peer ارسال گردند.

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

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

آیا با ایجاد WireGuard دیگر Firewall لازم نیست؟

خیر. WireGuard ارتباط را رمزگذاری می‌کند، اما سطح دسترسی کاربران و شعب باید با Firewall کنترل شود.

آیا WireGuard همیشه از IPsec سریع‌تر است؟

خیر. عملکرد به مدل روتر، پردازنده، اندازه Packet، MTU، Firewall، تعداد Tunnelها و کیفیت اینترنت بستگی دارد. مقایسه باید در سناریوی واقعی انجام شود.

آیا WireGuard Username و Password دارد؟

احراز هویت اصلی WireGuard مبتنی بر کلید عمومی است. مدیریت Username، Password، MFA و Directory جزو پروتکل پایه نیست.

آیا WireGuard شبکه لایه دوم ایجاد می‌کند؟

خیر. WireGuard یک Tunnel لایه سوم است. برای انتقال Layer 2 به Tunnel اضافی نیاز است، اما طراحی Routed معمولاً توصیه می‌شود.

Handshake برقرار است ولی Ping انجام نمی‌شود؛ مشکل چیست؟

معمولاً Allowed Address، Route، Forward Firewall، Route برگشت، NAT یا تداخل Subnetها باید بررسی شوند.

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

مدل مناسب به تعداد کاربران، سرعت اینترنت، حجم Tunnel، Firewall، Queue و تعداد شعب بستگی دارد. یک مدل واحد برای همه پروژه‌ها وجود ندارد.

جمع‌بندی

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

در سناریوی Site-to-Site، WireGuard شبکه‌های دو یا چند شعبه را از طریق یک Tunnel رمزگذاری‌شده متصل می‌کند. در سناریوی Remote Access نیز هر کاربر با Peer و Tunnel IP اختصاصی به منابع مجاز شرکت دسترسی پیدا می‌کند.

سادگی پروتکل نباید باعث ساده‌انگاری امنیت شود. Allowed Address، Route، Firewall، NAT، MTU، DNS، مدیریت کلید و فرایند خروج کارکنان باید به‌صورت دقیق طراحی شوند.

WireGuard همچنین جایگزین EDR، آنتی‌ویروس، MFA، Backup یا کنترل دسترسی سازمانی نیست. این پروتکل فقط یکی از لایه‌های ارتباط امن محسوب می‌شود.

در نهایت، موفقیت پروژه به انتخاب روتر مناسب، طراحی آدرس‌دهی بدون تداخل، سطح دسترسی حداقلی و آزمایش سناریوهای واقعی مانند تغییر IP، قطع WAN و کاربر پشت NAT بستگی دارد.

برای بررسی تجهیزات مناسب WireGuard، اتصال شعب و کاربران دورکار به صفحه فروشگاه MikroTik گروه بیستون مراجعه کنید. پیش از خرید، تعداد Tunnelها، سرعت اینترنت و ساختار Firewall پروژه را با کارشناسان بیستون در میان بگذارید.