فورتی گیت

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…

26 دقیقه مطالعه
  • DNS
  • set
  • Filter
  • Block
  • FortiGate
  • Profile
  • Policy
  • کنترل
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…

موضوعات اصلی: DNS، set، Filter، Block، FortiGate، Profile

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-actionblock-botnetdomain-filterftgd-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 مناسب برای کاربران سازمانی می‌تواند این ساختار را داشته باشد
گزینهمقدار پیشنهادیتوضیح
NameDNS-Filter-Usersنام واضح برای Profile کاربران
Redirect botnet C&C requests to Block PortalEnableبرای جلوگیری از Resolve دامنه‌های Botnet C&C
FortiGuard Category Based FilterEnableبرای کنترل Categoryهای پرریسک
Static Domain FilterEnable در صورت نیازبرای Allow/Block دستی دامنه‌های مشخص
DNS Safe SearchEnable در صورت نیازمناسب کاربران عمومی، آموزشی و Guest
YouTube RestrictModerate یا Strictطبق سیاست سازمان
Log all DNS queriesEnableبرای دوره ارزیابی و مانیتورینگ امنیتی
برای شروع، دسته‌های واضحاً پرریسک را 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
DomainTypeActionکاربرد
suspicious-domain.comSimpleBlockBlock یک دامنه مشخص
*.bad-example.netWildcardBlockBlock ساب‌دامین‌ها
trusted-partner.comSimpleAllowAllow یک دامنه مورد اعتماد
در 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.8Query می‌زند ولی 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
بخشطراحی پیشنهادی
UsersDNS به Internal DNS، فعال‌سازی DNS Filter روی Policy اینترنت یا DNS Forwarding، Block دسته‌های Malware/Phishing/Botnet/Proxy Avoidance، Safe Search فعال
ServersDNS فقط به Internal DNS یا DNS Forwarder مجاز، DNS Filter ابتدا Monitor، سپس Block کنترل‌شده دسته‌های پرریسک، Allow List برای Vendorها
GuestDNS به 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 دستگاه تطبیق داده شده باشد
FortiGuardFortiGate به FortiGuard دسترسی دارد
DNS Designمشخص است کلاینت‌ها از چه DNSی استفاده می‌کنند
PolicyDNS Filter روی Policy درست اعمال شده
UTM Statusروی Policy فعال است
Botnet C&Cفعال شده
Category Filteringدسته‌های پرریسک Block یا Monitor شده‌اند
Static Domain Filterدامنه‌های داخلی Allow/Block مستند شده‌اند
Safe Searchبرای کاربران عمومی یا آموزشی فعال شده
YouTube Restrictطبق سیاست سازمان تنظیم شده
LoggingDNS Query Log فعال است
FortiAnalyzerلاگ‌ها به FortiAnalyzer ارسال می‌شوند
DNS BypassDNS مستقیم به اینترنت کنترل شده
DoH/DoTبررسی، Block یا Inspect شده
Guest Networkپروفایل جداگانه دارد
Server VLANابتدا Monitor و سپس کنترل‌شده Block می‌شود
Change Controlهر Block جدید مستند و قابل Rollback است

برای ارزیابی پایداری، امنیت و نگهداری این زیرساخت، راهنمای پشتیبانی شبکه را نیز مطالعه کنید.