أحدث الأخبار

نصائح صحية

  • ضف من هامش الدولارات, ودول المبرمة إذ كلا, كل ضرب بشرية اليها المتحدة. اعلان التخطيط قد بها, أن رئيس اتّجة أخذ. وقبل باستخدام أي حتى, أهّل تزامناً الدنمارك لم أما. أجزاء وقامت ويكيبيديا كل ضرب. جعل بالرغم الجديدة، بـ, قد وانهاء واستمر تحت. يكن بـ فكان بخطوط مكثّفة.

منشورات شائعة

درخواست DNS رمزگذاری شده – OpenWrt Part5 وبلاگ فناوری اطلاعات امنیت وبلاگ Kuketz

درخواست DNS رمزگذاری شده – OpenWrt Part5 وبلاگ فناوری اطلاعات امنیت وبلاگ Kuketz

. 1 DNS بیش از TLS (DoT)  OpenWrt Stubby

درخواست های سرور DNS معمولاً رمز نشده در بندر 53 (TCP | UDP) ارسال می شود. این بدان معناست که حتی اگر سرور DNS بدون سانسور و رایگان را انتخاب کرده باشید ، فرصتی وجود دارد که شخصی درخواستهای DNS شما را بخواند و آنها را ارزیابی کند – بنابراین DNS از طریق پورت 53 در برابر حملات در وسط آسیب پذیر است. رویکردهای جدید مانند DNS بیش از TLS (DoT) یا DNS بر روی HTTPS (DoH) باید از این امر جلوگیری کند.

برای OpenWrt ، یک افزونه میانبر در دسترس است که اجازه می دهد تا تمام درخواست ها و پاسخ های DNS از طریق اتصال ایمن TLS که بین روتر OpenWrt و سرور DNS تنظیم شده ارسال شود. بر خلاف یک درخواست درخواست DNS در بندر UDP 53 ، میانبر در برابر درخواست های DYS جاسوسی و حملات در وسط محافظت می کند. بنابراین DoT حریم شخصی و امنیت را بهبود می بخشد.

در این پست می خواهم شما را با نصب و پیکربندی میانبرها آشنا کنم. پس از اتمام آموزش ، درخواستهای DNS شما با استفاده از حلال انتخابی TLS رمزگذاری می شوند.

این پست بخشی از یک سری مقالات است:

2. گربه DNS over TLS (DoT)

Stubby برنامه ای است که نه تنها برای OpenWrt بلکه در توزیع های مختلف لینوکس ، macOS و ویندوز نیز موجود است. این برنامه به عنوان یک حل کننده محلی DNS عمل می کند که درخواست DNS را می پذیرد و آنها را از طریق TLS به یک سرور DNS رمزگذاری شده از طرف مشتری ارسال می کند.

از لحاظ فنی ، میانبر به عنوان یک Daemon روی روتر OpenWrt اجرا می شود و درخواست های اتصال DNS رمزگذاری شده TLS شما را ارسال می کند. ناظران منفعل در شبکه (محلی) دیگر نمایش داده های DNS ارسال شده توسط مشتری را مشاهده نمی کنند ، که معمولاً از طریق پورت UDP 53 با متن ساده از خط ارسال می شوند. برای این کار ، اختصار از DNS over TLS (DoT) استفاده می کند – که در RFC7858 استاندارد شده است. Stubby همچنین از DNSSEC پشتیبانی می کند ، که برای محافظت از رمزنگاری رمزنگاری در برابر جعل استفاده می شود. با استفاده از امضای تعبیه شده و دو کلید رمزنگاری ، stubby می تواند بررسی کند که آیا اطلاعات DNS منتقل شده معتبر (یکپارچگی) و معتبر (اصالت) است ، یعنی از سرور DNS مسئول. اگر هر دو تست مثبت باشند ، پاسخ DNS قابل اعتماد است.

3. میانبر نصب

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

3.1 بسته های لازم را نصب کنید

ابتدا از طریق SSH به روتر OpenWrt وصل شوید. برای استفاده بعدی از DNSSEC ، ابتدا باید بسته dnsmasq-full را نصب کنید. بسته dnsmasq OpenWrt نصب شده به طور پیش فرض از DNSSEC پشتیبانی نمی کند.

