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

سکوت خود پروتکل است، نه نقص

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

WireGuard پیام‌های دست‌دهی خود را به‌صورت رمزنگاری‌شده اعتبارسنجی می‌کند و هر چیزی را که شکست بخورد نادیده می‌گیرد. OpenVPN با tls-auth یا tls-crypt همین کار را برای کانال کنترل خود انجام می‌دهد. در هر دو حالت، بار دلخواه هرگز به مرحله‌ای که به کاربر می‌رسد نمی‌رسد، پس چیزی برای پاسخ دادن و خطایی برای بازگرداندن وجود ندارد.

TCP از یک پورت بسته به شما reset می‌داد. UDP شما را در ابهام می‌گذارد و اسکنرها آن را با چاپ باز یا فیلترشده به‌جای حدس زدن حل می‌کنند.

اسکنر چه چیزی می‌تواند و چه چیزی نمی‌تواند نتیجه بگیرد

نتیجه یک اسکن تنها به اندازه باری که فرستاده است آگاهی‌بخش است. مشاهدات ممکن را بر اساس اینکه هرکدام واقعاً چه چیزی را پشتیبانی می‌کند مرتب کنید:

ProbeObserved resultWhat it supports
Empty datagramNo replyNothing beyond the fact that UDP was used
Random payloadNo replyConsistent with an authenticated service
Valid handshake from a real clientA protocol replyThe service is alive and reachable
ICMP port unreachableUnreachable messageThe host answered, usually because nothing listens

سطر سوم را تنها آزمون مثبت فهرست بخوانید. به پروفایل واقعی، کلید واقعی و نقطه پایانی درست نیاز دارد و این دقیقاً همان چیزی است که یک اسکنر عمومی ندارد.

به دو انتهای مسیر نگاه کنید

برای سروری که خودتان مدیریت می‌کنید، پیش از هر نتیجه‌گیری روی رابط ضبط کنید و سپس از سرویس بپرسید چه دید. هر دو فرمان به root روی دروازه نیاز دارند:

tcpdump -ni any udp port 51820
tcpdump -ni any udp port 1194
wg show

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

آزمون را عوض کنید، نه محافظت را

میان‌بُر وسوسه‌انگیز این است که محافظت کانال کنترل را غیرفعال کنید تا یک تشخیص پاسخ بگیرد. این یک ویژگی امنیتی واقعی را با نتیجه اسکن زیباتر معاوضه می‌کند و جهت اشتباهی است. در عوض از یک پروفایل معتبر از شبکه‌ای تأییدشده استفاده کنید و نقطه پایانی و زمان را یادداشت کنید تا مقایسه تکرارپذیر باشد.

مفیدترین آزمون، آزمونی تفاضلی است: همان پروفایل روی مسیری که کار می‌کند و روی مسیری که کار نمی‌کند. اگر مسیر کارکننده یک دست‌دهی تولید کند و مسیر ناموفق روی رابط هیچ چیزی تولید نکند، گسیختگی را بدون تضعیف هیچ چیز پیدا کرده‌اید.

بنابراین یک بسته UDP بی‌پاسخ نه ثابت می‌کند که سرور آفلاین است و نه اینکه امن است. اثبات می‌کند که این آزمون، در این مسیر، در این لحظه، پذیرفته نشد.

مقالات مرتبط