وظیفه برخی از سرویسدهندههای DNS موجود در سطح اینترنت، ارائه سرویس ترجمه نام برای تنها یک نام دامنه است. در این حالت ممکن است عملیات ترجمه نام برای کلاینتهای محلی توسط سرویسدهنده مجزایی صورت گرفته و سرویسدهنده Authoritative، تنها وظیفه پاسخ دادن به درخواستهای بیرون از شبکه را داشته باشد. اینگونه از سیستمها نیازی به ترجمه نام بهصورت بازگشتی نداشته و بایستی عملیات Recursion Resolution در آنها غیرفعال گردد.
تصمیمگیری راجع به فعال بودن یا نبودن این عملیات برعهده مدیر سرور است
از نظر امنیتی بهتر است این مورد غیر فعال باشد.
آموزش غیر فعال کردن Recursion در سرورهای لینوکسی
برای غیر فعال کردن ان در سرورهای لینوکسی فایل named.conf مقدار زیر را وارد میکنیم:
allow-recursion {"none";}; recursion no;
در پایان سرویس named را ریستارت میکنیم.
آموزش غیر فعال کردن Recursion در سرورهای ویندوزی
1- DNS Manager را باز کنید (برای باز کردن به منو Start بروید سپس روی Administrative Tools و بعد از آن روی DNS کلیک کنید)
2- در شاخه کنسول روی DNS Server راست کلیک و سپس به Properties بروید
3- به تب Advanced بروید
4- در Server options تیک Disable recursion را بزنید
5- زیر تب Root Hints همه ریشه ها (root) را پاک کنید و سپس OK را بزنید
6- DNS service را ریستارت کنید (از control panel سرویس ها)
غیر فعال کردن Recursion DNS در کنترل پنل پلسک plesk
شما می توانید از طریق سایت زیر بررسی کنید که این قابلیت در سرور شما فعال است یا خیر:
http://openresolver.com
البته این سایت برای ای پی ایران در دسترس نمی باشد.
خطرات Recursive DNS
وقتی شما یک سایت در اینترنت را مشاهده می کنید، سیستم شما از سرویس DNS برای پیدا کردن سایت مورد نظر استفاده می کند و سایت را به شما نمایش می دهد.
سرورهای اختصاصی و مجازی نیز دارای سرویس جستجو DNS در پیکره خود هستند. دو نوع DNS query برای سرورها می تواند تعریف شود:
Recursive requests:
این ویژگی سایت را در حافظه cache local سرور DNS جستجو می نماید. در صورتی که موفق به پیداکردن پاسخ نشود درخواست را به DNS server دیگری منتقل می شود (با توجه به اینکه روی سرور تنها یک DNS server وجود دارد) تا زمانی که جستجو به نتیجه برسد. سپس درخواست ارسالی با نتیجه هر سرور DNS بررسی می شود.
Iterative requests:
این ویژگی سایت را در حافظه cache local سرور DNS جستجو می نماید. در صورتی که موفق به پیداکردن پاسخ نشود درخواست را به DNS server دیگری خواهد شد اما پیغامی مبنی بر “I don’t know, but you could try asking this server” (و جستجو ادامه پیدا نمی کند)
چرا استفاده از recursive DNS requests خطر دارد؟
سرورهایی که از این نوع DNS استفاده می نمایند می توانند در مقابل ارسال درخواست ها از یک IP جعلی آسیب پذیر باشند.
آدرس IP جعلی (spoofed IP) می تواند سرور را با درخواست های زیادی غرق نماید به این معنی که سرور قادر به پاسخ گویی در مقابل سیل عظیم درخواست ها نخواهد بود. این مشکل Amplifier attack نام دارد زیرا حمله با توجه به بازگشت درخواست ها می تواند تقویت و با ارسال حجم بیشتری از بسته های ارسالی سرور را قربانی نمود.
این مشکل ممکن است باعث مسدود شدن IP شما از سمت سرویس دهنده IP و یا قرار گرفتن سرور شما در لیست blacklist DNS شود.
در صورت غیر فعال کردن recursive DNS چه اتفاقی می افتد؟
در این صورت سرور شما در حالت Iterative requests خواهد بود و در مقابل درخواست های نامعتبر مشکلی نخواهد داشت.