Danh mục sản phẩm
DoS Policy trên FortiGate — chống tấn công từ chối dịch vụ cơ bản
1. Liên hệ thực tế
Đêm khuya, hệ thống giám sát báo động: server web public của khách hàng đột nhiên không phản hồi, CPU FortiGate tăng vọt. Anh Nam kiểm tra log thấy hàng chục nghìn gói SYN dồn dập tới server đó từ nhiều IP khác nhau chỉ trong vài phút — dấu hiệu kinh điển của SYN Flood, một dạng tấn công từ chối dịch vụ (DoS).
Anh Nam gọi chị Lan giữa đêm: "Firewall Policy và UTM profile của em đã bật đầy đủ Antivirus, IPS rồi mà vẫn không chặn kịp, server vẫn đơ."
Chị Lan giải thích: "Antivirus hay IPS phân tích nội dung traffic — để làm được việc đó, FortiGate phải tốn tài nguyên xử lý từng gói. Với tấn công dạng flood khối lượng lớn như này, cần chặn từ sớm hơn nhiều, trước khi traffic kịp tới các bước xử lý nặng đó. Đây chính là việc của DoS Policy — em chưa cấu hình nó."
Bài này giới thiệu DoS Policy — cơ chế phát hiện và chặn traffic bất thường dựa trên ngưỡng (threshold), hoạt động ở vị trí sớm nhất trong luồng xử lý của FortiGate.
2. Kiến thức cốt lõi
2.1 DoS Policy là gì, vì sao xử lý sớm nhất
DoS Policy cho phép FortiGate kiểm tra traffic đến một interface để phát hiện các mẫu traffic bất thường thường gặp trong các cuộc tấn công từ chối dịch vụ, chẳng hạn SYN Flood, UDP Flood hoặc ICMP Flood. Người quản trị đặt các ngưỡng (threshold) phù hợp và xác định hành động khi traffic vượt ngưỡng.
DoS Policy được xử lý rất sớm trong packet flow, đặc biệt đối với traffic đi xuyên qua FortiGate — tách biệt với traffic có đích đến là chính FortiGate (traffic quản trị, đã xử lý qua Local-In Policy ở bài trước). Khi traffic vi phạm ngưỡng bị DoS Policy loại bỏ, nó không tiếp tục đi tới các bước xử lý sâu hơn của firewall (Firewall Policy, IPS, Antivirus...).
Nhờ khả năng loại bỏ traffic bất thường từ sớm, DoS Policy giúp giảm lượng traffic phải đi qua các bước xử lý sâu hơn — đặc biệt hữu ích khi FortiGate phải đối phó với các cuộc tấn công có lưu lượng lớn, tránh lãng phí tài nguyên cho việc phân tích nội dung (Antivirus, IPS) trên những gói tin vốn đã xác định là bất thường ngay từ đầu.
Nhờ vị trí xử lý sớm này, traffic tấn công bị chặn trước khi tốn tài nguyên cho các bước nặng hơn phía sau như Firewall Policy Lookup, Antivirus scan, hay IPS — đây là lý do DoS Policy được xem là lớp phòng thủ hiệu quả về tài nguyên nhất khi đối phó với tấn công khối lượng lớn.
⚠️ Lưu ý: Trên thiết bị xuất xưởng mặc định, không có DoS Policy nào được cấu hình sẵn — vì một DoS Policy cấu hình sai có thể ảnh hưởng tới traffic hợp lệ. Người quản trị phải tự tạo trước khi tính năng này có hiệu lực.
2.2 Cấu trúc DoS Policy — các Anomaly phổ biến
config firewall DoS-policy
edit 1
set name "Chong-Flood-WebServer"
set interface "wan1"
set srcaddr "all"
set dstaddr "Web-Server-Public"
set service "ALL"
config anomaly
edit "tcp_syn_flood"
set status enable
set log enable
set action block
set threshold 2000
next
edit "icmp_flood"
set status enable
set log enable
set action block
set threshold 250
next
edit "udp_flood"
set status enable
set log enable
set action block
set threshold 2000
next
end
next
end
Một số Anomaly phổ biến hay dùng:
| Anomaly | Ý nghĩa |
|---|---|
tcp_syn_flood |
Số gói SYN/giây vượt ngưỡng — dấu hiệu SYN Flood |
tcp_port_scan |
Một nguồn quét nhiều cổng liên tiếp trong thời gian ngắn |
icmp_flood |
Số gói ICMP/giây vượt ngưỡng |
udp_flood |
Số gói UDP/giây vượt ngưỡng |
tcp_src_session / tcp_dst_session |
Số phiên TCP đồng thời từ một nguồn/tới một đích vượt ngưỡng |
Mỗi Anomaly có 3 tham số chính: status (bật/tắt), log (ghi log khi phát hiện), và action (pass cho qua chỉ để log, hoặc blockchặn hẳn).
2.3 Threshold — hai đơn vị đo khác nhau
Ngưỡng (threshold) của mỗi Anomaly được đo theo một trong hai đơn vị, tùy loại:
- Số phiên đồng thời (concurrent sessions) — dùng cho các Anomaly như
tcp_src_session. Vượt ngưỡng này, Anomaly chặn không cho vượt quá số phiên đã đặt; sau khi hết chu kỳ đo (thường 60 giây), bộ đếm reset về 0 và cho phép lại đúng số lượng đó. - Gói/giây (packets per second - pps) — dùng cho các Anomaly dạng flood như
tcp_syn_flood,icmp_flood. Với loại này, hành viblockcó thể vận hành theo một trong hai chế độ:
config ips global
set anomaly-mode continuous
end
continuous(mặc định) — sau khi phát hiện vượt ngưỡng, chặn liên tục toàn bộ gói tiếp theo cho tới khi tốc độ traffic giảm xuống dưới ngưỡng.periodical— sau khi phát hiện vượt ngưỡng, vẫn cho qua đúng số gói bằng threshold mỗi giây, chỉ chặn phần vượt quá — phù hợp khi không muốn chặn tuyệt đối một dịch vụ, chỉ cần giới hạn tốc độ.
⚠️ Lưu ý: Việc chọn ngưỡng threshold phù hợp đòi hỏi hiểu rõ traffic baseline bình thường của hệ thống — đặt quá thấp dễ gây false positive (chặn nhầm traffic hợp lệ khi lượng truy cập tăng đột biến tự nhiên, ví dụ giờ cao điểm), đặt quá cao thì mất tác dụng phòng thủ thực sự. Nên bắt đầu với
action pass+log enableđể quan sát traffic thực tế trong một thời gian, từ đó tinh chỉnh ngưỡng hợp lý trước khi chuyển sangaction block.
2.4 Quarantine — cô lập nguồn tấn công
Ngoài chặn từng gói vượt ngưỡng, một số phiên bản FortiOS hỗ trợ thêm cơ chế Quarantine — chặn hẳn toàn bộ traffic tiếp theo từ chính địa chỉ IP nguồn bị coi là kẻ tấn công, trong một khoảng thời gian nhất định:
config anomaly
edit "tcp_syn_flood"
set status enable
set log enable
set action block
set threshold 2000
set quarantine attacker
set quarantine-expiry 1h
set quarantine-log enable
next
end
IP bị Quarantine sẽ được thêm vào banned user list — danh sách này dùng chung bởi nhiều tính năng khác (Antivirus, DLP, IPS), nghĩa là một khi bị đánh dấu, nguồn đó bị chặn xuyên suốt các Policy khác cũng tham chiếu tới banned list, không chỉ riêng DoS Policy.
2.5 DoS Policy hardware acceleration — tăng tốc bằng NP
Trên các model có chip NP7 (hoặc NP6XLite), một số Anomaly như tcp_syn_flood có thể được offload xuống phần cứng, xử lý bằng cơ chế SYN cookies ngay ở tầng ASIC thay vì CPU chính — giúp phòng thủ hiệu quả hơn nhiều khi lưu lượng tấn công cực lớn (đã học nguyên lý NP ở bài FortiASIC nhóm 1).
⚠️ Lưu ý: Theo kinh nghiệm triển khai thực tế được cộng đồng Fortinet ghi nhận, DoS Policy — đặc biệt các Anomaly liên quan TCP SYN — có xu hướng gây false positive khi bảo vệ các server có lượng truy cập hợp lệ tăng đột biến (ví dụ sự kiện bán hàng, cao điểm truy cập). Với mạng nhỏ không có server public đối diện Internet, DoS Policy có thể không thực sự cần thiết; nhưng với server public quan trọng, nên triển khai có giám sát và tinh chỉnh threshold cẩn thận thay vì áp giá trị mặc định rồi bỏ qua.
3. Hỏi & Đáp
DoS Policy có thay thế được thiết bị chống DDoS chuyên dụng không?
Không nên xem là thay thế hoàn toàn — DoS Policy trên FortiGate phù hợp chống các cuộc tấn công quy mô vừa và nhỏ ở tầng mạng cục bộ. Với tấn công DDoS quy mô lớn từ nhiều nguồn phân tán (hàng trăm nghìn gói/giây trở lên), thường cần thêm giải pháp chuyên dụng ở tầng ISP/cloud (scrubbing center) phối hợp cùng DoS Policy trên FortiGate.
Vì sao DoS Policy dễ gây false positive hơn Firewall Policy thông thường?
Vì DoS Policy hoạt động dựa trên ngưỡng số liệu thống kê (bao nhiêu gói/giây, bao nhiêu phiên đồng thời) chứ không phân tích nội dung hay ngữ cảnh cụ thể — một đợt tăng traffic hợp lệ đột biến (ví dụ nhiều người dùng cùng truy cập một sự kiện) có thể trông giống hệt một cuộc tấn công về mặt số liệu thống kê thuần túy.
Có nên bật toàn bộ Anomaly cùng lúc với action block ngay từ đầu không?
Không nên — cách an toàn là bật từng Anomaly với action pass + log enable trước để quan sát traffic baseline thực tế của hệ thống trong một thời gian, sau đó mới tinh chỉnh threshold hợp lý và chuyển dần sang action block cho từng Anomaly, tránh gây gián đoạn dịch vụ ngoài ý muốn ngay khi mới triển khai.
Quarantine list có ảnh hưởng tới traffic không liên quan gì tới DoS Policy không?
Có — vì banned user list được dùng chung bởi nhiều tính năng (DoS, Antivirus, DLP, IPS), một IP bị Quarantine bởi DoS Policy sẽ bị chặn ở mọi Policy khác có tham chiếu tới banned list đó, không chỉ riêng traffic khớp DoS Policy ban đầu.
4. Quiz
Câu 1: DoS Policy được xử lý ở vị trí nào đối với traffic đi xuyên qua FortiGate?
- A. Sau khi đã qua Firewall Policy và UTM profile
- B. Rất sớm trong packet flow, trước cả Firewall Policy
- C. Chỉ áp dụng cho traffic đã được NAT
- D. Không có thứ tự cố định, ngẫu nhiên tùy tải hệ thống
Câu 2: Theo mặc định, một FortiGate xuất xưởng có sẵn DoS Policy nào được cấu hình chưa?
- A. Có sẵn đầy đủ tất cả Anomaly ở chế độ block
- B. Không có DoS Policy nào được cấu hình sẵn — phải tự tạo
- C. Chỉ có sẵn tcp_syn_flood, các Anomaly khác phải tự thêm
- D. DoS Policy luôn bật mặc định và không thể tắt
Câu 3: Với threshold đo theo pps (packets per second), chế độ continuous hoạt động ra sao?
- A. Chặn liên tục toàn bộ gói tiếp theo ngay khi vượt ngưỡng, cho tới khi tốc độ giảm xuống dưới ngưỡng
- B. Luôn cho qua đúng số gói bằng threshold mỗi giây
- C. Không bao giờ chặn, chỉ ghi log
- D. Chỉ hoạt động với giao thức UDP
Câu 4: Quarantine trong DoS Policy có tác dụng gì?
- A. Chỉ ghi log, không chặn gì cả
- B. Chặn hẳn toàn bộ traffic tiếp theo từ chính IP nguồn bị coi là kẻ tấn công, thêm vào banned user list dùng chung với các tính năng khác
- C. Tự động đổi IP nguồn của kẻ tấn công
- D. Chỉ áp dụng cho traffic IPv6
Câu 5: Vì sao nên bắt đầu triển khai DoS Policy với action pass + log enable thay vì action block ngay từ đầu?
- A. Vì
action blockkhông tồn tại trên FortiOS - B. Để quan sát traffic baseline thực tế, tránh false positive khi threshold chưa được tinh chỉnh phù hợp
- C. Vì
action passcó hiệu năng tốt hơn action block - D. Không có lý do kỹ thuật nào, chỉ là thói quen cá nhân
👉 Đáp án
Câu 1: B Đối với traffic đi xuyên qua FortiGate, DoS Policy được xử lý rất sớm trong packet flow, trước cả Firewall Policy — giúp chặn traffic bất thường sớm mà không tốn tài nguyên cho các bước xử lý nặng hơn phía sau (IPS, Antivirus). Đây là luồng riêng biệt với Local-In Policy, vốn chỉ áp dụng cho traffic có đích đến là chính FortiGate.
Câu 2: B Trên thiết bị xuất xưởng mặc định, không có DoS Policy nào được cấu hình sẵn, vì cấu hình sai có thể ảnh hưởng tới traffic hợp lệ — người quản trị phải tự tạo trước khi tính năng có hiệu lực.
Câu 3: A Chế độ continuous (mặc định) chặn liên tục toàn bộ gói vượt ngưỡng ngay sau khi phát hiện, và tiếp tục chặn cho tới khi tốc độ traffic giảm xuống dưới threshold.
Câu 4: B Quarantine chặn hẳn toàn bộ traffic tiếp theo từ IP nguồn bị coi là tấn công trong một khoảng thời gian, và IP đó được thêm vào banned user list dùng chung bởi nhiều tính năng khác như Antivirus, DLP, IPS.
Câu 5: B Bắt đầu với action pass + log enable giúp quan sát traffic thực tế của hệ thống trước, từ đó tinh chỉnh threshold hợp lý, tránh chặn nhầm traffic hợp lệ (false positive) khi mới triển khai DoS Policy.
📚 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 ➡️ |
|---|---|---|
| Local-In Policy — kiểm soát traffic đến chính FortiGate | Mục lục khóa học FortiGate | Identity Policy & Authentication Rule |
