آموزش غیرفعال کردن Recursive DNS (در ویندوز و لینوکس)



در صورت راه‌اندازی سرویس DNS در سرورهای ویندوز یا لینوکس، قابلیت Recursive DNS نیز به صورت پیش‌فرض فعال می‌شود. فعال بودن این قابلیت می‌تواند سرور شما را در معرض خطر حملات DNS Amplification (نوعی حمله DDoS) قرار دهد. برای بالا بردن امنیت سرور، لازم است که این ویژگی را غیرفعال کرده و به سرور خود اجازه دهید فقط به درخواست‌های مربوط به دامنه‌های خودش پاسخ دهد. این راهنما به شما نشان می‌دهد که چگونه این کار را در هر دو سیستم‌عامل ویندوز و لینوکس انجام دهید.

 

Recursive DNS و خطر حملات DNS Amplification چیست؟

 

Recursive DNS چیست؟ (عملکرد عادی)

تصور کنید سرور DNS شما یک کتابدار است. وقتی یک کاربر از آن آدرس یک وب‌سایت را می‌پرسد، اگر سرور شما جواب را نداند، به جای اینکه بگوید “نمی‌دانم”، خودش به کتابخانه‌های (سرورهای DNS) دیگر مراجعه کرده، جواب را پیدا می‌کند و به کاربر تحویل می‌دهد. به این فرآیند “Recursion” یا بازگشتی می‌گویند.

 

حمله (سوءاستفاده) DNS Amplification چگونه اتفاق می‌افتد؟

حالا تصور کنید این کتابدار به هر کسی در خیابان سرویس می‌دهد (به این حالت “Open Resolver” می‌گویند). یک مهاجم از این ویژگی سوءاستفاده می‌کند:

  1. مهاجم یک درخواست کوچک به سرور DNS شما ارسال می‌کند، اما آدرس فرستنده را به جای آدرس خود، آدرس IP قربانی را قرار می‌دهد.
  2. سرور DNS شما این درخواست را دریافت کرده و برای پیدا کردن پاسخ، یک درخواست بسیار بزرگتر را آماده می‌کند.
  3. در نهایت، سرور شما این پاسخ بزرگ و چند برابر شده (Amplified) را به آدرس فرستنده جعلی، یعنی سرور قربانی، ارسال می‌کند.

وقتی هزاران سرور DNS باز این کار را انجام دهند، حجم عظیمی از ترافیک ناخواسته به سمت سرور قربانی سرازیر شده و باعث از کار افتادن آن می‌شود. به همین دلیل، با غیرفعال کردن Recursive DNS، شما سرور خود را از یک “Open Resolver” آسیب‌پذیر به یک سرور امن تبدیل می‌کنید.

 

روش اول: غیرفعال کردن Recursive DNS در ویندوز سرور

در سرورهای ویندوزی، این کار از طریق کنسول مدیریت DNS انجام می‌شود.

 

قدم ۱: ورود به کنسول مدیریت DNS

 

ابتدا وارد Control Panel شده و از بخش Administrative Tools، کنسول DNS را باز کنید. در پنجره DNS Manager، روی نام سرور خود کلیک راست کرده و Properties را انتخاب کنید.

پنجره Properties در DNS Manager ویندوز

 

قدم ۲: حذف Forwarders و Root Hints

 

    1. به تب Forwarders بروید. روی دکمه Edit کلیک کرده و تمام آدرس‌های IP موجود در لیست را حذف (Delete) کنید.

حذف Forwarders در تنظیمات DNS سرور

    1. سپس به تب Root Hints بروید و تمام رکوردهای موجود در این بخش را نیز با استفاده از دکمه Remove حذف نمایید.

حذف Root Hints در تنظیمات DNS سرور

 

قدم ۳: غیرفعال کردن Recursion

 

  1. در همان پنجره Properties، به تب Advanced بروید.
  2. در بخش “Server options”، تیک گزینه Disable recursion (also disables forwarders) را بزنید.
  3. روی Apply و سپس OK کلیک کنید تا تغییرات ذخیره شوند.

فعال کردن گزینه Disable Recursion در تب Advanced

 

قدم ۴: ری‌استارت کردن سرویس DNS

 

برای اعمال نهایی تغییرات، باید سرویس DNS را یک بار ری‌استارت کنید. Command Prompt (CMD) را به صورت Administrator باز کرده و دستورات زیر را به ترتیب اجرا کنید:

net stop dns
net start dns

 

روش دوم: غیرفعال کردن Recursive DNS در لینوکس (BIND)

 

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

  1. فایل پیکربندی اصلی BIND را با یک ویرایشگر متن باز کنید:
    sudo nano /etc/named.conf
  2. بلاک options { ... }; را پیدا کرده و خطوط زیر را به آن اضافه کنید:
    recursion no;
    allow-transfer { none; };
  3. فایل را ذخیره کرده و سرویس BIND را ری‌استارت کنید:
    sudo systemctl restart named

 

چگونه از غیرفعال بودن Recursive DNS مطمئن شویم؟

 

پس از انجام مراحل بالا، می‌توانید با استفاده از ابزارهای آنلاین، وضعیت سرور خود را بررسی کنید. اگر در هر دو سایت زیر با پیام “Good” یا “Not an open resolver” مواجه شدید، یعنی مشکل برطرف شده است.

Open Resolver Checker

OpenResolver.com

امن‌سازی سرویس‌های شبکه یکی از مهم‌ترین وظایف در مدیریت سرور است. خرید VPS آلمان به شما یک بستر پایدار برای راه‌اندازی و مدیریت امن سرویس‌های DNS می‌دهد.