使用 Azure 監視器 代理將 syslog 和 CEF 訊息導入 Microsoft Sentinel

本文說明如何使用 Syslog via AMA 和 Common Event Format (CEF) via AMA 連接器,篩選並匯入來自 Linux 機器、網路裝置及安全性設備的 syslog 與 CEF 訊息。 開始前,請確保你已依 前置條件設定所需的權限、代理程式和日誌轉發器設定。 欲進一步了解這些資料連接器,請參閱 適用於 Microsoft Sentinel 的 Syslog 與 Common Event Format (CEF) AMA 連接器。

注意事項

Container Insights 支援自動收集您 AKS 叢集中 Linux 節點的 syslog 事件。 如要深入了解,請參閱利用容器深入解析收集 Syslog。

必要條件

開始前,請先檢視以下 Microsoft Sentinel、日誌轉發器及機器安全前置條件,確保資源已配置並分配適當權限,依照 Microsoft Sentinel 前置條件、日誌轉發器前置條件及機器安全前置條件部分所描述。

Microsoft Sentinel prerequisites

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

日誌轉發器的前提條件

如果你是從日誌轉發器收集訊息,以下先決條件適用:

注意事項

當將 AMA 部署到虛擬機器擴展集 (VMSS) 時,強烈建議使用支援循環配置方法的負載平衡器,以確保負載能分散到所有已部署的執行個體。

機械安全前置條件

根據你組織的安全政策來設定機器的安全。 例如,將網路配置為與企業網路安全政策對齊,並調整守護程序中的埠口與協定以符合需求。 為了提升你的機器安全設定,請在 Azure 中保護你的虛擬機,或檢視這些網路安全的最佳實務。

如果您的裝置因為例如日誌轉送器位於雲端等原因而透過 TLS 傳送 syslog 和 CEF 記錄,您就需要將 syslog 常駐程式 (rsyslog 或 syslog-ng) 設定為透過 TLS 通訊。 如需詳細資訊,請參閱:

設定資料連接器

透過AMA或通用事件格式 (CEF) 透過AMA資料連接器建立Syslog的過程包含以下步驟:

  1. 安裝 Azure 監控代理程式,並透過以下任一方法建立 DCR) (資料收集規則:
  2. 如果你是用日誌轉發器從其他機器收集日誌,請在日誌轉發器 上執行「安裝」腳本 ,設定 syslog 守護程序監聽來自其他機器的訊息,並開啟必要的本地埠口。

請選擇相應的分頁以取得指示。

使用 Azure 或 Defender 入口網站建立資料收集規則(DCR),並在日誌轉發器上安裝 Azure 監視器 代理程式。

建立 DCR (資料收集規則)

若要開始,請在 Microsoft Sentinel 中開啟 透過 AMA 的 Syslog 或 透過 AMA 的 Common Event Format (CEF) 資料連接器,然後建立資料收集規則 (DCR)。

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

  2. 關於 syslog,請在搜尋框輸入 Syslog。 從結果中選取透過 AMA 連接器內嵌的 Syslog。
    關於 CEF,請在搜尋框輸入 CEF。 從結果中選取,選取透過 AMA 連接器內嵌常見事件格式 (CEF)。

  3. 在細節面板中選擇 開啟連接器頁面 。

  4. 在 設定 區,選擇 +Create 資料收集規則。

    截圖顯示 Syslog via AMA 連接器頁面。

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

  5. 在 基本 標籤中:

    • 輸入一個 DCR 名稱。
    • 選擇您的訂閱。
    • 選擇你想放置 DCR 的資源群組。

    Basic 分頁中顯示 DCR 細節的截圖。

  6. 選取 下一步:資源 >。

定義虛擬機資源

在 資源 標籤中,選擇你想安裝 AMA 的機器。 在此程序中,選擇您的日誌轉送主機。 如果你的日誌轉發器不在列表中,可能沒有安裝 Azure Connected Machine 代理程式。

  1. 使用可用的篩選器或搜尋框來找到你的日誌轉發虛擬機。 展開清單中的訂用帳戶以檢視其資源群組,再展開資源群組即可查看其中的 VM。

  2. 選擇你想安裝 AMA 的日誌轉發虛擬機。 當你將滑鼠移到虛擬機名稱旁邊時,會顯示這個勾選框。

    截圖示範如何在設定 DCR 時選擇資源。

  3. 檢視您的變更,並選取 下一步:收集 >。

選取設施和嚴重性

請注意,若同時使用相同設施處理系統日誌與 CEF 訊息,可能會導致資料擷取重複。 如需詳細資訊,請參閱避免資料擷取重複。

  1. 在 「收集」 分頁中,為每個設施類別選取最低記錄層級。 當您選取記錄層級時,Microsoft Sentinel 會收集所選層級以及嚴重性較高之其他層級的記錄。 例如,如果您選擇 LOG_ERR,Microsoft Sentinel 會收集 LOG_ERR、LOG_CRIT、LOG_ALERT 和 LOG_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. 把你從連接器頁面複製的安裝指令貼上來啟動安裝腳本。
    腳本會設定 rsyslog or syslog-ng daemon 使用所需協定,並重新啟動 daemon。 腳本開啟埠 514,以監聽 UDP 與 TCP 協定的訊息。 若要變更此設定,請根據機器上執行的守護程序類型,參閱對應的 syslog 守護程序設定檔:

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

    如果你使用的是 Python 3,且它在該電腦上不是預設指令,請在貼上的指令中將 python3 替換為 python。 詳見 日誌轉發器的前置條件。

    注意事項

    為避免代理程式無法正常運作的 滿磁碟情境 ,我們建議你設定 syslog-ng OR rsyslog 設定為不儲存不必要的日誌。 磁碟已滿的情況會影響已安裝的 AMA 正常運作。 欲了解更多資訊,請參閱 RSyslog 或 Syslog-ng。

  4. 檢查服務狀態。

    請檢查你的日誌轉發器上的 AMA 服務狀態:

    sudo systemctl status azuremonitoragent.service
    

    請檢查 rsyslog 服務狀態:

    sudo systemctl status rsyslog.service
    

    對於 syslog-ng 環境,請勾選:

    sudo systemctl status syslog-ng.service
    

設定安全裝置或設備

關於如何設定您的安全裝置或設備,請參閱以下文章之一:

如需更多關於您的家電或裝置的資訊,請聯繫解決方案供應商。

測試接頭

請確認您的 Linux 機器或安全裝置與設備的日誌訊息是否已匯入 Microsoft Sentinel。

  1. 為了驗證 syslog 守護程序正在監聽所需的 UDP 埠,且 AMA 已準備好接收 Linux 轉發器的日誌,請執行以下指令以顯示活躍監聽者及其相關埠口:

     netstat -lnptv
    

    你應該會看到 rsyslog 或 syslog-ng 常駐程式正在 514 連接埠上接聽。

  2. 要擷取來自記錄器或連接裝置的訊息,請在背景執行以下指令:

    sudo tcpdump -i any port 514 or 28330 -A -vv &
    
  3. 完成驗證後,停止 tcpdump。 輸入 fg,然後選擇 Ctrl+C。

發送測試訊息

要發送示範訊息,請完成以下步驟之一:

  1. 使用 nc netcat 工具。 在此範例中,該工具會在關閉換行選項的情況下,讀取透過 echo 命令傳送的資料。 該工具接著將資料寫入本地主機的 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
    
  2. 使用指令 logger 。 此範例會將訊息以 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|rt=$common=event-formatted-receive_time"
    

    使用下列指令測試 Cisco ASA 的資料擷取功能:

    echo -n "<164>%ASA-7-106010: Deny inbound TCP src inet:1.1.1.1 dst inet:2.2.2.2" | nc -u -w0 localhost 514
    

    執行這些指令後,訊息會抵達 514 埠並轉發至 28330 埠。

  3. 發送測試訊息後,查詢你的 Log Analytics 工作空間。 日誌可能要等上20分鐘才會出現在你的工作區。

關於 CEF 日誌:

CommonSecurityLog
| where TimeGenerated > ago(1d)
| where DeviceProduct == "MOCK"

針對 Cisco ASA 日誌:

CommonSecurityLog
| where TimeGenerated > ago(1d)
| where DeviceVendor == "Cisco"
| where DeviceProduct == "ASA"

額外故障排除

如果你在 514 埠上看不到流量,或是你的測試訊息未被接收,請參考透過 AMA 連接器排查 Microsoft Sentinel 的 Syslog 和 CEF 問題。