DNSSEC-TRUST-ANCHORS.D(5) dnssec-trust-anchors.d DNSSEC-TRUST-ANCHORS.D(5)

dnssec-trust-anchors.d - دایرکتوریهای لنگرهای اعتمادسازی DNSSEC

/etc/dnssec-trust-anchors.d/*.positive
/run/dnssec-trust-anchors.d/*.positive
/usr/local/lib/dnssec-trust-anchors.d/*.positive
/usr/lib/dnssec-trust-anchors.d/*.positive
/etc/dnssec-trust-anchors.d/*.negative
/run/dnssec-trust-anchors.d/*.negative
/usr/local/lib/dnssec-trust-anchors.d/*.negative
/usr/lib/dnssec-trust-anchors.d/*.negative

پرونده‌های پیکربندی لنگر اعتماد DNSSEC، لنگرهای اعتماد مثبت و منفی را تعریف می‌کنند که systemd-resolved.service(8) اثبات‌های یکپارچگی DNSSEC را بر پایه آن‌ها انجام می‌دهد.

پرونده‌های پیکربندی لنگر اعتماد مثبت شامل تعاریف رکوردهای منبع DNSKEY و DS هستند تا به عنوان پایه‌ای برای اثبات‌های یکپارچگی DNSSEC استفاده شوند. برای اطلاعات بیشتر درباره لنگرهای اعتماد DNSSEC، RFC 4035، بخش 4.4[1] را ببینید.

لنگرهای اعتماد مثبت از پرونده‌هایی با پسوند .positive واقع در دایرکتوری‌های /etc/dnssec-trust-anchors.d/، /run/dnssec-trust-anchors.d/ و /usr/lib/dnssec-trust-anchors.d/ خوانده می‌شوند. این دایرکتوری‌ها به ترتیبِ مشخص‌شده جستجو می‌شوند و پرونده لنگر اعتماد هم‌نام در یک مسیر پیشین، پرونده لنگر اعتماد در مسیر پسین را رونویسی می‌کند. برای غیرفعال کردن یک پرونده لنگر اعتماد ارائه شده در /usr/lib/dnssec-trust-anchors.d/ کافی است پرونده‌ای با همان نام در /etc/dnssec-trust-anchors.d/ یا /run/dnssec-trust-anchors.d/ قرار داده شود که خالی باشد یا یک پیوند نمادین به /dev/null باشد ("ماسک‌شده").

پرونده‌های لنگر اعتماد مثبت پرونده‌های متنی ساده‌ای شبیه به پرونده‌های ناحیه DNS هستند، همان‌گونه که در RFC 1035، بخش 5[2] مستند شده است. در هر خط می‌تواند یک رکورد منبع DS یا DNSKEY فهرست شود. خطوط خالی و خطوطی که با "#" یا ";" آغاز می‌شوند نادیده گرفته می‌شوند، که می‌توان از آن‌ها برای توضیحات (کامنت) استفاده کرد. یک رکورد منبع DS مانند مثال زیر مشخص می‌شود:

. IN DS 19036 8 2 49aac11d7b6f6446702e54a1607371607a1a41855200fd2ce1cdde32f24e8fb5

کلمه نخست دامنه را مشخص می‌کند؛ برای دامنه ریشه از "." استفاده کنید. دامنه ممکن است با یا بدون نقطه پایانی مشخص شود که هر دو معادل در نظر گرفته می‌شوند. کلمه دوم باید "IN" و کلمه سوم "DS" باشد. کلمات بعدی برچسب کلید (key tag)، الگوریتم امضا (signature algorithm)، الگوریتم چکیده (digest algorithm) و به دنبال آن اثرانگشت کلید با کدگذاری هگزادسیمال را مشخص می‌کنند. برای جزئیات در مورد نحو دقیق و معنای این فیلدها، RFC 4034، بخش 5[3] را ببینید.

به عنوان روشی دیگر، می‌توان از رکوردهای منبع DNSKEY برای تعریف لنگرهای اعتماد استفاده کرد، مانند مثال زیر:

. IN DNSKEY 257 3 8 AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjFFVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoXbfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaDX6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpzW5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relSQageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulqQxA+Uk1ihz0=

کلمه نخست مجدداً دامنه را مشخص می‌کند، کلمه دوم باید "IN" باشد و به دنبال آن "DNSKEY" بیاید. کلمات بعدی فیلدهای پرچم‌ها، پروتکل و الگوریتم رکورد DNSKEY را کدگذاری می‌کنند و سپس داده‌های کلید کدگذاری‌شده در Base64 قرار می‌گیرند. برای جزئیات در مورد نحو دقیق و معنای این فیلدها، RFC 4034، بخش 2[4] را ببینید.

اگر چندین رکورد DS یا DNSKEY برای دامنه‌ای یکسان تعریف شده باشد (حتی احتمالاً در پرونده‌های لنگر اعتماد متفاوت)، تمام کلیدها استفاده می‌شوند و به عنوان پایه‌ای معادل برای اثبات‌های DNSSEC در نظر گرفته می‌شوند.

توجه داشته باشید که systemd-resolved در صورتی که هیچ لنگر اعتماد مثبتی برای دامنه ریشه تعریف نشده باشد، به طور خودکار از یک کلید لنگر اعتماد درونی برای دامنه ریشه اینترنت استفاده خواهد کرد. بنابراین در بیشتر موارد نیازی به تعریف صریح کلید با پرونده‌های لنگر اعتماد نیست. به محض این‌که حداقل یک کلید لنگر اعتماد برای دامنه ریشه در پرونده‌های لنگر اعتماد تعریف شود، کلید درونی غیرفعال می‌شود.

به طور کلی توصیه می‌شود که لنگرهای اعتماد به جای رکوردهای منبع DNSKEY، در رکوردهای منبع DS کدگذاری شوند.

اگر مشخص شود لنگر اعتمادی که از طریق یک رکورد DS تعیین شده باطل (revoked) گردیده است، به طور خودکار در طول زمان اجرا از پایگاه‌داده لنگرهای اعتماد حذف می‌شود. برای جزئیات درباره لنگرهای اعتماد باطل‌شده، RFC 5011[5] را ببینید. توجه داشته باشید که systemd-resolved پایگاه‌داده لنگرهای اعتماد خود را به طور خودکار از سرورهای DNS به‌روزرسانی نمی‌کند. در عوض، توصیه می‌شود که نرم‌افزار تحلیل‌گر نام به‌روزرسانی شود، یا لنگر اعتماد جدید از طریق افزودن پرونده‌های لنگر اعتماد تازه به‌روز گردد.

لنگر اعتماد کنونی DNSSEC برای دامنه ریشه اینترنت در صفحه IANA Trust Anchor and Keys[6] در دسترس است.

لنگرهای اعتماد منفی دامنه‌هایی را مشخص می‌کنند که اعتبارسنجی DNSSEC در آن‌ها باید خاموش باشد. پرونده‌های لنگر اعتماد منفی در همان مکان پرونده‌های لنگر اعتماد مثبت قرار دارند و از همان قوانین اولویت تبعیت می‌کنند. آن‌ها پرونده‌های متنی با پسوند .negative هستند. خطوط خالی و خطوطی که نخستین نویسه آن‌ها ";" است نادیده گرفته می‌شوند. هر خط یک نام دامنه را مشخص می‌کند که ریشه یک زیردرخت DNS است که اعتبارسنجی باید در آن غیرفعال گردد. برای نمونه:

# Reverse IPv4 mappings
10.in-addr.arpa
16.172.in-addr.arpa
168.192.in-addr.arpa
...
# Some custom domains
prod
stag

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

برای جزئیات درباره لنگرهای اعتماد منفی، RFC 7646[7] را ببینید.

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

همچنین امکان تعریف لنگرهای اعتماد منفی به ازای هر رابط شبکه با استفاده از تنظیم DNSSECNegativeTrustAnchors= در پرونده‌های systemd.network(5) وجود دارد.

systemd(1), systemd-resolved.service(8), resolved.conf(5), systemd.network(5)

1.
RFC 4035, Section 4.4
2.
RFC 1035, Section 5
3.
RFC 4034, Section 5
4.
RFC 4034, Section 2
5.
RFC 5011
6.
IANA Trust Anchor and Keys
7.
RFC 7646
systemd 261.2