Danh mục sản phẩm
Kiến trúc FortiOS: Profile-based vs Policy-based NGFW & Luồng xử lý gói tin (Packet Flow)
1. Liên hệ thực tế
Anh Nam đang cấu hình FortiGate mới cho khách hàng, vào System > Settings thì thấy một tùy chọn tên "NGFW Mode" với hai lựa chọn: Profile-based và Policy-based. Mặc định đang để Profile-based, nhưng anh không chắc hai chế độ này khác nhau thế nào, và đổi qua lại có ảnh hưởng gì đến cấu hình đã làm hay không.
Cùng lúc đó, khi viết thứ tự các Firewall Policy, anh Nam cũng thắc mắc: gói tin đi vào FortiGate thì DNAT, Routing, và Policy match cái nào xảy ra trước?
Chị Lan: "Hai câu hỏi này thực ra đều nằm trong một bức tranh lớn hơn — kiến trúc xử lý gói tin của FortiOS. Hiểu đúng thứ tự này sẽ giúp anh tránh được rất nhiều lỗi cấu hình khó hiểu sau này, đặc biệt là với NAT và routing."
2. Kiến thức cốt lõi
2.1 FortiOS là firewall dạng stateful — khái niệm "session"
Theo tài liệu Fortinet, FortiOS sử dụng cơ chế kernel-based stateful inspection — nghĩa là quyết định cho phép/chặn traffic không xét từng gói tin riêng lẻ, mà xét theo session: gói tin đầu tiên của một kết nối (SYN đối với TCP, hoặc gói đầu tiên đối với UDP/ICMP) được dùng để thiết lập session, các gói tiếp theo thuộc cùng kết nối đó được đối chiếu với session đã tồn tại thay vì tra cứu lại toàn bộ Policy từ đầu. Đây chính là nền tảng cho cơ chế fast path offload đã học ở Bài 2.
2.2 Ba kiến trúc inspection trên FortiOS
Tài liệu Fortinet (FortiOS Administration Guide) mô tả FortiGate xử lý nội dung traffic theo ba cơ chế:
- Kernel-based stateful inspection — kiểm tra bảo mật ở mức từng gói tin, dựa trên trạng thái session cơ bản (source/destination IP, port, protocol).
- Flow-based inspection — chụp nhanh (snapshot) các gói nội dung và dùng pattern matching để phát hiện mối đe dọa trong nội dung, xử lý theo thời gian thực khi traffic đi qua (dùng cho IPS engine).
- Proxy-based inspection — FortiGate đóng vai trò trung gian, tái tạo lại (reconstruct) toàn bộ nội dung traffic trước khi kiểm tra bảo mật, sau đó mới chuyển tiếp — đây là cơ chế được dùng khi bật SSL Deep Inspection đã nói ở Bài 2.
Mỗi Firewall Policy sẽ dùng một trong các cơ chế inspection này tùy vào loại security profile được gán vào.
2.3 Luồng xử lý gói tin (Packet Flow) tổng quát
Theo tài liệu "Parallel Path Processing (Life of a Packet)" của Fortinet, một gói tin đi qua FortiGate (trường hợp không có NP offload, tức đi đường "chậm" qua CPU/kernel) theo trình tự các bước chính sau:
Giai đoạn Ingress (gói tin đi vào):
- Gói tin được nhận tại interface, driver mạng chuyển gói vào hệ thống
- Kiểm tra DoS sensor (nếu có cấu hình DoS Policy)
- Nếu là gói IPSec VPN, thực hiện giải mã tại giai đoạn này
⚠️ Lưu ý: Trình tự trên là luồng xử lý cho traffic không được NP offload. Đối với traffic đủ điều kiện fast path (đã học ở Bài 2), từ gói tin thứ hai trở đi phần lớn các bước trên được NP xử lý trực tiếp mà không cần đi qua kernel/CPU theo đúng trình tự này.
Giai đoạn kernel xử lý (sau khi qua hết các bước ingress):
4. Destination NAT (DNAT) — kiểm tra bảng NAT, đổi địa chỉ IP đích nếu traffic khớp cấu hình VIP/Port Forwarding. Theo tài liệu Fortinet, DNAT bắt buộc thực hiện trước Routing, vì FortiGate cần biết đúng địa chỉ đích thật sự thì mới định tuyến chính xác được. 5. Routing — dùng bảng định tuyến để xác định interface gói tin sẽ đi ra, đồng thời phân biệt traffic là local (đến chính FortiGate) hay forwarded (đi qua FortiGate).
6. Firewall Policy match — Policy được đối chiếu dựa trên interface nguồn/đích của gói tin.
7. Nếu Policy có gán security profile, traffic được chuyển tới flow engine (IPS process) hoặc proxy engine (wad process) để thực hiện UTM/NGFW inspection tương ứng.
Giai đoạn Egress (gói tin đi ra):
8. Source NAT (SNAT) — kiểm tra bảng NAT, đổi địa chỉ IP nguồn nếu traffic khớp cấu hình SNAT/Central SNAT (thường dùng khi traffic từ mạng nội bộ ra Internet).
9. Nếu gói tin đi vào IPSec VPN tunnel, thực hiện mã hóa và đóng gói (encapsulation) tại bước này.
10. Áp dụng Traffic Shaping (nếu có cấu hình).
11. Gói tin được xử lý bởi TCP/IP stack và thoát ra khỏi interface egress.
Gộp lại cả 3 giai đoạn trên, toàn cảnh luồng xử lý gói tin qua FortiGate như sau:
⚠️ Lưu ý: Trình tự trên là luồng xử lý cho traffic không được NP offload. Đối với traffic đủ điều kiện fast path (đã học ở Bài 2), từ gói tin thứ hai trở đi phần lớn các bước trên được NP xử lý trực tiếp mà không cần đi qua kernel/CPU theo đúng trình tự này.
2.4 NGFW Mode: Profile-based vs Policy-based
Theo tài liệu chính thức Fortinet, FortiOS hỗ trợ hai chế độ NGFW mode, cấu hình theo từng VDOM tại System > Settings, và chỉ khả dụng khi VDOM đang ở Flow-based inspection mode:
Profile-based NGFW (mặc định) — chế độ truyền thống: admin tạo trước các profile (Antivirus, Web Filter, IPS...) rồi gán profile đó vào Firewall Policy. Việc đối chiếu Policy dựa trên network session tuple thông thường (source/destination IP, port, protocol).
Policy-based NGFW — chế độ mới hơn: cho phép thêm trực tiếp Application và URL Category vào Security Policy mà không cần tạo Web Filter hay Application Control profile riêng. Traffic được tách thành hai giai đoạn: SSL Inspection & Authentication Policy xử lý trước (SSL Inspection, xác thực user/group), sau đó mới đến Security Policy. Ở chế độ này, Central NAT luôn được bật bắt buộc.
⚠️ Lưu ý quan trọng: Theo tài liệu Fortinet, việc chuyển đổi qua lại giữa hai NGFW mode sẽ khiến các Firewall Policy hiện tại không tương thích và bị xóa — vì cấu trúc Policy giữa hai chế độ không thể chuyển đổi lẫn nhau. Nếu chỉ muốn thử nghiệm Policy-based mode, nên tạo VDOM riêng thay vì đổi trực tiếp trên VDOM đang chạy production.
🔄 Khác biệt version FortiOS: Policy-based NGFW mode được giới thiệu từ FortiOS 5.6. Ở các bản 7.x gần đây (bao gồm 7.0 khóa học đang bám theo), giao diện cấu hình Policy-based đã được tinh gọn hơn, tách rõ hai bước SSL Inspection & Authentication Policy và Security Policy như mô tả ở trên.
3. Hỏi & Đáp
FortiGate mặc định chạy ở NGFW mode nào?
Profile-based — đây là chế độ mặc định và cũng là chế độ được dùng phổ biến nhất trong thực tế triển khai doanh nghiệp, vì tương thích với hầu hết tài liệu, community, và các bài trong khóa học này cũng mặc định dùng Profile-based trừ khi ghi chú khác.
Có thể đổi giữa Profile-based và Policy-based bất cứ lúc nào không?
Có thể đổi, nhưng theo tài liệu Fortinet, hành động này sẽ xóa toàn bộ Firewall Policy hiện tại vì hai chế độ có cấu trúc Policy không tương thích nhau. Nên backup cấu hình trước khi đổi, hoặc test trên VDOM riêng.
DNAT và SNAT xảy ra ở giai đoạn nào trong luồng xử lý gói tin?
DNAT xảy ra sớm, ngay sau các bước ingress và trước Routing (để định tuyến đúng theo địa chỉ đích thật). SNAT xảy ra muộn hơn, ở giai đoạn egress, sau khi Policy đã match và UTM inspection (nếu có) đã hoàn tất.
4. Quiz
Câu 1: NGFW Mode mặc định của FortiOS là gì?
- A. Policy-based
- B. Profile-based
- C. Session-based
- D. Hybrid mode
Câu 2: Trong luồng xử lý gói tin của FortiGate, vì sao DNAT phải thực hiện trước bước Routing?
- A. Vì DNAT nhanh hơn nên ưu tiên xử lý trước
- B. Để FortiGate định tuyến chính xác theo địa chỉ IP đích thật sau khi đã đổi qua DNAT
- C. Vì Routing chỉ hoạt động sau khi Policy match xong
- D. Không có lý do kỹ thuật, đây chỉ là quy ước cấu hình
👉 Đáp án:
Câu 1: B — Profile-based là NGFW mode mặc định của FortiOS; Policy-based là chế độ tùy chọn, chỉ khả dụng khi VDOM ở Flow-based inspection mode.
Câu 2: B — DNAT phải thực hiện trước Routing vì nếu không đổi địa chỉ đích trước, FortiGate sẽ định tuyến gói tin dựa trên địa chỉ IP đích cũ (chưa đúng), dẫn đến traffic bị định tuyến sai.
📚 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 ➡️ |
|---|---|---|
| FortiASIC — Chip NP và CP | Mục lục khóa học FortiGate | Các dòng thiết bị FortiGate |
