iT邦幫忙

2026 iThome 鐵人賽

DAY 27
0
Security

從零打造 Wazuh 自動化防禦與威脅狩獵戰情中心系列 第 27 篇

Day 27|修正 Active Response:讓 SSH 偵測與自動封鎖正確連接

  • 分享至 

  • xImage
  •  

前一天已經開始排查 Active Response 沒有成功封鎖來源 IP 的問題。

當時遇到的情況是:

SSH 登入失敗
      ↓
Wazuh Alert ✓
      ↓
Active Response ?
      ↓
來源 IP 未被封鎖 ✗

經過檢查後,我將問題集中在兩個方向:

  1. Active Response 的 Rule ID 是否與實際警報一致。
  2. Ubuntu 的防火牆環境是否能正常執行 firewall-drop。

今天就針對這兩個部分進行確認與修正,為最後的封鎖測試做準備。


1. 修正 Rule ID 對應問題

首先回到 Wazuh Dashboard,確認 SSH 登入異常實際觸發的規則。

這次使用的自訂規則為:

Rule ID:100002

接著開啟 Wazuh Manager 的設定檔:

sudo nano /var/ossec/etc/ossec.conf

確認 Active Response 中的設定:

<rules_id>100002</rules_id>

這裡最重要的就是:

Dashboard 實際觸發的 Rule ID,必須與 Active Response 指定的 Rule ID 一致。

如果兩者不同,即使 Dashboard 有 Alert,也不代表會執行封鎖動作。

因此我重新確認了自訂 Rule 與 Active Response 的對應關係,讓系統可以根據正確的規則執行回應。


2. 確認 firewall-drop 的執行環境

除了 Rule ID,另一個需要確認的是防火牆環境。

這次使用的 Command 是:

firewall-drop

它會透過系統的防火牆工具處理需要封鎖的來源 IP。

因此我先在 Ubuntu Agent 上檢查:

sudo iptables -L -n

這個指令可以查看目前的 iptables 規則,也能協助確認相關工具是否可以正常使用。

由於不同 Linux 環境的防火牆工具與設定可能有所差異,因此不能只確認 Wazuh 已經產生 Alert,就認為 firewall-drop 一定能正常執行。

還需要確認執行封鎖的端點是否具備對應的工具與權限。


3. 再次確認 Active Response 設定

完成前面的檢查後,我重新確認整段設定:

<active-response>
    <command>firewall-drop</command>
    <location>local</location>
    <rules_id>100002</rules_id>
    <timeout>60</timeout>
</active-response>

這次設定的目的很明確:

設定 用途
command 指定 firewall-drop
location 在產生事件的端點執行
rules_id 指定 Rule 100002
timeout 設定 60 秒的暫時封鎖

另外也需要確認 firewall-drop 的 Command 定義存在,並支援設定的逾時解除機制。

這樣才能讓 Active Response 不只收到觸發條件,也有對應的封鎖動作可以執行。


4. 重新啟動 Wazuh Manager

確認設定後,重新啟動 Wazuh Manager:

sudo systemctl restart wazuh-manager

接著查看服務狀態:

sudo systemctl status wazuh-manager

確認服務正常運作後,才繼續進行測試。

這裡需要注意的是,Manager 正常啟動,只代表服務有成功運作,不等於 Active Response 已經成功封鎖 IP。

真正的封鎖效果還是要透過後續測試驗證。


5. 準備重新測試 SSH 自動封鎖

這次重新整理後,預期的完整流程為:

Windows
192.168.212.1
      │
      │ SSH 登入測試
      ▼
Ubuntu Agent
192.168.212.128
      │
      ▼
Wazuh 偵測
      │
      ▼
Rule 100002
      │
      ▼
Active Response
      │
      ▼
firewall-drop
      │
      ▼
暫時封鎖來源 IP

與前一次不同的是,這次已經特別確認 Rule ID 的對應關係,以及封鎖命令所需要的執行環境。

接下來就要重新進行 SSH 登入測試,觀察來源 IP 是否真的會被阻擋。


今日總結

今天主要針對 Active Response 無法封鎖 IP 的問題,重新確認了規則與執行環境。

這次學到最重要的一點是:

自動回應不只是設定一條 Rule,還必須確認觸發條件、執行位置與封鎖工具都能正確配合。

目前已經完成相關設定的確認與調整,接下來就要透過實際連線測試,驗證整個防禦流程是否成功。


Day 28 預告

Active Response 成功了嗎?實測 SSH 自動封鎖效果

下一篇將再次從 Windows 進行 SSH 登入測試,觀察 Wazuh 觸發 Active Response 後的連線變化。

這次要驗證的不只是:

Alert 有沒有出現?

而是:

來源 IP 是否真的無法繼續連線?

看看前面幾天的設定與除錯,能不能讓 Wazuh 從偵測異常,真正走向自動防禦。


上一篇
Day 26|Active Response Debug:從 Rule ID 與 Log 找出封鎖失敗原因
下一篇
Day 28|Active Response 實戰驗證:SSH 連線終於被阻擋了!
系列文
從零打造 Wazuh 自動化防禦與威脅狩獵戰情中心 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言