محافظت از نشت DNS در Windows

اینکه Strict Route چگونه جلوی نشت DNS را در حالت TUN روی Windows می‌گیرد و وقتی نمی‌توانید از آن استفاده کنید چه باید کرد.

در حالت TUN، Windows ممکن است همچنان پرس‌وجوهای DNS را به‌جای تونل از راه آداپتور شبکهٔ معمولی شما بفرستد. در این صورت ارائه‌دهندهٔ اینترنت شما می‌تواند ببیند نشانی کدام سایت‌ها را جست‌وجو می‌کنید. این همان نشت DNS است. این صفحه توضیح می‌دهد Throne چگونه از آن جلوگیری می‌کند، چگونه بررسی کنید که این محافظت روشن است و وقتی نمی‌توانید از آن استفاده کنید چه کنید.

این صفحه فقط دربارهٔ حالت TUN است. مسیر سخت‌گیرانه (Strict Route) در حالت پروکسی سیستمی (System Proxy) اثری ندارد؛ در آن حالت برنامه‌هایی که پروکسی را نادیده می‌گیرند، خودشان وصل می‌شوند و خودشان نام‌ها را جست‌وجو می‌کنند.

مسیر سخت‌گیرانه (Strict Route)

Windows می‌تواند یک پرس‌وجوی DNS را هم‌زمان به سرورهای DNS همهٔ آداپتورهای شبکه بفرستد. حتی اگر Windows سپس از پاسخ تونل استفاده کند، پرس‌وجو پیش‌تر از راه آداپتور معمولی شما و بیرون از تونل خارج شده است.

مسیر سخت‌گیرانه (Strict Route) جلوی این کار را می‌گیرد. تا وقتی حالت TUN اجرا می‌شود، Throne فیلترهایی به فایروال Windows اضافه می‌کند که:

  • پرس‌وجوهای DNS (پورت 53) را روی همهٔ آداپتورهای شبکه به‌جز تونل مسدود می‌کنند تا Windows پاسخ‌هایش را از Throne بگیرد؛
  • وقتی فعال کردن IPv6 برای Tun (Tun Enable IPv6) خاموش است، اتصال‌های IPv6 برنامه‌های دیگر را مسدود می‌کنند تا چیزی از راه IPv6 نشت نکند.

خود ThroneCore مسدود نمی‌شود. این فیلترها با توقف حالت TUN یا بسته شدن Throne از بین می‌روند. این فیلترها ممکن است برنامه‌هایی را هم که باید بیرون از تونل به یک سرور DNS برسند یا از IPv6 استفاده کنند مسدود کنند.

از Throne نسخهٔ 1.2.1، مسیر سخت‌گیرانه (Strict Route) روی Windows 10 و 11 به‌طور پیش‌فرض روشن است. وقتی روشن است، به راه‌حل جایگزین رجیستری که در ادامه آمده نیازی ندارید.

بررسی روشن بودن آن

  1. تنظیمات (Settings) ← تنظیمات vpn (Tun Settings) را باز کنید.
  2. مطمئن شوید مسیر سخت‌گیرانه (Strict Route) تیک خورده است.
  3. تایید (OK) را بزنید.
  4. اگر حالتvpn (Tun Mode) روشن است، آن را خاموش و دوباره روشن کنید. Throne این را با پیام «Tun را مجدداً راه اندازی کنید تا اعمال شود.» (Restart Tun to take effect) یادآوری می‌کند.

وقتی خاموش است

مسیر سخت‌گیرانه (Strict Route) ممکن است در این موارد خاموش باشد:

  • Windows 7، 8 یا 8.1. مسیر سخت‌گیرانه روی نسخه‌های قدیمی‌تر از Windows 10 کار نمی‌کند؛ بنابراین Throne آن را خاموش می‌گذارد.
  • پس از یک خطا آن را خاموش کرده‌اید. اگر Windows نتواند فیلترها را راه‌اندازی کند، نمایه اجرا نمی‌شود و Throne پیام «Strict routing unavailable» (مسیریابی سخت‌گیرانه در دسترس نیست) را نشان می‌دهد. این پیام پیشنهاد می‌کند مسیر سخت‌گیرانه را خاموش کنید، که محافظت را هم از بین می‌برد. اگر می‌توانید علت را برطرف کنید، آن را دوباره روشن کنید.
  • استفاده از Throne را با نسخهٔ 1.2.0 شروع کرده‌اید. در آن نسخه مسیر سخت‌گیرانه به‌طور پیش‌فرض خاموش بود و به‌روزرسانی‌ها تنظیمات ذخیره‌شدهٔ شما را نگه می‌دارند. اکنون آن را تیک بزنید.

اگر نمی‌توانید از مسیر سخت‌گیرانه استفاده کنید، از راه‌حل جایگزین رجیستری که در ادامه آمده استفاده کنید.

راه‌حل جایگزین با رجیستری

