使用 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 中,從 [內容中樞] 安裝適當的解決方案。 如需詳細資訊,請參閱探索和管理 Microsoft Sentinel 現成可用的內容。
識別 Microsoft Sentinel 解決方案所需的資料連接器 — 透過 AMA 的 Syslog 或透過 AMA 的常見事件格式 (CEF),以及是否需要安裝 Syslog 或常見事件格式解決方案。 若要滿足此必要條件,
在[內容中樞] 中,選取 已安裝解決方案上的 [管理],然後檢閱列出的資料連接器。
如果透過 AMA 的 Syslog 或透過 AMA 的常見事件格式 (CEF) 未隨解決方案一起安裝,請從下列其中一篇文章中查找您的設備或裝置,以識別您是否需要安裝 Syslog 或常見事件格式解決方案:
- 透過 AMA 的 CEF 資料連接器 - 設定特定設備或裝置進行 Microsoft Sentinel 資料擷取
- 透過 AMA 的 Syslog 資料連接器 - 設定特定設備或裝置進行 Microsoft Sentinel 資料擷取
然後從內容中樞安裝 [Syslog] 或 [常見事件格式] 解決方案,以取得相關的 AMA 資料連接器。
擁有具有下列 Azure 角色型存取控制 (Azure RBAC) 角色的 Azure 帳戶:
內建角色 範圍 原因 - 虛擬機器參與者
- 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 --version
或python3 --version
命令來檢查。 如果您使用 Python 3,請確保其已設定為機器的預設命令,或使用「python3」命令執行指令碼,而不是使用「python」。記錄轉寄站必須啟用
syslog-ng
或rsyslog
精靈。如需記錄轉寄站的空間需求,請參閱 Azure 監視器代理程式效能基準。 您也可以檢閱 此部落格文章,其中包含可調整內嵌的設計。
您的記錄來源、安全性裝置和設備必須設定為將其記錄訊息傳送至記錄轉寄站的 Syslog 精靈,而不是傳送至其本機 Syslog 精靈。
機器安全性必要條件
根據組織的安全性原則設定機器的安全性。 例如,可根據公司網路安全性原則設定網路,並且依需求變更精靈中的連接埠和通訊協定。 若要改善機器安全性設定,請在 Azure 中保護您的 VM,或檢閱下列網路安全性的最佳做法。
如果您的裝置透過 TLS 傳送 Syslog 和 CEF 記錄 (例如,由於您的記錄轉寄站位於雲端),您需要設定 Syslog 精靈 (rsyslog
或 syslog-ng
),才能在 TLS 中進行通訊。 如需詳細資訊,請參閱
設定資料連接器:
透過 AMA 或透過 AMA 資料連接器常見事件格式 (CEF) 內嵌的 Syslog 安裝流程包含下列步驟:
- 安裝 Azure 監視器代理程式,並使用下列任一方法建立資料收集規則 (DCR):
- 如果您要使用記錄轉寄站從其他機器收集記錄,在記錄轉寄站上執行「安裝」指令碼,以設定 Syslog 精靈接聽來自其他機器的訊息,以及開啟所需的本機連結埠。
選取適當的索引標籤以取得指示。
建立資料收集規則 (DCR)
若要開始使用,請在 Microsoft Sentinel 中開啟透過 AMA 的 Syslog 或透過 AMA 的常見事件格式 (CEF) 資料連接器,並建立資料收集規則 (DCR)。
針對 Azure 入口網站的 Microsoft Sentinel,在 [設定] 下方選取 [資料連接器].。
針對 Defender 入口網站中的 Microsoft Sentinel,選取 [Microsoft Sentinel]> [設定]> [資料連接器]。針對 syslog,在 [搜尋] 方塊中輸入 [Syslog]。 從結果中選取 [透過 AMA 連接器內嵌的 Syslog]。
針對 CEF,在 [搜尋] 方塊中輸入 [CEF]。 從結果中選取,選取 [透過 AMA 連接器內嵌常見事件格式 (CEF)]。選取詳細資料窗格上的 [開啟連接器頁面]。
在 [設定] 區域中,選取 [+ 建立資料收集規則]。
在 [基本] 索引標籤中:
- 輸入 DCR 名稱。
- 選取您的訂用帳戶。
- 選取您想要尋找 DCR 的資源群組。
選取 [下一步: 資源]>。
定義 VM 資源
在 [資源] 索引標籤中,選取您要在此案例中安裝 AMA 的機器 — 在此案例中為您的記錄轉寄站機器。 如果您的記錄轉寄站未出現在清單中,則可能尚未安裝 Azure Connected Machine 代理程式至記錄轉寄站。
使用可用篩選或搜尋方塊來尋找您的記錄轉寄站 VM。 展開清單中的訂閱以查看其資源群組,以及展開資源群組以查看其 VM。
選取您要安裝 AMA 的記錄轉寄站 VM。 當您將滑鼠停留在 VM 名稱上方時,核取方塊會出現在 VM 名稱旁邊。
檢閱您的變更,並選取 [下一步: 收集]>。
選取設施和嚴重性
請注意,針對 Syslog 和 CEF 訊息使用相同的設施可能會導致資料內嵌重複。 如需詳細資訊,請參閱避免資料內嵌重複。
針對每個設施,在 [收集] 索引標籤中選取最小記錄層級。 當您選取記錄層級時,Microsoft Sentinel 會收集所選層級的記錄,以及其他嚴重性較高的層級。 例如,如果您選取 LOG_ERR,Microsoft Sentinel 會收集 LOG_ERR、LOG_CRIT、LOG_ALERT 和 LOG_EMERG 層級的記錄。
檢閱您的選項並選取 [下一步: 檢閱 + 建立]。
檢閱並建立規則
完成所有索引標籤後,請檢閱輸入的內容並建立資料收集規則。
在 [檢閱及建立] 索引標籤中,選取 [建立]。
連接器會在您建立 DCR 時選取的機器上安裝 Azure 監視器代理程式。
檢查 Azure 入口網站或 Microsoft Defender 入口網站中的通知,以查看 DCR 的建立時間和代理程式的安裝時間。
選取連接器頁面上 [重新整理],以查看清單中顯示的 DCR。
執行「安裝」指令碼
如果您正在使用記錄轉寄站,請將 Syslog 精靈設定為接聽來自其他機器的訊息,並開啟所需的本機連結埠。
從連接器頁面複製出現在執行下列命令以安裝並套用 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
登入您剛安裝 AMA 的記錄轉寄站機器。
貼上您在最後一個步驟中複製的命令,以啟動安裝指令碼。
指令碼會將rsyslog
或syslog-ng
精靈設定為使用必要的通訊協定,並重新啟動精靈。 指令碼會開啟連接埠 514,以接聽 UDP 和 TCP 通訊協定中的傳入訊息。 若要變更此設定,請參考根據機器上執行精靈類型的 Syslog 精靈組態檔:- Rsyslog:
/etc/rsyslog.conf
- Syslog-ng:
/etc/syslog-ng/syslog-ng.conf
如果您使用 Python 3,而且在機器上尚未設定為預設命令,請將
python3
取代為貼上命令中的python
。 請參閱記錄轉寄站必要條件。- Rsyslog:
設定安全性裝置或設備
移至下列其中一篇文章,即可取得設定安全性裝置或設備的特定指示:
- 透過 AMA 的 CEF 資料連接器 - 設定特定設備或裝置以進行 Microsoft Sentinel 資料擷取
- 透過 AMA 的 Syslog 資料連接器 - 設定特定設備或裝置以進行 Microsoft Sentinel 資料擷取
如需詳細資訊或無法取得設備或裝置的資訊時,請和解決方案提供者連絡。
測試連接器
驗證來自 Linux 機器或安全性裝置和設備的記錄訊息已內嵌至 Microsoft Sentinel。
若要驗證 syslog 精靈是在 UDP 連接埠上執行,且 AMA 正在接聽,請執行此命令:
netstat -lnptv
您應該會看到在連接埠 514 上接聽的
rsyslog
或syslog-ng
精靈。若要擷取從記錄器或連線裝置傳送的訊息,請在背景中執行此命令:
tcpdump -i any port 514 -A -vv &
完成驗證之後,建議您停止
tcpdump
:輸入fg
,然後選取 Ctrl+C。若要傳送示範訊息,請完成下列步驟:
使用 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"
若要確認是否已正確安裝連接器,請使用下列其中一個命令以執行疑難排解指令碼:
針對 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