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 است.
مروری بر این مقاله
- DNS Filtering دقیقاً چه کاری انجام میدهد؟
- DNS Filtering به درد چه کسانی میخورد؟
- DNS Filtering در چه سناریوهایی جواب میدهد؟
- محدودیت مهم: DNS Filtering چه جاهایی کافی نیست؟
- پیشنیازهای پیادهسازی DNS Filtering
- ساخت DNS Filter Profile در GUI
- ساخت DNS Filter Profile در CLI
- Static Domain Filter در GUI و CLI
- اعمال DNS Filter روی FortiGate DNS Server
- سناریوهای پیشنهادی برای Users، Guest، Servers و Branch
- کنترل DoH و DoT در کنار DNS Filtering
- لاگ و مانیتورینگ DNS Filter
- عیبیابی DNS Filtering
- Best Practice برای پیادهسازی DNS Filtering
- نمونه طراحی کامل برای سازمان متوسط
- چکلیست پیادهسازی
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، چند نکته باید روشن باشد:
- FortiGate باید به FortiGuard دسترسی داشته باشد؛ چون Category-based Filtering و Botnet C&C معمولاً به FortiGuard Rating وابسته هستند.
- باید مشخص شود DNS Query کاربران از کجا عبور میکند. اگر Query از Policy دارای DNS Filter عبور نکند، Profile شما اثر نمیگذارد.
- باید تصمیم بگیرید DNS Filter را روی Firewall Policy، روی Policy کاربران به DNS داخلی، روی FortiGate DNS Server Interface یا روی VLANهای خاص اعمال میکنید.
- Log باید از ابتدا فعال شود. بدون Log، بعداً نمیتوانید بفهمید دامنهای Block شده، Monitor شده یا اصلاً Query از FortiGate عبور نکرده است.
- برای 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
اگر میخواهید 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 است.
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
اگر روی نسخه شما نام پارامترها متفاوت بود، از علامت سؤال استفاده کنید:
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 استفاده کنید.
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 است |