本教學將協助你學習如何安裝並驗證 Defender for IoT 微代理。
在這個教學中,你將學習如何:
- 下載並安裝微型代理程式
- 驗證微代理
- 驗證安裝
- 測試系統
- 安裝特定的微代理程式版本
注意事項
Defender for IoT 計劃於 2027 年 6 月 1 日退休這個微代理。
必要條件
一個有有效訂閱的 Azure 帳號。 免費註冊帳號。
一個 物聯網樞紐。
請確認你使用的是以下其中一種 作業系統。
你一定已經 在物聯網解決方案中新增了一個資源群組。
下載並安裝微型代理程式
根據你的設定,需要安裝相應的 Microsoft 套件。
若要新增適當的 Microsoft 套件存放庫:
下載與你裝置作業系統相符的儲存庫設定。
針對 Ubuntu 18.04:
curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/prod.list > ./microsoft-prod.list針對 Ubuntu 20.04:
curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > ./microsoft-prod.listDebian 9 (AMD 64 與 ARM64) :
curl https://packages.microsoft.com/config/debian/stretch/multiarch/prod.list > ./microsoft-prod.list
請使用以下指令將儲存庫設定複製到目錄:
sources.list.dsudo cp ./microsoft-prod.list /etc/apt/sources.list.d/請使用以下指令安裝 Microsoft GPG 公鑰:
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg sudo cp ./microsoft.gpg /etc/apt/trusted.gpg.d/請確保你已使用下列指令更新 apt:
sudo apt-get update請使用以下指令在 Debian 或基於 Ubuntu 的 Linux 發行版上安裝 Defender for IoT 微代理套件:
sudo apt-get install defender-iot-micro-agent
透過代理連線
此程序說明如何透過代理將 Defender for IoT 微代理連接到 IoT 中樞。
要透過代理伺服器配置連線:
在您的微代理機器上,建立
/etc/defender_iot_micro_agent/conf.json包含以下內容的檔案:{ "IothubModule_ProxyConfig": "<proxy_ipv4>,<port>,<username>,<password>", "IothubModule_TransportProtocol": "MQTT_WebSocket_Protocol" }使用者與密碼欄位為可選。 如果你不需要,請改用以下語法:
{ "IothubModule_ProxyConfig": "<proxy_ipv4>,<port>", "IothubModule_TransportProtocol": "MQTT_WebSocket_Protocol" }刪除 /var/lib/defender_iot_micro_agent/cache.json 的快取檔案。
重新啟動微型代理。 跑步:
sudo systemctl restart defender-iot-micro-agent.service
新增 AMQP 協定支援
此程序描述了支援 AMQP 協定所需的額外步驟。
要增加 AMQP 協定支援:
在你的微代理程式機器上,打開檔案
/etc/defender_iot_micro_agent/conf.json並新增以下內容:{ "IothubModule_TransportProtocol": "AMQP_Protocol" }刪除 /var/lib/defender_iot_micro_agent/cache.json 的快取檔案。
重新啟動微型代理。 跑步:
sudo systemctl restart defender-iot-micro-agent.service
若要新增對 AMQP over WebSocket 通訊協定的支援:
在你的微代理程式機器上,打開檔案
/etc/defender_iot_micro_agent/conf.json並新增以下內容:{ "IothubModule_TransportProtocol": "AMQP_WebSocket_Protocol" }刪除 /var/lib/defender_iot_micro_agent/cache.json 的快取檔案。
重新啟動微型代理。 跑步:
sudo systemctl restart defender-iot-micro-agent.service
代理會使用此協定,並與 443 埠的 IoT 中樞通訊。 此協定支援 HTTP 代理設定,若代理也已設定,與代理的通訊埠將依代理設定中定義。
驗證微代理
有兩種方法可以用來驗證 Defender for IoT 微代理:
使用模組身份連接字串進行認證
你需要從 DefenderIoTMicroAgent 模組身份細節中複製模組身份連接字串。
若要複製模組身分識別的連線字串:
前往 IoT 中樞>
Your hub>裝置管理>裝置。
從裝置識別清單中選擇裝置。
選擇 模組身份 標籤。
從與裝置相關的模組識別碼列表中選擇 DefenderIotMicroAgent 模組。
透過選擇 複製 按鈕,複製 Connection 字串 (主鍵) 。
在 Defender for IoT 代理目錄
connection_string.txt路徑中,輸入以下指令建立一個名為/etc/defender_iot_micro_agent的檔案,包含以 utf-8 編碼的複製連接字串:sudo bash -c 'echo "<connection string>" > /etc/defender_iot_micro_agent/connection_string.txt'connection_string.txt現在將位於以下路徑位置/etc/defender_iot_micro_agent/connection_string.txt。注意事項
連接字串包含一把金鑰,可直接存取模組本身,因此包含敏感資訊,僅應由 root 使用者使用與閱讀。
使用以下指令重新啟動服務:
sudo systemctl restart defender-iot-micro-agent.service
使用憑證進行認證
要用憑證來認證:
請依 照這些指示取得證書。
將憑證中 PEM 編碼的公開部分與私鑰
/etc/defender_iot_micro_agent放入 ,分別存放於稱為certificate_public.pem、 和certificate_private.pem的檔案中。在檔案中放入適當的連接字串
connection_string.txt。 連接字串應該長這樣:HostName=<the host name of the iot hub>;DeviceId=<the id of the device>;ModuleId=<the id of the module>;x509=true此字串提醒 Defender for IoT 代理,預期會提供憑證以進行驗證。
請使用以下指令重新啟動服務:
sudo systemctl restart defender-iot-micro-agent.service
驗證安裝
為了驗證你的安裝:
請使用以下指令確保微代理程式正常運作:
systemctl status defender-iot-micro-agent.service確認服務處於
active狀態,並確認處理程序的運作時間適當,以確保服務穩定。
測試系統
你可以在裝置上建立觸發檔案來測試系統。 觸發檔案會讓代理程式的基線掃描偵測該檔案為基線違規。
在檔案系統上使用以下指令建立檔案:
sudo touch /tmp/DefenderForIoTOSBaselineTrigger.txt請確保您的 Log Analytics 工作區已連接到物聯網集線。 欲了解更多資訊,請參閱 建立日誌分析工作區。
請使用以下指令重新啟動代理程式:
sudo systemctl restart defender-iot-micro-agent.service
建議最多等候一小時,讓建議顯示在中樞中。
已建立一個名為「IoT_CISBenchmarks_DIoTTest」的基準建議。 你可以向 Log Analytics 查詢此建議:
SecurityRecommendation
| where RecommendationName contains "IoT_CISBenchmarks_DIoTTest"
| where DeviceId contains "<device-id>"
| top 1 by TimeGenerated desc
例如:
安裝特定的微代理程式版本
你可以用特定指令安裝特定版本的微代理程式。
若要安裝特定版本的 Defender for IoT 微代理:
開啟終端機。
執行下列命令:
sudo apt-get install defender-iot-micro-agent=<version>
清除資源
沒有資源可以清理。