Private DNS نوع خاصی از یک سرور DNS است. DNS سرور یا همان Domain Name Server یک سرور است که برای اینکه یک دامنه بتواند به وب سایت اشاره نماید در قدم اول بایستی در DNS Server اضافه شود. اما کار dns server چیست؟ DNS سرور یک دیتابیس بزرگ است که شامل مجموعه ای از دامین ها و IP های مرتبط می باشد. به عنوان مثال اگر دامین google.com باشد سایت به IP با آدرس DNS ۶۴.۲۳۳.۱۶۷.۹۹ resolve می شود.
از این دست سرور در سراسر دنیا بسیار زیاد است. سرور هایی قدرتمند که توسط شرکت های قدرتمندی مانند گوگل توسعه داده شده است. ولی با همه این سرور ها گاهی شرکت ها نیاز می بینند تا برای خود یک Private DNS داشته باشند.
یکی از ابزار های ارائه شده توسط شرکت Tailscale ابزار MagicDNS است که در این مقاله سعی داریم توضیح دهیم چگونه می توان با این ابزار یک Private DNS ساخت. اصلی ترین ویژگی قابل مشاهده این ابزار این است که به شما امکان می دهد به جای IP های Tailscale به تمام گره های موجود در Tailnet خود با نام آنها دسترسی پیدا کنید.
هرچند ممکن است این ابزار چندان جدید به نظر نرسد. اما پیش از این لازم به یادآوری است که DNS نامها را به اعداد تبدیل می کند. سیستم هایی مانند mDNS حتی این کار را به صورت خودکار انجام می دهند. چیزی که در مورد MagicDNS جالب است این است که چگونه می تواند این کار را با خیال راحت و بدون دغدغه برای ادمین شبکه انجام دهد ، بدون اینکه اطلاعات جستجوی نام از دستگاه شما خارج شود و این می تواند امنیت پرس و جوهای DNS غیر Tailscale را ارتقا دهد.
اول اینکه چرا ما اصلا نگران امنیت DNS هستیم؟ این حتی به چه معناست؟ چرا این سرویس ناامن خواهد بود؟
همه چیز به روزهای اولیه اینترنت برمی گردد (زمانی که اینترنت چندان بزرگ نبود) زمانی که مردم تا حد زیادی به یکدیگر اعتماد داشتند یا حداقل نمی دانستند و یا نمی توانستند که به یکدیگر اعتماد نکنند. شاید آنها بیشتر بر صحبت کردن رایانه ها تمرکز کرده بودند تا نگرانی در مورد امنیت در این شبکه جهانی جدید!
در هر صورت ، DNS اولیه رمزگذاری یا احراز هویت نشده بود. هرکسی در شبکه شما یا در مسیر آن می تواند درخواست های DNS شما را ببیند یا پاسخ های شما را تغییر دهد. ممکن است فکر کنید اینترنت امروز همه نا امنی ها را برطرف کرده است و DNS اکنون ایمن است. و ممکن است شما در این مورد کاملا اشتباه کرده باشید.
با توجه به نیاز روزافزون افزایش امنیت در شبکه های خصوصی و روند ایجاد یک Private DNS، در خصوص DNS چندین RFC وجود دارد که ماهیت آن به چند دسته تقسیم می شود:
از نظر امنیت در سطح پایینی قرار دارد. ارائه این سرویس بر بستر UDP یک روال معمول است. با استفاده از این روش باید تنها امیدوار باشید تا امنیت شما زیر سوال نرود.
استفاده از سرویس DNS بر بستر TCP سرعت پایین تری نسبت به نمونه قبلی دارد ولی به مراتب از نمونه قبلی قابل اتکا تر و امن تر خواهد بود. هرچند نباید کاملا به این بستر اتکا کنید. با همه این توضیحات امکان زیر سوال رفتن امنیت شما در این سرویس بر این بستر نیز وجود دارد.
شاید بتوانیم کلیدهایی را در DNS قرار دهیم و سپس مواردی را به صورت الکترونیکی امضا کنیم. بررسی این مساله مدتهاست که ادامه دارد، مانند IPv6 که با توجه به سال ها گذشت از پیاده سازی آن همچنان زیر سایه IPv4 قرار دارد. با وجود اینکه DNSSEC مزایایی نسبت به دو بستر قبلی دارد، اما تا حد زیادی خارج از محدوده این پست است. برای اهداف ما، امنیت مورد توجه ما محرمانه بودن و یکپارچگی ترافیک DNS از دستگاه های شما می تواند حل کننده نسبی ماجرا باشد اما اندکی صبر کنید.
UDP DNS | TCP DNS | DoT | DoH | |
---|---|---|---|---|
Transport | UDP | TCP | TCP | TCP or QUIC (UDP) |
Cold start round-trips | ۱ | ۳-۴ | ۱-۲ more | Same as DoT; better with QUIC |
Security | - | - | TLS | TLS |
HTTP? | - | - | - | yes |
Client/OS support | everything | nearly everything | minimal | browsers, the new OSes |
Tailscale یک Private DNS را برای شما در هر Node از شبکه که بخواهید ایجاد میکند. این سرور با آدرس ۱۰۰.۱۰۰.۱۰۰.۱۰۰ قابل دسترسی خواهد بود.
برای طولانی نشدن این مقاله تنها به عکس فوق بسنده می کنیم و روند پیاده سازی یک Private DNS را در قسمت بعدی بررسی خواهیم نمود!