在 OT 感測器上設定代理設定

本文是一系列文章之一,說明使用 適用於 IoT 的 Microsoft Defender 部署 OT 監控的路徑,並說明如何在 OT 感測器上設定代理設定以連接 Azure。

進度條示意圖,並標示「部署你的感測器」。

以下情況下你可以跳過這個步驟:

必要條件

要執行本文所述步驟,你需要:

此步驟由您的部署與連接團隊執行。

在你的 OT 感測器上設定代理設定

本節說明如何在你的 OT 感測器主控台上設定現有代理的設定。 如果你還沒有代理檔,請使用以下程序來設定:

要定義你 OT 感測器上的代理設定:

  1. 登入你的 OT 感測器,選擇 系統設定 > 感測器網路設定

  2. 切換啟用 代理 權選項,然後輸入以下代理伺服器的詳細資訊:

    • 代理主機
    • 代理埠
    • 代理用戶名 (可選)
    • 代理密碼 (可選)

    例如:

    代理設定頁面的截圖。

  3. 如果有需要,請選擇 Client 憑證 ,上傳代理認證憑證以存取 SSL/TLS 代理伺服器。

    注意事項

    代理伺服器檢查 SSL/TLS 流量時,例如使用 Zscaler 和 Palo Alto Prisma 等服務時,客戶端 SSL/TLS 憑證是必須的。

  4. 選取 [儲存]

Set a Azure proxy

在以下情況下,你可以使用 Azure 代理將感測器連接到 Defender for IoT:

  • 你需要感測器和 Azure 之間的私人連線
  • 您的網站是透過 ExpressRoute 連接到 Azure 的
  • 你的網站是透過 VPN 連接到 Azure 的

如果你已經設定好代理,請直接在 感測器控制台上設定代理設定。

如果你還沒設定代理,請使用本節的程序在你的 Azure VNET 中設定一個。

必要條件

開始前,請確保你具備:

  • 一個用於監控日誌的日誌分析工作區

  • Remote site connectivity to the Azure VNET

  • 允許從你的感測器到 Defender for IoT 所需端點的 443 埠口的 HTTPS 外出流量。 欲了解更多資訊,請參閱 「雲端管理配置 OT 感測器」。

  • 一個代理伺服器資源,擁有防火牆權限以存取 Microsoft 雲端服務。 本文所述的程序使用一台托管在 Azure 上的 Squid 伺服器。

重要事項

適用於 IoT 的 Microsoft Defender 不支援 Squid 或其他代理服務。 建立並維護代理服務是客戶的責任。

設定感測器代理設定

本節說明如何在 Azure VNET 中設定代理伺服器以搭配 OT 感測器使用,並包含以下步驟:

  1. 定義一個儲存帳號用於 NSG 日誌
  2. 定義虛擬網路與子網
  3. 定義虛擬或本地網路閘道器
  4. 定義網路安全群組
  5. Define a Azure virtual machine scale set
  6. Create an Azure load balancer
  7. 設定 NAT 閘道

步驟 1:定義 NSG 日誌的儲存帳戶

在 Azure 入口網站中,請建立一個新的儲存帳號,並設定如下:

區域 設定
基本概念 性能:Standard
帳號類型:Blob 儲存
複製:LRS
網路 連接方式:選擇網路) (公共端點
在虛擬網路中:無
路由偏好:Microsoft 網路路由
資料保護 保持所有選項清晰
進階 保留所有預設值

步驟 2:定義虛擬網路與子網

建立以下 VNET 及包含子網:

名稱 建議尺寸
MD4IoT-VNET /26 或 /25 搭配 Bastion
子網:
- GatewaySubnet /27
- ProxyserverSubnet /27
- AzureBastionSubnet (選) /26

步驟 3:定義虛擬或本地網路閘道

可以建立 VPN 或 ExpressRoute 閘道器來支援虛擬閘道,或建立本地閘道,視你如何連接本地網路到 Azure。

把閘道器連接到你之前建立的GatewaySubnet子網路。

如需詳細資訊,請參閱:

步驟 4:定義網路安全群組

  1. 建立一個 NSG 並定義以下入站規則:

    • 建立規則 100 ,允許來自感測器 (來源的流量) 到負載平衡器的私人 IP 位址 (目的地) 。 請使用埠 tcp3128口。

    • 建立規則 4095 作為系統規則的複製 65001 。 這是因為規則 65001 會被規則 4096覆蓋。

    • 建立 4096 規則來拒絕所有微分段流量。

    • 選用。 如果你用的是 Bastion,請建立規則 4094 讓 Bastion 可以 SSH 連線到伺服器。 用 Bastion 子網作為來源。

  2. 把 NSG 指派給你之前建立的。ProxyserverSubnet

  3. 定義你的 NSG 記錄:

    1. 選擇你的新 NSG,然後選擇 「 > 新增診斷設定」。

    2. 輸入你的診斷設定名稱。 在 分類 中,選擇 所有日誌

    3. 選擇 「傳送至Log Analytics workspace」,然後選擇你想使用的Log Analytics workspace。

    4. 選擇傳送 NSG 流量日誌 ,然後定義以下值:

      關於基礎標籤

      • 輸入一個有意義的名字
      • 選擇你之前建立的儲存帳號
      • 定義你所需的留任天數

      在設定標籤中

      • 精選 版本 2
      • 選擇 啟用流量分析
      • 選擇您的日誌分析工作區

步驟5:定義一個Azure虛擬機尺度集

定義一個 Azure 虛擬機擴展集,用以建立和管理一組負載平衡的虛擬機器,並可根據需要自動增加或減少虛擬機數量。

欲了解更多資訊,請參閱 「什麼是虛擬機縮放集?」

要建立一個用於感應器連接的秤組

  1. 建立一個包含以下參數定義的刻度集:

    • 編曲模式:統一
    • 安全類型:標準
    • 圖片來源:Ubuntu Server LTS (24.04 或更新版本)
    • 尺寸:Standard_DS1_V2
    • 認證:基於您的企業標準

    磁碟 設定的 預設值就要保留。

  2. 你之前建立的子網建立一個網路介面Proxyserver,但還沒定義負載平衡器。

  3. 請將縮放設定定義如下:

    • 定義初始實例數為 1
    • 將縮放政策定義為 手動
  4. 請定義以下管理設定:

    • 升級模式請選擇 自動——實例將開始升級
    • 停用開機診斷
    • 清除身份與Microsoft Entra ID 的設定
    • 選擇 過度配置
    • 選擇 啟用自動作業系統升級
  5. 請定義以下健康設定:

    • 選擇 啟用應用程式健康監控
    • 選擇 TCP 協定及 埠 3128
  6. 在進階設定中,將 擴散演算法 定義為 最大擴散

  7. 對於自訂資料腳本,請執行以下操作:

    1. 根據你使用的埠號和服務,建立以下設定腳本:

      # Recommended minimum configuration:
      # Squid listening port
      http_port 3128
      # Do not allow caching
      cache deny all
      # allowlist sites allowed
      acl allowed_http_sites dstdomain .azure-devices.net
      acl allowed_http_sites dstdomain .blob.core.windows.net
      acl allowed_http_sites dstdomain .servicebus.windows.net
      acl allowed_http_sites dstdomain .download.microsoft.com
      http_access allow allowed_http_sites
      # allowlisting
      acl SSL_ports port 443
      acl CONNECT method CONNECT
      # Deny CONNECT to other unsecure ports
      http_access deny CONNECT !SSL_ports
      # default network rules
      http_access allow localhost
      http_access deny all
      
    2. 把你的腳本檔案內容用 base-64編碼。

    3. 複製編碼檔案的內容,然後建立以下設定腳本:

      #cloud-config
      # updates packages
      apt_upgrade: true
      # Install squid packages
      packages:
       - squid
      run cmd:
       - systemctl stop squid
       - mv /etc/squid/squid.conf /etc/squid/squid.conf.factory
      write_files:
      - encoding: b64
        content: <replace with base64 encoded text>
        path: /etc/squid/squid.conf
        permissions: '0644'
      run cmd:
       - systemctl start squid
       - apt-get -y upgrade; [ -e /var/run/reboot-required ] && reboot
      

步驟 6:建立 Azure 負載平衡器

Azure Load Balancer 是一款第四層負載平衡器,利用基於雜湊的分配演算法將進入的流量分配到健康的虛擬機實例。

欲了解更多資訊,請參閱 Azure Load Balancer 文件。

要為你的感測器連線建立 Azure 負載平衡器

  1. 建立一個負載平衡器,包含標準 SKU 和 Internal 類型,確保負載平衡器對網路是封閉的。

  2. 你之前建立的子網路中定義一個動態前端 IP 位址proxysrv,並將可用性設為區域冗餘。

  3. 後端的話,選擇你 之前建立的虛擬機器縮放集。

  4. 在感測器定義的埠口,建立一條 TCP 負載平衡規則,將前端 IP 位址與後端池連接起來。 預設埠口是 3128。

  5. 建立一個新的健康探針,並在埠 3128 上定義一個 TCP 健康探針。

  6. 定義你的負載平衡器記錄:

    1. 在 Azure 入口網站,進入你建立的負載平衡器。

    2. 選擇 診斷設定>新增診斷設定

    3. 輸入一個有意義的名稱,並將該類別定義為 allMetrics

    4. 選擇 「傳送至Log Analytics工作區」,然後選擇你的Log Analytics工作區。

步驟7:設定NAT閘道

要為感測器連線設定 NAT 閘道:

  1. 建立一個新的 NAT 閘道器。

  2. 「外撥 IP 」標籤中,選擇 「建立新的公共 IP 位址」。

  3. 子網分頁,選擇你之前建立的ProxyserverSubnet子網。

你的代理伺服器現在已經完全設定好了。 繼續在你的 OT 感測器 上定義代理設定

透過代理鏈連接

你可以在以下情況下,利用代理鏈連接你的感測器到 Azure 中的 Defender for IoT:

  • 你的感測器需要一個代理伺服器,才能從 OT 網路連接到雲端
  • 你需要多個感測器透過單一點連接到 Azure

如果你已經設定好代理,請直接在 感測器控制台上設定代理設定。

如果你還沒設定代理,請使用本節的程序來設定代理鏈。

欲了解更多資訊,請參閱 代理鏈結中的代理連線

必要條件

在開始之前,請確保你的主機伺服器在站點網路內運行代理程序。 代理程序必須同時被感測器及鏈中下一個代理存取。

我們已使用開源的 Squid 代理驗證此程序。 此代理伺服器使用 HTTP 隧道及 HTTP CONNECT 指令來連接。 任何支援 CONNECT 指令的其他代理鏈連接都可以用於此連線方式。

重要事項

適用於 IoT 的 Microsoft Defender 不支援 Squid 或其他代理服務。 建立並維護代理服務是客戶的責任。

設定代理鏈連接

此程序說明如何在 Ubuntu 伺服器上使用最新版本的 Squid,安裝並設定感測器與 Defender for IoT 之間的連線。

  1. 請在每個感測器上定義你的代理設定:

    1. 登入你的 OT 感測器,選擇 系統設定 > 感測器網路設定

    2. 切換啟用 代理 權選項,並定義你的代理主機、埠號、使用者名稱和密碼。

  2. 安裝 Squid 代理:

    1. 登入你的代理 Ubuntu 電腦,並啟動終端機視窗。

    2. 更新你的系統並安裝 Squid。 例如:

      sudo apt-get update
      sudo apt-get install squid
      
    3. 找到Squid的設定檔。 例如,在 或 /etc/squid/squid.conf/etc/squid/conf.d/,並在文字編輯器中開啟該檔案。

    4. 在 Squid 設定檔中,搜尋以下文字: # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS

    5. 在檔案中加入 acl <sensor-name> src <sensor-ip>http_access allow <sensor-name> , 例如:

      # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
      acl sensor1 src 10.100.100.1
      http_access allow sensor1
      

      需要時增加感測器,增加感應器線路。

    6. 設定 Squid 服務從上線時啟動。 跑步:

      sudo systemctl enable squid
      
  3. 把你的代理連接到 Defender for IoT。 確保 443 埠的 HTTPS 外出流量允許從你的感測器傳送到 Defender for IoT 所需的端點。

    欲了解更多資訊,請參閱 「雲端管理配置 OT 感測器」。

你的代理伺服器現在已經完全設定好了。 繼續在你的 OT 感測器 上定義代理設定

為多雲環境設置連接性

本節說明如何將感測器從部署於一個或多個公共雲中的感測器連接到 Azure 中的 Defender for IoT。 欲了解更多資訊,請參閱多雲連接。

必要條件

開始前,請確保你已部署在公共雲(如 AWS 或 Google Cloud)中,並設定為監控 SPAN 流量

選擇多雲連接方式

請使用以下流程圖來決定應採用哪種連接方式:

流程圖用來決定使用哪種連接方式。

  • 如果你不需要用私有 IP 交換資料,就用網路上的公有 IP 位址

  • 只有在您*不*需要以下任何一項時,才使用網際網路上的站對站 VPN

    • 可預測吞吐量
    • 南美語
    • 高資料量傳輸
    • 避免透過公共網路連線
  • 如果你需要可預測的吞吐量、服務等級等級(SLA)、高流量的資料傳輸,或避免透過公共網際網路連線,請使用 ExpressRoute

    在這種情況下:

    • 如果你想擁有並管理負責連線的路由器,請使用 ExpressRoute 搭配客戶管理路由。
    • 如果你不需要擁有並管理連接的路由器,可以使用 ExpressRoute 搭配雲端交換服務提供商。

組態

  1. 請用Azure 雲端採用架構推薦的方法之一,設定你的感測器連接到雲端。 欲了解更多資訊,請參閱 與其他雲端供應商的連結

  2. 要啟用 VPC 與 Defender for IoT 之間的私人連線,請透過 VPN 連線將 VPC 連接到 Azure VNET。 例如,如果你是從 AWS VPC 連線,請參考我們的 TechCommunity 部落格:如何僅用受管解決方案建立 Azure 與 AWS 之間的 VPN

  3. 在 VPC 和 VNET 設定好後,請在 OT 感測器 上定義代理設定

後續步驟

我們建議您設定 Active Directory 連線,以管理 OT 感測器上的本地使用者,並透過 SNMP 設定感測器健康監控。

如果你在部署時沒有設定這些設定,也可以之後再回去設定。 如需詳細資訊,請參閱: