Danh mục sản phẩm
Automation Stitch (Trigger–Action) cơ bản trên FortiGate
1. Liên hệ thực tế
Sau sự cố nhỏ ở một chi nhánh — một máy trạm bị nhiễm mã độc và quét mạng nội bộ suốt gần 1 giờ trước khi đội IT phát hiện qua log — chị Lan đặt câu hỏi cho anh Nam: "Nếu FortiGate đã phát hiện được host này là compromised ngay từ IPS/AV log, tại sao mình không để nó tự cách ly luôn, thay vì đợi con người đọc log rồi mới xử lý?"
Đây chính là mục đích của Automation Stitch — cơ chế "nếu xảy ra sự kiện X (Trigger) thì tự động thực hiện hành động Y (Action)" ngay trên FortiGate, không cần chờ thao tác thủ công. Bài này trình bày cách xây dựng một stitch cơ bản: từ Trigger (phát hiện Compromised Host) tới Action (gửi email cảnh báo + chạy lệnh cách ly).
2. Kiến thức cốt lõi
2.1 Cấu trúc một Automation Stitch
Một automation stitch gồm 2 thành phần bắt buộc: Trigger (điều kiện/sự kiện kích hoạt trên FortiGate, ví dụ một log cụ thể hoặc một lần đăng nhập thất bại) và Action (hành động FortiGate thực hiện để phản hồi lại trigger đó). Một stitch có thể gồm nhiều action nối tiếp nhau, thực thi theo thứ tự Sequential (lần lượt, có thể chèn delay giữa các bước) hoặc Parallel (đồng thời).
Các nhóm Trigger phổ biến trên FortiOS gồm: Security Fabric (Compromised Host, Security Rating Summary, FortiAnalyzer Event Handler, Fabric Connector Event...), sự kiện hệ thống (Reboot, HA Failover, Conserve Mode, License Expiry, cập nhật AV/IPS DB, CPU cao...), sự kiện log FortiOS, webhook đến, và lịch trình (scheduled trigger). Các nhóm Action phổ biến gồm: an ninh (quarantine qua FortiClient/FortiNAC/NSX, IP Ban), thông báo (email, Slack, Microsoft Teams), điện toán đám mây (AWS Lambda, Azure Function, Google Cloud Function), cùng với CLI Script và Webhook.
2.2 Cấu hình qua GUI
Vào Security Fabric > Automation, thao tác theo 3 tab riêng biệt:
- Tab Trigger: tạo trigger mới, ví dụ chọn loại "Compromised Host".
- Tab Action: tạo action mới, ví dụ chọn "IP Ban" (cách ly địa chỉ IP nguồn) hoặc "Email" (gửi cảnh báo).
- Tab Stitch: tạo stitch, gán Trigger đã tạo, thêm 1 hoặc nhiều Action theo đúng thứ tự mong muốn.
2.3 Cấu hình qua CLI
Ví dụ xây dựng stitch: khi phát hiện Compromised Host, gửi email cảnh báo trước, sau đó (delay 5 giây) mới cách ly IP nguồn bằng CLI Script chạy diagnose user quarantine:
config system automation-action
edit "action_email_alert"
set action-type email
set email-to "soc@vnexperts.vn"
set email-subject "[CẢNH BÁO] Phát hiện Compromised Host"
next
edit "action_quarantine_ip"
set action-type cli-script
set script "diagnose user quarantine add src4 %%log.srcip%% 3600 \"Auto-quarantine compromised host\""
set accprofile "super_admin"
set delay 5
set required enable
next
end
config system automation-trigger
edit "trigger_compromised_host"
set event-type compromised-host
next
end
config system automation-stitch
edit "stitch_auto_quarantine"
set description "Tu dong canh bao va cach ly khi phat hien compromised host"
set trigger "trigger_compromised_host"
config actions
edit 1
set action "action_email_alert"
set required enable
next
edit 2
set action "action_quarantine_ip"
set delay 5
set required enable
next
end
next
end
⚠️ Lưu ý: Placeholder dạng
%%log.srcip%%cho phép action tham chiếu động tới giá trị thực tế trong log gây ra trigger (ví dụ IP nguồn của host bị nghi ngờ) — đây là cơ chế quan trọng giúp 1 stitch xử lý được nhiều tình huống khác nhau mà không cần viết cứng địa chỉ IP cụ thể.
2.4 Kiểm thử stitch trước khi đưa vào production
Không nên chờ sự cố thật xảy ra mới biết stitch có hoạt động đúng hay không. FortiOS hỗ trợ test trực tiếp:
Trên GUI: vào Security Fabric > Automation, chuột phải vào stitch cần test, chọn Test Automation Stitch.
Trên CLI:
diagnose automation test <tên_stitch>
🔄 Khác biệt version FortiOS: Trên FortiOS 7.0, mục cấu hình automation nằm trực tiếp trong menu Security Fabric > Automation như trình bày ở trên. Cần lưu ý số lượng loại Trigger/Action được hỗ trợ tiếp tục được Fortinet mở rộng qua các bản 7.2/7.4 (ví dụ thêm nhiều loại webhook tích hợp) — khi thao tác thực tế nên kiểm tra đúng danh sách Trigger/Action khả dụng trên phiên bản đang chạy thay vì giả định đầy đủ như tài liệu mới nhất.
2.5 Vì sao action "cách ly" nên đặt required enable và cân nhắc delay
Cờ required trên một action quyết định: nếu action đó thất bại, các action tiếp theo trong chuỗi (nếu chạy Sequential) có tiếp tục thực thi hay không. Với action mang tính cảnh báo (ví dụ gửi email) thất bại không nên chặn hành động cách ly quan trọng hơn phía sau — cần cân nhắc kỹ thứ tự và cờ required theo mức độ ưu tiên thực tế của từng action, tránh tình huống action ít quan trọng bị lỗi lại làm "kẹt" luôn action quan trọng nhất.
3. Hỏi & Đáp
Automation Stitch có thể dùng để tự động phản hồi sự kiện từ FortiAnalyzer không, hay chỉ giới hạn sự kiện ngay trên FortiGate?
Có, một trong các loại Trigger phổ biến chính là FortiAnalyzer Event Handler — cho phép FortiGate kích hoạt stitch dựa trên sự kiện đã được FortiAnalyzer xử lý/tương quan từ nhiều nguồn log, không chỉ giới hạn ở log phát sinh cục bộ trên chính FortiGate đó.
Action CLI Script có giới hạn gì về loại lệnh được phép chạy không?
Action CLI Script chạy với quyền hạn của accprofile được gán trong cấu hình action — nên gán đúng profile có đủ nhưng không dư quyền cần thiết (ví dụ không nhất thiết phải dùng super_admin nếu chỉ cần chạy lệnh quarantine), theo đúng nguyên tắc least-privilege đã áp dụng quen thuộc từ phần quản lý Admin ở Nhóm 1.
Nếu đặt nhiều Action chạy Parallel thay vì Sequential thì sao?
Với chế độ Parallel, các action được thực thi gần như đồng thời, không đảm bảo thứ tự hoàn thành và không dùng được tham số delay giữa các bước như Sequential. Phù hợp khi các action độc lập nhau hoàn toàn (ví dụ vừa gửi email vừa gửi Slack cùng lúc); không phù hợp khi action sau cần chờ kết quả hoặc dữ liệu từ action trước.
4. Quiz
Câu 1: Hai thành phần bắt buộc cấu thành một Automation Stitch là gì?
- A. ADOM và Policy Package
- B. Trigger và Action
- C. WTP và WTP Profile
- D. Heartbeat interface và Device priority
Câu 2: Loại Trigger nào cho phép stitch kích hoạt dựa trên sự kiện đã được tương quan xử lý từ FortiAnalyzer?
- A. Compromised Host
- B. FortiAnalyzer Event Handler
- C. Conserve Mode
- D. License Expiry
Câu 3: Lệnh CLI nào dùng để kiểm thử một Automation Stitch trước khi đưa vào vận hành thật?
- A.
execute ha failover set 1 - B.
diagnose automation test <tên_stitch> - C.
diagnose sys ha checksum cluster - D.
get system ha status
👉 Đáp án
Câu 1: B Một Automation Stitch bắt buộc gồm Trigger (điều kiện/sự kiện kích hoạt) và một hoặc nhiều Action (hành động phản hồi), có thể chạy tuần tự (Sequential) hoặc song song (Parallel).
Câu 2: B FortiAnalyzer Event Handler là loại Trigger cho phép FortiGate kích hoạt stitch dựa trên sự kiện đã được FortiAnalyzer xử lý và tương quan từ nhiều nguồn log khác nhau, không chỉ giới hạn ở log cục bộ.
Câu 3: B Lệnh diagnose automation test <tên_stitch> cho phép kiểm thử một automation stitch đã cấu hình, giúp xác nhận trigger/action hoạt động đúng trước khi phụ thuộc vào nó trong tình huống sự cố thật.
📚 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 ➡️ |
|---|---|---|
| Fabric Connector: kết nối AWS, Azure, VMware | Mục lục khóa học FortiGate | REST API FortiGate — hướng đi tự động hóa |
