ldns-signzone(1) General Commands Manual ldns-signzone(1)

ldns-signzone - امضای فایل ناحیه با داده‌های DNSSEC

ldns-signzone [ OPTIONS ] ZONEFILE KEY [KEY [KEY] ... ]

دستور ldns-signzone برای تولید یک ناحیه امضاشده با DNSSEC به کار می‌رود. هنگام اجرا، این ابزار یک فایل ناحیه جدید شامل رکوردهای منبع RRSIG و NSEC(3) ایجاد می‌کند، همان‌گونه که در RFC 4033، RFC 4034 و RFC 4035 مشخص شده است.

کلیدها باید با نام پایه آن‌ها (یعنی بدون پسوند .private) مشخص شوند. اگر رکورد DNSKEY متعلق به کلید در فایل .private در ناحیه وجود نداشته باشد، از فایل <base-name>.key خوانده خواهد شد. اگر آن فایل نیز وجود نداشته باشد، مقدار DNSKEY از روی کلید خصوصی تولید خواهد شد.

می‌توان چندین کلید را مشخص کرد. کلیدهای امضای کلید (Key Signing Keys یا KSK) زمانی به عنوان KSK استفاده می‌شوند که یا از قبل در ناحیه حضور داشته باشند یا در یک فایل .key مشخص شده باشند و بیت SEP آن‌ها تنظیم شده باشد.

ناحیه و رکوردهای منبع (RRها) را با متن‌های توضیحی (کامنت) اضافی برای چیدمانی خواناتر و اشکال‌زدایی آسان‌تر گسترش می‌دهد. رکوردهای DS دارای نسخه‌ای به شکل Bubble Babble از داده‌ها در متن کامنت خواهند بود، و رکوردهای NSEC3 نام‌های مالک درهم‌سازی‌نشده (unhashed) را در متن کامنت خواهند داشت.

بدون این گزینه، تنها برای رکوردهای منبع DNSKEY برچسب کلید (Key Tag) در متن کامنت درج می‌شود.

عدم افزودن رکوردهای منبع DNSKEY برای کلیدهای استفاده‌شده به ناحیه امضاشده.
تنظیم تاریخ انقضای امضاها به این تاریخ؛ قالب می‌تواند به‌صورت YYYYMMDD[hhmmss] یا یک برچسب زمانی (timestamp) یونیکس باشد.
استفاده از این فایل برای ذخیره ناحیه امضاشده (پیش‌فرض <originalfile>.signed است).
تنظیم تاریخ شروع اعتبار (inception) امضاها به این تاریخ؛ قالب می‌تواند به‌صورت YYYYMMDD[hhmmss] یا یک برچسب زمانی (timestamp) یونیکس باشد.
استفاده از این مقدار به عنوان مبدا (origin) ناحیه.
تنظیم شماره سریال SOA به تعداد ثانیه‌های سپری‌شده از 1970-01-01 (زمان یونیکس).
چاپ نسخه و خروج.
محاسبه خلاصه (digest) ناحیه و افزودن آن‌ها به عنوان رکوردهای منبع ZONEMD. مقدار اختیاری `scheme` باید `simple` (یا 1) باشد و `hash` باید `sha384` (یا 1) یا `sha512` (یا 2) باشد. این گزینه می‌تواند بیش از یک بار مشخص شود.
اجازه افزودن ZONEMDها بدون امضا کردن آن‌ها.
امضای رکورد DNSKEY با تمام کلیدها. به‌طور پیش‌فرض، برای کوچک نگه داشتن اندازه پاسخ پرس‌وجوی DNSKEY، با حداقل تعداد کلیدها امضا می‌شود و تنها از کلیدهای SEP ارائه‌شده استفاده می‌گردد. در صورت عدم وجود کلیدهای SEP، مجموعه رکوردهای (RRset) DNSKEY با کلیدهای غیر SEP امضا می‌شود. این گزینه حالت پیش‌فرض را غیرفعال کرده و باعث می‌شود از تمام کلیدها برای امضای RRset مربوط به DNSKEY استفاده شود.
امضا با هر الگوریتم یکتا در کلیدهای ارائه‌شده. مجموعه DNSKEY با تمام کلیدهای SEP به‌علاوه تمام کلیدهای غیر SEP که الگوریتم آن‌ها در مجموعه کلیدهای SEP وجود نداشته است، امضا می‌شود.
استفاده از موتور رمزنگاری EVP با نام مشخص‌شده برای امضا. این گزینه می‌تواند گزینه‌های اضافی داشته باشد؛ برای اطلاعات بیشتر بخش «گزینه‌های موتور (ENGINE OPTIONS)» را ببینید.
استفاده از کلید `key-id` به عنوان کلید امضا برای الگوریتم `algorithm-id` در قالب کلید امضای کلید (KSK). این گزینه هنگام استفاده از یک موتور OpenSSL کاربرد دارد؛ برای اطلاعات بیشتر بخش «گزینه‌های موتور (ENGINE OPTIONS)» را ببینید.
استفاده از کلید `key-id` به عنوان کلید امضا برای الگوریتم `algorithm-id` در قالب کلید امضای ناحیه (ZSK). این گزینه هنگام استفاده از یک موتور OpenSSL کاربرد دارد؛ برای اطلاعات بیشتر بخش «گزینه‌های موتور (ENGINE OPTIONS)» را ببینید.
استفاده از NSEC3 به جای NSEC.

