在 OT 感應器上設定 Proxy 設定

本文是描述使用適用於 IoT 的 Microsoft Defender 進行 OT 監視之部署路徑的系列文章之一,以及說明如何在 OT 感應器上設定 Proxy 設定以連線到 Azure。

Diagram of a progress bar with Deploy your sensors highlighted.

在下列情況下,您可以略過此步驟:

必要條件

若要執行本文所述的步驟,您需要:

此步驟是由您的部署和連線小組所執行。

在 OT 感應器上設定 Proxy 設定

本節說明如何在 OT 感應器主控台上設定現有 Proxy 的設定。 如果您還沒有 Proxy,請使用下列程序設定 Proxy:

若要在 OT 感應器上定義 Proxy 設定:

  1. 登入 OT 感應器,然後選取 [系統設定]>[感應器網络設定]

  2. 將 [啟用 Proxy] 選項切換為開啟,然後輸入 Proxy 伺服器的下列詳細資料:

    • Proxy 主機
    • Proxy 連接埠
    • Proxy 使用者名稱 (選擇性)
    • Proxy 密碼 (選擇性)

    例如:

    Screenshot of the proxy setting page.

  3. 如果相關,請選取 [用戶端憑證] 來上傳 Proxy 驗證憑證,以便存取 SSL/TLS Proxy 伺服器。

    注意

    檢查 SSL/TLS 流量的 Proxy 伺服器需要用戶端 SSL/TLS 憑證,例如當您使用 Zscaler 和 Palo Alto Prisma 之類的服務時。

  4. 選取 [儲存]。

設定 Azure Proxy

在下列情況下,您可以使用 Azure Proxy 將感應器連線到適用於 IoT 的 Defender:

  • 您在感應器與 Azure 之間需要私人連線能力
  • 您的網站是透過 ExpressRoute 連線到 Azure
  • 您的網站是透過 VPN 連線到 Azure

如果您已經設定 Proxy,請直接繼續在感應器主控台上定義 Proxy 設定

如果您尚未設定 Proxy,請使用本節中的程序在 Azure VNET 中設定 Proxy。

必要條件

在開始之前,請確定您具有下列項目:

  • 用於監視記錄的 Log Analytics 工作區

  • 針對 Azure VNET 的遠端站台連線能力

  • 允許連接埠 443 上的輸出 HTTPS 流量從您的感應器送到適用於 IoT 的 Defender 所需的端點。 如需詳細資訊,請參閱為雲端管理佈建 OT 感應器

  • Proxy 伺服器資源,具有存取 Microsoft 雲端服務的防火牆權限。 此文章所述的程序會使用裝載於 Azure 中的 Squid 伺服器。

重要

適用於 IoT 的 Microsoft Defender 不支援 Squid 或任何其他 Proxy 服務。 客戶必須負責設定和維護 Proxy 服務。

設定感應器 Proxy 設定

本節說明如何在 Azure VNET 中設定 Proxy 以搭配 OT 感應器使用,並包含下列步驟:

  1. 定義適用於 NSG 記錄的儲存體帳戶
  2. 定義虛擬網路和子網路
  3. 定義虛擬或區域網路閘道
  4. 定義網路安全性群組
  5. 定義 Azure 虛擬機器擴展集
  6. 建立 Azure 負載平衡器
  7. 設定 NAT 閘道

步驟 1:定義適用於 NSG 記錄的儲存體帳戶

在 Azure 入口網站中,使用下列設定來建立新的儲存體帳戶:

區域 設定
基本概念 效能:標準
帳戶種類:Blob 儲存體
複寫:LRS
Network 連線方法:公用端點 (選取的網路)
在虛擬網路中:無
路由喜好設定:Microsoft 網路路由
資料保護 讓所有選項保持清除狀態
進階 保留所有預設值

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

建立下列 VNET 和自主子網路:

名稱 建議的大小
MD4IoT-VNET /26 或 /25 (使用 Bastion)
子網路
- GatewaySubnet /27
- ProxyserverSubnet /27
- AzureBastionSubnet (選用) /26

步驟 3:定義虛擬或區域網路閘道

根據您將內部部署網路連線到 Azure 的方式,建立適用於虛擬閘道的 VPN 或 ExpressRoute 閘道,或建立區域閘道。

將閘道附加至您稍早建立的 GatewaySubnet 子網路。

如需詳細資訊,請參閱

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

  1. 建立 NSG 並定義下列輸入規則:

    • 建立規則 100 以允許從感應器 (來源) 到負載平衡器私人 IP 位址 (目的地) 的流量。 使用連接埠 tcp3128

    • 建立規則 4095 作為 65001 系統規則的複本。 這是因為規則 4096 將覆寫規則 65001

    • 建立規則 4096 以拒絕對所有流量進行微分割。

    • 選擇性。 如果您使用 Bastion,請建立規則 4094 以允許從 Bastion 對伺服器進行 SSH 連線。 使用 Bastion 子網路作為來源。

  2. 將 NSG 指派給您稍早建立的 ProxyserverSubnet

  3. 定義 NSG 記錄:

    1. 選取您的新 NSG,然後選取 [診斷設定]> [新增診斷設定]

    2. 輸入診斷設定的名稱。 在 [類別] 底下,選取 [allLogs]

    3. 選取 [傳送至 Log Analytics 工作區],然後選取您想要使用的 Log Analytics 工作區。

    4. 選取以傳送 NSG 流量記錄,然後定義下列值:

      在 [基本] 索引標籤上

      • 輸入有意義的名稱
      • 選取您稍早建立的儲存體帳戶
      • 定義必要的保留天數

      在 [設定] 索引標籤上

      • 選取 [版本 2]
      • 選取 [啟用流量分析]
      • 選取 Log Analytics 工作區

步驟 5:定義 Azure 虛擬機器擴展集

定義 Azure 虛擬機器擴展集以建立和管理一組負載平衡的虛擬機器,您可在其中視需要自動增加或減少虛擬機器數目。

如需詳細資訊,請參閱什麼是虛擬機器擴展集?

若要建立擴展集以搭配感應器連線使用

  1. 使用下列參數定義來建立擴展集:

    • 協調流程模式:統一
    • 安全性類型:標準
    • 映像:Ubuntu server 18.04 LTS – Gen1
    • 大小:Standard_DS1_V2
    • 驗證:根據您的公司標準

    保留 [磁碟] 設定的預設值。

  2. 在您稍早建立的 Proxyserver 子網路中建立網路介面,但尚不要定義負載平衡器。

  3. 定義調整設定,如下所示:

    • 將初始執行個體計數定義為 1
    • 將調整原則定義為 [手動]
  4. 定義下列管理設定:

    • 針對升級模式,請選取 [自動 - 執行個體將開始升級]
    • 停用開機診斷
    • 清除 [身分識別] 和 [Microsoft Entra 識別碼] 的設定
    • 選取 [超額佈建]
    • 選取 [已啟用自動 OS 升級]
  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 是第 4 層負載平衡器,其使用雜湊型散發演算法,將傳入流量散發到狀況良好的虛擬機器執行個體之間。

如需詳細資訊,請參閱 Azure Load Balancer 文件

若要為感應器連線建立 Azure 負載平衡器

  1. 建立具有標準 SKU 和 [內部] 類型的負載平衡器,以確保已對網際網路關閉負載平衡器。

  2. 在您稍早建立的 proxysrv 子網路中定義動態前端 IP 位址,並將可用性設定為區域備援。

  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 子網路。

您的 Proxy 現在已完全設定。 繼續在您的 OT 感應器上定義 proxy 設定

透過 Proxy 鏈結連線

在下列情況下,您可以使用 Proxy 鏈結,將感應器連線到 Azure 中適用於 IoT 的 Defender:

  • 您的感應器需要 Proxy 以從 OT 網路連線到雲端
  • 您想讓多個感應器透過單一點連線到 Azure

如果您已經設定 Proxy,請直接繼續在感應器主控台上定義 Proxy 設定

如果您尚未設定 Proxy,請使用本節中的程序來設定 Proxy 鏈結。

如需詳細資訊,請參閱使用 Proxy 鏈結進行 Proxy 連線

必要條件

開始之前,確定您的主機伺服器正在站台網路內執行 Proxy 處理序。 此 Proxy 處理序必須可供感應器和鏈結中的下一個 Proxy 存取。

我們已使用開放原始碼 Squid (英文) Proxy 來驗證此程序。 此 Proxy 會使用 HTTP 通道和 HTTP CONNECT 命令來連線。 支援 CONNECT 命令的任何其他 Proxy 鏈結連線都適用於此連線方法。

重要

適用於 IoT 的 Microsoft Defender 不支援 Squid 或任何其他 Proxy 服務。 客戶必須負責設定和維護 Proxy 服務。

設定 Proxy 鏈結連線

此程序描述如何在 Ubuntu 伺服器上使用最新版的 Squid,來安裝及設定感應器與適用於 IoT 的 Defender 之間的連線。

  1. 在每個感應器上定義您的 Proxy 設定:

    1. 登入 OT 感應器,然後選取 [系統設定]>[感應器網络設定]

    2. 切換 [啟用 Proxy] 選項,並定義 Proxy 主機、連接埠、使用者名稱和密碼。

  2. 安裝 Squid Proxy:

    1. 登入您的 Proxy 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. 將 Proxy 連線到適用於 IoT 的 Defender。 確保允許連接埠 443 上的輸出 HTTPS 流量從您的感應器送到適用於 IoT 的 Defender 所需的端點。

    如需詳細資訊,請參閱為雲端管理佈建 OT 感應器

您的 Proxy 現在已完全設定。 繼續在您的 OT 感應器上定義 proxy 設定

設定多重雲端環境的連線能力

此節描述如何在 Azure 中,從部署在一或多個公用雲端的感應器,將感應器連線到適用於 IoT 的 Defender。 如需詳細資訊,請參閱多雲端連線

必要條件

開始之前,確定您已在公用雲端 (例如 AWS 或 Google Cloud) 中部署感應器,並設定為監視 SPAN 流量

選取多重雲端連線方法

使用下列流程圖來判斷要使用的連線方法:

Flow chart to determine which connectivity method to use.

  • 如果您不需要使用私人 IP 位址交換資料,請透過網際網路使用公用 IP 位址

  • 只有在您不需要下列任何項目時,才透過網際網路使用站對站 VPN

    • 可預測的輸送量
    • SLA
    • 高資料傳輸量
    • 避免透過公用網際網路連線
  • 如果您需要可預測的輸送量、SLA、大量資料傳輸,或避免透過公用網際網路連線,請使用 ExpressRoute

    在此案例中:

    • 如果您想要擁有和管理建立連線的路由器,請使用 ExpressRoute 搭配客戶管理的路由。
    • 如果您不需要擁有和管理建立連線的路由器,請使用 ExpressRoute 搭配雲端交換提供者。

組態

  1. 將您的感應器設定為使用其中一個 Azure 雲端採用架構所建議的方法來連線到雲端。 如需詳細資訊,請參閱與其他雲端提供者建立連線

  2. 若要啟用 VPC 與適用於 IoT 的 Defender 之間的私人連線,請透過 VPN 連線將您的 VPC 連線到 Azure VNET。 例如,如果您要從 AWS VPC 連線,請參閱 TechCommunity 部落格:如何只使用受控解決方案在 Azure 與 AWS 之間建立 VPN (英文)。

  3. 設定您的 VPC 和 VNET 之後,請在 OT 感應器上定義 proxy 設定

下一步

建議您設定 Active Directory 連線來管理 OT 感應器上的內部部署使用者,以及透過 SNMP 設定感應器的健康情況監視。

如果您未在部署期間設定這些設定,您也可以稍後返回並加以設定。 如需詳細資訊,請參閱