| STUBBY(1) | General Commands Manual | STUBBY(1) |
نام (NAME)
stubby - یک تحلیلگر محلی خرد (stub resolver) برای حریم خصوصی DNS
خلاصه دستور (SYNOPSIS)
stubby [-C file] [-ghilV] [-v loglevel]
توضیحات (DESCRIPTION)
stubby به عنوان یک تحلیلگر محلی خرد برای حریم خصوصی DNS عمل میکند که از DNS-over-TLS بهره میبرد. Stubby پرسوجوهای DNS ارسالشده از ماشین محلی به یک تحلیلگر حریم خصوصی DNS را رمزگذاری کرده و بدین ترتیب حریم خصوصی کاربر نهایی را افزایش میدهد.
stubby در مراحل اولیه توسعه قرار دارد اما برای کاربران فنی و پیشرفته مناسب است.
stubby با اجرا شدن به صورت یک دیمن (daemon) که روی آدرس لوپبک (loopback) به پرسوجوهای DNS گوش میدهد و آنها را از طریق TLS به بیرون فوروارد میکند، حریم خصوصی DNS را فراهم میسازد. پیکربندی پیشفرض «حریم خصوصی سختگیرانه» (Strict Privacy) را ارائه میدهد و از زیرمجموعهای از سرورهای حریم خصوصی DNS موجود استفاده میکند. ببینید: https://dnsprivacy.org/wiki/display/DP/DNS+Privacy+Test+Servers
گزینهها (OPTIONS)
- -C file
- تنظیمات را از فایل پیکربندی file میخواند. اگر این گزینه داده نشود، stubby به دنبال یک فایل پیکربندی در ~/.stubby.yml میگردد. اگر این فایل وجود نداشته باشد، stubby به فایل پیکربندی سراسری /etc/stubby/stubby.yml رجوع میکند.
- -g
- اجرای stubby به صورت یک دیمن.
- -h
- نمایش پیام راهنمای نحوه استفاده و خروج.
- -i
- خواندن پیکربندی، اعتبارسنجی محتوا، چاپ زیباسازیشدهٔ (pretty-print) آن در خروجی استاندارد و خروج.
- -l
- فعالسازی تمام گزارشگیریها. معادل با -v 7.
- -v loglevel
- فعالسازی گزارشگیری. تمام پیامهای گزارشگیری در سطح loglevel یا پایینتر در خروجی خطای استاندارد چاپ میشوند:
- 0: EMERG
- سیستم غیرقابل استفاده است
- 1: ALERT
- اقدام فوری باید صورت گیرد
- 2: CRIT
- شرایط بحرانی
- 3: ERROR
- شرایط خطا
- 4: WARN
- شرایط هشدار
- 5: NOTICE
- شرایط عادی، اما حائز اهمیت
- 6: INFO
- پیامهای اطلاعاتی
- 7: DEBUG
- پیامهای سطح اشکالزدایی
- -V
- نمایش نسخهٔ stubby و خروج.
پیکربندی (CONFIGURATION)
فایل پیکربندی در قالب YAML است. یک نمونه پیکربندی عبارت است از:
resolution_type: GETDNS_RESOLUTION_STUB
dns_transport_list:
- GETDNS_TRANSPORT_TLS
tls_authentication: GETDNS_AUTHENTICATION_REQUIRED
tls_query_padding_blocksize: 256
edns_client_subnet_private : 1
idle_timeout: 10000
listen_addresses:
- 127.0.0.1
- 0::1
round_robin_upstreams: 1
upstream_recursive_servers:
- address_data: 145.100.185.15
tls_auth_name: "dnsovertls.sinodun.com"
tls_pubkey_pinset:
- digest: "sha256"
value: 62lKu9HsDVbyiPenApnc4sfmSYTHOVfFgL3pyB+cBL4=
- address_data: 145.100.185.16
tls_auth_name: "dnsovertls1.sinodun.com"
tls_pubkey_pinset:
- digest: "sha256"
value: cE2ecALeE5B+urJhDrJlVFmf38cJLAvqekONvjvpqUA=
- address_data: 185.49.141.37
tls_auth_name: "getdnsapi.net"
tls_pubkey_pinset:
- digest: "sha256"
value: foxZRnIh9gZpWnl+zEiKa0EJ2rdCGroMWm02gaxSc9Q=
- address_data: 2001:610:1:40ba:145:100:185:15
tls_auth_name: "dnsovertls.sinodun.com"
tls_pubkey_pinset:
- digest: "sha256"
value: 62lKu9HsDVbyiPenApnc4sfmSYTHOVfFgL3pyB+cBL4=
- address_data: 2001:610:1:40ba:145:100:185:16
tls_auth_name: "dnsovertls1.sinodun.com"
tls_pubkey_pinset:
- digest: "sha256"
value: cE2ecALeE5B+urJhDrJlVFmf38cJLAvqekONvjvpqUA=
- address_data: 2a04:b900:0:100::38
tls_auth_name: "getdnsapi.net"
tls_pubkey_pinset:
- digest: "sha256"
value: foxZRnIh9gZpWnl+zEiKa0EJ2rdCGroMWm02gaxSc9Q=
موارد پیکربندی به شرح زیر است. برخی از آنها مقادیر ثابتی را از کتابخانهٔ getdns که زیربنای stubby است دریافت میکنند و توضیحات بیشتر درباره مقادیر آنها را میتوان در مستندات getdns یا در http://www.getdnsapi.net یافت.
- resolution_type resolution.
- به دلایل تاریخی باید بر روی GETDNS_RESOLUTION_STUB تنظیم شود. در صورت استفاده از هر تنظیم دیگری، stubby با خطا خارج خواهد شد.
- dns_transport_list list
- فهرست انواع روشهای انتقال (transport) مورد استفاده را تنظیم میکند. برای حریم خصوصی DNS، این مقدار باید بر روی GETDNS_TRANSPORT_TLS تنظیم شود. روشهای انتقال متن صریح (Clear text) عبارتند از GETDNS_TRANSPORT_TCP و GETDNS_TRANSPORT_UDP
- tls_authentication type
- نوع احراز هویت لازم را تعیین میکند. برای حریم خصوصی سختگیرانه (Strict Privacy)، این مقدار باید روی GETDNS_AUTHENTICATION_REQUIRED تنظیم شود. برای حالت فرصتطلبانه (Opportunistic)، این تنظیم را حذف کرده یا آن را برابر با GETDNS_AUTHENTICATION_NONE قرار دهید. در حالت فرصتطلبانه، احراز هویت سرور نام (nameserver) الزامی نیست و در صورتی که روشهای انتقال متن صریح در dns_transport_list تعریف شده باشند، بازگشت (fallback) به آنها مجاز است.
- tls_query_padding_blocksize blocksize
- استفاده از گزینهٔ لایهگذاری (padding) در EDNS0 برای لایهگذاری پرسوجوهای DNS به منظور مخفی کردن اندازهٔ آنها.
- edns_client_subnet_private 0 or 1
- اگر 1 باشد، از حریم خصوصی EDNS0 Client Subnet استفاده میکند تا زیرشبکهٔ کلاینت به سرورهای معتبر (authoritative) ارسال نشود.
- idle_timeout timeout
- استفاده از مهلت زمانی بیکاری EDNS0 Keepalive به میزان timeout میلیثانیه، مگر آنکه توسط سرور بازنویسی شود. این کار اتصالات بیکار TLS را باز نگه میدارد تا از سربار باز کردن یک اتصال جدید برای هر پرسوجو جلوگیری شود.
- round_robin_upstreams 0 or 1
- اگر 1 باشد، پرسوجوها به صورت نوبتگردشی (round robin) بین تمام سرورهای بالادستی پیکربندیشده توزیع میشوند. بدون این گزینه، stubby از هر سرور بالادستی به صورت متوالی استفاده میکند تا زمانی که از دسترس خارج شود و سپس به سراغ سرور بعدی میرود.
- upstream_recursive_servers server list
- مشخص کردن سرورهای بالادستی که stubby باید استفاده کند. هر مورد در این فهرست شامل موارد زیر است:
- address_data address
- آدرس IPv4 یا IPv6 سرور.
- tls_auth_name name
- نام دامنهٔ احراز هویت که در برابر گواهی ارائهشده اعتبارسنجی خواهد شد.
- tls_pubkey_pinset pinset
- مجموعه سنجاقشدهٔ (pinset) کلید عمومی sha256 SPKI سرور. این مورد نیز در برابر گواهی ارائهشده اعتبارسنجی میشود. این بخش شامل دو مورد است:
- digest type
- نوع خلاصهساز (digest) کلید.
- value keyval
- مقدار کلید.
فایلها (FILES)
~/.stubby.yml /etc/stubby/stubby.yml
همچنین ببینید (SEE ALSO)
https://getdnsapi.net https://dnsprivacy.org/wiki/display/DP/DNS+Privacy+Daemon+-+Stubby