در صورت استفاده از NSEC3، می‌توانید گزینه‌های اضافی زیر را مشخص کنید:

الگوریتم مورد استفاده برای ایجاد نام‌های مالک هش‌شده در NSEC3.
گزینش عدم مشارکت (Opt-out). تمامی رکوردهای NSEC3 در ناحیه دارای پرچم Opt-out خواهند بود. پس از امضا، می‌توانید تفویض‌های ناامن (insecure delegations) را به ناحیه امضاشده بیفزایید.
نمک (Salt).
تعداد تکرارهای درهم‌سازی (hash iterations).

شما می‌توانید در صورت پشتیبانی، موتورهای ممکن را با تنظیم یک فایل پیکربندی OpenSSL تغییر دهید. این کار از طریق متغیر محیطی OPENSSL_CONF انجام می‌شود.

گزینه‌های کلید (-k و -K) به این صورت کار می‌کنند: شما یک الگوریتم DNSSEC (با استفاده از نام نمادین آن، به عنوان مثال RSASHA256، یا شناسه عددی آن، به عنوان مثال 8) را مشخص می‌کنید که به دنبال آن یک کاما و یک شناسه کلید می‌آید (استفاده از فاصله میان الگوریتم و کاما، یا میان کاما و شناسه کلید مجاز نیست).

شناسه کلید می‌تواند هر یک از موارد زیر باشد:

<id>
<slot>:<id>
id_<id>
slot_<slot>-id_<id>
label_<label>
slot_<slot>-label_<label>

که در آن '<id>' شناسه کلید PKCS #11 در نمادگذاری هگزادسیمال، '<label>' برچسب خوانا برای انسان در PKCS #11، و '<slot>' شماره اسلاتی است که توکن در آن قرار دارد.

نسخه‌های جدیدتر موتورهای OpenSSL ممکن است از طرحواره URI برای PKCS #11 (RFC 7512) پشتیبانی کنند؛ لطفاً به مستندات موتور خود مراجعه نمایید.

در صورتی که از پیش وجود نداشته باشد، یک رکورد منبع DNSKEY از روی داده‌های کلید تولید شده و به ناحیه افزوده می‌شود.

ناحیه موجود در فایل 'nlnetlabs.nl' را با کلید موجود در فایل‌های 'Knlnetlabs.nl.+005+12273.private' امضا می‌کند. اگر DNSKEY در ناحیه وجود نداشته باشد، از کلید موجود در فایل 'Knlnetlabs.nl.+005+12273.key' استفاده می‌کند. اگر آن هم موجود نباشد، یک رکورد با مقادیر پیش‌فرض از روی 'Knlnetlabs.nl.+005+12273.private' تولید می‌کند.

نوشته‌شده توسط تیم ldns به عنوان نمونه‌ای برای کاربرد ldns.
بخش‌هایی از پشتیبانی موتور توسط Vadim Penzin <vadim@penzin.net>.

گزارش باگ‌ها را به <dns-team@nlnetlabs.nl> ارسال کنید.

حق نشر © 2005-2008 شرکت NLnet Labs. این نرم‌افزار آزاد است. هیچ ضمانتی وجود ندارد؛ حتی برای قابلیت فروش یا تناسب با یک هدف خاص.

13 March 2018