راه اندازی DNSSEC در سرور BIND DNS

راه اندازی DNSSEC در سرور BIND DNS

879

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

DNS و DNSSEC به چه معناست؟

می‌دانیم که DNS یک پروتکل برای تبدیل نام دامنه‌ها به IP addressهای آن‌هاست، اما چگونه می‌توان از صحت IP آدرس بازگشتی مطمئن شد؟ آیا ممکن است که یک هکر DNS را آلوده نماید و IP آدرسی بازگشت دهد که کاربر را به یک سایت مخرب بفرستد، با اینکه نامی که در آدرس بار مرورگر نشان می‌دهد صحیح است؟

خرید دامنه

در اینجا ما از افزونه امنیتی DNS با نام DNSSEC استفاده می‌کنیم که هدف آن حفظ امنیت DNS است. DNSSEC با استفاده از PKI ( کلید عمومی) تمام سوابق منابع DNS (A ،MX ،CNAME و …) بررسی می‌کند و اکنون DNS می‌تواند با فعال کردن DNS resolverهایی مانند Google Public DNS صحت dns مورد نظر از لحاظ IP آدرس و دیگر مشخصه ها را با رکوردهای DNSKEY بررسی نماید.

DNSSEC Resource Records

Resource Record (RR)ها دارای اطلاعات خاصی از دامین می‌باشند. بعضی از رکوردهای عمومی A دارای اطلاعاتی مانند IP address دامنه، بعضی از AAAA دارای اطلاعات IPv6 و MX دارای اطلاعات Mail server دامنه می‌باشند.

لیست کامل RRها را می‌توانید در این صفحه مشاهده نمایید.

List of DNS record types

DNSSEC Resource Records

DNSSEC به تعدادی RR نیاز دارد:

DNSKEY کلید عمومی را که DNS resolverها برای تأیید استفاده می کنند، در خود نگه می دارد.

RRSIG برای هریک از RR وجود دارد و حاوی امضای دیجیتالی رکورد است.

DS – Delegation Signer این رکورد در نام سرورهای TLD وجود دارد. اگر ZAGRIO.COM را در نظر بگیریم. TLD همان .com است nameserver شامل a.gtld-servers.net تا m.gtld-servers.net می‌باشد.

را‌ه‌اندازی

Domain Name: zagrio.com

برای این منظور شما از نام دامنه خود استفاده نمایید.

Master Nameserver:
IP Address: 1.1.1.1
Hostname: master.zagrio.com

OS: Debian 7

Slave Nameserver:
IP Address: 2.2.2.2
Hostname: slave.zagrio.com
OS: CentOS

محل فایل‌ها و نام‌ آن‌ها

نام فایل‌های شما و محل ذخیرسازی آن‌ها بر اساس نوع توزیع لینوکسی که استفاده می‌کنید ممکن است، متفاوت باشد.

Debian/Ubuntu

نام سرویس:
bind9
فایل اصلی پیکربندی:
/etc/bind/named.conf.options
Zone names file:
/etc/bind/named.conf.local
Default zone file location:
/var/cache/bind/

CentOS/Fedora

Sنام سرویس:
named
فایل اصلی پیکربندی و zone names file:
/etc/named.conf
Default zone file location:
/var/named/

این نام‌ها و محل‌ها اگر از bind-chroot استفاده می‌کنید ممکن است متفاوت باشند.

پیکربندی DNSSEC Master

پیکربندی DNSSEC Master

DNSSEC را می‌توان با اضافه کردن دستور العمل‌های پیکربندی در options{ } فعال نمود.

nano /etc/bind/named.conf.options

ممکن است تعدادی از این فرامین در توزیع لینوکسی شما از قبل وجود داشته باشند.

با دستور زیر به zone file خود بروید:

و با دستور زیر Zone Signing Key(ZSK) را بسازید.

اگر haveged را نصب کرده باشید برای ایجاد این key فقط چند ثانیه لازم است. در غیر این صورت زمان بیشتی طول خواهد کشید. خروجی به شکل زیر است:

