分享方式:


Intune 中Microsoft通道的必要條件

您必須先檢閱並設定必要條件,才能安裝適用於 Microsoft Intune 的 Microsoft Tunnel VPN 閘道。 必要條件包括使用執行容器的Linux伺服器來裝載 Tunnel 伺服器軟體。 也規劃設定您的網路、防火牆和 Proxy,以支援Microsoft通道的通訊。

概括而言,Microsoft通道需要:

  • Azure 訂用帳戶。

  • Microsoft Intune方案 1 訂用帳戶。

    注意事項

    這是Microsoft通道的必要條件,不包含適用於行動應用程式管理的 Microsoft Tunnel,這是需要 Microsoft Intune 方案 2 訂用帳戶的 Intune 附加元件

  • 執行容器的Linux伺服器。 伺服器可以是內部部署或雲端,並支援下列其中一種容器類型:

    • Podman for Red Hat Enterprise Linux (RHEL) 。 請參閱 Linux 伺服器 需求。
    • 所有其他 Linux 發行版的 Docker
  • Linux 伺服器的傳輸層安全性 (TLS) 憑證,以保護從裝置到通道閘道閘道的連線。

  • 執行 Android 或 iOS/iPadOS 的裝置。

設定必要條件之後,建議您執行 整備工具 ,以協助驗證您的環境是否已妥善設定,以成功安裝。

下列各節詳細說明Microsoft通道的必要條件,並提供使用整備工具的指引。

注意事項

GSA (通道和全域安全存取) 無法同時在相同的裝置上使用。

Linux 伺服器

設定以Linux為基礎的虛擬機或實體伺服器,以在其中安裝Microsoft通道閘道。

注意事項

僅支援下表所列的作業系統和容器版本。 不支援未列出的版本。 只有在測試和支援性經過驗證之後,才會將較新的版本新增至此清單。 使用安全性更新讓OS保持在最新狀態。

  • 支援的Linux發行 版 - 下表詳細說明通道伺服器支援哪些Linux版本,以及所需的容器:

    散發版本 容器需求 考量
    CentOS 7.4+ Docker CE 支援將於 2024 年 6 月結束。 不支援 CentOS 8+
    Red Hat (RHEL) 7.4+ Docker CE 支援將於 2024 年 6 月結束
    Red Hat (RHEL) 8.6 支援將於 2024 年 6 月結束 Podman 4.0 (預設)
    Podman 3.0
    此版本的 RHEL 不會自動將 ip_tables 模組載入 Linux 核心。 當您使用此版本時,請規劃在安裝 Tunnel 之前 手動載入ip_tables

    Podman v3 和更早版本所建立的容器 無法與 Podman v4.0 搭配使用。 如果將容器從 v3 升級和變更為 v4.0,請規劃建立新的容器,並卸載,然後重新安裝 Microsoft Tunnel。
    Red Hat (RHEL) 8.7 Podman 4.2 (預設) 此版本的 RHEL 不會自動將 ip_tables 模組載入 Linux 核心。 當您使用此版本時,請規劃在安裝 Tunnel 之前 手動載入ip_tables

    Podman v3 和更早版本所建立的容器 無法與 Podman v4.2 和更新版本搭配使用。 如果升級和變更容器,請規劃建立新的容器,然後卸載,然後重新安裝 Microsoft Tunnel。
    Red Hat (RHEL) 8.8 Podman 4.4.1 此版本的 RHEL 不會自動將 ip_tables 模組載入 Linux 核心。 當您使用此版本時,請規劃在安裝 Tunnel 之前 手動載入ip_tables

    Podman v3 和更早版本所建立的容器 無法與 Podman v4.2 和更新版本搭配使用。 如果升級和變更容器,請規劃建立新的容器,然後卸載,然後重新安裝 Microsoft Tunnel。
    Red Hat (RHEL) 8.9 Podman 4.4.1 此版本的 RHEL 不會自動將 ip_tables 模組載入 Linux 核心。 當您使用此版本時,請規劃在安裝 Tunnel 之前 手動載入ip_tables

    Podman v3 和更早版本所建立的容器 無法與 Podman v4.2 和更新版本搭配使用。 如果升級和變更容器,請規劃建立新的容器,然後卸載,然後重新安裝 Microsoft Tunnel。
    Red Hat (RHEL) 8.10 Podman 4.9.4-rhel (預設) 此版本的 RHEL 不會自動將 ip_tables 模組載入 Linux 核心。 當您使用此版本時,請規劃在安裝 Tunnel 之前 手動載入ip_tables

    Podman v3 和更早版本所建立的容器 無法與 Podman v4.2 和更新版本搭配使用。 如果升級和變更容器,請規劃建立新的容器,然後卸載,然後重新安裝 Microsoft Tunnel。
    Red Hat (RHEL) 9.0 支援將於 2024 年 6 月結束 Podman 4.4.1 (預設) 此版本的 RHEL 不會自動將 ip_tables 模組載入 Linux 核心。 當您使用此版本時,請規劃在安裝 Tunnel 之前 手動載入ip_tables

    Podman v3 和更早版本所建立的容器 無法與 Podman v4.2 和更新版本搭配使用。 如果升級和變更容器,請規劃建立新的容器,然後卸載,然後重新安裝 Microsoft Tunnel。

    支援將於 2024 年 2 月結束。
    Red Hat (RHEL) 9.1 Podman 4.4.1 (預設) 此版本的 RHEL 不會自動將 ip_tables 模組載入 Linux 核心。 當您使用此版本時,請規劃在安裝 Tunnel 之前 手動載入ip_tables

    Podman v3 和更早版本所建立的容器 無法與 Podman v4.2 和更新版本搭配使用。 如果升級和變更容器,請規劃建立新的容器,然後卸載,然後重新安裝 Microsoft Tunnel。
    Red Hat (RHEL) 9.2 Podman 4.4.1 (預設) 此版本的 RHEL 不會自動將 ip_tables 模組載入 Linux 核心。 當您使用此版本時,請規劃在安裝 Tunnel 之前 手動載入ip_tables

    Podman v3 和更早版本所建立的容器 無法與 Podman v4.2 和更新版本搭配使用。 如果升級和變更容器,請規劃建立新的容器,然後卸載,然後重新安裝 Microsoft Tunnel。
    Red Hat (RHEL) 9.3 Podman 4.6.1。 (預設) 此版本的 RHEL 不會自動將 ip_tables 模組載入 Linux 核心。 當您使用此版本時,請規劃在安裝 Tunnel 之前 手動載入ip_tables

    Podman v3 和更早版本所建立的容器 無法與 Podman v4.2 和更新版本搭配使用。 如果升級和變更容器,請規劃建立新的容器,然後卸載,然後重新安裝 Microsoft Tunnel。
    Red Hat (RHEL) 9.4 Podman 4.9.4-rhel (預設) 此版本的 RHEL 不會自動將 ip_tables 模組載入 Linux 核心。 當您使用此版本時,請規劃在安裝 Tunnel 之前 手動載入ip_tables

    Podman v3 和更早版本所建立的容器 無法與 Podman v4.2 和更新版本搭配使用。 如果升級和變更容器,請規劃建立新的容器,然後卸載,然後重新安裝 Microsoft Tunnel。
    Ubuntu 20.04 Docker CE
    Ubuntu 22.04 Docker CE

    重要事項

    Ubuntu 將於 2023 年 4 月終止對 Ubuntu 18.04 的支援。 Ubuntu 終止支援后,Intune 也會終止 Ubuntu 18.04 的支援,以搭配 Microsoft Tunnel 使用。 如需詳細資訊,請參閱 https://wiki.ubuntu.com/Releases

  • 調整 Linux 伺服器的大小:使用下列指引來符合您預期的使用方式:

    # 裝置 # CPU 記憶體 GB # 伺服器 # Sites 磁碟空間 GB
    1,000 4 4 1 1 30
    2,000 4 4 1 1 30
    5,000 8 8 2 1 30
    10,000 8 8 3 1 30
    20,000 8 8 4 1 30
    40,000 8 8 8 1 30

    支援以線性方式調整。 雖然每個Microsoft通道最多支援 64,000 個並行連線,但個別裝置可以開啟多個連線。

  • CPU:64 位 AMD/Intel 處理器。

  • 安裝 Docker CE 或 Podman:根據您用於 Tunnel 伺服器的 Linux 版本,在伺服器上安裝下列其中一項:

    • Docker 19.03 CE 版或更新版本。
    • Podman 3.0 或 4.0 版,視 RHEL 版本而定。

    Microsoft通道需要 Linux 伺服器上的 Docker 或 Podman 來提供容器支援。 容器提供一致的執行環境、健康情況監視和主動式補救,以及全新的升級體驗。

    如需安裝和設定 Docker 或 Podman 的相關信息,請參閱:

    • 在 CentOS 或 Red Hat Enterprise Linux 7 上安裝 Docker 引擎

      注意事項

      上述連結會將您導向 CentOS 下載和安裝指示。 針對 RHEL 7.4 使用這些相同的指示。 根據預設,安裝在 RHEL 7.4 上的版本太舊,無法支援Microsoft通道閘道閘道閘道。

    • 在 Ubuntu 上安裝 Docker 引擎

    • 在 Red Hat Enterprise Linux 8.4 和更新版本上安裝 Podman (向下捲動至 RHEL8)

      這些版本的 RHEL 不支援 Docker。 相反地,這些版本會使用Podman,而 podman 是稱為“container-tools” 模組的一部分。 在此內容中,模組是一組 RPM 套件,代表元件且通常一起安裝。 一般模組包含具有應用程式的套件、具有應用程式特定相依性連結庫的套件、具有應用程式檔的套件,以及具有協助程式公用程式的套件。 如需詳細資訊,請參閱 Red Hat 檔中的 模塊簡介

      注意事項

      無根 Podman:Microsoft Tunnel 支援使用無根 Podman 容器。

      使用無根 Podman 需要本文所詳述的 額外必要條件 ,以及在您啟動 Tunnel 安裝腳本時使用修改過的命令行。 如需其他必要條件和安裝命令行的相關信息,請參閱設定 Microsoft Tunnel for Intune 一文中的使用無根 Podman 容器

  • 傳輸層安全性 (TLS) 憑證:Linux 伺服器需要受信任的 TLS 憑證,才能保護裝置與通道閘道閘道閘道之間的連線。 在安裝 Tunnel 閘道期間,您會將 TLS 憑證和完全信任的憑證鏈結新增至伺服器。

    • 您用來保護通道閘道閘道閘道的 TLS 憑證主體別名 (SAN) 必須符合通道閘道閘道的 IP 位址或 FQDN。

    • TLS 憑證的到期日不能超過兩年。 如果日期超過兩年,iOS 裝置上就不會接受該日期。

    • 通配符的支援有限。 例如,支援 *.contoso.com ,但不支援 cont*.com

    • 在安裝 Tunnel 閘道伺服器期間,您必須將整個受信任的憑證鏈結複製到 Linux 伺服器。 安裝文本會提供您複製憑證檔案的位置,並提示您這樣做。

    • 如果您使用不受公開信任的 TLS 憑證,則必須使用 Intune 信任的憑證配置檔,將整個信任鏈結推送至裝置。

    • TLS 憑證可以是 PEMpfx 格式。

    • 若要支援 TLS 憑證撤銷 健康情況檢查,請確定可從伺服器存取 TLS 憑證所定義的在線憑證狀態通訊協定 (OCSP) 或證書吊銷清單 (CRL) 位址。

    • 使用 2048 位或更大的金鑰來設定 Tunnel 用戶端憑證。 我們建議使用較大的密鑰來協助您的部署持續支援各種 SSL/TLS 連結庫解決方案的未來和不斷演變的 SSL/TLS 需求。

      提示

      定期檢閱所選 SSL/TLS 連結庫的需求,以確保您的基礎結構和憑證仍受到支援,且符合該連結庫最近的變更,並在必要時重新發出 Tunnel 用戶端憑證,以掌握您的解決方案發展需求。

  • TLS 版本:根據預設,Microsoft通道用戶端與伺服器之間的聯機會使用 TLS 1.3。 當 TLS 1.3 無法使用時,連線可以回復為使用 TLS 1.2。

默認網橋網路

Podman 和 Docker 容器都會使用網橋網路,透過 Linux 主機轉送流量。 當容器網橋網路與公司網路發生衝突時,通道閘道閘道無法成功將流量路由傳送至該公司網路。

預設網橋網路為:

  • Docker: 172.17.0.0/16
  • Podman: 10.88.0.0/16

若要避免衝突,您可以將 Podman 和 Docker 重新設定為使用您指定的網橋網路。

重要事項

必須先安裝 Tunnel 閘道伺服器,才能變更網橋網路組態。

變更 Docker 使用的預設網橋網路

Docker 會使用 /etc/docker/daemon.json 檔案來設定新的預設網橋 IP 位址。 在檔案中,網橋 IP 位址必須在 CIDR 中指定 (無類別網路由) 表示法,這是一種精簡的方式,可代表 IP 位址及其相關聯的子網掩碼和路由前置詞。

重要事項

下列步驟中使用的IP位址就是一個範例。 請確定您使用的IP位址不會與公司網路衝突。

  1. 使用下列命令來停止 MS Tunnel 閘道容器: sudo mst-cli server stop ; sudo mst-cli agent stop

  2. 接下來,執行下列命令以移除現有的 Docker 網橋裝置: sudo ip link del docker0

  3. 如果您的伺服器上有 /etc/docker/daemon.json 檔案,請使用 vinano 之類的檔案編輯器來修改檔案。 使用根或 sudo 權限執行檔案編輯器:

    • 「bip」 : 專案存在 IP 位址時,請以 CIDR 表示法新增 IP 位址來修改它。
    • 「bip」 : 專案不存在時,您必須以 CIDR 表示法同時新增 值 「bip」 : 和新的 IP 位址。

    下列範例顯示具有更新之 「bip」daemon.json檔案結構:使用修改過之 IP 位址 「192.168.128.1/24」 的專案。

    daemon.json範例:

    {
    "bip": "192.168.128.1/24"
    }
    
  4. 如果您的伺服器上沒有 /etc/docker/daemon.json 檔案,請執行類似下列範例的命令來建立檔案,並定義您想要使用的網橋 IP。

    範例:sudo echo '{ "bip":"192.168.128.1/24" }' > /etc/docker/daemon.json

  5. 使用下列命令來啟動 MS Tunnel 閘道容器: sudo mst-cli agent start ; sudo mst-cli server start

如需詳細資訊,請參閱 Docker 檔中的 使用網橋網路

變更 Podman 使用的預設網橋網路

Podman 使用 檔案 /etc/cni/net.d 作為 87-podman-bridge.conflist 來設定新的預設網橋 IP 位址。

  1. 使用下列命令來停止 MS Tunnel 閘道容器: sudo mst-cli server stop ; sudo mst-cli agent stop

  2. 接下來,執行下列命令以移除現有的Podman網橋裝置: sudo ip link del cni-podman0

  3. 使用根許可權和 vinano 之類的檔案編輯器,將 /etc/cni/net.d 修改為 87-podman-bridge.conflist ,以將 Podman 預設值取代為您想要的子網和網關位址,以更新 “subnet:”“gateway:” 的預設值。 子網位址必須以 CIDR 表示法指定。

    Podman 預設值為:

    • 子網:10.88.0.0/16
    • 閘道:10.88.0.1
  4. 使用下列命令重新啟動 MS Tunnel 閘道容器: sudo mst-cli agent start ; sudo mst-cli server start

如需詳細資訊,請參閱 Red Hat 檔中的使用 Podman 設定容器網路 功能。

Linux 系統稽核

Linux 系統稽核可協助識別裝載 Microsoft Tunnel 之 Linux 伺服器上的安全性相關信息或安全性違規。 建議使用Linux系統稽核來Microsoft通道,但並非必要。 若要使用系統稽核,Linux 伺服器必須將 稽核套 件安裝到 /etc/audit/auditd.conf

如何實作稽核的詳細數據取決於您使用的Linux平臺:

  • Red Hat:Red Had Enterprise Linux 7 和更新版本的版本預設會安裝 稽核套 件。 不過,如果未安裝套件,您可以在 Linux 伺服器上使用下列命令行來安裝它: sudo dnf install audit audispd-plugins

    一般而言,稽 核套 件可從每個 REHL 版本的預設存放庫取得。

    如需在 RHEL 上使用系統稽核的詳細資訊,請參閱 Red Hat 部落格中的使用稽核設定 Linux 系統稽 核。

  • Ubuntu:若要搭配 Ubuntu 使用系統稽核,您必須手動安裝 稽核套 件。 若要這樣做,請在 Linux 伺服器上使用下列命令行: sudo apt install auditd audispd-plugins

    一般而言,稽 核套 件可從每個Ubuntu版本的預設存放庫取得。

    如需在 Ubuntu 上使用系統稽核的詳細資訊,請參閱 How to setup and Install Auditd on Ubuntu, an article that is available on the dev.to website that was originally published at kubefront.com.

網路

  • 啟用 IPv4 的封包轉送:裝載 Tunnel 伺服器軟體的每部 Linux 伺服器都必須啟用 IPv4 的 IP 轉送。 若要檢查 IP 轉送的狀態,請在伺服器上以 rootsudo 身分執行下列其中一個泛型命令。 這兩個命令都會針對停用傳回 0 的值,而針對 enabled 傳回 1 的值:

    • sysctl net.ipv4.ip_forward
    • cat /proc/sys/net/ipv4/ip_forward

    如果未啟用,您可以在伺服器上以 rootsudo 身分執行下列其中一個泛型命令,以暫時啟用 IP 轉送。 這些命令可以變更 IP 轉送設定,直到伺服器重新啟動為止。 重新啟動之後,伺服器會將IP轉送行為傳回至先前的狀態。 針對這兩個命令,請使用 1 的值來 啟用 轉送。 值 為 0 會停用轉送。 下列命令範例使用 1 的值來 啟用 轉送:

    • sysctl -w net.ipv4.ip_forward=1
    • echo 1 > /proc/sys/net/ipv4/ip_forward

    若要讓IP轉送成為永久的,請在每個Linux伺服器上編輯 /etc/sysctl.conf 檔案,並從 #net.ipv4.ip_forward=1 移除前置哈希標記 (#) ,以啟用封包轉送。 編輯之後,項目應該會如下所示:

    # Uncomment the next line to enable packet forwarding for IPv4
    net.ipv4.ip_forward=1
    

    若要讓這項變更生效,您必須重新啟動伺服器或執行 sysctl -p

    如果 sysctl.conf 檔案中沒有預期的專案,請參閱您用來啟用 IP 轉送之散發套件的檔。 一般而言,您可以編輯 sysctl.conf ,在文件尾新增遺漏的行,以永久啟用 IP 轉送。

  • 針對每部伺服器設定多個 NIC (選擇性) :我們建議使用兩個網路介面控制器 (每個 Linux 伺服器) NIC 來改善效能,但使用兩個 是選擇性的。

    • NIC 1 - 此 NIC 會處理來自受控裝置的流量,且應位於具有公用 IP 位址的公用網路上。  此IP位址是您在 臺設定中設定的位址。 此位址可以代表單一伺服器或負載平衡器。

    • NIC 2 - 此 NIC 會處理內部部署資源的流量,而且應該位於您的私人內部網路上,而不需要網路分割。

  • 確定雲端式 Linux VM 可以存取內部部署網路:如果您在雲端中以 VM 身分執行 Linux,請確定伺服器可以存取您的內部部署網路。 例如,針對 Azure 中的 VM,您可以使用 Azure ExpressRoute 或類似的方式來提供存取權。 當您在內部部署 VM 中執行伺服器時,不需要 Azure ExpressRoute。

  • 負載平衡器 (選擇性) :如果您選擇新增負載平衡器,請參閱廠商檔以取得設定詳細數據。 請考慮 Intune和 Microsoft 通道專屬的網路流量和防火牆埠。

    Tunnel 伺服器會以靜態頁面回應 GET 要求。 負載平衡器會使用回應做為探查,以檢查 Tunnel 伺服器的活躍度。 回應是靜態的,而且不包含敏感性資訊。

  • 個別應用程式 VPN 和最上層網域支援 - Microsoft Tunnel 不支援搭配內部使用本機最上層網域的個別應用程式 VPN 使用。

防火牆

根據預設,Microsoft通道和伺服器會使用下列埠:

輸入連接埠

  • TCP 443 – Microsoft通道的必要專案。
  • UDP 443 – Microsoft通道的必要專案。
  • TCP 22 – 選擇性。 用於 Linux 伺服器的 SSH/SCP。

輸出埠

  • TCP 443 – 存取 Intune 服務的必要專案。 Docker 或 Podman 需要提取映像。

建立通道的伺服器組態時,您可以指定與預設值 443 不同的埠。 如果您指定不同的埠,請設定防火牆以支援您的設定。

更多需求

若要存取記錄的安全性令牌服務和 Azure 記憶體,請提供下列 FQDN 的存取權:

  • 安全性權杖服務: *.sts.windows.net
  • 用於通道記錄的 Azure 記憶體: *.blob.core.windows.net
  • 其他記憶體端點 URL: *.blob.storage.azure.net
  • Microsoft Intune:*.manage.microsoft.com
  • Microsoft驗證: login.microsoftonline.com
  • Microsoft圖形: graph.microsoft.com
  • 設定防火牆規則,以支援 Microsoft 成品登錄 (MAR) 用戶端防火牆規則設定中詳述的設定

Proxy

您可以使用 Proxy 伺服器搭配Microsoft通道。

注意事項

Android 10 版之前的版本不支援 Proxy 伺服器設定。 如需詳細資訊,請參閱該 Android 開發人員檔中的 VpnService.Builder

注意事項

請確定您的 Android LOB 應用程式支援適用於 MDM 和 MAM 的直接 Proxy 或 Proxy 自動設定 (PAC) 。

注意事項

已知問題:當設定 Proxy 自動設定 (PAC) 時,嘗試使用其個人或公司帳戶登入 Edge 的使用者可能會遇到問題。 在此案例中,登入程式可能會失敗,導致使用者無法存取內部資源。

因應措施:若要解決此問題,Microsoft通道會提供分割通道作為選項。 分割通道可讓使用者只包含需要 Proxy 的路由,同時排除透過信道路由的登入伺服器和驗證路徑。 此因應措施可確保登入程式不會受到 PAC 設定的影響,讓用戶能夠存取內部資源並流覽因特網。

直接 Proxy 也是沒有分割通道的選項,可讓登入使用公司帳戶在 Edge 中運作。 這牽涉到設定Microsoft通道使用直接 Proxy,而不是 PAC URL。

如果 Edge 中不需要使用者登入,則 PAC 支援一般流覽和存取內部資源。

下列考慮可協助您設定 Linux 伺服器和環境以獲得成功:

設定 Docker 的輸出 Proxy

  • 如果您使用內部 Proxy,您可能需要使用環境變數,將 Linux 主機設定為使用 Proxy 伺服器。 若要使用變數,請編輯 Linux 伺服器上的 /etc/environment 檔案,然後新增下列幾行:

    http_proxy=[address]
    https_proxy=[address]

  • 不支援已驗證的 Proxy。

  • Proxy 無法執行中斷和檢查,因為Linux伺服器在連線到 Intune時會使用TLS相互驗證。

  • 將 Docker 設定為使用 Proxy 來提取映像。 若要這樣做,請在Linux伺服器上編輯 /etc/systemd/system/docker.service.d/HTTP-proxy.conf 檔案,然後新增下列幾行:

    [Service]
    Environment="HTTP_PROXY=http://your.proxy:8080/"
    Environment="HTTPS_PROXY=https://your.proxy:8080/"
    Environment="NO_PROXY=127.0.0.1,localhost"
    

    注意事項

    Microsoft Tunnel 不支援 Microsoft Entra 應用程式 Proxy 或類似的 Proxy 解決方案。

設定 Podman 的輸出 Proxy

下列詳細數據可協助您在使用 Podman 時設定內部 Proxy:

  • 不支援已驗證的 Proxy。

  • Proxy 無法執行中斷和檢查,因為Linux伺服器在連線到 Intune時會使用TLS相互驗證。

  • Podman 會讀取儲存在 /etc/profile.d/http_proxy.sh 中的 HTTP Proxy 資訊。如果此檔案不存在於您的伺服器上,請加以建立。 編輯 http_proxy.sh 以新增下列兩行。 在下列幾行中, 10.10.10.1:3128 是 address:port 專案範例。 當您新增這些行時,請將 10.10.10.1:3128 取代為 Proxy IP 位址:port 的值:

    export HTTP_PROXY=http://10.10.10.1:3128
    export HTTPS_PROXY=http://10.10.10.1:3128

    如果您可以存取 Red Hat 客戶入口網站,您可以檢視與此解決方案相關聯的 知識庫 文章。 請參閱 設定 Podman 的 HTTP Proxy 變數 - Red Hat 客戶入口網站

  • 當您藉由執行 mstunnel-setup 來安裝 Microsoft Tunnel Gateway 之前,將這兩行新增至 http_proxy.sh 時,腳本會自動在 /etc/mstunnel/env.sh 中設定 Tunnel Gateway Proxy 環境變數。

    若要在Microsoft通道閘道閘道設定完成後設定 Proxy,請執行下列動作:

    1. 修改或建立 /etc/profile.d/http_proxy.sh 檔案,並新增前一個專案符號點中的兩行。

    2. 編輯 /etc/mstunnel/env.sh ,並將下列兩行新增至檔案結尾。 如同前幾行,請將範例 address:port10.10.10.1:3128 取代為 Proxy IP 位址:埠的值:

      HTTP_PROXY=http://10.10.10.1:3128
      HTTPS_PROXY=http://10.10.10.1:3128

    3. 重新啟動通道閘道閘道伺服器:執行 mst-cli server restart

    請注意,RHEL 使用 SELinux。 由於未在 SELinux 埠上執行 的 proxy http_port_t 可能需要額外的設定,因此請檢查是否使用適用於 HTTP 的 SELinux 受控埠。 若要檢視組態,請執行下列命令: sudo semanage port -l | grep "http_port_t"

    埠檢查命令的結果範例。 在此範例中,Proxy 使用 3128 且未列出:

    顯示埠檢查結果的螢幕快照。

    • 如果您的 Proxy 在其中一個 SELinux 埠上執行 ,http_port_t,則您可以繼續進行通道閘道閘道閘道安裝程式。

    • 如果您的 Proxy 未如上述範例所示,在 http_port_t 的 SELinux 連接埠上執行,您必須進行額外的設定。

      如果您的 Proxy 埠未列在http_port_t,請檢查其他服務是否使用 Proxy 埠。 使用 語意 命令,先檢查 Proxy 使用的埠,然後視需要稍後變更埠。 若要檢查 Proxy 使用的埠,請執行: sudo semanage port -l | grep "your proxy port"

      檢查可能使用埠之服務的結果範例:

      顯示服務檢查結果的螢幕快照。

      • 在此範例中,我們預期 (3128) 的埠會由剛好是 OSS Proxy 服務 的波浪區使用。 Squid Proxy SELinux 原則是許多常見散發套件的一部分。 由於 squid 使用埠 3128 (範例埠) ,因此我們必須修改 http_port_t 埠,並新增埠 3128,才能透過 SELinux 針對 Tunnel 所使用的 Proxy 使用。 若要修改埠使用,請執行下列命令: sudo semanage port -m -t http_port_t -p tcp "your proxy port"

        變更連接埠的命令範例:

        顯示埠修改命令範例的螢幕快照。

        執行命令以變更埠之後,請執行下列命令來檢查埠是否由另一個服務使用: sudo semanage port -l | grep "your proxy port"

        變更連接埠後檢查埠的命令範例:

        修改後檢查埠的螢幕快照。

        在此範例中,埠 3128 現在與 http_port-tsquid_port_t 相關聯。 預期會有該結果。 如果在執行 sudo 語意埠 -l | grep “your_proxy_port” 命令時未列出您的 Proxy 連接埠,請執行命令以再次修改埠,但語命令中的 -m 具有 -asudo semanage port -a -t http_port_t -p tcp "your proxy port"

設定 Podman 以使用 Proxy 下載映像更新

您可以將 Podman 設定為使用 Proxy 下載 (提取) Podman 的更新映射:

  1. 在通道伺服器上,使用命令提示字元執行下列命令,開啟 Microsoft Tunnel 服務覆寫檔案的編輯器:

    systemctl edit --force mstunnel_monitor

  2. 將下列三行新增至檔案。 將 [ address] 的每個實例取代為您的 Proxy DN 或地址,然後儲存盤案:

    [Service]
    Environment="http_proxy=[address]"
    Environment="https_proxy=[address]"
    
  3. 接下來,在命令提示字元中執行下列命令:

    systemctl restart mstunnel_monitor

  4. 最後,在命令提示字元中執行下列命令,以確認設定成功:

    systemctl show mstunnel_monitor | grep http_proxy

    如果設定成功,結果會類似下列資訊:

    Environment="http_proxy=address:port"
    Environment="https_proxy=address:port"
    

更新通道伺服器所使用的 Proxy 伺服器

若要變更通道伺服器的 Linux 主機正在使用的 Proxy 伺服器組態,請使用下列程式:

  1. 在通道伺服器上,編輯 /etc/mstunnel/env.sh 並指定新的 Proxy 伺服器。

  2. 執行 mst-cli install

    此命令會使用新的 Proxy 伺服器詳細數據來重建容器。 在此程式期間,系統會要求您確認 /etc/mstunnel/env.sh 的內容,並確定已安裝憑證。 憑證應該已經存在先前的 Proxy 伺服器組態中。

    若要確認並完成設定,請輸入 yes

平台

裝置必須註冊,Intune 才能支援Microsoft通道。 僅支援下列裝置平臺:

  • iOS/iPadOS

  • Android Enterprise:

    • 完全受控
    • Corporate-Owned 工作配置檔
    • Personally-Owned 工作配置檔

    注意事項

    Microsoft通道不支援 Android Enterprise 專用裝置。

所有平台都支援下列功能:

  • Microsoft Entra 使用使用者名稱和密碼向 Tunnel 進行驗證。
  • Active Directory 同盟服務 (AD FS) 使用使用者名稱和密碼向 Tunnel 進行驗證。
  • 個別應用程式支援。
  • 透過通道應用程式手動全裝置通道,使用者會在其中啟動 VPN 並選取 [ 連線]
  • 分割通道。 不過,當您的 VPN 設定檔 使用每個應用程式 VPN 時,會忽略 iOS 分割通道規則。

Proxy 的支援僅限於下列平臺:

  • Android 10 和更新版本
  • iOS/iPadOS

權限

若要管理Microsoft通道,用戶必須擁有包含在 Intune 中Microsoft通道網關許可權群組中的許可權。 根據預設,Intune 系統管理員和 Microsoft Entra 系統管理員具有這些許可權。 您也可以將它們新增至您為 Intune 租使用者建立的自定義角色

設定角色時,請在 [權 ] 頁面上展開 [Microsoft 通道閘道閘道 ],然後選取您要授與的許可權。

Microsoft Intune 系統管理中心內通道閘道閘道的螢幕快照。

Microsoft通道閘道閘道閘道閘取群組會授與下列權限:

  • 建立 - 設定Microsoft通道閘道閘道 伺服器月臺。 伺服器組態包括IP位址範圍、DNS 伺服器、埠和分割通道規則的設定。 月臺是支援通道Microsoft多部伺服器的邏輯群組。

  • 更新 (修改) - 更新 Microsoft Tunnel 閘道伺服器組態和月臺。 伺服器組態包括IP位址範圍、DNS 伺服器、埠和分割通道規則的設定。 月臺是支援通道Microsoft多部伺服器的邏輯群組。

  • 刪除 - 刪除 Microsoft Tunnel 閘道伺服器組態和月臺。 伺服器組態包括IP位址範圍、DNS 伺服器、埠和分割通道規則的設定。 月臺是支援通道Microsoft多部伺服器的邏輯群組。

  • 取 - 檢視 Microsoft Tunnel 閘道伺服器組態和月臺。 伺服器組態包括IP位址範圍、DNS 伺服器、埠和分割通道規則的設定。 月臺是支援通道Microsoft多部伺服器的邏輯群組。

執行整備工具

開始安裝伺服器之前,建議您下載並執行最新版的 mst-readiness 工具。 此工具是在 Linux 伺服器上執行的文稿,並執行下列動作:

  • 驗證您用來安裝 Microsoft Tunnel 的 Microsoft Entra 帳戶具有完成註冊所需的角色。

  • 確認您的網路設定允許Microsoft通道存取所需的Microsoft端點。

  • 檢查 Linux 伺服器上是否有ip_tables模組。 這項檢查已在 2022 年 2 月 11 日新增 RHEL 8.5 支援時新增至腳本。 RHEL 8.5 之後預設不會載入ip_tables模組。 如果在 Linux 伺服器安裝之後遺失,您必須 手動載入ip_tables模組

重要事項

整備工具不會驗證輸入埠,這是常見的設定錯誤。 整備工具執行之後,請檢閱 防火牆必要條件 ,並手動驗證您的防火牆傳遞輸入流量。

mst 整備工具相依於 jq,這是命令行 JSON 處理器。 執行整備工具之前,請確定 已安裝 jq 。 如需如何取得和安裝 jq 的相關信息,請參閱您所使用 Linux 版本的檔。

若要使用整備工具:

  1. 使用下列其中一種方法取得最新版的整備工具:

    • 使用網頁瀏覽器直接下載工具。 移至 https://aka.ms/microsofttunnelready 以下載名為 mst-readiness 的檔案。

    • 登入 Microsoft Intune 系統管理中心>租用戶系統管理>Microsoft通道閘道閘道,選取 [伺服器] 索引標籤,選取 [建立] 以開啟 [建立伺服器] 窗格,然後選取 [下載整備工具]

    • 使用Linux命令直接取得整備工具。 例如,您可以使用 wgetcurl 來開啟連結 https://aka.ms/microsofttunnelready

      例如,若要在下載期間使用 wget 和記錄檔詳細數據進行 mst 整備 ,請執行 wget --output-document=mst-readiness https://aka.ms/microsofttunnelready

    腳本可以從與您打算安裝的伺服器位於相同網路上的任何 Linux 伺服器執行,這可讓網路管理員使用腳本來個別針對網路問題進行疑難解答。

  2. 若要驗證您的網路和 Linux 設定,請使用下列命令執行腳本。 這些命令會設定腳本的執行許可權、驗證 Tunnel 可以連線到正確的端點,然後檢查 Tunnel 使用的公用程式是否存在:

    • sudo ./mst-readiness

    • sudo ./mst-readiness network - 此指令會執行下列動作,然後報告兩者的成功或錯誤:

      • 嘗試連線到通道將使用的每個Microsoft端點。
      • 檢查防火牆中是否已開啟必要的埠。
    • sudo ./mst-readiness utils - 此命令會驗證通道所使用的公用程式,例如 Docker 或 Podman 和 ip_tables 可用。

  3. 若要驗證您將用來安裝 Microsoft Tunnel 的帳戶具有完成註冊所需的角色和許可權,請使用下列命令行執行腳本: ./mst-readiness account

    腳本會提示您使用不同的計算機搭配網頁瀏覽器,用來驗證以 Microsoft Entra ID 和 Intune。 此工具會報告成功或錯誤。

如需此工具的詳細資訊,請參閱 Microsoft Tunnel 文章參考文章中的 mst-cli 參考。

手動載入ip_tables

雖然大部分的Linux發行版都會自動載入ip_tables模組,但某些發行版可能不會。 例如,RHEL 8.5 預設不會載入ip_tables。

若要檢查此模組是否存在,請在 Linux 伺服器上執行最新版的 mst 整備工具。 已在 2022 年 2 月 11 日將ip_tables檢查新增至整備工具腳本。

如果模組不存在,工具會在ip_tables模組檢查上停止。 在此案例中,您可以執行下列命令來手動載入模組。

手動載入ip_tables模組

在 sudo 的內容中,在您的 Linux 伺服器上執行下列命令:

  1. 驗證伺服器上是否有ip_tables: lsmod |grep ip_tables

  2. 如果ip_tables不存在,請執行下列命令以立即將模組載入核心,而不需要重新啟動: /sbin/modprobe ip_tables

  3. 重新執行驗證以確認現在已載入資料表: lsmod |grep ip_tables

重要事項

更新 Tunnel 伺服器時,可能無法保存手動載入ip_tables模組。 這可能需要您在更新完成之後重載模組。 伺服器更新完成之後,請檢閱伺服器是否有ip_tables模組。

如果數據表不存在,請使用上述步驟來重載模組,並使用載入模組之後重新啟動伺服器的額外步驟。

設定 Linux 在開機時載入ip_tables

在 sudo 的內容中,在 Linux 伺服器上執行下列命令,以建立在開機期間將ip_tables載入核心的組態檔: echo ip_tables > /etc/modules-load.d/mstunnel_iptables.conf

手動載入 tun 模組

Microsoft通道需要 tun 模組,但某些 Linux 散發套件預設不會載入 tun 模組。

若要驗證伺服器上的 tun 模組是否存在,請執行: lsmod |grep tun

  1. 如果 tun 不存在,請執行下列命令以立即將模組載入核心,而不需要重新啟動: /sbin/modprobe tun

  2. 重新執行驗證以確認現在已載入 tun 模組: lsmod |grep tun

重要事項

更新 Tunnel 伺服器時,可能無法保存手動載入的 tun 模組。 這可能需要您在更新完成之後重載模組。 伺服器更新完成之後,請檢閱伺服器是否有 tun 模組。

如果不存在,請使用上述步驟重載模組,並使用載入模組之後重新啟動伺服器的額外步驟。

設定 Linux 在開機時載入 tun

在 sudo 的內容中,在 Linux 伺服器上執行下列命令,以建立在開機期間將 tun 載入核心的組態檔: echo tun > /etc/modules-load.d/mstunnel_tun.conf

後續步驟

設定 Microsoft Tunnel