پروفایل کپیشدهٔ WireGuard: چرا هر دو دستگاه از کار میافتند
پروفایل کپیشده کلید را تکثیر میکند، نه دستگاه را. گزارش دستدادن را بررسی کنید، هویت مشترک را تأیید کنید و سپس دومی را درست صادر کنید.
تونل روی لپتاپ کار میکرد، پس فایل پیکربندی روی گوشی و تبلت رفت و حالا دستدادنها روی هر سه دستگاه میآیند و میروند. هیچچیز اشتباه تایپ نشده و پیکربندی سرور ویرایش نشده است. پروفایل WireGuard حسابی با رمز عبور نیست که چند دستگاه بتوانند از آن استفاده کنند؛ یک جفت کلید است و تنها نیمهٔ عمومی است که یک همتا را شناسایی میکند. کپی کردن فایل، هویت را کپی میکند، پس سرور اکنون میکوشد یک رابطهٔ نقطهٔ پایانی را برای چند دستگاهی نگه دارد که همه ادعا میکنند یکی هستند. از سمت سرور دستگاه دومی برای توجه وجود ندارد، فقط همتایی که نشانیاش مدام جابهجا میشود.
با گزارش دستدادن روی هر دستگاه شروع کنید
روی هر دستگاه کلاینت را باز کنید و پیش از تغییر هر چیزی، زمان آخرین دستدادن و نقطهٔ پایانی کنونی را ثبت کنید. در یک پیکربندی سالم این مقادیر تا زمانی که دستگاه در استفاده است پایدار میمانند؛ در هویت تکراری، برچسبهای زمانی بهناوب میآیند و نقطهٔ پایانی ثبتشده روی سرور ممکن است دستگاهی متفاوت از دستگاهی که پروفایل را دارد توصیف کند. همین نوبتگردی امضای ماجراست و توضیح میدهد چرا نشانه شبیه اتصال ناپایدار است و نه خطای پیکربندی. دستگاهها خراب نیستند؛ دارند یکدیگر را قطع میکنند.
خواندن را روی خود دستگاهها انجام دهید تا هر مشاهده به ماشین مشخصی گره بخورد. برچسب زمانی که از چت پشتیبانی کپی شود آن گره را از دست میدهد و بعدها ارزش بسیار کمی دارد.
تأیید کنید که آیا دو دستگاه یک هویت را شریکاند
کلیدهای عمومی را مقایسه کنید، هرگز کلیدهای خصوصی را. کلید عمومی از کلید خصوصی مشتق میشود، پس دو پروفایل با کلید خصوصی یکسان، کلید عمومی یکسان تولید میکنند و برای سرور غیرقابلتمایزند. اگر دو دستگاه یک کلید عمومی را گزارش کنند، پرسش حل شده است و هیچ تنظیم keepalive کمکی نمیکند. دو کلید متفاوت با دستدادنهای ناپایدار به جای کاملاً دیگری اشاره میکنند، به همین دلیل مقایسه باید پیش از هر تغییری بیاید.
wg show wg0 public-key
wg show wg0 latest-handshakes
wg show wg0 endpoints
wg show wg0 transfer
این فرمانها تنها مواد عمومی و شمارندهها را چاپ میکنند، که همان همهٔ چیزی است که یک گفتوگوی پشتیبانی به آن نیاز دارد. یک ورودی همتا روی سرور با یک کلید عمومی و نقطهٔ پایانی که مدام بین دو شبکه جابهجا میشود، نتیجهٔ مورد انتظار تکثیر است، چون بستهٔ احرازشده از منبعی تازه بهروز میکند که ترافیک کجا فرستاده شود. این رفتار همان کار پروتکل آنگونه که طراحی شده است، و به همین دلیل چنین آسان با نقص شبکه اشتباه میشود.
هویت دومی را درست فراهم کنید
یک جفت کلید تازه روی دستگاهی که به آن نیاز دارد بسازید، سپس کلید عمومی حاصل را بهعنوان همتای جداگانه با نشانیهای مجاز خودش به سرور بیفزایید. کلید خصوصی باید روی دستگاه ساخته شود و همانجا بماند؛ کلیدی که جای دیگری تولید و جایگذاری شده باشد، دستکم از یک جای اضافی گذشته است و این سفر اکنون بخشی از داستان اعتماد است.
umask 077
wg genkey > newdevice.key
wg pubkey < newdevice.key
سمت سرور به کلید عمومی و تخصیص نشانی مجاز نیاز دارد که با دستگاه اصلی تداخل نداشته باشد. پروفایلی که نشانی تونل قدیمی را نگه میدارد اما کلید تازه ارائه میکند، همتایی میسازد که سرور ممکن است بپذیرد و سپس مسیریابی نادرست کند، که خطایی ظریفتر از دستدادن ردشده است. تخصیص نشانی را پیش از اتصال بررسی کنید، نه پس از نخستین گمشدن گیجکنندهٔ بسته.
نسخهٔ تکراری را بدون شکستن اصل بازنشسته کنید
وقتی هویت تازه کار کرد، پروفایل کپیشده را از همسایگی دستگاه اصلی بردارید، نه اینکه ورودی سروری را که اصل هنوز استفاده میکند پاک کنید. اگر ممکن است نسخهٔ کپی افشا شده باشد، در عوض فوراً آن را باطل و سپس دوباره صادر کنید؛ راحتی دلیلی برای باقی گذاشتن یک راز مشترک در گردش نیست.
سرویس مدیریتشدهای که واقعاً چند دستگاه در هر اشتراک را پشتیبانی میکند، این را به شما میگوید و اعتبارنامهٔ جداگانه از رابط خودش صادر میکند. تکثیر دستی یک پروفایل هرگز آن مدل نیست، حتی وقتی برند سرویس دستگاه نامحدود را القا میکند.
هر دو دستگاه را جدا و با هم آزمایش کنید
نخست هر دستگاه را بهتنهایی بررسی کنید: دستدادن، شمارندههای انتقال که حرکت میکنند، و مقصدی که فقط تونل به آن میرسد. سپس هر دو را همزمان اجرا کنید و ببینید سرور نقاط پایانی را چگونه میبیند؛ دو کلید متمایز باید دو ورودی همتای پایدار بسازند نه یکی که میجهد.
کلیدهای عمومی تازه را همراه یادداشتهای استقرار نگه دارید و ثبت کنید کدام دستگاه کدام را دارد. بدون آن فهرست، نفر بعدی که پروفایلی کپی میکند همان خطا را تکرار میکند و دستدادنهای نوبتی باز به گردن شبکه میافتند.