共用方式為


使用 Azure 監視器代理程式,以內嵌 Syslog 和 CEF 訊息至 Microsoft Sentinel

本文說明如何透過 AMA 使用 Syslog,以及透過 AMA 來使用常見事件格式 (CEF) 連接器,以快速篩選和內嵌來自 Linux 機器、網路、安全性裝置和設備的 Syslog 訊息,包含常見事件格式 (CEF) 的訊息。。 若要深入了解這些資料連接器,請參閱透過 AMA 連接器內嵌 Syslog 和常見事件格式 (CEF) 至 Microsoft Sentinel

注意

Container Insights 現在支援來自 AKS 叢集中 Linux 節點的一系列 Syslog 事件自動收集。 若要深入了解,請參閱使用容器深入解析收集 Syslog

必要條件

開始之前,您必須設定資源,以及本章節所述的適當存取權限。

Microsoft Sentinel 必要條件

針對 Microsoft Sentinel,請安裝適當的解決方案,並確保您有權完成本文中的步驟。

  • 從 Microsoft sentinel 中 [內容中心] 的 [Syslog] 和/或 [常見事件格式] 安裝適當的解決方案。 如需詳細資訊,請參閱探索和管理 Microsoft Sentinel 現成可用的內容

  • 您的 Azure 帳戶必須具有下列 Azure 角色型存取控制 (Azure RBAC) 角色:

    內建角色 範圍 原因
    - 虛擬機器參與者
    - Azure Connected Machine
       資源管理員
  • 虛擬機器 (VM)
  • 虛擬機器擴展集
  • 已啟用 Azure Arc 的伺服器 (英文)
  • 若要部署代理程式
    包含此動作的任何角色
    Microsoft.Resources/deployments/*
  • 訂用帳戶
  • 資源群組
  • 現有的資料收集規則
  • 部署 Azure Resource Manager 範本
    監視參與者
  • 訂用帳戶
  • 資源群組
  • 現有的資料收集規則
  • 為了建立或編輯資料收集規則

記錄轉寄站必要條件

如果您要從記錄轉寄站收集訊息,則適用下列必要條件:

  • 您必須將指定的 Linux VM 指定為記錄轉寄站,才能收集記錄。

  • 如果您的記錄轉寄站不是 Azure 虛擬機器,則記錄轉寄站必須安裝 Azure Arc Connected Machine 代理程式

  • Linux 記錄轉寄站 VM 必須安裝 Python 2.7 或 Python 3。 使用 python --versionpython3 --version 命令來檢查。 如果您使用 Python 3,請確保其已設定為機器的預設命令,或使用「python3」命令執行指令碼,而不是使用「python」。

  • 記錄轉寄站必須啟用 syslog-ngrsyslog 精靈。

  • 如需記錄轉寄站的空間需求,請參閱 Azure 監視器代理程式效能基準。 您也可以檢閱 此部落格文章,其中包含可調整內嵌的設計。

  • 您的記錄來源、安全性裝置和設備必須設定為將其記錄訊息傳送至記錄轉寄站的 Syslog 精靈,而不是傳送至本機 Syslog 精靈。

機器安全性必要條件

根據組織的安全性原則設定機器的安全性。 例如,可根據公司網路安全性原則設定網路,並且依需求變更精靈中的連接埠和通訊協定。 若要改善機器安全性設定,請在 Azure 中保護您的 VM,或檢閱下列網路安全性的最佳做法

如果您的裝置透過 TLS 傳送 Syslog 和 CEF 記錄 (例如,由於您的記錄轉寄站位於雲端),您必須設定 Syslog 精靈 (rsyslogsyslog-ng),才能在 TLS 中進行通訊。 如需詳細資訊,請參閱

設定資料連接器:

透過 AMA 或透過 AMA 資料連接器常見事件格式 (CEF) 內嵌的 Syslog 安裝流程包含下列步驟:

  1. 安裝 Azure 監視器代理程式,並使用下列任一方法建立資料收集規則 (DCR):
  2. 如果您要使用記錄轉寄站從其他機器收集記錄,在記錄轉寄站上執行「安裝」指令碼,以設定 Syslog 精靈接聽來自其他機器的訊息,以及開啟所需的本機連結埠。

選取適當的索引標籤以取得指示。

建立資料收集規則

若要開始使用,請在 Microsoft Sentinel 中開啟資料連接器,並建立資料連接器規則。

  1. 針對 Azure 入口網站的 Microsoft Sentinel,在 [設定] 下方選取 [資料連接器].。
    針對 Defender 入口網站中的 Microsoft Sentinel,選取 [Microsoft Sentinel]> [設定]> [資料連接器]

  2. 針對 syslog,在 [搜尋] 方塊中輸入 [Syslog]。 從結果中選取 [透過 AMA 連接器內嵌的 Syslog]
    針對 CEF,在 [搜尋] 方塊中輸入 [CEF]。 從結果中選取,選取 [透過 AMA 連接器內嵌常見事件格式 (CEF)]

  3. 選取詳細資料窗格上的 [開啟連接器頁面]

  4. 在 [設定] 區域中,選取 [+ 建立資料收集規則]

    顯示透過 AMA 連接器內嵌的 Syslog 頁面的螢幕內嵌畫面。

    顯示透過 AMA 連接器內嵌的 CEF 頁面的螢幕內嵌畫面。

  5. 在 [基本] 索引標籤中:

    • 輸入 DCR 名稱。
    • 選取您的訂用帳戶。
    • 選取您想要尋找 DCR 的資源群組。

    顯示基本索引標籤中的 DCR 詳細資料的螢幕內嵌畫面。

  6. 選取 [下一步: 資源]>

定義 VM 資源

在 [資源] 索引標籤中,選取您要在此案例中安裝 AMA 的機器 — 在此案例中為您的記錄轉寄站機器。 如果您的記錄轉寄站未出現在清單中,則可能尚未安裝 Azure Connected Machine 代理程式至記錄轉寄站。

  1. 使用可用篩選或搜尋方塊來尋找您的記錄轉寄站 VM。 展開清單中的訂閱以查看其資源群組,以及展開資源群組以查看其 VM。

  2. 選取您要安裝 AMA 的記錄轉寄站 VM。 當您將滑鼠停留在 VM 名稱上方時,核取方塊會出現在 VM 名稱旁邊。

    顯示如何在設定 DCR 時選取資源的螢幕內嵌畫面。

  3. 檢閱您的變更,並選取 [下一步: 收集]>

選取設施和嚴重性

請注意,針對 Syslog 和 CEF 訊息使用相同的設施可能會導致資料內嵌重複。 如需詳細資訊,請參閱避免資料內嵌重複

  1. 針對每個設施,在 [收集] 索引標籤中選取最小記錄層級。 當您選取記錄層級時,Microsoft Sentinel 會收集所選層級的記錄,以及其他嚴重性較高的層級。 例如,如果您選取 LOG_ERR,Microsoft Sentinel 會收集 LOG_ERRLOG_CRITLOG_ALERTLOG_EMERG 層級的記錄。

    顯示如何在設定 DCR 時選取記錄層級的螢幕內嵌畫面。

  2. 檢閱您的選項並選取 [下一步: 檢閱 + 建立]

檢閱並建立規則

完成所有索引標籤後,請檢閱輸入的內容並建立資料收集規則。

  1. 在 [檢閱及建立] 索引標籤中,選取 [建立]

    顯示如何檢閱並建立 DCR 設定的螢幕內嵌畫面。

    連接器會在您建立 DCR 時選取的機器上安裝 Azure 監視器代理程式。

  2. 檢查 Azure 入口網站或 Microsoft Defender 入口網站中的通知,以查看 DCR 的建立時間和代理程式的安裝時間。

  3. 選取連接器頁面上 [重新整理],以查看清單中顯示的 DCR。

執行「安裝」指令碼

如果您正在使用記錄轉寄站,請將 Syslog 精靈設定為接聽來自其他機器的訊息,並開啟所需的本機連結埠。

  1. 從連接器頁面複製出現在執行下列命令以安裝並套用 CEF 收集器下方的命令列:

    顯示連接器頁面上命令列的螢幕內嵌畫面。

    或從這裡複製:

    sudo wget -O Forwarder_AMA_installer.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Forwarder_AMA_installer.py&&sudo python Forwarder_AMA_installer.py
    
  2. 登入您剛安裝 AMA 的記錄轉寄站機器。

  3. 貼上您在最後一個步驟中複製的命令,以啟動安裝指令碼。
    指令碼會將 rsyslogsyslog-ng 精靈設定為使用必要的通訊協定,並重新啟動精靈。 指令碼會開啟連接埠 514,以接聽 UDP 和 TCP 通訊協定中的傳入訊息。 若要變更此設定,請參考根據機器上執行精靈類型的 Syslog 精靈組態檔:

    • Rsyslog:/etc/rsyslog.conf
    • Syslog-ng:/etc/syslog-ng/syslog-ng.conf

    如果您使用 Python 3,而且在機器上尚未設定為預設命令,請將 python3 取代為貼上命令中的 python。 請參閱記錄轉寄站必要條件

    注意

    為了避免磁碟已滿的情況,導致代理程式無法運作,建議您將 syslog-ngrsyslog 組態設定為不儲存不必要的記錄。 磁碟已滿的情況會中斷已安裝 AMA 的運作。 如需詳細資訊,請參閱 RSyslogSyslog-ng

測試連接器

驗證來自 Linux 機器或安全性裝置和設備的記錄訊息已內嵌至 Microsoft Sentinel。

  1. 若要驗證 syslog 精靈是在 UDP 連接埠上執行,且 AMA 正在接聽,請執行此命令:

    netstat -lnptv
    

    您應該會看到在連接埠 514 上接聽的 rsyslogsyslog-ng 精靈。

  2. 若要擷取從記錄器或連線裝置傳送的訊息,請在背景中執行此命令:

    tcpdump -i any port 514 -A -vv &
    
  3. 完成驗證之後,建議您停止 tcpdump:輸入 fg,然後選取 Ctrl+C

  4. 若要傳送示範訊息,請完成下列步驟:

    • 使用 netcat 公用程式。 在此範例中,公用程式會在關閉換行參數的情況下,讀取透過 echo 命令張貼的資料。 然後公用程式會將資料寫入 localhost 上的 UDP 連接埠 514,且不會逾時。 若要執行 netcat 公用程式,您可能需要安裝其他套件。

      echo -n "<164>CEF:0|Mock-test|MOCK|common=event-format-test|end|TRAFFIC|1|rt=$common=event-formatted-receive_time" | nc -u -w0 localhost 514
      
    • 使用記錄器。 此範例會以 CEF RFC 格式,在本機主機上,將訊息寫入 local 4 嚴重性層級 Warning 的設施,連接埠為 514。 使用 -t--rfc3164 旗標是為了符合預期的 RFC 格式。

      logger -p local4.warn -P 514 -n 127.0.0.1 --rfc3164 -t CEF "0|Mock-test|MOCK|common=event-format-test|end|TRAFFIC|1|rt=$common=event-formatted-receive_time"
      
  5. 若要確認是否已正確安裝連接器,請使用下列其中一個命令以執行疑難排解指令碼:

    • 針對 CEF 記錄,請執行:

       sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --cef
      
    • 針對 Cisco Adaptive Security Appliance (ASA) 記錄,請執行:

      sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --asa
      
    • 針對 Cisco Firepower 威脅防禦 (FTD) 記錄,請執行:

      sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --ftd