بررسی اجمالی فنی: جلوگیری از نشت DNS هنگام تعویض رابط های شبکه

جلوگیری از نشت DNS هنگام تعویض رابط های شبکه

برای ارائه موثر حریم خصوصی و امنیت کاربر ، یک برنامه VPN باید اطمینان حاصل کند که درخواست DNS کاربر برای کل مدت اتصال به VPN خصوصی باقی می ماند. برنامه ها معمولاً این کار را با تضمین ارسال کلیه درخواست های DNS از طریق تونل VPN انجام می دهند و توسط سرورهای DNS ارائه دهنده VPN اداره می شوند.

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

در ExpressVPN ، ما وقت و تلاش زیادی را صرف بررسی سناریوهای پیچیده می کنیم که تحت آن ممکن است برنامه VPN شما نشت کند. در بقیه این مقاله ، ما یک سناریوی خاص را مورد بحث قرار می دهیم که کشف کردیم که ممکن است نشت DNS رخ دهد. ما توضیح خواهیم داد که چگونه و چرا نشت DNS رخ می دهد و راهی را برای آزمایش نشت خود به شما ارائه می دهیم.

سناریو: DNS پس از تعویض در رابط های شبکه نشت می کند

جابجایی بین رابط های شبکه سناریوی متداولی است که در آن نشت DNS امکان پذیر است. مثال زیر را در نظر بگیرید:

  • شما در خانه با لپ تاپ خود هستید و به Wi-Fi متصل هستید
  • شما با برنامه VPN خود متصل می شوید
  • مدتی بعد کابل اترنت خود را وصل کنید

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

در زیر جلسات ، درخواستهای DNS شما می توانند به صورت مداوم به ISP یا سایر اشخاص ثالث خود برسند ، و شما هرگز نمی توانید متوجه شوید.

شکست فنی

چه موقع واقعاً می تواند اتفاق بیفتد?

بیایید به عنوان مثال از یک مک استفاده کنیم (البته توجه داشته باشید که این نشت در دستگاه های ویندوز نیز رخ می دهد). فرض کنید اتصال Wi-Fi و اترنت در دسترس است. برنامه “تنظیمات برگزیده سیستم” را باز کرده و به “شبکه” بروید. چیزی شبیه به موارد زیر را مشاهده خواهید کرد:

Wi-Fi DNS نشت می کند

این نشان می دهد که شما به Wi-Fi و Ethernet متصل هستید ، اما اترنت اتصال مورد نظر شماست.

همچنین فرض کنید DNS شما به یک آدرس IP محلی است. هنگامی که اتصال Ethernet شما برجسته شد و سپس به “DNS” بروید ، می توانید این گزینه را با کلیک بر روی “Advanced” بررسی کنید. شما باید چیزی شبیه به این را مشاهده کنید:

سرور DNS را مشاهده کنید

اگر آدرسهای IP تحت “سرورهای DNS” از فرم 10.x.x.x ، 192.168.x.x یا بین 172.16.x.x و 172.31.x.x باشند ، آدرس IP محلی “آنها” هستند. این به احتمال زیاد به این معنی است که روتر شما به عنوان سرور DNS شما عمل می کند و بنابراین ، بدون VPN ، ISP شما می تواند تمام درخواست های DNS شما را مشاهده کند. اگر چنین تنظیماتی دارید ، ممکن است در برابر این نشت DNS آسیب پذیر باشید.

توجه داشته باشید که حتی اگر سرورهای DNS شما آدرس IP محلی نداشته باشند ، به احتمال زیاد شما همچنان در برابر نشت DNS آسیب پذیر خواهید بود. در این حالت ، درخواست DNS ممکن است از طریق تونل VPN عبور کند. با این حال ، آنها به سرور DNS VPN منتقل نمی شوند بلکه به برخی دیگر از سرورهای DNS مانند سرویس دهنده ISP یا ارائه دهنده DNS شخص ثالث هدایت می شوند..

چگونه می توانید بررسی کنید که آیا شما نشت می کنید?

ساده ترین روش استفاده از ابزار نشت DNS ExpressVPN و انجام موارد زیر است:

  • اطمینان حاصل کنید که کابل اترنت وصل نشده است
  • اطمینان حاصل کنید که به یک شبکه Wi-Fi وصل شده اید
  • با برنامه VPN خود ارتباط برقرار کنید
  • از آزمایش نشت DNS ExpressVPN یا تستر شخص ثالث استفاده کنید
  • فقط باید یک سرور DNS ذکر شده را مشاهده کنید
  • اگر از ExpressVPN استفاده می کنید ، آزمایش کننده ما نیز به شما می گوید که این سرور شناخته شده ماست
  • کابل اترنت خود را وصل کنید
  • صفحه نشت DNS را تازه کنید. اگر DNS را در حال نشت هستید ، اکنون لیستی متفاوت از سرورهای DNS مشاهده خواهید کرد

