این بررسی‌ها را به ترتیب انجام دهید و در اولین موردی که شکست می‌خورد بایستید، چون هر پاسخ معنای گام بعدی را تغییر می‌دهد. پرسش واقعی باریک است: آیا HTTP ساده در شبکه ZeroTier به‌صورت باز از اینترنت عبور می‌کند؟ میان دو همتای ZeroTier معمولاً نه، چون لایه پوششی آن گام را رمزنگاری می‌کند. اما این سخنی درباره دو نقطه پایانی است، نه درباره هر بخشی که درخواست از آن می‌گذرد. روتر، پل یا پروکسی معکوس نقطه پایانی را جابه‌جا می‌کند و متن ساده در آن سوی آن از سر گرفته می‌شود.

بررسی 1: نشانی‌ای را بیابید که مرورگر با آن تماس می‌گیرد

نشانی URL را با آنچه دستگاه واقعاً دارد مقایسه کنید. ip -brief addr show رابط zt و نشانی لایه پوششی را که کنترل‌کننده شبکه تخصیص داده فهرست می‌کند؛ اگر URL از آن نشانی استفاده کند، سوکت مرورگر به لایه پوششی وارد می‌شود.

وقتی نام به‌جای آن به نشانی LAN تفکیک می‌شود، ممکن است لایه پوششی اصلاً دخیل نباشد، هر چه نشانگر وضعیت کلاینت بگوید. ip route get 10.147.20.5 رابط و نشانی مبدأیی را که هسته انتخاب می‌کرد چاپ می‌کند، پس رابط zt در آنجا یعنی بسته به لایه پوششی وارد می‌شود و نام کارت شبکه فیزیکی شما یعنی وارد نمی‌شود. نام‌ها لایه دیگری می‌افزایند: رکوردی که به نشانی پوششی اشاره می‌کند رفتاری متفاوت از رکوردی دارد که به نشانی LAN اشاره می‌کند، و یک پسوند جست‌وجو یا ورودی در فایل hosts می‌تواند بی‌صدا تعیین کند کدام را دریافت می‌کنید.

بررسی 2: تأیید کنید که دو سر همتا هستند، نه رله‌ای که رمزگشایی می‌کند

ZeroTier میان همتاها رمزنگاری می‌کند و جایی که مسیر مستقیم وجود ندارد، بسته‌ها از طریق ریشه‌ای هدایت می‌شوند که آن‌ها را همچنان رمزنگاری‌شده می‌فرستد. zerotier-cli peers مسیر هر همتا را با DIRECT یا RELAY همراه با عدد تأخیر علامت می‌زند. مسیر هدایت‌شده رفت‌وبرگشت می‌خواهد، نه محرمانگی.

چیزی که پاسخ را واقعاً تغییر می‌دهد عضوی است که واقعاً نقطه پایانی نیست. وقتی طرف دور عضوی از ZeroTier باشد که به LAN فیزیکی مسیریابی یا پل می‌کند، لایه پوششی در همان عضو پایان می‌یابد و گام بعدی اترنت معمولی است.

بررسی 3: ببینید درخواست کجا خوانا می‌شود

روی میزبانی که باور دارید صفحه را سرو می‌کند، هنگام بازخوانی رابط لایه پوششی را ثبت کنید: sudo tcpdump -i ztxxxxxxx -A -c 5 'tcp port 80'. یک خط درخواست خوانا در آن خروجی ثابت می‌کند که ترافیک رمزگشایی‌شده به آن میزبان رسیده است، و همان مرزی است که دنبالش هستید.

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

ثبت loopback هم وقتی پروکسی معکوس در جلو باشد مهم است، چون پروکسی‌ای که HTTPS را می‌پذیرد و HTTP را جلو می‌فرستد، مرز را به بک‌اند خود منتقل می‌کند.

بررسی 4: هر گام پشت روتر یا پل را حساب کنید

عضوی که برای مسیریابی میان لایه پوششی و یک LAN پیکربندی شده است طراحی معمولی است و جایی که بیشتر این فرض‌ها می‌شکند. لایه پوششی بخش مرورگر تا روتر را محافظت می‌کند و بعد از آن هیچ. پل همان داستان را با سازوکاری دیگر می‌گوید: لایه پوششی و بخش فیزیکی یک دامنه پخش واحد می‌شوند، پس درخواست از یک لپ‌تاپ پل‌شده از اترنت معمولی می‌گذرد حتی اگر آن لپ‌تاپ روی شبکه ZeroTier باشد.

آن را ردیابی کنید نه فرض. traceroute از کلاینت به نشانی سرویس به‌همراه جدول مسیریابی روی عضو دروازه نشان می‌دهد که آخرین گام zt است یا eth.

ZeroTier حالت مسیر مورد اعتماد را هم ارائه می‌دهد که می‌تواند امنیت انتقال را روی مسیرهای محلی تعیین‌شده به‌خاطر کارایی کنار بگذارد. شبکه‌ای که از آن استفاده می‌کند فرض معمول مسیر رمزنگاری‌شده را به ارث نمی‌برد، پس پیش از نقل آن پیکربندی شبکه را بخوانید. مستندات پروتکل هم رمزنگاری میان همتاها و هم آن استثنا را توصیف می‌کند.

بررسی 5: تصمیم بگیرید برنامه هنوز چه باید بکند

عضویت در لایه پوششی دستگاهی را در برابر شبکه احراز هویت می‌کند و هیچ نمی‌گوید که آیا سرویس آن سوی دیگر همانی است که می‌خواستید به آن برسید. HTTPS به پرسشی دیگر پاسخ می‌دهد و نام میزبان را به کلید می‌بندد، پس دو محافظت همپوشانی دارند بدون اینکه جای یکدیگر را بگیرند. همتای مجاز می‌تواند هنوز سرویس اشتباه باشد، و نقطه پایانی به‌خطرافتاده درخواست را هم پیش از رمزنگاری و هم پس از رمزگشایی می‌خواند. هیچ‌یک از دو سازوکار آنچه برنامه ثبت می‌کند را حسابرسی نمی‌کند.

برای هر چیزی با نشست قابل استفاده مجدد یا گذرواژه، TLS را در برنامه یا در پروکسی‌ای که کنترل می‌کنید پایان دهید و اعتبارسنجی گواهی را روشن بگذارید. جایی که سرویس قدیمی باید روی HTTP ساده بماند، مسیر دقیق میزبان‌به‌میزبان را که می‌تواند استفاده کند، اینکه چه کسی می‌تواند به آن برسد و کدام بخش بی‌محافظت می‌ماند را بنویسید؛ آن یادداشت همان چیزی است که بازبین آینده نیاز دارد.

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

خروجی ثبت و فهرست همتاها را کنار مستندات سرویس نگه دارید تا هر کسی که مسیری را تغییر می‌دهد یا پلی می‌افزاید ببیند کدام فرض را دارد می‌شکند.

مقالات مرتبط