با استفاده از ترکیب دستور زیر نصب کنید:

  opkg نصب dnsmasq-full - فقط بارگیری و& opkg حذف dnsmasq && opkg نصب dnsmasq-full - cache. && rm * .ipk 

پرونده های پیکربندی تغییر یافته در حین نصب رونویسی نمی شوند ، اما پرونده های پیکربندی جدید ذخیره می شوند ، به عنوان مثال در / etc / config / dhcp -opkg هنوز نصب شده است:

  opgk install: میانبر 

3.2 تنظیمات پیش فرض پس از نصب

پس از پیکربندی ، کاربر کوتاه برای اتصالات در رابط loopback (IPv4 / IPv6) در پورت 5453 گوش می دهد. به طور پیش فرض ، stubby فقط به سؤالات DNS از روتر OpenWrt پاسخ می دهد ، و همچنین از سرورها استفاده می کند DNS Cloudflare – البته ما می خواهیم آن را تغییر دهیم ، زیرا Cloudflare به نظر من ارائه دهنده DNS قابل اطمینان نیست.

4. پیکربندی

4.1 ادغام با dnsmasq

ابتدا ، ما می خواهیم درخواست های DNS از dnsmasq به خرد خرد ارسال شود. بنابراین ، درخواست های DNS از شبکه داخلی در بندر 53 باید به پورت 5453 ارسال شود – هش درخواست های DNS را در رابط حلقه باز روتر OpenWrt گوش می دهد. ما همچنین باید مطمئن شویم كه dnsmasq از خدمات حل اسم DNS كه در /etc/resolv.conf سپرده شده استفاده نمی كند:

  uci add_list dhcp. @ Dnsmasq [-1] .server = & # 39؛ 127.0. 0.1 # 5453 & # 39؛
uci set dhcp. @ dnsmasq [-1] .noresolv = 1
uci commit && reload_config 

4.2 آیا درخواست های DNS را به ISP DNS

ارسال نکنید تنظیمات پیکربندی در بخش 4.1 تضمین می کند که درخواست های DNS TLS هستند که توسط یک کد کوتاه رمزگذاری شده اند. اما ، تا زمانی که دو واسطه و dnsmasq در OpenWrt راه اندازی نشوند یا در دسترس نباشند ، این خطر وجود دارد که OpenWrt از سرورهای DNS تهیه شده توسط ISP شما استفاده کند. ما باید این نشت کوچک را با خاموش کردن ردیف های بالادست و استفاده از OpenWrt فقط ترکیب dnsmasq + stubby برای DNS وصل کنیم:

  uci set network.wan.peerdns = & # 39؛ 0 & # 39؛
uci set network.wan.dns = & # 39؛ 127.0.0.1 & # 39؛
uci set network.wan6.peerdns = & # 39؛ 0 & # 39؛
uci set network.wan6.dns = & # 39؛ 0 :: 1 & # 39؛
uci commit && reload_config 

4.3 ذخیره سازی سرورهای DNS خود

به طور پیش فرض ، Cloudflare کم حجم از سرورهای DNS استفاده می کند. شما باید این مورد را تغییر داده و سرورهای DNS را که در گوشه توصیه ذکر شده است ، پیکربندی کنید. برای این منظور ، پیکربندی stubby را سفارشی می کنیم:

  nano / etc / config / stubby 

به عنوان مثال ، من دو سرور DNS یا حل کننده اضافه می کنم:

  config refver
آدرس گزینه "80 .241.218.68"
گزینه tls_auth_name "fdns1.dismail.com"
لیست شرکتهای & sha256 / MMi3E2HZr5A5GL + badqe3tzEPCB00 + OmApZqJakbqUU = & # 39؛

تنظیم کننده پیکربندی
آدرس گزینه "46 .182.19.48"
گزینه tls_auth_name "dns2.digitalcughter.de"
لیست spki & # 39؛ sha256 / v7rm6OtQQD3x / wbsdHDZjiDg + utMZvnoX3jq3Vi8tGU = & # 39؛ 

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