بدون مسیر سخت‌گیرانه، می‌توانید قابلیتی از Windows را که پرس‌وجوهای DNS را هم‌زمان به همهٔ آداپتورها می‌فرستد خاموش کنید. نام آن در Group Policy، Turn off smart multi-homed name resolution است. این روش از مسیر سخت‌گیرانه ضعیف‌تر است: نحوهٔ انتخاب سرورهای DNS را در Windows تغییر می‌دهد، اما چیزی را مسدود نمی‌کند. این سیاست (policy) در Windows 8 و نسخه‌های بعدی وجود دارد؛ بنابراین Windows 7 هیچ‌یک از این دو محافظت را ندارد.

با Group Policy (نسخه‌های Pro، Enterprise و Education)

  1. در منوی Start، Edit group policy را جست‌وجو و باز کنید.
  2. به Computer Configuration → Administrative Templates → Network → DNS Client بروید.
  3. روی Turn off smart multi-homed name resolution دوبار کلیک کنید.
  4. Enabled را انتخاب کنید و OK را بزنید.
  5. Windows را دوباره راه‌اندازی کنید.

با رجیستری (Windows Home)

Windows Home ویرایشگر Group Policy ندارد. این فرمان همان سیاست را در رجیستری تنظیم می‌کند:

reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" /v DisableSmartNameResolution /t REG_DWORD /d 1 /f
  1. فرمان بالا را کپی کنید.
  2. در منوی Start، cmd را جست‌وجو کنید.
  3. روی Command Prompt راست‌کلیک کنید و Run as administrator را انتخاب کنید.
  4. فرمان را جای‌گذاری کنید و Enter را بزنید.
  5. Windows را دوباره راه‌اندازی کنید.

برای بازگرداندن آن، این فرمان را به همان روش اجرا کنید، سپس Windows را دوباره راه‌اندازی کنید:

reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" /v DisableSmartNameResolution /f

اگر از Group Policy استفاده کرده‌اید، به‌جای آن، سیاست را دوباره روی Not Configured بگذارید.

مرورگرها

DNS رمزنگاری‌شده

مرورگرها می‌توانند از DNS رمزنگاری‌شدهٔ خودشان (DNS over HTTPS) استفاده کنند و Windows 11 هم می‌تواند آن را برای یک آداپتور شبکه به کار ببرد. این جست‌وجوها از پورت 53 استفاده نمی‌کنند؛ بنابراین مسیر سخت‌گیرانه (Strict Route) آن‌ها را مسدود نمی‌کند و از تنظیمات DNS در Throne هم استفاده نمی‌کنند. در این حالت، تست نشت، سرورهای همان ارائه‌دهندهٔ DNS را نشان می‌دهد.

اگر می‌خواهید همهٔ جست‌وجوها از DNS در Throne عبور کنند، گزینهٔ DNS امن (secure DNS) را در تنظیمات حریم خصوصی یا امنیت مرورگرتان خاموش کنید. همچنین DNS over HTTPS را برای آداپتور شبکه‌تان در تنظیمات (Settings) Windows خاموش کنید.

QUIC

خاموش کردن QUIC نشت DNS را برطرف نمی‌کند؛ این کار به مشکل دیگری کمک می‌کند. بسیاری از سایت‌ها، مانند Google و YouTube، از QUIC (یعنی HTTP/3 روی UDP) استفاده می‌کنند و برخی سرورهای پروکسی UDP را بد یا اصلاً حمل نمی‌کنند. اگر این سایت‌ها از راه تونل کند باز می‌شوند یا اصلاً باز نمی‌شوند، در حالی که سایت‌های دیگر کار می‌کنند، QUIC را در مرورگر خاموش کنید تا از TCP استفاده کند.

در Chrome:

  1. chrome://flags/ را باز کنید.
  2. QUIC را جست‌وجو کنید.
  3. Experimental QUIC protocol را روی Disabled بگذارید.
  4. Relaunch را بزنید.

هنوز نشت دارید؟

  • مسیریابی خود را بررسی کنید. برخی نتیجه‌ها طبیعی‌اند. برای مثال، دامنه‌هایی که قوانین شما آن‌ها را مستقیم (direct) می‌فرستند، عمداً با دی ان اس مستقیم (Direct DNS) جست‌وجو می‌شوند و این معمولاً سرور DNS ارائه‌دهندهٔ اینترنت شماست. تست‌های نشت DNS نتیجه‌های مورد انتظار را فهرست می‌کند.
  • نرم‌افزارهای امنیتی را بررسی کنید. برخی آنتی‌ویروس‌ها و فایروال‌ها، خودشان DNS را فیلتر یا هدایت مجدد می‌کنند. با متوقف کردن موقت آن‌ها امتحان کنید، یا برای Throne یک استثنا اضافه کنید.
  • برنامه‌های VPN دیگر را بررسی کنید. هنگام استفاده از حالت TUN، کلاینت‌های VPN دیگر را قطع کنید. آن‌ها هم می‌توانند تنظیمات DNS و قوانین فایروال را تغییر دهند.