تنظیمات BIND DNS Server:
--------------------------------------------
DNS سرورها در لینوکس و یونیکس، اغلب از پکیج های نرم افزاری BIND استفاده میکنن. نسخه های قدیمی BIND دارای باگهای متعددی هستن ونسخه 9 امنیت بیشتری نسبت به سایر نسخه های BIND داره.
BIND: Berkeley Internet Name Domain
درBIND برای امنیت پیام های DNS وایمنی ارتباط سرورهای DNS با هم، بهتره که ازمکانیزم TSIG
استفاده بشه. TSIG: Transaction SIGnature
(مکانیزم TSIG برای نسخه های BIND v8.2 و بالاترمناسبه)
TSIG ازطریق کلید اختصاصی رمزنگاری اشتراکی بین سرورها، امنیت پیامهای DNS رو تامین میکنه و از یک تابع یکطرفه hash، برای تایید اعتبار پیام های DNS استفاده میکنه که این خودش باعث ممانعت از حملات man in the middle میشه و مهاجم نمیتونه خودش رو بجای DNS جا بزنه. علاوه بر این، TSIG توانایی حفاظت از دیتای مبادله شده بین 2 سرورDNS رو داره، مثل درخواستهای query برگشتی ویا zone transfer و ...
برای پیکربندی TSIG باید با استفاده از برنامه dnssec-keygen، واجرای دستور زیر برروی
master server، کلیدهای عمومی واختصاصی (public key- private key) رو بسازیم:
کد:
#dnssec-keygen -a HMAC-MD5 -b 128 -n HOST rndc-key
دردستوربالا در آپشن n- بجای HOST، بسته به تغییراتی که درفایل var/named/chroot/etc/named.conf/ درزمان نصب BIND برای پیکربندی سرورهای master-slave ایجاد میشه، میتوان از نامهای zone,entity, user استفاده کرد. برنامه dnssec-keygen برای ساختن کلیدها از الگوریتم رمزنگاری متقارن مانند hmac-md5 استفاده میکنه که با آپشن a- مشخص میشه و آپشن b- سایز کلید رو تعیین میکنه...
خروجی این دستور بصورت دو فایل هستش که فایل key. شامل کلید عمومی وفایل private. شامل کلید اختصاصی هست، مثال:
کد:
Krndc-key.+124+48236.key Krndc-key.+124+48236.private
تنظیمات TSIG برای master server:
برای اینکار باید private key رو درفایل tsig.key معرفی کنیم وبرای آگاهی ازاین کلید، کافیست محتویات فایل private. رو ببینیم:
کد:
# cat Krndc-key.+124+48236.private
خروجی یک کلید 24 رقمی هست که باید در کد زیر وارد بشه وبرای اینکار باید
فایل var/named/chroot/etc/tsig.key/ ویرایش کنیم:
(بدیهی است که در کد زیردرصورت داشتن سرورهای Slave بیشتر، ipها رو مثل سرور1 باید وارد کنیم.)
کد:
key "TRANSFER" { algorithm hmac-md5; secret " your private key "; }; # Slave server IP # 1 server your slave server ip { keys { TRANSFER; };
خط زیر در فایل var/named/chroot/etc/named.conf/ اضافه و ذخیره می کنیم:
کد:
include "/etc/tsig.key";
کد:
# service named restart