همچنین می توانید با استفاده از tcpdump به شرح زیر نشت DNS را چک کنید.

در مرحله اول ، رابط شبکه متناسب با اتصال اترنت خود را پیدا کنید:

  • یک پنجره ترمینال را باز کنید
  • شبکه های لیست-لیست برنامه سخت افزار را تایپ کنید
  • به عنوان مثال به دنبال “پورت سخت افزار: Thunderbolt Ethernet” باشید.
  • درگاه سخت افزار: اترنت رعد و برق

  • رابط شبکه اتصال Ethernet شما در کنار “دستگاه” نشان داده شده است. در این مثال en4 است

اکنون ، تست را اجرا کنیم:

  • اطمینان حاصل کنید که کابل اترنت وصل نشده است
  • با برنامه VPN خود از طریق Wi-Fi ارتباط برقرار کنید
  • کابل اترنت خود را وصل کنید
  • یک پنجره ترمینال را باز کنید
  • sudo tcpdump -i en4 port 53 را تایپ کرده و رمز عبور خود را وارد کنید
  • sudo امتیازات لازم را برای گرفتن ترافیک شبکه به tcpdump می دهد
  • -i en4 به tcpdump می گوید تا به رابط اترنت گوش دهید
  • en4 را با رابط شما در بالا کشف کنید
  • درگاه 53 پورتي است كه براي ترافيك DNS استفاده مي شود و بنابراين فقط درخواست هاي DNS را نشان مي دهد
  • اگر هر نوع ترافیکی را می بینید ، پس نشت DNS دارید ، به عنوان مثال.
  • ترافیک نشت DNS

    آنچه در اینجا اتفاق می افتد?

    دلیل اصلی این نشت به نحوه تعیین سیستم عامل از سرورهای DNS برای استفاده بستگی دارد. سرورهای DNS استفاده شده توسط سیستم همیشه آنهایی هستند که با بالاترین اولویت سرویس شبکه فعال مرتبط هستند – این مربوط به سرویس سبز در بالای لیست در تصویر بالا است.

    با غیرفعال کردن اترنت ، سرورهایی که پرس و جوهای DNS شما را دریافت می کنند ، سرویس دهنده Wi-Fi هستند زیرا اکنون بالاترین سرویس شبکه فعال است. با اتصال به یک VPN نیز همین مسئله صادق است. برای ارسال صحیح ترافیک DNS خود به سرور DNS VPN ، بیشتر ارائه دهندگان VPN سرورهای DNS را در بالاترین رابط کاربری به سرور DNS خود تغییر می دهند. در این سناریو ، این بدان معنی است که آنها سرورهای DNS مرتبط با سرویس شبکه Wi-Fi شما را تغییر می دهند.

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

    بسیاری از برنامه های VPN متوجه این مشکل نمی شوند زیرا شبکه Wi-Fi شما همچنان در حال کار است و هرگز قطع نشد. با این حال ، در حالی که ممکن است داده های شما را از طریق شبکه Wi-Fi رمزگذاری شده ارسال کنند ، درخواست های DNS شما به صورت رمزگذاری نشده به ISP شما ارسال می شود..

    اگر برنامه VPN شما در برابر این سناریو محافظت نکند ، به این معنی است که درخواست DNS شما از تونل به ISP شما نشت می کند..

    بررسی سرورهای DNS در ترمینال

    به عنوان یک یادداشت جانبی ، می توانید رفتار خود را از سرورهای DNS با دستور scutil بررسی کنید. برای دیدن اینکه سرورهای DNS سیستم با چه سادگی استفاده می کند:

    • یک پنجره ترمینال را باز کنید
    • نوع scutil – dns را تایپ کنید
    • در بالای خروجی ، شما باید “حل شماره 1” را با لیستی از “nameserver” ها ببینید ، به عنوان مثال.
    • سرویس دهنده شماره 1 حل کننده

    • آدرس های IP در کنار هر “سرور نام” نشان می دهد که این سیستم برای درخواست DNS از چه چیزی استفاده خواهد کرد

    علاقه مند به یادگیری بیشتر هستید؟ یک سوال یا نظر داشته باشید?

    تیم مهندسی ما دوست دارند از شما بشنوند ، فقط خطی را در [email protected] به ما رها کنید.