باید کلید SPKI عمومی ( spki حرف "نوع / مقدار هش" ) را دوباره باز کنید. در طی درخواست DNS به یک سرور DNS ارسال می شود و در برابر کلید خصوصی سرور بررسی و تأیید می شود. از این رو صفحه DNS از راه دور همیشه تأیید می شود – مشروط بر اینکه پارامتر "موقت" tls_authentication روی 1 تنظیم شود. این پیش فرض است.

سرانجام ، ما پارامتر shorthand tls_min_version را به پیکربندی که تنظیم کرده ایم (حداقل) TLS 1.2:

  پیکربندی stubby & # 39؛ جهانی & # 39؛
[..]
گزینه tls_min_version & # 39؛ 1.2 & # 39؛ 

توجه

با توجه به پارامتر کوتاه round_robin_upstreams & # 39؛ 1 & # 39؛ سرورهای DNS که در پیکربندی ذخیره شده اند به همان اندازه مورد استفاده یا درخواست هستند. روش Round Robin اصطلاحی است که در فناوری اطلاعات به کار رفته است و از جمله موارد دیگر ، برای متعادل کردن بار نیز استفاده می شود.

4.4 فعال کردن اعتبار سنجی DNSSEC توسط dnsmasq

برای dnsmasq برای تأیید درخواست های DNS ما توسط DNSSEC ، باید دو پارامتر را تنظیم کنیم:

  uci set dhcp. @ Dnsmasq [-1]. Dnssec = 1
uci set dhcp. @ dnsmasq [-1] .dnsseccheckunsigned = 1
uci commit && reload_config 

4.5 راه اندازی مجدد خدمات

پس از تکمیل پیکربندی ، باید دو سرویس را بطور خلاصه و dnsmasq راه اندازی مجدد کنید. شما می توانید این کار را از طریق رابط وب LuCI انجام دهید. به System -> Startup بروید و روی Restart برای هر دو سرویس کلیک کنید.

4.6 اختیاری: درخواستهای DNS را از شبکه محلی رد کنید

برای علاقه خودتان ، شما باید از رزولوشن نام DNS استفاده کنید تا به مشتریان خود اجازه دهید این کار را از طریق روتر OpenWrt انجام دهند. با این حال ، برای مشتریان نیز امکان پذیر است که مستقیماً به سرورهای DNS مراجعه کنند ، که از stubby و Co. عبور می کند. اگر می خواهید از این امر جلوگیری کنید ، دو گزینه زیر را دارید که هر دو با استفاده از Network -> Firewall -> قوانین راهنمایی و رانندگی تنظیم شده اند:

  • رویکرد لیست سفید: شما صریحاً اجازه می دهید که کدام شبکه ترافیک یا کدام پورت ها باشد. مشتریان از طریق اینترنت در دسترس هستند. این امر پس از "مسدود کردن همه قوانین" در انتهای زنجیره قانون است.
  • رویکرد لیست سیاه: شما صریحاً مشتریان خود را از دسترسی به بندر 53 از طریق TCP و UDP ممنوع می کنید.

رویکرد لیست سفید در هر صورت ارجح است. در بقیه مجموعه مقالات OpenWrt با جزئیات به موضوع برمی گردم.

5. تست

پس از تکمیل پیکربندی ، بررسی کنید که پیکربندی کار می کند. با استفاده از دستور زیر ابتدا بررسی می کنیم که آیا DNSSEC کار می کند:

  dig dnssectest.sidn.nl + dnssec + multi @  آدرس IP دروازه OpenWrt  

دستور باید چنین خروجی را برگرداند:

؛ << >> DiG 9.11.5-P4-5.1-Debian << >> dnssectest.sidn.nl + dnssec + multi @ 192.168.150.1
؛؛ گزینه های جهانی: + cmd
؛؛ من جواب دارم:
؛؛ - >> HEADER << - کد عملکرد: QUERY ، وضعیت: NOERROR ، شناسه: 60258
؛؛ پرچم ها: qr rd ra ad؛ سؤال: 1 ، پاسخ: 2 ، بدن: 0 ، اضافی: 1

؛؛ PSEUDOSECTION گزینه:
؛ EDNS: نسخه: 0 ، پرچم ها: تا؛ udp: 4096
؛؛ بخش سؤال:
؛ Dnssectest.sidn.nl. در A

