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 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 دقیقاً چه کاری انجام میدهد؟
- 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 دقیقاً چه کاری انجام میدهد؟
- کنترل دامنهها بر اساس 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ها برای بررسی امنیتی و عملیاتی
example.com/page1 example.com/private/download/file.exe
2. DNS Filtering به درد چه کسانی میخورد؟
- شرکتهایی که میخواهند دسترسی کاربران به دستهبندیهای پرریسک را کنترل کنند
- سازمانهایی که میخواهند دامنههای Phishing، Malware و Botnet C&C را زودتر Block کنند
- مدارس، دانشگاهها و مراکز آموزشی که نیاز به Safe Search و کنترل محتوای عمومی دارند
- شرکتهایی که میخواهند با لیستهای داخلی، بعضی دامنهها را Allow یا Block کنند
- سازمانهایی که چند شعبه دارند و میخواهند سیاست DNS یکپارچه داشته باشند
- تیمهای SOC/NOC که به لاگ DNS برای تحلیل رخداد نیاز دارند
- سازمانهایی که FortiAnalyzer دارند و میخواهند DNS Queryها را گزارشگیری کنند
- شبکههایی که DNS داخلی یا FortiGate DNS Server دارند و میخواهند کنترل را روی همان نقطه اعمال کنند
3. DNS Filtering در چه سناریوهایی جواب میدهد؟
سناریوی اول: کنترل دسترسی کاربران داخلی به دامنههای مخرب
User LAN → FortiGate Policy with DNS Filter → Internet DNS / Internal DNS Forwarder
سناریوی دوم: Block کردن Botnet C&C Domain
سناریوی سوم: کنترل Categoryها با FortiGuard
سناریوی چهارم: Static Domain Filter برای Allow و Block دستی
Block: suspicious-example.com Block: *.unknown-download-site.net Allow: update.vendor.com Allow: internal.partner-domain.com
سناریوی پنجم: Safe Search و کنترل محتوای عمومی
سناریوی ششم: اعمال DNS Filter روی FortiGate DNS Server
4. محدودیت مهم: DNS Filtering چه جاهایی کافی نیست؟
- اجبار کلاینتها به استفاده از DNS داخلی یا FortiGate
- Block کردن DNS مستقیم به اینترنت، بهجز DNSهای مجاز
- بررسی یا محدودسازی DoH و DoT
- استفاده از Application Control یا Web Filter برای DoH Providerها
- فعالسازی Log برای DNS Queryها
- ارسال لاگها به FortiAnalyzer برای تحلیل و گزارشگیری
5. پیشنیازهای پیادهسازی DNS Filtering
- 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
| گزینه | مقدار پیشنهادی | توضیح |
|---|---|---|
| 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 | برای دوره ارزیابی و مانیتورینگ امنیتی |
- Malicious Websites
- Phishing
- Spam URLs
- Botnet
- Newly Observed Domain
- Newly Registered Domain
- Dynamic DNS
- Proxy Avoidance
7. ساخت DNS Filter Profile در CLI
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
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
show dnsfilter profile "DNS-Filter-Users"
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
8. Static Domain Filter در GUI و CLI
| Domain | Type | Action | کاربرد |
|---|---|---|---|
| suspicious-domain.com | Simple | Block | Block یک دامنه مشخص |
| *.bad-example.net | Wildcard | Block | Block سابدامینها |
| trusted-partner.com | Simple | Allow | Allow یک دامنه مورد اعتماد |
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
config dnsfilter profile edit "DNS-Filter-Users" config domain-filter set domain-filter-table 1 end next end
9. اعمال DNS Filter روی FortiGate DNS Server
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
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
Client DNS: 192.168.10.1 FortiGate forwards DNS to System DNS DNS Filter applied on FortiGate DNS Server
سناریوی Guest Network
Guest VLAN → FortiGate → Internet DNS Filter: Strict Web Filter: Optional Application Control: Block DoH/Proxy Avoidance Access to Internal Networks: Deny
- 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
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 Filter در حالت Monitor برای چند روز فعال شود
- Queryهای پرتکرار و Block Candidate بررسی شوند
- دامنههای ضروری Vendorها Allow شوند
- سپس Categoryهای پرریسک Block شوند
- Log کامل به FortiAnalyzer ارسال شود
سناریوی شعب سازمانی
- Local Internet Breakout در شعبه با DNS Filter روی FortiGate همان شعبه
- DNS متمرکز در دیتاسنتر و عبور Queryها از تونل IPsec
11. کنترل DoH و DoT در کنار DNS Filtering
- 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
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
config firewall service custom edit "TCP-853-DoT" set tcp-portrange 853 next end
12. لاگ و مانیتورینگ DNS Filter
execute log filter category utm-dns execute log display
show dnsfilter profile "DNS-Filter-Users"
- کاربرانی که بیشترین Query مشکوک دارند
- دامنههایی که بیشترین Block را خوردهاند
- سیستمهایی که به Botnet C&C Query زدهاند
- Newly Registered Domainهای پرتکرار
- دستهبندیهای پرریسک در هر VLAN یا شعبه
- تغییر رفتار DNS یک سیستم نسبت به روزهای قبل
13. عیبیابی DNS Filtering
- 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
diagnose sniffer packet any 'port 53' 4 0 a
diagnose sniffer packet any 'host 192.168.10.50 and port 53' 4 0 a
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 را دورهای بررسی کنید
15. نمونه طراحی کامل برای سازمان متوسط
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 |
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
config dnsfilter profile edit "DNS-Servers-Monitor" set log-all-domain enable set block-botnet enable set block-action block-sevrfail next end
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
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
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 است |
برای ارزیابی پایداری، امنیت و نگهداری این زیرساخت، راهنمای پشتیبانی شبکه را نیز مطالعه کنید.