Danh mục sản phẩm
Web Filter trên FortiGate: FortiGuard Category, URL Filter, Override
1. Liên hệ thực tế
Khách hàng yêu cầu chặn toàn bộ mạng xã hội theo danh mục FortiGuard, nhưng lại muốn mở riêng ngoại lệ cho trang Facebook Fanpage chính thức của công ty (dùng để marketing) — trong khi domain đó vẫn thuộc chung category "Social Media" bị chặn.
Anh Nam bối rối: "Nếu chặn theo category thì chặn hết cả nhóm luôn, làm sao mở riêng 1 domain mà không tắt luôn cả category?"
Chị Lan: "Đây chính là lúc dùng Local Category hoặc URL Filter tường minh — luôn có độ ưu tiên cao hơn FortiGuard Category mặc định. Khai riêng domain fanpage đó với action Allow, đặt trước rule chặn category, là xong."
Bài này giải thích cơ chế FortiGuard Category filtering, URL Filter, và tính năng Override — công cụ chính để kiểm soát truy cập web trên FortiGate.
2. Kiến thức cốt lõi
2.1 FortiGuard Category Filter — chặn/cho phép theo danh mục
FortiGuard Web Filtering phân loại hàng tỷ trang web vào các danh mục (category) được Fortinet duy trì và cập nhật liên tục — khi traffic HTTP/HTTPS đi qua Policy có bật Web Filter, FortiGate tra cứu URL với FortiGuard để xác định category, rồi áp hành động tương ứng.
config webfilter profile
edit "chan-mang-xa-hoi"
config ftgd-wf
config filters
edit 1
set category 23
set action block
next
end
end
next
end
⚠️ Lưu ý: Không nên nhớ thuộc lòng số category (
category 23trong ví dụ trên là "Social Media") — số ID có thể trông giống nhau qua các phiên bản nhưng Fortinet vẫn có thể điều chỉnh/thêm category mới theo thời gian. Cách tra cứu đúng và nhanh nhất:
- Qua GUI (khuyến nghị, trực quan nhất): vào Security Profiles > Web Filter, mở một profile bất kỳ, cuộn tới phần FortiGuard category based filter — toàn bộ category hiển thị theo tên (Social Media, Gambling, Malicious Websites...), nhóm theo chủ đề, tick chọn action trực tiếp. GUI tự động ánh xạ tên sang đúng ID phía sau, người dùng không cần nhìn thấy hay quan tâm tới số ID.
- Qua CLI: vào đúng vị trí cần khai
category, gõ dấu?— FortiGate sẽ in ra toàn bộ danh sách category, mỗi dòng gồm cả số ID lẫn tên (ví dụ23 Social.Media). Đọc trong danh sách đó để tìm đúng tên category cần chặn, rồi gõ lại đúng số ID tương ứng vào lệnhset category— không cần nhớ trước số ID, chỉ cần đọc ra từ chính output của?:config webfilter profile edit "chan-mang-xa-hoi" config ftgd-wf config filters edit 1 set category ? 00 Local-Category ... 23 Social.Media 26 Malicious.Websites 61 Newly.Observed.Domain ... set category 23- Tra cứu nhanh 1 URL cụ thể thuộc category nào: dùng công cụ FortiGuard Web Filter Lookuptại
https://www.fortiguard.com/webfilter— nhập domain, hệ thống trả về tên category và mô tả, phù hợp khi cần xác minh nhanh một domain cụ thể trước khi viết rule.Trên thực tế, phần lớn người quản trị cấu hình category qua GUI để chọn theo tên; chỉ khi thao tác CLI/API tự động hóa mới cần biết trước số ID cụ thể.
Các hành động (action) khả dụng cho mỗi category:
allow— cho phép truy cập, vẫn có thể bị chặn sau đó bởi các Security Profile khác (IPS, Antivirus...).block— chặn hoàn toàn, hiển thị trang thông báo thay thế.monitor— cho phép và ghi log, không chặn — hữu ích để quan sát hành vi trước khi quyết định chặn.warning— hiển thị trang cảnh báo, người dùng có thể bấm "Proceed" để tiếp tục.authenticate— yêu cầu xác thực (liên quan Identity Policy đã học ở bài 26) trước khi cho qua.
2.2 Local Category — tự định nghĩa category riêng
Local Category cho phép tạo ra một category hoàn toàn mới, tự đặt tên, rồi gán các domain cụ thể vào category đó — khác với việc chỉ dùng category có sẵn do FortiGuard phân loại. Category tự định nghĩa này tham gia vào hệ thống phân loại y hệt category FortiGuard: vẫn đặt action theo kiểu category (block/allow/monitor...) trong Web Filter Profile.
config webfilter ftgd-local-cat
edit "fanpage-noi-bo"
set status enable
next
end
config webfilter ftgd-local-rating
edit "fanpage.facebook.com/congty"
set category "fanpage-noi-bo"
set status enable
next
end
config webfilter profile
edit "chan-mang-xa-hoi"
config ftgd-wf
config filters
edit 1
set category 23
set action block
next
edit 2
set category "fanpage-noi-bo"
set action allow
next
end
end
next
end
Với cấu hình trên, fanpage.facebook.com/congty được gán vào category riêng fanpage-noi-bo với action allow — đúng nhu cầu tình huống mở đầu bài: mở riêng một domain cụ thể trong khi category "Social Media" (category 23) chung vẫn bị block.
⚠️ Lưu ý: Local Category khác URL Filter (mục 2.5) ở chỗ nó vẫn hoạt động trong khuôn khổ hệ thống category — một domain chỉ thuộc về đúng 1 category tại một thời điểm (category tự định nghĩa sẽ ghi đè category gốc của FortiGuard cho domain đó). URL Filter thì độc lập hoàn toàn với khái niệm category, xử lý theo danh sách tuần tự riêng.
2.3 Thứ tự ưu tiên khi phân loại — Local trước, FortiGuard sau cùng
Khi FortiGate cần xác định category của một website, nó tra cứu theo thứ tự ưu tiên cố định:
Đây chính là cơ chế giải quyết tình huống mở đầu bài — khai một Local Category riêng chứa domain fanpage cần mở, đặt action allow, sẽ được ưu tiên hơn FortiGuard Category (đang chặn category "Social Media" chứa domain đó).
2.4 Remote/External Threat Feed Category — mở rộng danh sách chặn tự động
Đứng giữa Local Category và FortiGuard Category về mặt ưu tiên, Remote/External Threat Feed Category là category được nạp tự động từ một nguồn dữ liệu bên ngoài — khác với Local Category phải tự gõ tay từng domain, Threat Feed cho phép FortiGate định kỳ tải về một danh sách domain/URL từ một địa chỉ URL do người quản trị khai báo (ví dụ một feed nội bộ do đội bảo mật công ty tự tổng hợp, hoặc một threat intelligence feed từ bên thứ ba), rồi coi cả danh sách đó như một category để gán action.
config system external-resource
edit "threat-feed-noi-bo"
set type domain
set resource "https://intel.congty.vn/blocklist-domain.txt"
set refresh-rate 5
next
end
config webfilter profile
edit "chan-mang-xa-hoi"
config ftgd-wf
config filters
edit 1
set category 192
set action block
next
end
end
next
end
Sau khi tạo, threat feed xuất hiện như một category riêng (thường ở dải category ID cao) để gán action trong Web Filter Profile — tham số refresh-rate (tính bằng phút) quyết định FortiGate tải lại danh sách mới sau bao lâu, giúp danh sách chặn luôn cập nhật mà không cần vào sửa tay từng lần như Local Category.
| Loại category | Nguồn dữ liệu | Cách cập nhật |
|---|---|---|
| Local Category | Tự gõ tay từng domain trên chính FortiGate | Thủ công, tức thời khi sửa |
| Remote/External Threat Feed | Tải tự động từ 1 URL bên ngoài (feed nội bộ hoặc threat intel bên thứ ba) | Tự động theo refresh-rate |
| FortiGuard Category | Dữ liệu phân loại toàn cầu do Fortinet duy trì | Tự động qua FortiGuard |
⚠️ Lưu ý: Threat Feed phù hợp khi tổ chức có đội an ninh mạng riêng tự phát hiện và tổng hợp domain độc hại mới, hoặc muốn tích hợp thêm các danh sách IOC (Indicator of Compromise) công khai/thương mại — giúp bổ sung tốc độ phản ứng nhanh hơn, không phụ thuộc hoàn toàn vào chu kỳ cập nhật của FortiGuard. File nguồn (
resource) cần ở định dạng plain text hợp lệ, mỗi dòng một domain/URL, và server host file đó phải luôn khả dụng để FortiGate fetch được đúng lịch.
2.5 URL Filter — kiểm soát tường minh theo domain/URL cụ thể
Ngoài phân loại theo category, URL Filter cho phép khai báo tường minh từng domain hoặc URL cụ thể, độc lập với kết quả phân loại của FortiGuard:
config webfilter urlfilter
edit 1
set name "url-fanpage-congty"
config entries
edit 1
set url "fanpage.facebook.com/congty"
set type wildcard
set action allow
next
end
next
end
config webfilter profile
edit "chan-mang-xa-hoi"
set urlfilter-table 1
config ftgd-wf
config filters
edit 1
set category 23
set action block
next
end
end
next
end
Các entry trong URL Filter được xử lý theo thứ tự từ trên xuống, match đầu tiên thắng — tương tự nguyên tắc Policy Lookup đã học. Loại khớp (type) hỗ trợ: simple (khớp chính xác chuỗi), regex (biểu thức chính quy), hoặc wildcard (dùng ký tự đại diện).
⚠️ Lưu ý: URL Filter tường minh (trong bảng
urlfilter) và FortiGuard Category Filter là hai cơ chế riêng biệt cùng nằm trong một Web Filter Profile — theo thứ tự ưu tiên đã nêu ở mục 2.3, kết quả từ URL Filter (thuộc dạng cấu hình cục bộ) vẫn được ưu tiên hơn khi có xung đột với FortiGuard Category.
2.6 Web Filter Override — cho phép người dùng tự vượt qua tạm thời
Override cho phép người dùng có thông tin đăng nhập hợp lệ tự vượt qua một trang bị chặn theo category, mà không cần admin can thiệp thủ công mỗi lần — hữu ích cho các tổ chức muốn linh hoạt hơn "chặn cứng" hoàn toàn.
config webfilter profile
edit "chan-mang-xa-hoi"
set options allow-override
config override
set ovrd-cookie enable
set ovrd-scope user
set profile "allow-all-web"
set ovrd-dur-mode constant
set ovrd-dur 15
end
next
end
ovrd-scope— phạm vi áp dụng override:user(chỉ người vừa xác thực),user-group,ip(toàn bộ traffic từ IP đó), hoặcask(hỏi người dùng chọn phạm vi khi override).ovrd-dur— thời gian hiệu lực override (phút), sau đó tự động quay về chặn như cũ.profile— Web Filter Profile khác được áp dụng tạm thời trong thời gian override (thường là profile lỏng hơn, ví dụ "allow-all-web").
⚠️ Lưu ý: Override yêu cầu người dùng xác thực bằng tài khoản hợp lệ trước khi được cấp quyền vượt qua — không phải ai cũng bấm "Proceed" là qua được, khác với hành động
warning(chỉ cảnh báo, không cần đăng nhập).
2.7 Bảng tổng hợp các hành động category
| Action | Hành vi |
|---|---|
allow |
Cho phép, vẫn qua các Security Profile khác |
block |
Chặn hoàn toàn, hiện trang thông báo |
monitor |
Cho phép + ghi log, không chặn |
warning |
Hiện cảnh báo, người dùng có thể tự "Proceed" |
authenticate |
Yêu cầu đăng nhập trước khi cho qua |
3. Hỏi & Đáp
monitor và warning khác nhau thế nào, khi cả hai đều không chặn hẳn?
monitor hoàn toàn im lặng với người dùng — họ không thấy bất kỳ khác biệt nào, chỉ có log được ghi lại phía admin để theo dõi. warning thì người dùng thấy được trang cảnh báo và phải chủ động bấm "Proceed" mới tiếp tục — phù hợp khi muốn nhắc nhở người dùng về chính sách công ty mà không chặn cứng.
Nếu một domain vừa nằm trong URL Filter (allow) vừa thuộc category đang bị block, kết quả cuối là gì?
URL Filter tường minh được ưu tiên hơn FortiGuard Category theo đúng thứ tự đã nêu — domain đó sẽ được allow theo cấu hình URL Filter, bất kể FortiGuard đang phân loại category đó là gì.
Override có áp dụng vĩnh viễn sau khi người dùng bấm 1 lần không?
Không — Override chỉ có hiệu lực trong khoảng thời gian đã cấu hình ở ovrd-dur (tính bằng phút). Sau khi hết thời gian, hành vi Web Filter quay lại trạng thái ban đầu (chặn theo category), người dùng phải override lại nếu cần tiếp tục truy cập.
Category ID (như số 23 trong ví dụ) có cố định giữa các phiên bản FortiOS không?
Không nên xem là cố định tuyệt đối — Fortinet có thể điều chỉnh/thêm category mới theo thời gian. Đây là lý do nên tra cứu qua GUI hoặc CLI (?) như đã hướng dẫn ở mục 2.1, thay vì nhớ cứng số liệu khi cấu hình trên thiết bị thật.
4. Quiz
Câu 1: Khi có xung đột giữa Local Category và FortiGuard Category cho cùng một website, kết quả nào được ưu tiên?
- A. FortiGuard Category luôn thắng
- B. Local Category được ưu tiên cao hơn
- C. Cả hai được áp dụng đồng thời
- D. FortiGate báo lỗi cấu hình
Câu 2: Hành động nào cho phép truy cập nhưng hoàn toàn không hiển thị bất kỳ thông báo nào cho người dùng, chỉ ghi log phía admin?
- A. block
- B. warning
- C. monitor
- D. authenticate
Câu 3: Trong URL Filter, các entry được xử lý theo nguyên tắc nào?
- A. Ngẫu nhiên
- B. Theo thứ tự từ trên xuống, match đầu tiên thắng
- C. Theo bảng chữ cái tên miền
- D. Chỉ entry cuối cùng có hiệu lực
Câu 4: Tham số ovrd-scope trong cấu hình Override quyết định điều gì?
- A. Thời gian hiệu lực override
- B. Phạm vi áp dụng override: theo user, user-group, hay IP
- C. Category nào bị chặn
- D. Không có tác dụng gì
Câu 5: Sau khi hết thời gian ovrd-dur, hành vi Web Filter sẽ như thế nào?
- A. Tiếp tục cho phép vĩnh viễn
- B. Tự động quay về trạng thái chặn ban đầu theo cấu hình category
- C. Xóa toàn bộ cấu hình Web Filter
- D. Yêu cầu khởi động lại thiết bị
👉 Đáp án
Câu 1: B Local Category (tự định nghĩa) luôn được ưu tiên cao hơn FortiGuard Category theo thứ tự phân loại cố định: Local → Remote/External Threat Feed → FortiGuard.
Câu 2: C monitor cho phép truy cập và ghi log phía admin, nhưng hoàn toàn không hiển thị bất kỳ thông báo nào cho người dùng — khác với warning yêu cầu người dùng thấy và bấm "Proceed".
Câu 3: B Các entry trong URL Filter được xử lý theo thứ tự từ trên xuống, entry đầu tiên khớp điều kiện sẽ được áp dụng, tương tự nguyên tắc Policy Lookup.
Câu 4: B ovrd-scope quyết định phạm vi áp dụng của override — chỉ riêng user vừa xác thực, cả user-group, hay toàn bộ traffic từ một địa chỉ IP.
Câu 5: B Sau khi hết thời gian ovrd-dur, hành vi Web Filter tự động quay về trạng thái chặn ban đầu theo đúng cấu hình category, người dùng phải override lại nếu muốn tiếp tục truy cập.
📚 Bài viết thuộc khóa học FortiGate của VNExperts
🧭 Điều hướng
| ⬅️ Bài trước | 🏠 Mục lục khóa học | Bài kế tiếp ➡️ |
|---|---|---|
| Antivirus Profile: Flow-based vs Proxy-based | Mục lục khóa học FortiGate | Application Control: Sensor, Category, Override |