؛؛ بخش پاسخ:
dnssectest.sidn.nl. 3582 IN A 213.136.9.12
dnssectest.sidn.nl. 3582 در RRSIG A 8 3 3600 (
20191225081058 20191125081058 42033 sidn.nl.
XQ7t5u70ibaKpVEmKJLkbfU4cwbWPJup / hvZk78MCG12
Uk3WEr3p5FNKXaPiGOAj80hE / cn0xYLA4VUz37YXjR3G
7XTQZmi1nwUvB0dnFdNC3WExHNwbaqt8HyWEC + pxBRgj
B1MIcdQe9u8HLwiS9sb3MQgRiMsIeTs1 / Q4Db3Q =)

؛؛ زمان پرس و جو: 122 ms
؛؛ سرور: 192.168.150.1 # 53 (192.168.150.1)
؛؛ WHEN: دوشنبه 25 نوامبر 14:44:58 CET 2019
؛؛ MSG SIZE rcvd: 266 

این خط به خصوص جالب است:

  ؛؛ پرچم ها: qr rd ra  ad ؛ پرسش: 1 ، پاسخ: 2 ، ORGAN: 0 ، اضافی: 1 

پرچم تبلیغ نشان می دهد که dnsmasq پاسخ از سرور DNS را معتبر می داند یا اعتبار آن با استفاده از DNSSEC کار می کند. از طرف دیگر ، می توانید DNSSEC را از طریق وب سایت زیر بررسی کنید: Test Resolver DNSSEC

بعدی ، ما بررسی می کنیم که آیا سرورهای DNS ذخیره شده در پیکربندی ساده به درخواست DNS پاسخ می دهند: DNS Leak test.com

 DNS Leak Test ] 6. نتیجه گیری

به خصوص در دستگاه شبکه مرکزی ، مانند روتر ، وضوح نام DNS توسط + DNSSEC معقول است. مشتریان اصلی از امنیت و رازداری بهره مند می شوند. با این حال ، Stubby تنها راه حل مورد استفاده برای اجرای DoT نیست. راه حل های DNS مانند Unbound نیز می توانند این کار را انجام دهند. با این حال ، بر خلاف Stubby با معایب جزئی:

[…] با این حال ، در حال حاضر تمام توابع TCP / TLC را که Stubby دارد ، ندارد ، به عنوان مثال ، نمی تواند از حالت سخت پشتیبانی کند ، نمی تواند پرس و جوهایی را برای پنهان کردن اندازه پرس و جو پر کند ، و این یک اتصال جداگانه را باز می کند. برای هر پرس و جو DNS (کلید اصلی مجدداً از اتصالات استفاده می کند). […]

بعداً در سری OpenWrt ، ما با استفاده از قوانین فایروال به بررسی فیلتر بسته ها و کنترل ترافیک برون مرزی (مشتری) می پردازیم.

منابع تصاویر :

دفتر تلفن: DinosoftLabs از وب سایت www.flaticon.com دارای مجوز CC 3.0 BY

درباره نویسنده [194559007]   Mike Kuketz

نام من مایک است من و کوکتز این وبلاگ را برای Sicherheits – و مربوط به حفظ حریم خصوصی مربوط به مضامین ساده تر و قابل دسترسی برای همه می نویسیم.

در کار من به عنوان پنتستر (Kuketz IT-Security) من نقش "هکر" را بازی می کنم و به دنبال ایجاد نقاط ضعف در سیستم های اطلاعاتی ، برنامه ها و برنامه های اینترنتی می گردم. بعلاوه ، من مدرس امنیت فناوری اطلاعات در دانشگاه دوتایی در کارلسروهه و ، در میان دیگران ، نویسنده مجله کامپیوتر c & # 39؛ t.

وبلاگ کوکتز یا شخص من به طور منظم در رسانه ها (heise آنلاین ، Sdedeutsche Zeitung و غیره) ارائه می شود.

بیشتر بیاموزید

مرا از طریق

دنبال كنید. اگر می خواهید درباره آخرین ارسال ها اعلان هایی دریافت كنید ، گزینه های مختلفی برای پیگیری وبلاگ خود دارید:

Newsletter ➡


vpn

أخبار عاجلة