محمد زارع مقدم
محمد زارع مقدم
خواندن ۳ دقیقه·۴ سال پیش

تبدیل فیلترنت به اینترنت با DNS Over TLS

فرض کنین من میخوام وب‌سایت youtube.com رو باز کنم، وقتی این کارو تو مرورگر انجام میدم قبل از باز شدنش youtube.com باید تبدیل بشه به یک آدرس معتبر در اینترنت (بعضیا هم قسم خوردن که نذارن ما آدرسشو بدست بیاریم).

این وسط دوستان همیشه در صحنه برای جلوگیری از دسترسی ما به این وب‌سایت میان درخواست‌های ما رو بررسی می‌کنن و وقتی می‌بینن من میخوام فلان وب‌سایت رو باز کنم و نباید این کارو انجام بدم در یک اقدام ناجوانمردانه یه آدرس از فیلترنت خودشون بجای آدرس یوتیوب میدن (خدایا بسه دیگه).

این کارشون مثل این میمونه من بیام از شما بپرسم "رستوران ممد" کجاس بعد شما با "ممد" مشکل داشته باشی بیای به مشتریش آدرس یه رستوران دیگه بدی بگی آدرسش اینه (خیلی بده نکنین این کارو ممدا گناه دارن).

واسه تست این موضوع روی لینوکس یا ویندوز ما یه دستور داریم به نام nslookup که براحتی به ما نشون میده فیلترنت بجای اینترنت داره به ما پاسخ میده. دستور زیرو تو ترمینال اجرا کنید:

nslookup -type=A youtube.com 8.8.8.8

جوابی که به شما میده چیزیه شبیه این:

Server: 8.8.8.8 Address: 8.8.8.8#53 Non-authoritative answer: Name: youtube.com Address: 10.10.34.35

ولی بعد از تغییراتی که تا انتهای این آموزش یاد میگیرین جواب واقعی رو میگیرین، چیزی شبیه این:

Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: Name: youtube.com Address: 216.58.212.174

در واقع ما داریم از "8.8.8.8" (که میشه گوگل) میپرسیم آدرس یوتیوب کجاس ولی برادران فیلترنت جواب میدن میگن: "10.10.34.35" (این آدرس سایت پیوندهاس، اگه تو مرورگر بزنین متوجه میشین). شما قدرت فیلترنتو ببینید، من از گوگل میپرسم ولی فیلترنت جواب میده ولی چطور ممکنه آخه؟ میشه کاری کرد خود گوگل جوابمونو بده؟ آره میشه :)

مشکل اصلی اینه که ما به زبان ساده داریم از گوگل میپرسیم آدرس فلان جا رو به ما بده خب فیلترنت هم که فال‌گوش نشسته ببینه اگه اونجایی که ما آدرسشو می‌خوایم جاییه که نمیخواد ما بریم یه آدرس دیگه بده به ما و راه حل اینه که یه جوری از گوگل بپرسیم که فیلترنت فال‌گوشم باشه نتونه بفهمه داریم چی میگیم و این میشه همون DNS Over TLS (همینم دارن تلاش میکنن فیلتر کنن).

کافیه یه جستجو تو اینترنت بزنین و نحوه راه اندازی DNS Over TLS رو تو سیستم عامل خودتون پیدا کنین.

واسه سیستم عامل اندروید ۹ به بعد این قابلیت تو خودش گذاشته شده و با یه جستجو تو گوگل براحتی با توجه به مدل گوشیتون میتونین این قابلیت فعال کنین و برای اندرویدهای پایین‌تر از نسخه ۹ از برنامه Intra استفاده کنید.

واسه سیستم عامل‌های لینوکس، ویندوز و iOS هم راه حل های زیادی وجود داره که میتونین تو اینترنت پیدا کنین.

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

میتونین یه لیست ازشون تو این لینک پیدا کنین. چنتا از معروف تریناشون:

8.8.8.8 9.9.9.9 1.1.1.1 8.8.4.4 9.9.9.10 1.0.0.1

طبق تجربه‌ای که من داشتم و طبق این لینک احتمال داره هر کدوم از اینا رو چنتا از سرویس دهنده‌های اینترنت قابل استفاده باشن و رو بعضیای دیگه فیلتر شده باشن.

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

بالاخره مهندسین برای عبور از فیلترنت به سمت اینترنت یا راهی خواهند یافت یا راهی خواهند ساخت ولی هیچ وقت ناامید نخواهند شد.

اینترنتفیلترنتdohdns over tlsdns over https
فعال در حوزه توسعه برنامه‌های کامپیوتر | عاشق خانواده | علاقمند به زندگی پس از مرگ
شاید از این پست‌ها خوشتان بیاید