在安裝 Microsoft Tunnel VPN 閘道器 Microsoft Intune 之前,先檢視並設定前置條件。 前置條件包括使用運行容器以承載隧道伺服器軟體的 Linux 伺服器。 同時也要規劃網路、防火牆和代理伺服器,以支援 Microsoft 隧道的通訊。
從高層次來看,Microsoft 隧道要求:
Azure 訂用帳戶。
一個 Microsoft Intune 方案 1 訂閱。
注意事項
此前置條件適用於 Microsoft Tunnel,不包含 Microsoft Tunnel for Mobile Application Management,後者為 Intune 附加元件,需訂閱 Microsoft Intune Plan 2。
要完成 Microsoft 隧道的設定,你用來在 Microsoft Intune 註冊隧道閘道器的帳號,以及你的Intune租戶必須被分配為Intune管理員的Microsoft Entra ID角色,並被分配Intune授權。
一台執行容器的 Linux 伺服器。 伺服器可設置於本地或雲端,並支援以下容器類型之一:
- Podman 為 Red Hat Enterprise Linux (RHEL) 。 請參閱 Linux 伺服器需求。
- 所有其他 Linux 發行版都使用 Docker。
傳輸層安全 (TLS) 憑證,用於Linux伺服器保護裝置與隧道閘道伺服器的連線。
是運行 Android 或 iOS/iPadOS 的裝置。
設定完前置條件後,我們建議您執行 準備工具 ,以驗證您的環境是否已妥善配置,確保安裝順利。
以下章節將說明 Microsoft 隧道的前置條件,並提供使用準備工具的指引。
注意事項
隧道與全球安全存取 (GSA) 不能在同一裝置上同時使用。
政府雲端支援
Microsoft Tunnel 支援以下主權雲端環境:
- 美國政府社群雲 (GCC) High
Microsoft Tunnel 不支援由 21Vianet 運營的 Microsoft Azure。
欲了解更多資訊,請參閱 Microsoft Intune 以了解美國政府 GCC 服務說明。
Linux 伺服器
建立一台基於 Linux 的虛擬機器或實體伺服器來安裝 Microsoft 隧道閘道器。
注意事項
僅支援下表列出的作業系統與容器版本。 未列出的版本不支援。 只有在測試與可支援性驗證後,才會將新版本加入此清單。 也要隨時更新作業系統的安全更新。
支援的 Linux 發行版 - 下表說明隧道伺服器支援哪些 Linux 版本,以及它們所需的容器:
發行版本 容器需求 考量 紅帽 (RHEL) 8.9 Podman 4.4.1 支援將於2025年11月結束。 此版本的 RHEL 不會自動將 ip_tables 模組載入 Linux 核心。 使用此版本時,請在安裝 Tunnel 前手動 載入ip_tables 。
Podman v3 及更早版本建立的容器 無法在 Podman v4.2 及以後版本使用。 如果要升級和更換容器,建議先建立新的容器,然後卸載再重新安裝 Microsoft Tunnel。紅帽 (RHEL) 8.10 Podman 4.9.4-rhel (default) 此版本的 RHEL 不會自動將 ip_tables 模組載入 Linux 核心。 使用此版本時,請在安裝 Tunnel 前手動 載入ip_tables 。
Podman v3 及更早版本建立的容器 無法在 Podman v4.2 及以後版本使用。 如果要升級和更換容器,建議先建立新的容器,然後卸載再重新安裝 Microsoft Tunnel。紅帽 (RHEL) 9.3 Podman 4.6.1。 (預設) 支援將於2025年11月結束。 此版本的 RHEL 不會自動將 ip_tables 模組載入 Linux 核心。 使用此版本時,請在安裝 Tunnel 前手動 載入ip_tables 。
Podman v3 及更早版本建立的容器 無法在 Podman v4.2 及以後版本使用。 如果要升級和更換容器,建議先建立新的容器,然後卸載再重新安裝 Microsoft Tunnel。紅帽 (RHEL) 9.4 Podman 4.9.4-rhel (default) 支援將於2025年11月結束。 此版本的 RHEL 不會自動將 ip_tables 模組載入 Linux 核心。 使用此版本時,請在安裝 Tunnel 前手動 載入ip_tables 。
Podman v3 及更早版本建立的容器 無法在 Podman v4.2 及以後版本使用。 如果要升級和更換容器,建議先建立新的容器,然後卸載再重新安裝 Microsoft Tunnel。紅帽 (RHEL) 9.5 Podman 5.2.2 (預設) 此版本的 RHEL 不會自動將 ip_tables 模組載入 Linux 核心。 使用此版本時,請在安裝 Tunnel 前手動 載入ip_tables 。
Podman v3 及更早版本建立的容器 無法在 Podman v4.2 及以後版本使用。 如果要升級和更換容器,建議先建立新的容器,然後卸載再重新安裝 Microsoft Tunnel。紅帽 (RHEL) 9.6 Podman 5.4.0 (預設) 此版本的 RHEL 不會自動將 ip_tables 模組載入 Linux 核心。 使用此版本時,請在安裝 Tunnel 前手動 載入ip_tables 。
Podman v3 及更早版本建立的容器 無法在 Podman v4.2 及以後版本使用。 如果要升級和更換容器,建議先建立新的容器,然後卸載再重新安裝 Microsoft Tunnel。紅帽 (RHEL) 10.0 Podman 5.4.0 (預設) 此版本的 RHEL 不會自動將 ip_tables 模組載入 Linux 核心。 使用此版本時,請在安裝 Tunnel 前手動 載入ip_tables 。
Podman v3 及更早版本建立的容器 無法在 Podman v4.2 及以後版本使用。 如果要升級和更換容器,建議先建立新的容器,然後卸載再重新安裝 Microsoft Tunnel。Ubuntu 22.04 Docker CE Ubuntu 24.04 Docker CE 重要事項
2023 年 4 月,Ubuntu 將停止對 Ubuntu 18.04 的支援。 隨著 Ubuntu 支援結束,Intune 也將停止支援 Ubuntu 18.04 與 Microsoft Tunnel 的使用。 如需詳細資訊,請參閱 https://wiki.ubuntu.com/Releases。
Linux伺服器規模:請依照以下指引達成預期用途:
# 裝置 # 中央處理器 記憶體 GB # 伺服器 # 地點 磁碟空間 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:根據你用於隧道伺服器的 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 Engine。
注意事項
前一個連結會引導你到CentOS的下載與安裝說明。 用同樣的指示來做 RHEL 7.4。 RHEL 7.4 預設安裝的版本太舊,無法支援 Microsoft Tunnel Gateway。
在 Red Hat Enterprise Linux 8.4 及更新版本安裝 Podman (往下滑到 RHEL8) 。
這些 RHEL 版本不支援 Docker。 這些版本使用 Podman,而 podman 是稱為「container-tools」模組的一部分。 在此語境中,模組是一組代表元件的 RPM 套件,通常會一起安裝。 典型的模組包含包含應用程式的套件、包含特定應用程式相依函式庫的套件、包含應用程式文件的套件,以及帶有輔助工具的套件。 欲了解更多資訊,請參閱 Red Hat 文件中的 模組介紹 。
注意事項
無根 Podman:Microsoft Tunnel 支援使用無根 Podman 容器。
使用 rootless Podman 需要 額外的前提 條件,且在啟動 Tunnel 安裝腳本時需使用修改過的命令列。 關於額外前置條件及安裝命令列的資訊,請參閱「配置 Microsoft 隧道 for Intune」文章中的「使用 rootless Podman 容器」。
TLS) 憑證 (傳輸層安全性:Linux伺服器需要受信任的 TLS 憑證來保護裝置與隧道閘道伺服器之間的連線。 在安裝隧道閘道器時,你會將 TLS 憑證和完整的受信任憑證鏈加入伺服器。
你用來保護隧道閘道端點的 TLS 憑證的 SAN 代 (名 SAN) ,必須與隧道閘道伺服器的 IP 位址或 FQDN 相符。
對於 iOS 裝置,公開的 TLS 憑證必須由根憑證卡(Root CA)核發,且最長有效期限為 398 天。 由使用者新增或管理員新增的根憑證憑證所發出的憑證,最長有效期限可達兩年 (730天) 。 欲了解更多關於這些 TLS 證書要求的資訊,請參閱 《關於 support.apple.com 可信憑證即將推出的限制 》。
對於 Android 裝置,我們建議由根憑證卡(Root CA)發出的公開 TLS 憑證,最長有效期限為 398 天。
萬用牌支援有限。 例如, *.contoso.com 支援,但 cont*.com 不支援。
在安裝隧道閘道伺服器時,您必須將整個受信任憑證鏈複製到您的 Linux 伺服器。 安裝腳本會提供你複製憑證檔案的位置,並提示你複製。
如果你使用的 TLS 憑證不是公開信任的,你必須將整個信任鏈推送到使用 Intune 受信任憑證設定檔的裝置。
TLS 證書可為 PEM 格式或 pfx 格式。
為支援 TLS 憑證撤銷 健康檢查,請確保線上憑證狀態協定 (OCSP) 或憑證撤銷清單 (TLS 憑證定義的 CRL) 位址可從伺服器存取。
將隧道用戶端的憑證設定為 2048 位元或更大的金鑰。 我們建議較大的金鑰,以協助部署持續支援未來及各種 SSL/TLS 函式庫解決方案不斷演變的 SSL/TLS 需求。
提示
定期檢視您所選 SSL/TLS 函式庫的需求,確保您的基礎設施與憑證持續支援並符合該函式庫的最新變更,並在必要時重新發行隧道用戶端憑證,以保持解決方案不斷演變的需求。
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 使用你指定的橋接網路。
重要事項
必須先安裝隧道閘道伺服器,才能更改橋接網路設定。
更改 Docker 使用的預設橋接網路
Docker 使用 /etc/docker/daemon.json 這個檔案來設定新的預設橋接 IP 位址。 在檔案中,橋接 IP 位址必須以 CIDR (無類別域間路由) 表示法指定,這是一種簡潔的方式來表示 IP 位址及其相關的子網遮罩和路由前綴。
重要事項
以下步驟中使用的 IP 位址就是一個範例。 確保你使用的 IP 位址不會與你的企業網路衝突。
請使用以下指令停止 MS 隧道閘道容器:
sudo mst-cli server stop ; sudo mst-cli agent stop接著,執行以下指令移除現有的 Docker 橋接裝置:
sudo ip link del docker0如果你的伺服器上有 /etc/docker/daemon.json 檔案,可以用像 vi 或 nano 這類檔案編輯器來修改。 請以 root 或 sudo 權限執行檔案編輯器:
- 當「 bip: 」條目帶有 IP 位址時,透過 CIDR 表示新增 IP 位址來修改該條目。
- 當「 bip」 項目不存在時,你必須同時加上 「bip」: 值和新的 IP 位址,並以 CIDR 表示法。
以下範例展示了一個更新為「bip」的 daemon.json 檔案結構:即使用修改後的 IP 位址「192.168.128.1/24」。
daemon.json範例:
{ "bip": "192.168.128.1/24" }如果 /etc/docker/daemon.json 檔案在你的伺服器上沒有,請執行類似以下範例的指令來建立檔案並定義你想使用的橋接 IP。
範例:
sudo echo '{ "bip":"192.168.128.1/24" }' > /etc/docker/daemon.json請使用以下指令啟動 MS 隧道閘道容器:
sudo mst-cli agent start ; sudo mst-cli server start
更多資訊請參閱 Docker 文件中的 「使用橋接網路 」。
更改 Podman 使用的預設橋接網路
Podman 使用 /etc/cni/net.d 檔案為 87-podman-bridge.conflist 來設定新的預設橋接 IP 位址。
請使用以下指令停止 MS 隧道閘道容器:
sudo mst-cli server stop ; sudo mst-cli agent stop接著,執行以下指令移除現有的 Podman 橋接裝置:
sudo ip link del cni-podman0利用根權限和像 vi 或 nano 這類檔案編輯器,將 /etc/cni/net.d 修改為 87-podman-bridge.conflist ,更新 「subnet:」 和 「gateway:」 的預設值,方法是將 Podman 預設值替換成你想要的子網和閘道位址。 子 網 位址必須以 CIDR 表示法指定。
Podman 預設值如下:
- 子網:10.88.0.0/16
- 閘道:10.88.0.1
請使用以下指令重新啟動 MS Tunnel Gateway 容器:
sudo mst-cli agent start ; sudo mst-cli server start
更多資訊請參閱 Red Hat 文件中的 「使用 Podman 配置容器網路 」。
Linux 系統稽核
Linux 系統稽核能協助識別承載 Microsoft 隧道的 Linux 伺服器上的安全相關資訊或安全違規行為。 建議對 Microsoft 隧道進行 Linux 系統稽核,但並非必須。 要使用系統稽核,Linux 伺服器必須將被稽核的套件安裝於 /etc/audit/auditd.conf。
每次執行 MST 準備工具時,工具可能會顯示警示,表示缺 失審核 。 為了啟用對隧道專屬目錄的稽核,務必在執行 mstunnel-setup 前安裝稽核套件。
如何實作稽核的細節取決於你使用的 Linux 平台:
Red Hat:Red 的版本預設安裝了 Enterprise Linux 7 及以後的審核套件。 不過,如果套件尚未安裝,你可以在 Linux 伺服器上使用以下命令列安裝:
sudo dnf install audit audispd-plugins通常, 審核後 的套件可從每個 REHL 版本的預設儲存庫取得。
欲了解更多關於在 RHEL 上使用系統稽核的資訊,請參閱 Red Hat 部落格的「使用 auditd 配置 Linux 系統稽核」。
Ubuntu:要在 Ubuntu 使用系統稽核,必須手動安裝 審核套件 。 要做到這一點,請在 Linux 伺服器上使用以下命令列:
sudo apt install auditd audispd-plugins通常, 審核後 的套件可從每個 Ubuntu 版本的預設儲存庫取得。
欲了解更多關於在 Ubuntu 上使用系統稽核的資訊,請參閱 《如何在 Ubuntu 上設定與安裝 Auditd》,該文章最初於 kubefront.com 年發表於 dev.to 網站。
網路
啟用 IPv4 封包轉發:每台承載隧道伺服器軟體的 Linux 伺服器都必須啟用 IPv4 的 IP 轉發功能。 要檢查 IP 轉發狀態,可以在伺服器上執行以下其中一個通用指令,作為 root 或 sudo。 兩個指令都回傳 0 表示停用,1 表示啟用:
sysctl net.ipv4.ip_forwardcat /proc/sys/net/ipv4/ip_forward
如果未啟用,你可以暫時啟用 IP 轉發,方法是在伺服器上以 root 或 sudo 身份執行以下通用指令之一。 這些指令可以改變 IP 轉發設定,直到伺服器重新啟動。 重啟後,伺服器會將 IP 轉發行為回復到先前狀態。 對這兩個指令,請使用值 1 來 啟用 轉發。 值為 0 則會停用轉發。 以下指令範例使用值 1 來 啟用 轉發:
sysctl -w net.ipv4.ip_forward=1echo 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 轉發。
每台伺服器配置多個網卡 (可選) :我們建議每台Linux伺服器使用兩個網路介面控制器 () 網卡以提升效能,但使用兩個為可選。
NIC 1 - 這張網卡負責處理你受管理裝置的流量,應該在公共網路上,且有公共 IP 位址。 這個 IP 位址就是你在 站點設定中設定的位址。 此位址可代表單一伺服器或負載平衡器。
NIC 2 - 這張網卡負責處理你本地資源的流量,應該在你的私有內部網路上,且不會分段網路。
確保雲端 Linux 虛擬機能存取您的本地網路:如果您將 Linux 作為雲端虛擬機運行,請確保伺服器能存取您的本地網路。 例如,對於 Azure 中的虛擬機,你可以使用 Azure ExpressRoute 或類似工具來提供存取權限。 當你在本地虛擬機中運行伺服器時,Azure ExpressRoute 並非必需。
負載平衡器 (可選) :如果您選擇新增負載平衡器,請參閱廠商文件以了解設定細節。 請考慮 Intune 和 Microsoft 隧道特有的網路流量和防火牆埠口。
隧道伺服器會以靜態頁面回應 GET 請求。 負載平衡器會用這個回應作為探測器,用來檢查隧道伺服器的存續狀態。 回覆內容靜態,且不含敏感資訊。
每應用程式 VPN 與頂層網域支援 - Microsoft Tunnel 不支援本地頂層網域的內部應用 VPN 使用。
防火牆
預設情況下,Microsoft 隧道與伺服器使用以下埠口:
入港港口:
- TCP 443 – 由 Microsoft 隧道要求。
- UDP 443 – Microsoft 隧道必備。
- TCP 22 – 選用。 用於 SSH/SCP 傳輸至 Linux 伺服器。
出港港口:
- TCP 443 – 存取 Intune 服務所需。 Docker 或 Podman 必須用來拉映像檔。
在建立隧道伺服器設定時,你可以指定與預設 443 不同的埠。 如果你指定不同的埠,請設定防火牆來支援你的設定。
更多要求:
若要存取安全令牌服務及 Azure 日誌儲存,請提供以下 FQDN 的存取權限:
- 安全令牌服務:
*.sts.windows.net - Azure storage for tunnel logs:
*.blob.core.windows.net - 其他儲存端點網址:
*.blob.storage.azure.net - Microsoft Intune:
*.manage.microsoft.com - Microsoft 認證:
login.microsoftonline.com - Microsoft Graph:
graph.microsoft.com - 設定防火牆規則以支援 MAR) 用戶端防火牆規則設定中Microsoft 成品登錄 (詳細說明的配置。
- 診斷終點:
powerlift-frontdesk.acompli.net
Proxy
你可以用代理伺服器搭配 Microsoft Tunnel。
注意事項
確保你的 Android LOB 應用程式支援直接代理或代理自動設定 (PAC) ,無論是 MDM 還是 MAM。
注意事項
已知問題:嘗試使用個人或企業帳號登入 Edge 的使用者,在設定代理自動設定 (PAC) 時可能會遇到問題。 在此情況下,登入程序可能失敗,導致使用者無法存取內部資源。
解決方法:為了解決這個問題,Microsoft Tunnel 提供了分割隧道作為選項。 分割隧道允許使用者只包含需要代理的路由,並排除登入伺服器與認證路徑,避免透過隧道路由。 此變通方法確保登入過程不受 PAC 設定影響,允許使用者存取內部資源並瀏覽網際網路。
直接代理也是一個選項,不用分割隧道,就能用企業帳號登入 Edge 工作。 這涉及將 Microsoft Tunnel 設定為直接代理而非 PAC URL。
若 Edge 不需要使用者登入,則支援 PAC 進行一般瀏覽及存取內部資源。
以下考量可協助你配置 Linux 伺服器及環境,確保成功:
為 Docker 設定一個外發代理
如果你使用內部代理,可能需要透過環境變數設定 Linux 主機使用代理伺服器。 要使用變數,請在 Linux 伺服器編輯 /etc/environment 檔案,並新增以下行,將每行的位址替換為你的代理 IP 位址:port:
http_proxy=address
https_proxy=address不支援認證代理伺服器。
代理伺服器無法執行破壞與檢查,因為 Linux 伺服器在連接 Intune 時使用 TLS 互認證。
設定 Docker 讓它使用代理來拉取映像檔。 為此,請在 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 應用程式代理或類似的代理解決方案。
為 Podman 設定一個外撥代理
以下細節可以幫助你在使用 Podman 時設定內部代理:
不支援認證代理伺服器。
代理伺服器無法執行破壞與檢查,因為 Linux 伺服器在連接 Intune 時使用 TLS 互認證。
Podman 讀取儲存在 /etc/profile.d/http_proxy.sh 中的 HTTP 代理資訊。如果你的伺服器上沒有這個檔案,就建立它。 編輯 http_proxy.sh 補充以下兩行。 以下行中, 10.10.1:3128 是一個範例 address:port entry。 當你加入這些線時,請將 10.10.10.1:3128 替換成你的代理 IP 位址:port:
export HTTP_PROXY=http://10.10.10.1:3128
export HTTPS_PROXY=http://10.10.10.1:3128如果你能使用 Red Hat Customer Portal,可以查看與此解決方案相關的知識庫文章。 請參閱 Set Up Setup HTTP Proxy variables for Podman - Red Hat Customer Portal。
當你在安裝 Tunnel Gateway 前,透過執行 mstunnel-setup,先加上這兩行 Microsoft 到 http_proxy.sh ,腳本會自動在 /etc/mstunnel/env.sh 中配置 Tunnel Gateway 代理的環境變數。
在 Microsoft 隧道閘道器設定完成後,要設定代理,請執行以下操作:
修改或建立檔案 /etc/profile.d/http_proxy.sh ,並加上前一項目符號中的兩行。
編輯 /etc/mstunnel/env.sh ,並在檔案末尾加上以下兩行。 如前幾行,將範例 address:port 值 10.10.10.1:3128 替換成你的代理 IP 位址:port:
HTTP_PROXY=http://10.10.10.1:3128
HTTPS_PROXY=http://10.10.10.1:3128重啟隧道閘道伺服器:執行
mst-cli server restart
請注意,RHEL 使用 SELinux。 因為代理伺服器如果無法在 SELinux 埠口執行,可能需要額外設定 http_port_t 所以可以檢查 SELinux 管理埠口的使用 HTTP 版本。 要查看配置,請執行以下指令:
sudo semanage port -l | grep "http_port_t"端口檢查指令結果範例。 在這個例子中,代理使用了 3128,且未被列出:
如果你的代理伺服器在 SELinux 的某個埠口上執行, http_port_t,那你就可以繼續隧道閘道器的安裝流程。
如果你的代理檔無法像前面例子那樣在 SELinux 埠 http_port_t 執行,你必須額外設定。
如果你的代理埠沒有被列在http_port_t,請檢查該代理埠是否被其他服務使用。 先用 semanage 指令檢查代理使用的埠口,必要時再更改。 要檢查代理伺服器使用的埠,請執行:
sudo semanage port -l | grep "your proxy port"檢查可能使用該埠的服務結果範例:
在這個例子中,我們預期 (3128) 埠口是由 squid 使用,而 squid 恰巧是 OSS 代理服務。 Squid proxy SELinux 政策是許多常見發行版的一部分。 由於 squid 在範例埠) 使用 3128 埠 (,我們必須修改 http_port_t 埠,並新增 3128 埠,才能透過 SELinux 允許作為 Tunnel 代理。 要修改埠的使用方式,請執行以下指令:
sudo semanage port -m -t http_port_t -p tcp "your proxy port"修改埠口的指令範例:
執行變更埠的指令後,執行以下指令檢查該埠是否被其他服務使用:
sudo semanage port -l | grep "your proxy port"修改埠後檢查埠口指令的範例:
在此範例中,埠 3128 現在同時關聯 http_port-t 和 squid_port_t。 這樣的結果是意料之中的。 如果執行 sudo semanage port -l | grep “your_proxy_port” 指令時,你的代理埠沒有被列出,那就再次執行修改埠的指令,但 semanage 指令中的 -m 加 -a:
sudo semanage port -a -t http_port_t -p tcp "your proxy port"
設定 Podman 使用代理伺服器下載映像更新
你可以設定 Podman 使用代理伺服器下載 (拉取更新) Podman 的映像檔。 此配置對未來升級非常重要。 因為必須在安裝隧道閘道器後設定,我們在此提及,但在《配置 Microsoft 隧道》文章中新增了設定 Podman 使用代理檔下載映像更新的設定指引,作為安裝隧道閘道器伺服器後完成的任務。
平台
裝置必須註冊至 Intune 才能支援 Microsoft Tunnel。 僅支援以下裝置平台:
iOS/iPadOS
Android 企業版:
- 完全管理
- Corporate-Owned 工作概況
- Personally-Owned 工作簡介
注意事項
Android 企業專用 裝置不被 Microsoft Tunnel 支援。
重要事項
Microsoft Tunnel 對 Android 10 的支援於 2026 年 3 月 31 日結束。 運行 Android 10 的裝置必須升級至 Android 11 或更新版本,才能繼續使用 Microsoft Tunnel。
所有平台都支援以下功能:
- Microsoft Entra 透過使用者名稱和密碼驗證隧道。
- Active Directory 同盟服務 (AD FS) 透過使用者名稱和密碼驗證隧道。
- 按應用程式支援。
- 透過隧道應用程式手動進行全裝置隧道,使用者啟動 VPN 並選擇 連接。
- 分割隧道。 不過在 iOS 上,當你的 VPN 設定檔使用 每個應用程式的 VPN 時,分割隧道規則會被忽略。
代理伺服器的支援僅限以下平台:
- Android 11 及以後版本
- iOS/iPadOS
權限
要管理 Microsoft 隧道,使用者必須擁有包含在 Intune 中 Microsoft 隧道閘道權限群組中的權限。 預設情況下,Intune 管理員和 Microsoft Entra 管理員擁有這些權限。 你也可以把它們加入你為 Intune 租戶建立的自訂角色中。
在設定角色時,在 權限 頁面展開 Microsoft Tunnel Gateway ,然後選擇你想授予的權限。
Microsoft 隧道閘道權限群組授予以下權限:
建立 - 配置 Microsoft 隧道閘道 器伺服器 與 站點。 伺服器設定包括 IP 位址範圍、DNS 伺服器、埠口及分割隧道規則。 站點是多台支援 Microsoft 隧道的伺服器邏輯群組。
更新 (修改) - 更新Microsoft隧道閘道器伺服器的配置與站點。 伺服器設定包括 IP 位址範圍、DNS 伺服器、埠口及分割隧道規則。 站點是多台支援 Microsoft 隧道的伺服器邏輯群組。
刪除 - 刪除 Microsoft 隧道閘道器伺服器的設定與站點。 伺服器設定包括 IP 位址範圍、DNS 伺服器、埠口及分割隧道規則。 站點是多台支援 Microsoft 隧道的伺服器邏輯群組。
閱讀 - 查看 Microsoft 隧道閘道器伺服器配置與站點。 伺服器設定包括 IP 位址範圍、DNS 伺服器、埠口及分割隧道規則。 站點是多台支援 Microsoft 隧道的伺服器邏輯群組。
執行準備工具
在開始伺服器安裝前,我們建議您先下載並執行最新版本的 MST 準備 工具。 這個工具是一個在你的 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 準備工具依賴命令列 JSON 處理器 jq。 在執行準備工具之前,請確認 jq 已安裝。 關於如何取得和安裝 jq,請參閱你所使用的 Linux 版本文件。
使用準備工具:
可透過以下方法之一取得最新版本的準備工具:
可直接使用網頁瀏覽器下載此工具。 前往 https://aka.ms/microsofttunnelready 下載一個名為 mst-readiness 的檔案。
登入 Microsoft Intune 管理>中心租戶管理>Microsoft 隧道閘道,選擇伺服器標籤,選擇建立以開啟建立伺服器窗格,然後選擇下載準備工具。
用 Linux 指令直接取得準備工具。 例如,你可以用 wget 或 curl 來開啟連結 https://aka.ms/microsofttunnelready。
例如,要使用 wget 並記錄下載時的 mst 準備狀態 ,執行
wget --output-document=mst-readiness https://aka.ms/microsofttunnelready
這個腳本可以從你計劃安裝的伺服器所在網路上的任何 Linux 伺服器執行,讓網路管理員能獨立使用腳本排除網路問題。
要驗證你的網路和 Linux 設定,請執行以下指令。 這些指令會設定腳本的執行權限,驗證隧道是否能連接到正確的端點,然後檢查隧道是否使用了各種工具:
sudo ./mst-readinesssudo ./mst-readiness network- 此指令執行以下操作,並回報成功或錯誤:- 嘗試連接隧道將使用的每個 Microsoft 端點。
- 檢查防火牆中所需的埠是否已開啟。
sudo ./mst-readiness utils- 此指令用以驗證 Tunnel 使用的工具如 Docker 或 Podman 及 ip_tables 是否可用。
為了驗證你將用來安裝 Microsoft Tunnel 的帳號是否具備完成註冊所需的角色與權限,請用以下指令列執行腳本:
./mst-readiness account腳本會提示你使用另一台帶有網頁瀏覽器的機器,並用來驗證 Microsoft Entra ID 和 Intune。 工具會回報成功或錯誤。
欲了解更多關於此工具的資訊,請參閱 Microsoft 隧道參考文章中的 mst-cli 參考文 獻。
手動安裝 auditd 以進行 Linux 系統稽核
準備工具會檢查是否有被審核的 Linux 系統稽核套件。 由於 審核 是可選且非必需,當未偵測到此套件時,準備腳本會回傳警告。
Auditd 預設由 RHEL 7 及更新版本安裝,但 Ubuntu 發行版可能不會預設安裝。 不在時,你可以手動安裝到 Linux 伺服器上。
關於如何在安裝 Tunnel server 前手動安裝此系統,請參閱本文前方的 Linux 系統稽核。
若要在安裝 Microsoft Tunnel 後安裝審核,請參閱配置 Micrfosoft 隧道中的「安裝 Linux 系統審核後安裝隧道伺服器」。
手動載入ip_tables
雖然大多數Linux發行版會自動載入ip_tables模組,但有些發行版可能不會。 例如,RHEL 8.5 預設不會載入 ip_tables。
要檢查是否有此模組,請在 Linux 伺服器上執行最新版本的 mst-readiness 工具。 ip_tables檢查於2022年2月11日加入準備工具腳本。
如果模組不存在,工具會在ip_tables模組檢查時停止。 在這種情況下,你可以執行以下指令手動載入模組。
手動載入ip_tables模組
在 sudo 的情境下,請在你的 Linux 伺服器上執行以下指令:
驗證伺服器上是否有ip_tables:
lsmod |grep ip_tables如果沒有ip_tables,請執行以下操作,立即將模組載入核心,無需重啟:
/sbin/modprobe ip_tables重新執行驗證以確認資料表已載入:
lsmod |grep ip_tables
重要事項
在更新隧道伺服器時,手動載入的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
如果 tun 不存在,請執行以下操作,立即將模組載入核心,無需重啟:
/sbin/modprobe tun重新執行驗證以確認 tun 模組已載入:
lsmod |grep tun
重要事項
在更新隧道伺服器時,手動載入 的 tun 模組可能無法持續存在。 這可能需要你在更新完成後重新載入模組。 伺服器更新完成後,檢查伺服器是否有 tun 模組。
若不存在,則依照前述步驟重新載入模組,並在模組載入後再多一步重新啟動伺服器。
設定 Linux 在開機時載入
在 sudo 的情境下,請在你的 Linux 伺服器上執行以下指令,建立一個設定檔,在開機時將 tun 載入核心:echo tun > /etc/modules-load.d/mstunnel_tun.conf