دسترسی به خانه یک سرویس خصوصی است، نه خروجی دوم اینترنت. WireGuard روی یک ماشین Linux پشت روتر پایان می‌یابد، روتر کار فعلی خود را حفظ می‌کند و لپ‌تاپ تنها پیشوند خانه را از تونل می‌فرستد. اینکه کدام دستگاه ارسال می‌کند و کدام پایان می‌دهد، تصمیمی است که هر قاعده بعدی از آن نتیجه می‌شود. اگر این تقسیم را اشتباه کنید، NATی را اشکال‌زدایی می‌کنید که هرگز نمی‌خواستید اضافه کنید.

مشخص کنید چه کسی ارسال می‌کند و چه کسی پایان می‌دهد

ورودی عمومی در اختیار روتر است: بسته UDP را می‌پذیرد و به میزبان Linux می‌سپارد. آن میزبان شنونده WireGuard و تصمیم ارسال به LAN را در اختیار دارد. در عمل، نگاشت بسته UDP 51820 را به 192.168.50.10 می‌فرستد و پورت خود برنامه بسته می‌ماند. جدا نگه‌داشتن نقش‌ها دیوار آتش را کوتاه نگه می‌دارد.

پیش از ساخت رابط، طرح نشانی‌ها را بنویسید. روتر 192.168.50.1، دروازه 192.168.50.10، سرویس 192.168.50.20، تونل 10.77.0.0/24 با دروازه .1 و لپ‌تاپ .2. محدوده تونل نباید با شبکه‌ای که لپ‌تاپ از قبل به آن می‌رسد هم‌پوشانی داشته باشد، وگرنه مقصدها مبهم می‌شوند. NAT سطح اپراتور یا یک روتر بالادست می‌تواند دسترسی ورودی را مسدود کند و هیچ ارسال پورت محلی آن را درست نمی‌کند.

کلیدها را مبادله کنید، سپس اندازه AllowedIPs را تعیین کنید

برای هر نقطه پایانی یک جفت کلید جداگانه بسازید و تنها کلیدهای عمومی را از کانالی تأییدشده منتقل کنید. ورودی peer در دروازه تنها منبع تونل لپ‌تاپ را مجاز می‌داند، زیرا LAN خانه پشت دروازه است نه پشت لپ‌تاپ. قرار دادن LAN در آن ورودی، توپولوژی‌ای را توصیف می‌کند که نساخته‌اید.

[Interface]
Address = 10.77.0.2/32
PrivateKey = LAPTOP_PRIVATE_KEY_BASE64

[Peer]
PublicKey = HOME_PUBLIC_KEY_BASE64
Endpoint = home-vpn.example.com:51820
AllowedIPs = 192.168.50.0/24, 10.77.0.1/32

AllowedIPs پیشوند خانه به‌علاوه نشانی تونل دروازه است، هرگز 0.0.0.0/0 نیست، تا گشت‌وگذار عادی مسیر محلی خود را حفظ کند. یک مالک پیکربندی نگه دارید و هرگز همان رابط را به مدیر شبکه دومی وصل نکنید.

مسیر بازگشت همان بخشی است که مردم از آن می‌گذرند

این طراحی منبع 10.77.0.2 لپ‌تاپ را حفظ می‌کند و آن را به‌صورت دروازه پنهان نمی‌کند، بنابراین دستگاه‌های خانه باید بدانند چگونه پاسخ دهند. یک مسیر ایستا روی روتر خانه برای 10.77.0.0/24 با 192.168.50.10 به‌عنوان گام بعدی اضافه کنید و بخوانید که wg-quick چه چیزی از AllowedIPs در مرجع خود استخراج می‌کند. بدون آن مسیر، دست‌دادن کامل‌شده در کنار پاسخ‌های برنامه‌ای وجود دارد که هرگز نمی‌رسند.

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

یک سرویس را مجاز کنید، نه زیرشبکه را

ارسال IPv4 را روی دروازه فعال کنید و سه وظیفه دیوار آتش را جدا نگه دارید: پذیرفتن شنونده WireGuard، ارسال منبع لپ‌تاپ تنها به 192.168.50.20، و بسته نگه‌داشتن بقیه شبکه خانه برای آن peer. قواعد را با مدیر دیوار آتشی که در حال استفاده است یکپارچه کنید، نه اینکه آن را پاک کنید. مسیر برای کل پیشوند خانه اجازه استفاده از هر دستگاه درون آن نیست.

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

از بیرون آزمایش کنید، سپس پاکسازی کنید

پروفایل‌ها را از طریق مالکشان بالا بیاورید، دست‌دادن را تأیید کنید، سپس برنامه موردنظر را از شبکه بیرونی تأییدشده اجرا کنید و پاسخ را بررسی کنید. سرویس خانگی‌ای را امتحان کنید که باید رد بماند، زیرا قاعده مجاز تا زمانی که چیزی از آن استفاده نکند نامرئی است. برای HTTPS از نام روی گواهی استفاده کنید و بگذارید اعتبارسنجی اجرا شود؛ تایپ نشانی خام و رد کردن هشدار هیچ چیز درباره مسیر اثبات نمی‌کند. PersistentKeepalive اختیاری است: به peer گرفتار در NAT پس از بی‌کاری کمک می‌کند، اما نه مسیر گمشده است و نه رفع مجوز.

نشانی عمومی پویا به به‌روزرسانی‌های DNS نیاز دارد و لپ‌تاپ باید پس از تغییر، نقطه پایانی خود را دوباره حل کند؛ رکوردهای DNS جدید یک نقطه پایانی پیکربندی‌شده را جابه‌جا نمی‌کنند. لپ‌تاپ را با حذف peer آن از پیکربندی ذخیره‌شده و فعال بازنشسته کنید؛ حذف تنها پروفایل لپ‌تاپ مجوز دروازه را لغو نمی‌کند.

مقالات مرتبط