Intune 中 Microsoft Tunnel 的必要條件

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

概括而言,Microsoft Tunnel 需要:

  • Azure 訂用帳戶。

  • Microsoft Intune方案 1 訂用帳戶。

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

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

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

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

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

注意事項

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

Linux 伺服器

設定要安裝 Microsoft Tunnel 閘道的 Linux 型虛擬機或實體伺服器。

注意事項

僅支援下表所列的作業系統和容器版本。 不支援未列出的版本。 只有在測試和支援性經過驗證之後,才會將較新的版本新增至此清單。 使用安全性更新讓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 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) 9.0 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。
    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 Tunnel 最多支援 64,000 個並行連線,但個別裝置可以開啟多個連線。

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

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

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

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

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

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

      注意事項

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

    • 在 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 安裝腳本時使用修改過的命令行。 如需其他必要條件和安裝命令行的相關信息,請參閱設定適用於 Intune 的 Microsoft Tunnel 一文中的使用無根 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) 位址。

  • TLS 版本:根據預設,Microsoft Tunnel 用戶端與伺服器之間的聯機會使用 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 設定容器網路 功能。

網路

  • 啟用 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 專屬的網路流量和防火牆埠。

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

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

防火牆

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

輸入連接埠

  • TCP 443 – Microsoft Tunnel 的必要專案。
  • UDP 443 – Microsoft Tunnel 的必要專案。
  • 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 的網路端點具有相同的需求,並新增埠 TCP 22 和 graph.microsoft.com。

  • 設定防火牆規則,以支援 Microsoft 成品登錄 (MAR) 用戶端防火牆規則設定中詳述的設定。

Proxy

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

注意事項

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

注意事項

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

注意事項

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

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

直接 Proxy 也是沒有分割通道的選項,可讓登入使用公司帳戶在 Edge 中運作。 這牽涉到將 Microsoft Tunnel 設定為使用直接 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 客戶入口網站

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

    若要在 Microsoft Tunnel 閘道設定完成後設定 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 Tunnel。 僅支援下列裝置平臺:

  • iOS/iPadOS

  • Android Enterprise:

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

    注意事項

    Microsoft Tunnel 不支援 Android Enterprise 專用裝置。

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

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

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

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

權限

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

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

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

Microsoft Tunnel 網關許可權群組會授與下列許可權:

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

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

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

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

執行整備工具

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

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

  • 確認您的網路設定允許 Microsoft Tunnel 存取所需的 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 Tunnel 網關,選取 [伺服器] 索引卷標,選取 [建立] 以開啟 [建立伺服器] 窗格,然後選取 [下載整備工具]

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

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

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

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

    • sudo chmod +x ./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 Tunnel 需要 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