با دستور زیر نیز می‌توانید Key Signing Key(KSK) را بسازید:

نمونه خروجی به شکل زیر است:

دایرکتوری حالا 4 key دارد. ما public key را هم اضافه کردیم که دارای DNSKEY در zone است، حلقه زیر این کار را برای ما انجام می‌دهد.

با کامند زیر dnssec-signzone را نشانه گذاری و sign می‌نماییم.

salt را با یک چیز رندم عوض کنید نمونه خروجی شما مانند زیر خواهد بود:

یک عبارت string شانزده کاراکتری باید به جای salt وارد شود مانند کامند زیر:

با کامند زیر یک فایل با نام example.com.zone.signed می‌سازیم که رکوردهای RRSIG  در ن جای دارند.

تنظیمات فایل را در بخش zone { } تغییر دهید.

فایل را ذخیره کنید و bind را دوباره بارگذاری نمایید.

بررسی کنید که آیا DNSKEY از dig بر یک سرور مشابه استفاده می‌نماید.

نمونه خروجی:

برای وجود رکورد RRSIG  آن را بررسی کنید.

پیکربندی Master Server به پایان رسیده است.

پیکربندی DNSSEC Slave

برای این منظور نیاز است خط‌های زیر را به فایل کانفیگ اضافه نمایید.

و تنظیمات file را در zone { } تغییر دهید.

BIND را دوباره بارگذاری کنید.

بررسی کنید که آیا فایل جدیدی از .signed داخل ZONE وجود دارد یا خیر.

این بخش هم تمام شد و می‌توانید مانند بخش بالا با dig آن را بررسی نمایید.

پیکربندی رکوردهای DS با استفاده از register

وقتی که کامند dnssec-signzone را خارج از فایل های .signed zone اجرا می‌کنید. یک فایل با نام dsset-zagrio.com نیز ساخته می‌شود. که این فایل شامل رکوردهای DS می‌شود.

این‌ها در کنترل پنل رجیستر دامین وارد شده‌اند. تصاویر زیر این روند را برای سایت GoDaddy نشان می‌دهد.

وارد کنترل پنل رجیستر دامنه‌ی خود شوید. دامنه خود را انتخاب کنید. گزینه manage DS records را انتخاب کنید.

پیکربندی رکوردهای DS با استفاده از register

این ها نیز بکاپ ما در dsset-example.com می‌باشد.

DS record 1:

Key tag: 62910
Algorithm: 7
Digest Type: 1
Digest: 1D6AC75083F3CEC31861993E325E0EEC7E97D1DD

DS record 1

DS record 2:

Key tag: 62910
Algorithm: 7
Digest Type: 2
Digest: 198303E265A856DE8FE6330EDB5AA76F3537C10783151AEF3577859FFFC3F59D

DS record 2

رکورد دوم dsset-example.com دارای اسپیس داخل digest می‌باشد. ولی زمانی که آن را import کنید باید آن را حذف نمایید.

DS record 2

چند دقیقه طول می‌کشد تا تغییرات ذخیره شوند. بعد از تایید می‌توانید با سرویس‌های آنلاینی مانند سرویس‌های زیر DNSSEC خود را بررسی کنید.

http://dnssec-debugger.verisignlabs.com/

http://dnsviz.net/

سایت اول بسیار ساده است. اما سایت دوم به صورت ویژوآل و تصویری به شما نشان می‌دهد. در زیر تصویری از سایت اول قرار گرفته است.

http://dnssec-debugger.verisignlabs.com/

خط اولی که با قرمز نشان داده شده Key tag مقدار DS رکوردها را نشان می‌دهد. خط دوم مقدار key id که مربوط به ZSK می‌باش را نشان می‌دهد.

زاگریو

Saman Yazdannikمشاهده نوشته ها

Avatar for Saman Yazdannik

laus Deo

بدون دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *