کد 67

DNS Filtering در FortiGate

این مقاله DNS Filtering در FortiGate را بر اساس FortiOS 7.4 توضیح می‌دهد و بررسی می‌کند که DNS Filter چطور قبل از برقراری ارتباط اصلی، DNS Query کاربران را کنترل می‌کند. در مقاله، سناریوهای کاربردی، محدودیت‌های DNS Filtering، روش ساخت Profile در GUI و CLI، Static Domain Filter، اعمال DNS Filter روی FortiGate DNS Server، کنترل DoH و DoT، لاگ و مانیتورینگ، عیب‌یابی، Best Practice و چک‌لیست پیاده‌سازی ارائه شده است.
DNS Filtering در FortiGate چیست و چه زمانی باید از آن استفاده کنیم؟

DNS Filtering در FortiGate چیست و چه زمانی باید از آن استفاده کنیم؟

DNS Filtering در FortiGate یکی از کاربردی‌ترین لایه‌های کنترل و امنیت ترافیک است، چون قبل از اینکه کاربر به وب‌سایت یا سرویس مقصد وصل شود، درخواست DNS او بررسی می‌شود. در بسیاری از حملات، کاربر یا بدافزار ابتدا تلاش می‌کند یک دامنه را Resolve کند؛ اگر FortiGate همان مرحله DNS را کنترل کند، می‌تواند دسترسی به دامنه‌های مخرب، Botnet C&C، فیشینگ، دسته‌بندی‌های پرریسک یا دامنه‌های تعریف‌شده توسط سازمان را قبل از شروع ارتباط اصلی متوقف کند.
در این مقاله DNS Filtering را بر اساس FortiGate / FortiOS 7.4 توضیح می‌دهیم. بنابراین مسیرهای GUI، ساختار کلی CLI و سناریوهای طراحی با نگاه به FortiOS 7.4 نوشته شده‌اند. ممکن است در Patch Versionهای مختلف FortiOS 7.4 نام بعضی گزینه‌ها یا محل نمایش آن‌ها کمی تفاوت داشته باشد؛ به همین دلیل در محیط عملیاتی بهتر است بعد از پیاده‌سازی، خروجی CLI و لاگ‌ها بررسی شوند.
Fortinet در مستندات FortiOS، DNS Filter را به‌عنوان بخشی از Security Profileها معرفی می‌کند که قابلیت‌هایی مثل FortiGuard category-based DNS domain filtering، Botnet C&C domain blocking، DNS safe search، Local domain filter، DNS translation، اعمال روی FortiGate DNS server و Troubleshooting را پوشش می‌دهد. در CLI Reference نسخه 7.4 نیز ساختار config dnsfilter profile شامل گزینه‌هایی مثل block-action، block-botnet، domain-filter، ftgd-dns و log-all-domain است.

 

مروری بر این مقاله


  1. DNS Filtering دقیقاً چه کاری انجام می‌دهد؟
  2. DNS Filtering به درد چه کسانی می‌خورد؟
  3. DNS Filtering در چه سناریوهایی جواب می‌دهد؟
  4. محدودیت مهم: DNS Filtering چه جاهایی کافی نیست؟
  5. پیش‌نیازهای پیاده‌سازی DNS Filtering
  6. ساخت DNS Filter Profile در GUI
  7. ساخت DNS Filter Profile در CLI
  8. Static Domain Filter در GUI و CLI
  9. اعمال DNS Filter روی FortiGate DNS Server
  10. سناریوهای پیشنهادی برای Users، Guest، Servers و Branch
  11. کنترل DoH و DoT در کنار DNS Filtering
  12. لاگ و مانیتورینگ DNS Filter
  13. عیب‌یابی DNS Filtering
  14. Best Practice برای پیاده‌سازی DNS Filtering
  15. نمونه طراحی کامل برای سازمان متوسط
  16. چک‌لیست پیاده‌سازی

 

1. DNS Filtering دقیقاً چه کاری انجام می‌دهد؟

وقتی کاربر می‌خواهد وارد سایتی مثل example.com شود، سیستم او ابتدا باید IP آن دامنه را از DNS بگیرد. اگر DNS Query از FortiGate عبور کند و روی Policy مربوطه DNS Filter فعال باشد، FortiGate دامنه را بررسی می‌کند. بسته به تنظیمات Profile، ممکن است دامنه Allow، Monitor، Block یا Redirect شود.
DNS Filter می‌تواند چند نوع کنترل انجام دهد:
  • کنترل دامنه‌ها بر اساس FortiGuard Category Filtering
  • Block کردن دامنه‌های Botnet C&C
  • تعریف Static Domain Filter برای Allow یا Block دستی
  • استفاده از External Dynamic Category یا Domain List
  • استفاده از External IP Block List در سناریوهای مشخص
  • فعال‌سازی DNS Safe Search
  • اعمال YouTube Restriction
  • استفاده از DNS Translation
  • ثبت لاگ DNS Queryها برای بررسی امنیتی و عملیاتی
نکته مهم: DNS Filter در سطح نام دامنه تصمیم می‌گیرد، نه در سطح URL کامل. یعنی می‌تواند bad-domain.com را کنترل کند، اما معمولاً مثل Web Filter بین مسیرهای مختلف یک URL تصمیم‌گیری جزئی نمی‌کند.
برای مثال DNS Filter معمولاً برای تفاوت بین دو مسیر زیر مناسب نیست:
example.com/page1
example.com/private/download/file.exe
بنابراین DNS Filtering برای کنترل دامنه‌ای بسیار سریع و مؤثر است، اما جایگزین کامل Web Filtering، Application Control، IPS، EDR یا تحلیل رفتاری endpoint نیست.

 

2. DNS Filtering به درد چه کسانی می‌خورد؟

DNS Filtering برای سازمان‌هایی مناسب است که می‌خواهند یک لایه سریع، کم‌هزینه از نظر پردازشی و قابل مدیریت برای کنترل دسترسی کاربران به دامنه‌ها داشته باشند. این قابلیت مخصوصاً زمانی ارزشمند است که DNS Design شبکه درست انجام شده باشد و کاربران نتوانند آزادانه DNS سازمان را دور بزنند.
  • شرکت‌هایی که می‌خواهند دسترسی کاربران به دسته‌بندی‌های پرریسک را کنترل کنند
  • سازمان‌هایی که می‌خواهند دامنه‌های Phishing، Malware و Botnet C&C را زودتر Block کنند
  • مدارس، دانشگاه‌ها و مراکز آموزشی که نیاز به Safe Search و کنترل محتوای عمومی دارند
  • شرکت‌هایی که می‌خواهند با لیست‌های داخلی، بعضی دامنه‌ها را Allow یا Block کنند
  • سازمان‌هایی که چند شعبه دارند و می‌خواهند سیاست DNS یکپارچه داشته باشند
  • تیم‌های SOC/NOC که به لاگ DNS برای تحلیل رخداد نیاز دارند
  • سازمان‌هایی که FortiAnalyzer دارند و می‌خواهند DNS Queryها را گزارش‌گیری کنند
  • شبکه‌هایی که DNS داخلی یا FortiGate DNS Server دارند و می‌خواهند کنترل را روی همان نقطه اعمال کنند
هشدار طراحی: اگر کاربران آزادانه از هر DNS Server دلخواهی استفاده کنند، DNS Filtering به‌تنهایی کافی نیست. برای اثرگذاری واقعی باید کلاینت‌ها فقط به DNSهای مجاز Query بزنند، ترافیک DNS خروجی به مقصدهای ناشناس محدود شود و DoH/DoT هم در طراحی دیده شود.

 

3. DNS Filtering در چه سناریوهایی جواب می‌دهد؟

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

در این سناریو، کاربران LAN از اینترنت استفاده می‌کنند و FortiGate بین LAN و WAN قرار دارد. DNS Query کاربران از FortiGate عبور می‌کند و روی Policy اینترنت، DNS Filter فعال می‌شود.
User LAN  →  FortiGate Policy with DNS Filter  →  Internet DNS / Internal DNS Forwarder
این سناریو برای بیشتر سازمان‌ها نقطه شروع مناسب است. هدف این است که قبل از رسیدن کاربر به دامنه‌های مخرب، DNS Query کنترل شود.

سناریوی دوم: Block کردن Botnet C&C Domain

اگر یک سیستم داخل شبکه آلوده شود، ممکن است تلاش کند به دامنه‌های Command & Control وصل شود. DNS Filter می‌تواند درخواست DNS به دامنه‌های شناخته‌شده Botnet C&C را در مرحله Resolve متوقف کند. این سناریو برای سازمان‌هایی که SOC، FortiAnalyzer یا فرآیند Incident Response دارند بسیار مهم است، چون DNS Queryهای مشکوک می‌توانند نشانه اولیه آلودگی باشند.

سناریوی سوم: کنترل Categoryها با FortiGuard

در این مدل، دامنه‌ها بر اساس Categoryهای FortiGuard کنترل می‌شوند. برای مثال سازمان می‌تواند دسته‌هایی مثل Malware، Phishing، Newly Observed Domain، Gambling، Adult Content یا Proxy Avoidance را Block کند و دسته‌های کم‌ریسک را Allow یا Monitor بگذارد.
مزیت این روش این است که لازم نیست هزاران دامنه را دستی وارد کنید؛ FortiGuard Rating کار دسته‌بندی را انجام می‌دهد و شما سیاست سازمان را روی Categoryها اعمال می‌کنید.

سناریوی چهارم: Static Domain Filter برای Allow و Block دستی

گاهی سازمان می‌خواهد دامنه مشخصی را بدون وابستگی به Categoryهای FortiGuard کنترل کند. برای مثال:
Block: suspicious-example.com
Block: *.unknown-download-site.net
Allow: update.vendor.com
Allow: internal.partner-domain.com
در این حالت Static Domain Filter یا Local Domain Filter کاربرد دارد. این روش برای استثناها، Policyهای داخلی و واکنش سریع به رخدادها مناسب است.

سناریوی پنجم: Safe Search و کنترل محتوای عمومی

در سازمان‌های آموزشی، کتابخانه‌ها، مدارس، دانشگاه‌ها و حتی بعضی شرکت‌ها، نیاز است جست‌وجوی کاربران در موتورهای جست‌وجو کنترل‌شده‌تر باشد. DNS Filter می‌تواند Safe Search و YouTube Restriction را enforce کند. برای این نوع محیط‌ها بهتر است Profile جداگانه برای کاربران عمومی، مهمان یا دانش‌آموزان ساخته شود.

سناریوی ششم: اعمال DNS Filter روی FortiGate DNS Server

همیشه DNS Filter فقط روی Firewall Policy استفاده نمی‌شود. اگر FortiGate نقش DNS Server یا DNS Forwarder برای کلاینت‌ها داشته باشد، می‌توان DNS Filter را روی DNS Service آن اینترفیس هم اعمال کرد. این سناریو برای شبکه‌هایی مناسب است که کلاینت‌ها DNS خود را مستقیم از FortiGate می‌گیرند.

 

4. محدودیت مهم: DNS Filtering چه جاهایی کافی نیست؟

DNS Filtering فقط زمانی خوب کار می‌کند که DNS Query قابل مشاهده یا قابل کنترل باشد. اگر کاربر یا نرم‌افزار از DNS over HTTPS یا DNS over TLS به سرویس‌های بیرونی استفاده کند، DNS Query ممکن است از دید DNS Filter عادی پنهان شود.
برای اینکه DNS Filtering واقعاً مؤثر باشد، باید این موارد همزمان کنترل شوند:
  • اجبار کلاینت‌ها به استفاده از DNS داخلی یا FortiGate
  • Block کردن DNS مستقیم به اینترنت، به‌جز DNSهای مجاز
  • بررسی یا محدودسازی DoH و DoT
  • استفاده از Application Control یا Web Filter برای DoH Providerها
  • فعال‌سازی Log برای DNS Queryها
  • ارسال لاگ‌ها به FortiAnalyzer برای تحلیل و گزارش‌گیری
نکته امنیتی: DoT معمولاً روی TCP/853 و DoH معمولاً روی HTTPS/TCP/443 به Providerهای عمومی دیده می‌شود. اگر سازمان فقط UDP/TCP 53 را کنترل کند، ممکن است بخشی از DNS کاربران از مسیر رمزنگاری‌شده خارج شود.

 

5. پیش‌نیازهای پیاده‌سازی DNS Filtering

قبل از ساخت DNS Filter Profile، چند نکته باید روشن باشد:
  1. FortiGate باید به FortiGuard دسترسی داشته باشد؛ چون Category-based Filtering و Botnet C&C معمولاً به FortiGuard Rating وابسته هستند.
  2. باید مشخص شود DNS Query کاربران از کجا عبور می‌کند. اگر Query از Policy دارای DNS Filter عبور نکند، Profile شما اثر نمی‌گذارد.
  3. باید تصمیم بگیرید DNS Filter را روی Firewall Policy، روی Policy کاربران به DNS داخلی، روی FortiGate DNS Server Interface یا روی VLANهای خاص اعمال می‌کنید.
  4. Log باید از ابتدا فعال شود. بدون Log، بعداً نمی‌توانید بفهمید دامنه‌ای Block شده، Monitor شده یا اصلاً Query از FortiGate عبور نکرده است.
  5. برای Guest، Users، Servers و Admins بهتر است Profileهای جداگانه ساخته شود.

 

6. ساخت DNS Filter Profile در GUI

برای ساخت DNS Filter Profile در FortiGate 7.4 از مسیر زیر وارد شوید:
Security Profiles > DNS Filter
سپس گزینه Create New را انتخاب کنید. اگر این گزینه را نمی‌بینید، Feature Visibility، لایسنس امنیتی، سطح دسترسی ادمین و نسخه FortiOS را بررسی کنید.
یک Profile مناسب برای کاربران سازمانی می‌تواند این ساختار را داشته باشد:
گزینه مقدار پیشنهادی توضیح
Name DNS-Filter-Users نام واضح برای Profile کاربران
Redirect botnet C&C requests to Block Portal Enable برای جلوگیری از Resolve دامنه‌های Botnet C&C
FortiGuard Category Based Filter Enable برای کنترل Categoryهای پرریسک
Static Domain Filter Enable در صورت نیاز برای Allow/Block دستی دامنه‌های مشخص
DNS Safe Search Enable در صورت نیاز مناسب کاربران عمومی، آموزشی و Guest
YouTube Restrict Moderate یا Strict طبق سیاست سازمان
Log all DNS queries Enable برای دوره ارزیابی و مانیتورینگ امنیتی
برای شروع، دسته‌های واضحاً پرریسک را Block کنید:
  • Malicious Websites
  • Phishing
  • Spam URLs
  • Botnet
  • Newly Observed Domain
  • Newly Registered Domain
  • Dynamic DNS
  • Proxy Avoidance
پیشنهاد عملیاتی: برای دسته‌هایی که ممکن است روی کار کاربران اثر بگذارند، ابتدا حالت Monitor را انتخاب کنید. بعد از چند روز بررسی لاگ، دسته‌هایی که ریسک بالا و اثر عملیاتی کم دارند را به Block تغییر دهید.
بعد از ساخت Profile باید آن را روی Policy اعمال کنید:
Policy & Objects > Firewall Policy > Edit LAN-to-Internet Policy > Security Profiles > DNS Filter
در همان Policy، گزینه Log Allowed Traffic را روی All Sessions قرار دهید تا لاگ‌های قابل تحلیل تولید شود.

 

7. ساخت DNS Filter Profile در CLI

نمونه زیر یک Profile پایه می‌سازد که Botnet C&C را Block می‌کند، Log DNS را فعال می‌کند، Safe Search را روشن می‌کند و Block Action را روی Redirect می‌گذارد.
config dnsfilter profile
    edit "DNS-Filter-Users"
        set comment "DNS filtering profile for corporate users - FortiOS 7.4"
        set log-all-domain enable
        set block-action redirect
        set block-botnet enable
        set safe-search enable
        set youtube-restrict strict
    next
end
DNSFilter1
اگر می‌خواهید FortiGuard Categoryها را از CLI تنظیم کنید، ساختار کلی زیر استفاده می‌شود:
config dnsfilter profile
    edit "DNS-Filter-Users"
        config ftgd-dns
            config filters
                edit 1
                    set category 2
                    set action monitor
                    set log enable
                next
                edit 2
                    set category 7
                    set action block
                    set log enable
                next
                edit 3
                    set category 64
                    set action block
                    set log enable
                next
            end
        end
    next
end
توجه: شماره Categoryها را کورکورانه Script نکنید. در محیط عملیاتی بهتر است Categoryها از GUI انتخاب شوند یا قبل از Script کردن، خروجی Profile ساخته‌شده در GUI با دستور زیر بررسی شود.
show dnsfilter profile "DNS-Filter-Users"
برای اعمال DNS Filter روی Policy:
config firewall policy
    edit 1
        set name "LAN-to-Internet"
        set srcintf "port1"
        set dstintf "wan1"
        set srcaddr "all"
        set dstaddr "all"
        set action accept
        set schedule "always"
        set service "ALL"
        set utm-status enable
        set dnsfilter-profile "DNS-Filter-Users"
        set logtraffic all
        set nat enable
    next
end
در FortiGate، فقط ساختن Profile کافی نیست. روی Policy باید utm-status enable فعال باشد و Profile هم با set dnsfilter-profile به همان Policy اعمال شود.

 

8. Static Domain Filter در GUI و CLI

Static Domain Filter برای زمانی مناسب است که بخواهید دامنه‌های مشخص را مستقل از Categoryهای FortiGuard کنترل کنید.
در GUI:
Security Profiles > DNS Filter > Edit DNS-Filter-Users > Static Domain Filter > Create New
Domain Type Action کاربرد
suspicious-domain.com Simple Block Block یک دامنه مشخص
*.bad-example.net Wildcard Block Block ساب‌دامین‌ها
trusted-partner.com Simple Allow Allow یک دامنه مورد اعتماد
در CLI ابتدا یک جدول Domain Filter ساخته می‌شود:
config dnsfilter domain-filter
    edit 1
        set name "Local-DNS-Block-Allow"
        config entries
            edit 1
                set domain "suspicious-domain.com"
                set type simple
                set action block
            next
            edit 2
                set domain "*.bad-example.net"
                set type wildcard
                set action block
            next
            edit 3
                set domain "trusted-partner.com"
                set type simple
                set action allow
            next
        end
    next
end
بعد آن را به DNS Filter Profile وصل می‌کنید:
config dnsfilter profile
    edit "DNS-Filter-Users"
        config domain-filter
            set domain-filter-table 1
        end
    next
end
کاربرد SOC: اگر SOC دامنه‌ای را به‌عنوان IOC اعلام کند، Static Domain Filter یکی از سریع‌ترین راه‌ها برای Block کردن آن در لایه DNS است.

DNSFilter1.1

9. اعمال DNS Filter روی FortiGate DNS Server

اگر FortiGate قرار است DNS Server یا DNS Forwarder شبکه باشد، می‌توانید DNS Filter Profile را مستقیم روی Interface DNS Service اعمال کنید.
سناریوی نمونه:
Client DNS Server: 192.168.10.1
FortiGate LAN IP: 192.168.10.1
FortiGate DNS Service: Forward to System DNS
DNS Filter Profile: DNS-Filter-Users
در GUI معمولاً باید ابتدا DNS Service روی Interface فعال شود:
Network > DNS Servers > DNS Service on Interface > Create New
سپس Interface، Mode و DNS Filter Profile را انتخاب کنید.
نمونه CLI برای ساخت DNS Service روی اینترفیس LAN:
config system dns-server
    edit "port1"
        set mode forward-only
        set dnsfilter-profile "DNS-Filter-Users"
    next
end
DNSFilter3
DNSFilter3.1
اگر روی نسخه شما نام پارامترها متفاوت بود، از علامت سؤال استفاده کنید:
config system dns-server
    edit "port1"
        ?

 

10. سناریوهای پیشنهادی برای Users، Guest، Servers و Branch

سناریوی کاربران سازمانی

فرض کنید شبکه کاربران به این شکل است:
LAN Users: 192.168.10.0/24
FortiGate LAN: port1
FortiGate WAN: wan1
Internal DNS: 192.168.10.10
اگر کلاینت‌ها DNS داخلی مثل Active Directory DNS دارند، باید DNS Query کاربران به DNS داخلی برود. سپس DNS داخلی برای Resolve دامنه‌های اینترنتی به FortiGate یا DNS Forwarder مجاز Forward کند. در این حالت DNS Filter را می‌توانید روی Policy مربوط به DNS داخلی به اینترنت یا روی FortiGate DNS Server اعمال کنید.
اگر FortiGate DNS Forwarder است، کلاینت‌ها می‌توانند DNS خود را FortiGate بگیرند:
Client DNS: 192.168.10.1
FortiGate forwards DNS to System DNS
DNS Filter applied on FortiGate DNS Server

سناریوی Guest Network

برای شبکه مهمان، معمولاً هدف این است که محتوای پرریسک، Malware، Phishing و دسته‌های نامناسب Block شوند، اما کاربر به منابع داخلی سازمان دسترسی نداشته باشد.
Guest VLAN → FortiGate → Internet
DNS Filter: Strict
Web Filter: Optional
Application Control: Block DoH/Proxy Avoidance
Access to Internal Networks: Deny
Profile پیشنهادی برای Guest:
  • Block: Malware, Phishing, Botnet, Newly Registered Domain, Proxy Avoidance
  • Safe Search: Enable
  • YouTube Restrict: Moderate یا Strict
  • Log DNS Queries: Enable
config dnsfilter profile
    edit "DNS-Filter-Guest"
        set log-all-domain enable
        set block-botnet enable
        set safe-search enable
        set youtube-restrict moderate
        set block-action redirect
    next
end
اعمال روی Policy مهمان:
config firewall policy
    edit 20
        set name "Guest-to-Internet"
        set srcintf "Guest-VLAN"
        set dstintf "wan1"
        set srcaddr "all"
        set dstaddr "all"
        set action accept
        set schedule "always"
        set service "ALL"
        set utm-status enable
        set dnsfilter-profile "DNS-Filter-Guest"
        set logtraffic all
        set nat enable
    next
end

سناریوی شبکه سرورها

برای سرورها، DNS Filtering باید محتاطانه‌تر اعمال شود. سرورها ممکن است نیاز به Resolve دامنه‌های Update، Repository، SaaS، API یا سرویس‌های Vendor داشته باشند. اگر DNS Filter بیش از حد سخت‌گیرانه باشد، ممکن است Update یا ارتباطات نرم‌افزارهای سازمانی مختل شود.
  • ابتدا DNS Filter در حالت Monitor برای چند روز فعال شود
  • Queryهای پرتکرار و Block Candidate بررسی شوند
  • دامنه‌های ضروری Vendorها Allow شوند
  • سپس Categoryهای پرریسک Block شوند
  • Log کامل به FortiAnalyzer ارسال شود
در این سناریو، DNS Filter بیشتر نقش Threat Detection و کنترل خروجی دارد. اگر سروری ناگهان شروع به Resolve دامنه‌های ناشناس، Newly Registered یا Botnet کند، این یک هشدار امنیتی جدی است.

سناریوی شعب سازمانی

در شعب، DNS Filtering می‌تواند به دو شکل پیاده‌سازی شود:
  • Local Internet Breakout در شعبه با DNS Filter روی FortiGate همان شعبه
  • DNS متمرکز در دیتاسنتر و عبور Queryها از تونل IPsec
اگر شعبه Local Breakout دارد، بهتر است DNS Filter روی Policy اینترنت همان شعبه فعال شود. اگر همه DNS Queryها به دیتاسنتر می‌روند، کنترل می‌تواند مرکزی باشد؛ اما باید تأخیر، دسترسی در زمان قطع تونل و Logging شعب هم در نظر گرفته شود.

 

11. کنترل DoH و DoT در کنار DNS Filtering

اگر کاربران از مرورگرهایی استفاده کنند که DoH فعال دارند، DNS Query ممکن است داخل HTTPS به Providerهای عمومی برود. در این حالت DNS Filter کلاسیک روی UDP/TCP 53 آن Query را نمی‌بیند.
راهکارهای عملیاتی:
  • Block کردن TCP/UDP 53 به مقصدهای غیرمجاز
  • Block یا کنترل TCP/853 برای DoT
  • استفاده از Application Control برای DNS over HTTPS
  • استفاده از Web Filter، ISDB یا External Block List برای DoH Providerها
  • در صورت نیاز، Full SSL Inspection برای تشخیص DoHهای سفارشی
  • اعمال Policy مرورگرها از طریق GPO/MDM برای غیرفعال کردن DoH
نمونه Policy سخت‌گیرانه برای بستن DoT:
config firewall policy
    edit 30
        set name "Block-DoT-to-Internet"
        set srcintf "port1"
        set dstintf "wan1"
        set srcaddr "all"
        set dstaddr "all"
        set action deny
        set schedule "always"
        set service "DNS-over-TLS"
        set logtraffic all
    next
end
اگر Service آماده DNS-over-TLS وجود ندارد، می‌توانید Service سفارشی TCP/853 بسازید:
config firewall service custom
    edit "TCP-853-DoT"
        set tcp-portrange 853
    next
end
سپس از همین Service در Policy Deny استفاده کنید.

DNSFilter4

12. لاگ و مانیتورینگ DNS Filter

برای بررسی DNS Queryها در GUI، بسته به نسخه و Layout دستگاه، مسیر معمول یکی از این حالت‌هاست:
Log & Report > DNS Query
Log & Report > Security Events > DNS Query
در CLI:
execute log filter category utm-dns
execute log display
برای مشاهده تنظیمات Log در Profile:
show dnsfilter profile "DNS-Filter-Users"
در محیط سازمانی، بهتر است DNS Query Logها به FortiAnalyzer ارسال شوند. با FortiAnalyzer می‌توانید این موارد را تحلیل کنید:
  • کاربرانی که بیشترین Query مشکوک دارند
  • دامنه‌هایی که بیشترین Block را خورده‌اند
  • سیستم‌هایی که به Botnet C&C Query زده‌اند
  • Newly Registered Domainهای پرتکرار
  • دسته‌بندی‌های پرریسک در هر VLAN یا شعبه
  • تغییر رفتار DNS یک سیستم نسبت به روزهای قبل

 

13. عیب‌یابی DNS Filtering

اگر DNS Filter کار نمی‌کند، معمولاً مشکل در یکی از این موارد است:
  • Profile روی Policy درست اعمال نشده است
  • utm-status روی Policy فعال نیست
  • DNS Query اصلاً از FortiGate عبور نمی‌کند
  • کاربر از DoH/DoT استفاده می‌کند
  • DNS مستقیم به اینترنت مجاز است و از Policy دیگری عبور می‌کند
  • FortiGate به FortiGuard دسترسی ندارد
  • Category موردنظر روی Monitor است نه Block
  • Log فعال نیست
  • SSL/SSH Inspection برای DoH/DoT درست تنظیم نشده است
دستورهای مفید:
show firewall policy
show dnsfilter profile
get system fortiguard
diagnose debug rating
execute log filter category utm-dns
execute log display
برای Sniffer روی DNS عادی:
diagnose sniffer packet any 'port 53' 4 0 a
برای بررسی Query یک کلاینت خاص:
diagnose sniffer packet any 'host 192.168.10.50 and port 53' 4 0 a
تحلیل سریع: اگر در Sniffer می‌بینید کلاینت به 8.8.8.8 Query می‌زند ولی Policy شما فقط DNS داخلی را کنترل می‌کند، طراحی DNS باید اصلاح شود. اگر DNS Query در Log دیده می‌شود ولی Block نمی‌شود، Category و Action را بررسی کنید. اگر هیچ DNS Queryای دیده نمی‌شود، احتمالاً ترافیک DNS از FortiGate عبور نمی‌کند یا کاربر از DoH استفاده می‌کند.

 

14. Best Practice برای پیاده‌سازی DNS Filtering

  • برای User VLAN، Server VLAN و Guest VLAN پروفایل جدا بسازید
  • ابتدا Categoryهای حساس را Monitor کنید و بعد Block کنید
  • Botnet C&C Blocking را فعال کنید
  • Log All Domain را برای دوره ارزیابی فعال کنید
  • بعد از تثبیت، حجم Log را بر اساس نیاز تنظیم کنید
  • DNS مستقیم کاربران به اینترنت را محدود کنید
  • DoH و DoT را جداگانه کنترل کنید
  • روی Policyهای DNS، Log را فعال کنید
  • DNS Filter را با Web Filter و Application Control تکمیل کنید
  • برای سرورها Allow Listهای Vendor را مستند کنید
  • گزارش‌های FortiAnalyzer را دوره‌ای بررسی کنید
برای شبکه کاربران عادی، DNS Filter می‌تواند سخت‌گیرانه‌تر باشد. برای سرورها، بهتر است ابتدا Monitor انجام شود. برای Guest، سیاست می‌تواند محدودتر و عمومی‌تر باشد. برای مدیران شبکه یا تیم‌های فنی، ممکن است پروفایل جداگانه با Monitor بیشتر و Block کمتر نیاز باشد.

 

15. نمونه طراحی کامل برای سازمان متوسط

فرض کنید سازمان سه VLAN دارد:
Users VLAN: 192.168.10.0/24
Servers VLAN: 192.168.20.0/24
Guest VLAN: 192.168.30.0/24
WAN: wan1
Internal DNS: 192.168.20.10
بخش طراحی پیشنهادی
Users DNS به Internal DNS، فعال‌سازی DNS Filter روی Policy اینترنت یا DNS Forwarding، Block دسته‌های Malware/Phishing/Botnet/Proxy Avoidance، Safe Search فعال
Servers DNS فقط به Internal DNS یا DNS Forwarder مجاز، DNS Filter ابتدا Monitor، سپس Block کنترل‌شده دسته‌های پرریسک، Allow List برای Vendorها
Guest DNS به FortiGate یا DNS مجاز، DNS Filter سخت‌گیرانه، Block مستقیم به DNSهای خارجی، Block DoT، کنترل DoH با Application Control/Web Filter
نمونه Profile کاربران:
config dnsfilter profile
    edit "DNS-Users"
        set log-all-domain enable
        set block-botnet enable
        set safe-search enable
        set youtube-restrict moderate
        set block-action redirect
    next
end
نمونه Profile سرورها:
config dnsfilter profile
    edit "DNS-Servers-Monitor"
        set log-all-domain enable
        set block-botnet enable
        set block-action block-sevrfail
    next
end
نمونه Profile مهمان:
config dnsfilter profile
    edit "DNS-Guest-Strict"
        set log-all-domain enable
        set block-botnet enable
        set safe-search enable
        set youtube-restrict strict
        set block-action redirect
    next
end
اعمال روی Policy کاربران:
config firewall policy
    edit 101
        set name "Users-to-Internet"
        set srcintf "Users-VLAN"
        set dstintf "wan1"
        set srcaddr "all"
        set dstaddr "all"
        set action accept
        set schedule "always"
        set service "ALL"
        set utm-status enable
        set dnsfilter-profile "DNS-Users"
        set logtraffic all
        set nat enable
    next
