設定 ExpressRoute 私人對等互連的 IPsec 傳輸模式
本文可協助您透過 ExpressRoute 私人對等互連,在傳輸模式中建立 IPsec 通道。 通道會在執行 Windows 的 Azure VM 和內部部署 Windows 主機之間建立。 本文中的步驟會使用群組原則物件完成此組態。 但是您也可以在不使用組織單位 (OU) 和群組原則物件 (GPO) 的情況下建立此組態。 OU 和 GPO 的組合有助於簡化安全性原則的控制,並可讓您快速擴大規模。 本文中的步驟假設您已有 Active Directory 組態,且您熟悉 OU 和 GPO 的使用方式。
關於此組態
下列步驟中的組態會使用單一 Azure 虛擬網路 (VNet) 搭配 ExpressRoute 私人對等互連。 不過,此組態可以延伸到其他 Azure Vnet 和內部部署網路。 本文將協助您定義 IPsec 加密原則,讓您將其套用至 Azure VM 或內部部署主機群組。 這些 Azure VM 或內部部署主機都屬於相同的 OU。 您可以僅針對目的地連接埠為 8080 的 HTTP 流量設定 Azure VM (vm1 和 vm2) 與內部部署 host1 之間的加密。 您可以根據自己的需求建立不同類型的 IPsec 原則。
使用 OU
與 OU 相關聯的安全性原則會透過 GPO 推送到電腦。 除了將原則套用至單一主機以外,使用 OU 的優點還包括:
- 建立原則與 OU 的關聯,可確保屬於相同 OU 的電腦會使用相同的原則。
- 若變更與 OU 相關聯的安全性原則,變更將會套用至 OU 中的所有主機。
圖表
下圖顯示互相連線和指派的 IP 位址空間。 Azure VM 和內部部署主機皆執行 Windows 2016。 Azure VM 和內部部署 host1 屬於相同網域。 Azure VM 和內部部署主機可使用 DNS 正確解析名稱。
此圖表會顯示在 ExpressRoute 私人對等互連中傳輸的 IPsec 通道。
使用 IPsec 原則
在 Windows 中,加密會與 IPsec 原則相關聯。 IPsec 原則會決定要保護的 IP 流量,以及套用至 IP 封包的安全性機制。 IPSec 原則由下列項目所組成:篩選清單、篩選動作和安全性規則。
設定 IPsec 原則時,請務必了解下列 IPsec 原則術語:
IPsec 原則:規則的集合。 在任一時間都只能有一個作用中 (「已指派」) 的原則。 每個原則可以有一或多個規則,而這些規則可以全部同時啟用。 同一時間只能為一部電腦指派一個作用中的 IPsec 原則。 不過,在 IPsec 原則中,您可以定義多個在不同情況下執行的動作。 每一組 IPsec 規則分別與一份篩選清單相關聯,而對套用規則的網路流量類型產生影響。
篩選清單:篩選清單是一或多個篩選條件的組合。 一份清單可包含多個篩選條件。 篩選條件會根據下列準則來定義是否封鎖、允許或保護通訊:IP 位址範圍、通訊協定或甚至特定連接埠。 每個篩選條件分別會比對一組特定的條件;例如,透過特定目的地連接埠從特定子網路傳送至特定電腦的封包。 當網路條件相符其中一或多個篩選條件時,就會啟動篩選清單。 每個篩選條件都會定義在特定的篩選清單中。 不同的篩選清單之間不可共用篩選條件。 不過,給定的篩選清單可以併入數個 IPsec 原則中。
篩選動作:安全性方法會定義電腦在 IKE 交涉期間提供的一組安全性演算法、通訊協定和金鑰。 篩選動作是安全性方法的清單,依偏好程度的順序排名。 當電腦交涉 IPsec 工作階段時,它會根據儲存在篩選動作清單中的安全性設定接受或傳送建議項目。
安全性規則:規則可控制 IPsec 原則保護通訊的方法和時機。 它會使用篩選清單和篩選動作,建立據以建置 IPsec 連線的 IPsec 規則。 每個原則可以有一或多個規則,而這些規則可以全部同時啟用。 每個規則都包含 IP 篩選清單,以及在符合該篩選清單時所將執行的安全性動作集合:
- IP 篩選動作
- 驗證方法
- IP 通道設定
- 連線類型
開始之前
請確保符合下列必要條件︰
您必須有正常運作的 Active Directory 組態可用來實作群組原則設定。 如需 GPO 的詳細資訊,請參閱群組原則物件。
您必須具有作用中的 ExpressRoute 線路。
- 如需建立 ExpressRoute 線路的相關資訊,請參閱建立 ExpressRoute 路線。
- 驗證連線提供者已啟用線路。
- 確認您已為線路設定 Azure 私人對等互連。 請參閱 設定路由 一文,以取得路由指示。
- 確認您已建立並完整佈建 VNet 和虛擬網路閘道。 請依照指示為 ExpressRoute 建立虛擬網路閘道。 ExpressRoute 的虛擬網路閘道會使用 GatewayType ExpressRoute,而不是 VPN。
ExpressRoute 虛擬網路閘道必須連線至 ExpressRoute 線路。 如需詳細資訊,請參閱將 VNet 連線至 ExpressRoute 線路。
確認 Azure Windows VM 已部署至 VNet。
確認內部部署主機和 Azure VM 之間的連線能力。
確認 Azure Windows VM 和內部部署主機可使用 DNS 來正確解析名稱。
工作流程
- 建立 GPO 並建立它與 OU 的關聯。
- 定義 IPsec 篩選動作。
- 定義 IPsec 篩選清單。
- 建立含有安全性規則的 IPsec 原則。
- 將 IPsec GPO 指派給 OU。
範例值
網域名稱:ipsectest.com
OU:IPSecOU
內部部署 Windows 電腦:host1
Azure Windows VM:vm1、vm2
1.建立 GPO
開啟群組原則管理嵌入式管理單元,建立連結至 OU 的新 GPO。 然後找出要連結 GPO 的 OU。 在此範例中,OU 的名稱為 IPSecOU。
在群組原則管理嵌入式管理單元中選取 OU,然後按一下滑鼠右鍵。 在下拉式清單中,選取 [在這個網域中建立 GPO 並連結到...]。
為 GPO 指定直覺式名稱,以便後續能輕鬆找出。 選取 [確定] 以建立並連結 GPO。
2.啟用 GPO 連結
若要將 GPO 套用至 OU,不但必須將 GPO 連結至 OU,還必須啟用連結。
3.定義 IP 篩選動作
在下拉式清單中以滑鼠右鍵按一下 [Active Directory 上的 IP 安全性原則],然後選取 [管理 IP 篩選清單和篩選動作...]。
在 [管理篩選動作] 索引標籤上,選取 [新增]。
在 [IP 安全性篩選動作精靈] 上,選取 [下一步]。
為篩選動作指定直覺式名稱,以方便後續尋找。 在此範例中,篩選動作的名稱為 myEncryption。 您也可以新增描述。 然後選取下一步。
交涉安全性可讓您定義無法對另一部電腦建立 IPsec 時的行為。 選取 [交涉安全性],然後選取 [下一步]。
在 [與不支援 IPsec 的電腦通訊] 頁面上,選取 [不允許不安全的通訊],然後選取 [下一步]。
在 [IP 流量和安全性] 頁面上選取 [自訂],然後選取 [設定...]。
在 [自訂安全性方法設定] 頁面上,選取 [資料完整性和加密 (ESP):SHA1、3DES]。 然後選取 [確定]。
在 [管理篩選動作] 頁面上,您會看到 myEncryption 篩選條件已成功新增。 選取關閉。
4.定義 IP 篩選清單
建立篩選清單,並為其指定目的地連接埠為 8080 的加密 HTTP 流量。
若要限定哪些類型的流量必須加密,請使用 IP 篩選清單。 在 [管理 IP 篩選清單] 索引標籤中選取 [新增],以新增 IP 篩選清單。
在 [名稱] 欄位中,輸入 IP 篩選清單的名稱。 例如 azure-onpremises-HTTP8080。 然後選取 [新增]。
在 [IP 篩選描述和鏡像屬性] 頁面上,選取 [鏡像]。 鏡像設定會比對雙向傳輸、而支援雙向通訊的封包。 然後選取下一步。
在 [IP 流量來源] 頁面上,從 [來源位址:] 下拉式清單中選擇 [特定的 IP 位址或子網路]。
指定 IP 流量的來源位址下方的 [IP 位址或子網路:],然後選取 [下一步]。
指定 [目的地位址:] 下方的 IP 位址或子網路。 然後選取下一步。
在 [IP 通訊協定類型] 上,選取 [TCP]。 然後選取下一步。
在 [IP 通訊協定連接埠] 頁面上,選取 [從任何連接埠] 和 [到此連接埠:]。 在文字方塊中輸入 8080。 這些設定會指定只有目的地連接埠 8080 的 HTTP 流量會加密。 然後選取下一步。
檢視 IP 篩選清單。 IP 篩選器清單的組態 azure-onpremises-HTTP8080 會對符合下列準則的所有流量觸發加密程序:
- 10.0.1.0/24 (Azure Subnet2) 中的任何來源位址
- 10.2.27.0/25 (內部部署子網路) 中的任何目的地位址
- TCP 通訊協定
- 目的地連接埠 8080
5.編輯 IP 篩選清單
若要為相同類型的流量 (從內部部署主機到 Azure VM) 加密,您需要第二個 IP 篩選條件。 遵循您用來設定第一個 IP 篩選條件的相同步驟,並建立新的 IP 篩選條件。 兩者只有來源子網路和目的地子網路不相同。
若要將新的 IP 篩選條件新增至 IP 篩選清單,請選取 [編輯]。
在 [IP 篩選清單] 頁面上,選取 [新增]。
使用下列範例中的設定建立第二個 IP 篩選條件:
建立第二個 IP 篩選條件後,IP 篩選清單將顯示如下:
如果內部部署位置和 Azure 子網路之間需要加密以保護應用程式。 您可以新增 IP 篩選清單,而不是修改現有的 IP 篩選清單。 將兩個或多個 IP 篩選清單與相同的 IPsec 原則建立關聯,可提供更多的彈性。 您可以修改或移除 IP 篩選清單,而不會影響其他 IP 篩選清單。
6.建立 IPsec 安全性原則
建立含有安全性規則的 IPsec 原則。
選取與 OU 相關聯的 Active directory 上的 IP 安全性原則。 按一下滑鼠右鍵,然後選取 [建立 IP 安全性原則]。
為安全性原則命名。 例如 policy-azure-onpremises。 然後選取下一步。
不選取核取方塊而直接選取 [下一步]。
確認已選取 [編輯屬性] 核取方塊,然後選取 [完成]。
7.編輯 IPsec 安全性原則
將 IPsec 原則新增至您先前設定的 [IP 篩選清單] 和 [篩選動作]。
在 HTTP 原則屬性的 [規則] 索引標籤上,選取 [新增]。
在 [歡迎] 頁面上,選取 [下一步]。
規則會提供用來定義 IPsec 模式的選項:通道模式或傳輸模式。
在通道模式中,原始封包會以一組 IP 標頭封裝。 通道模式會對原始封包的 IP 標頭加密,以保護內部路由資訊。 通道模式廣泛運用在站對站 VPN 部署的閘道之間。 通道模式通常用於主機之間的端對端加密。
傳輸模式只會對承載和 ESP 結尾加密;原始封包的 IP 標頭不會加密。 在傳輸模式中,封包的 IP 來源和 IP 目的地不會變更。
選取 [此規則未指定通道],然後選取 [下一步]。
[網路類型] 會定義要與安全性原則相關聯的網路連線。 選取 [所有網路連線],然後選取 [下一步]。
選取您先前建立的 IP 篩選清單 azure-onpremises-HTTP8080,然後選取 [下一步]。
選取您先前建立的現有篩選動作 myEncryption。
Windows 支援四種不同類型的驗證:Kerberos、憑證、NTLMv2 和預先共用金鑰。 由於我們使用已加入網域的主機,請選取 [Active Directory 預設值 (Kerberos V5 通訊協定)],然後選取 [下一步]。
新的原則會建立安全性規則:azure-onpremises-HTTP8080。 選取 [確定]。
IPsec 原則會要求目的地連接埠 8080 上的所有 HTTP 連線使用 IPsec 傳輸模式。 由於 HTTP 是純文字通訊協定,啟用安全性原則將可確保資料在透過 ExpressRoute 私人對等互連傳輸時會進行加密。 相較於採用進階安全性的 Windows 防火牆,Active Directory 的 IPsec 原則在設定上會較複雜。 但也容許較大程度的 IPsec 連線自訂。
8.將 IPsec GPO 指派給 OU
檢視原則。 安全性群組原則已定義,但尚未指派。
若要將安全性群組原則指派給 OU IPSecOU,請以滑鼠右鍵按一下安全性原則,然後選擇 [指派]。 屬於該 OU 的每部電腦都會被指派安全性群組原則。
檢查流量加密
若要查看在 OU 上套用加密 GPO,請在所有 Azure VM 上和 host1 中安裝 IIS。 每個 IIS 都會進行自訂,以回應連接埠 8080 上的 HTTP 要求。 若要驗證加密,您可以在 OU 中的所有電腦上安裝網路 sniffer (例如 Wireshark)。 PowerShell 指令碼會以 HTTP 用戶端的形式運作,以產生連接埠 8080 上的 HTTP 要求:
$url = "http://10.0.1.20:8080"
while ($true) {
try {
[net.httpWebRequest]
$req = [net.webRequest]::create($url)
$req.method = "GET"
$req.ContentType = "application/x-www-form-urlencoded"
$req.TimeOut = 60000
$start = get-date
[net.httpWebResponse] $res = $req.getResponse()
$timetaken = ((get-date) - $start).TotalMilliseconds
Write-Output $res.Content
Write-Output ("{0} {1} {2}" -f (get-date), $res.StatusCode.value__, $timetaken)
$req = $null
$res.Close()
$res = $null
} catch [Exception] {
Write-Output ("{0} {1}" -f (get-date), $_.ToString())
}
$req = $null
# uncomment the line below and change the wait time to add a pause between requests
#Start-Sleep -Seconds 1
}
下列網路擷取顯示內部部署 host1 使用顯示篩選 ESP 針對加密流量進行比對的結果:
如果您在內部部署 (HTTP 用戶端) 上執行 PowerShell 指令碼,在 Azure VM 中的網路擷取將會顯示類似的追蹤。
下一步
如需有關 ExpressRoute 的詳細資訊,請參閱 ExpressRoute 常見問題集。