نشت VPN را دقیق تعریف کنیم
Leak زمانی است که داده یا metadata شبکه برخلاف سیاست مورد انتظار از مسیر دیگری عبور کند. در Full Tunnel انتظار داریم IP و DNS عمومی از مسیر تونل باشند. در Split Tunneling بخشی از مسیر مستقیم عمدی است؛ بنابراین مشاهده IP اصلی برای یک برنامه مستثنا الزاماً آسیبپذیری نیست.
قدم صفر: قبل از اتصال چه چیزی داریم؟
VPN را قطع کنید و IP عمومی IPv4، IPv6، resolverهای DNS و نتیجه WebRTC را یادداشت کنید. سپس VPN را وصل و همان مرورگر، همان شبکه و همان سایت تست را دوباره استفاده کنید. بدون baseline نمیتوان فهمید کدام مقدار متعلق به اپراتور است.
DNS Leak چیست؟
اگر درخواست نام دامنه خارج از مسیر مورد انتظار و به resolver شبکه اولیه برود، DNS leak محتمل است. مقصد DNS میتواند نامهایی را که resolve میکنید ببیند، هرچند HTTPS محتوای صفحه را جداگانه رمز میکند. مرورگر دارای DoH ممکن است resolver مستقل استفاده کند؛ این با leak سیستمعامل تفاوت دارد و باید در تفسیر ذکر شود.
روش تست DNS
- Resolver بدون VPN را ثبت کنید.
- پس از اتصال چند hostname تصادفی تولیدشده توسط ابزار تست را resolve کنید.
- نتیجه را با DNS مورد انتظار سرویس مقایسه کنید.
- مرورگر و ابزار سیستم مانند nslookup/dig را جداگانه آزمایش کنید.
IPv6 Leak چیست؟
اگر VPN فقط IPv4 را تونل کند ولی سیستم IPv6 عمومی فعال داشته باشد، مقصد دارای AAAA ممکن است از IPv6 مستقیم استفاده کند و IP شبکه اولیه را ببیند. راهحل اصولی تونلکردن IPv6، تعریف policy روشن یا کنترل خانواده استفادهنشده است. صرف خاموشکردن IPv6 همیشه بهترین راه نیست و میتواند مشکلات دیگری ایجاد کند.
WebRTC Leak چیست؟
WebRTC برای ارتباط زنده از ICE/STUN استفاده میکند و میتواند candidateهای شبکه را به JavaScript صفحه ارائه دهد. مرورگرهای جدید اغلب آدرس محلی را با mDNS پنهان میکنند، اما candidate عمومی یا relay همچنان قابل مشاهده است. اگر IP عمومی مستقیم در حالی نمایش داده شود که Full Tunnel انتظار دارید، بررسی لازم است. نمایش IP خصوصی مانند 192.168.x.x بهتنهایی هویت عمومی شما نیست.
خطاهای رایج در تفسیر
- IP سرور DNS با IP خروجی VPN یکسان نیست؛ این بهتنهایی leak نیست.
- نام اپراتور مرکز داده در GeoIP ممکن است قدیمی باشد.
- وجود IP خصوصی در WebRTC مساوی افشای IP عمومی نیست.
- در Split Tunneling مسیر مستقیم عمدی است.
- cache قدیمی DNS میتواند نتیجه تست اول را آلوده کند.
تست روی Android
مرورگر و یک اپ دیگر را آزمایش کنید، چون Split Tunneling per-app است. Private DNS Android و DoH مرورگر را یادداشت کنید. شبکه را از Wi‑Fi به موبایل تغییر دهید و دوباره آزمایش کنید؛ routeهای شبکه جدید ممکن است متفاوت باشند.
تست روی Windows
جدول route، resolver هر interface و اولویت IPv4/IPv6 را ببینید. مرورگرهای مختلف میتوانند سیاست WebRTC و DoH متفاوت داشته باشند. برای شبکه شرکت، route مستقیم LAN نباید با نشت اینترنت عمومی اشتباه شود.
اگر نشت واقعی بود چه کنیم؟
- اپ و سیستمعامل را بهروزرسانی کنید.
- Full/Split Tunnel و فهرست برنامههای مستثنا را بررسی کنید.
- DNS تونل و Private DNS/DoH را هماهنگ کنید.
- پوشش IPv6 را از ارائهدهنده بپرسید.
- پس از هر تغییر، تونل را بازسازی و تست را تکرار کنید.
- اگر ادامه داشت، نتیجه baseline و متصل را بدون کلید خصوصی به پشتیبانی بدهید.