end
اعمال روی Policy مهمان:
config firewall policy
    edit 102
        set name "Guest-to-Internet"
        set srcintf "Guest-VLAN"
        set dstintf "wan1"
        set srcaddr "all"
        set dstaddr "all"
        set action accept
        set schedule "always"
        set service "ALL"
        set utm-status enable
        set dnsfilter-profile "DNS-Guest-Strict"
        set logtraffic all
        set nat enable
    next
end

 

16. چک‌لیست پیاده‌سازی DNS Filtering در FortiGate

مورد وضعیت مطلوب
نسخه سناریو بر اساس FortiOS 7.4 بررسی و با Patch Version دستگاه تطبیق داده شده باشد
FortiGuard FortiGate به FortiGuard دسترسی دارد
DNS Design مشخص است کلاینت‌ها از چه DNSی استفاده می‌کنند
Policy DNS Filter روی Policy درست اعمال شده
UTM Status روی Policy فعال است
Botnet C&C فعال شده
Category Filtering دسته‌های پرریسک Block یا Monitor شده‌اند
Static Domain Filter دامنه‌های داخلی Allow/Block مستند شده‌اند
Safe Search برای کاربران عمومی یا آموزشی فعال شده
YouTube Restrict طبق سیاست سازمان تنظیم شده
Logging DNS Query Log فعال است
FortiAnalyzer لاگ‌ها به FortiAnalyzer ارسال می‌شوند
DNS Bypass DNS مستقیم به اینترنت کنترل شده
DoH/DoT بررسی، Block یا Inspect شده
Guest Network پروفایل جداگانه دارد
Server VLAN ابتدا Monitor و سپس کنترل‌شده Block می‌شود
Change Control هر Block جدید مستند و قابل Rollback است
 

DNS Filtering در FortiGate دقیقاً چه کاری انجام می‌دهد؟

DNS Filtering درخواست‌های DNS کاربران را بررسی می‌کند و بر اساس FortiGuard Category، Botnet C&C، Static Domain Filter یا تنظیمات دیگر، دامنه را Allow، Monitor، Block یا Redirect می‌کند.

آیا DNS Filter جایگزین Web Filter است؟

خیر. DNS Filter در سطح دامنه کار می‌کند، اما Web Filter می‌تواند کنترل دقیق‌تری روی URL، مسیرها و محتوای وب داشته باشد. در طراحی حرفه‌ای، DNS Filter و Web Filter مکمل هم هستند.

آیا DNS Filtering روی FortiGate 7.4 قابل استفاده است؟

بله. این مقاله بر اساس FortiGate / FortiOS 7.4 نوشته شده است. در FortiOS 7.4 می‌توان DNS Filter Profile ساخت، آن را روی Firewall Policy اعمال کرد و در سناریوهای مشخص روی FortiGate DNS Server هم استفاده نمود.

چرا با وجود DNS Filter بعضی سایت‌ها Block نمی‌شوند؟

دلایل رایج شامل عبور نکردن DNS Query از FortiGate، استفاده کاربر از DoH/DoT، فعال نبودن UTM روی Policy، اعمال نشدن Profile روی Policy درست، دسترسی نداشتن FortiGate به FortiGuard یا قرار داشتن Category روی Monitor به‌جای Block است.

آیا باید Log All Domain را همیشه فعال نگه داریم؟

برای دوره ارزیابی و Incident Response بسیار مفید است، اما در شبکه‌های بزرگ می‌تواند حجم لاگ را زیاد کند. بهتر است ابتدا فعال شود، سپس بر اساس ظرفیت FortiAnalyzer، Retention و نیاز SOC تنظیم شود.

برای Guest Network چه سیاستی بهتر است؟

برای Guest معمولاً سیاست سخت‌گیرانه‌تر مناسب است: Block کردن Malware، Phishing، Botnet، Newly Registered Domain و Proxy Avoidance، فعال‌سازی Safe Search، کنترل DoH/DoT و جلوگیری از دسترسی به شبکه داخلی.

برای Server VLAN باید DNS Filter را سخت‌گیرانه فعال کنیم؟

برای سرورها بهتر است ابتدا Monitor انجام شود، چون سرورها ممکن است به دامنه‌های Vendor، Repository، Update Server و SaaS نیاز داشته باشند. بعد از بررسی لاگ، Categoryهای پرریسک Block و دامنه‌های ضروری Allow شوند.
آخرین بروزرسانی
۲۵ اردیبهشت ۱۴۰۵ 
تعداد کلیک
۱۶