設定 P2S VPN 閘道伺服器設定 - RADIUS 驗證
本文可協助您建立使用 RADIUS 驗證的點對站 (P2S) 連線。 您可以擇一使用 PowerShell 或 Azure 入口網站建立此設定。 如果您想要使用不同的方法來驗證,請參閱下列文章:
如需有關點對站 VPN 連線的詳細資訊,請參閱關於 P2S VPN。
這類連線需要:
- RouteBased VPN 閘道。
- 用於處理使用者驗證的 RADIUS 伺服器。 RADIUS 伺服器可以部署在內部部署或 Azure 虛擬網路 (VNet) 中。 您也可以設定兩部 RADIUS 伺服器以獲得高可用性。
- VPN 用戶端設定檔組態套件。 VPN 用戶端設定檔群組態套件是您產生的套件。 其中包含 VPN 用戶端透過 P2S 連線所需的設定。
限制:
- 如果您使用 IKEv2 搭配 RADIUS,則僅支援以 EAP 為基礎的驗證。
- ExpressRoute 連線無法用來連線到內部部署 RADIUS 伺服器。
關於適用於 P2S VPN 的 Active Directory (AD) 網域驗證
AD 網域驗證可讓使用者使用其組織網域認證來登入 Azure。 它需要與 AD 伺服器整合的 RADIUS 伺服器。 組織也可以使用其現有 RADIUS 部署。
RADIUS 伺服器可位於內部部署環境或 Azure VNet 中。 在驗證期間,VPN 閘道可作為 RADIUS 伺服器與連線裝置之間的通道,在兩者間來回轉送驗證訊息。 務必讓 VPN 閘道能夠連線到 RADIUS 伺服器。 如果 RADIUS 伺服器位於內部部署環境,則需要從 Azure 到內部部署網站的 VPN 站對站連線。
除了 Active Directory,RADIUS 伺服器也可以與其他外部身分識別系統整合。 這會開啟許多 P2S VPN 的驗證選項,包括 MFA 選項。 查閱 RADIUS 伺服器廠商文件,以取得與其整合的身分識別系統清單。
開始之前
驗證您有 Azure 訂用帳戶。 如果您還沒有 Azure 訂用帳戶,則可以啟用 MSDN 訂戶權益或註冊免費帳戶。
使用 Azure PowerShell
本文使用 PowerShell Cmdlet。 若要執行 Cmdlet,您可以使用 Azure Cloud Shell。 Cloud Shell 是免費的互動式殼層,可讓您用來執行本文中的步驟。 它具有預先安裝和設定的共用 Azure 工具,可與您的帳戶搭配使用。
若要開啟 Cloud Shell,只要選取程式碼區塊右上角的 [開啟 Cloudshell] 即可。 您也可以移至 https://shell.azure.com/powershell,在個別的瀏覽器索引標籤上開啟 Cloud Shell。 選取 [複製] 以複製程式碼區塊、將它們貼上到 Cloud Shell 中,然後選取 Enter 鍵以執行它們。
您也可以在本機電腦上安裝並執行 Azure PowerShell Cmdlet。 PowerShell Cmdlet 會經常更新。 如果您尚未安裝最新版本,指示中指定的值可能會失敗。 若要尋找電腦上安裝的 Azure PowerShell 版本,請使用 Get-Module -ListAvailable Az
Cmdlet。 若要安裝或更新,請參閱安裝 Azure PowerShell 模組。
範例值
您可以使用範例值來建立測試環境,或參考這些值來進一步了解本文中的範例。 您可以使用這些步驟做為逐步解說並使用未經變更的值,或變更這些值以反映您的環境。
- 名稱:VNet1
- 位址空間:10.1.0.0/16 和 10.254.0.0/16
在此範例中,我們使用一個以上的位址空間來說明此組態可以與多個位址空間搭配使用。 不過,此組態不需要多個位址空間。 - 子網路名稱:FrontEnd
- 子網路位址範圍:10.1.0.0/24
- 子網路名稱:BackEnd
- 子網路位址範圍:10.254.1.0/24
- 子網路名稱:GatewaySubnet
子網路名稱 GatewaySubnet 是 VPN 閘道能夠運作的必要項目。- 閘道子網路位址範圍:10.1.255.0/27
- VPN 用戶端位址集區:172.16.201.0/24
使用這個 P2S 連線來連線到 VNet 的 VPN 用戶端,會收到來自 VPN 用戶端位址集區的 IP 位址。 - 訂用帳戶:如果您有一個以上的訂用帳戶,請確認您使用正確的訂用帳戶。
- 資源群組︰TestRG1
- 位置:美國東部
- DNS 伺服器:您想要用於 VNet 名稱解析的 DNS 伺服器的 IP 位址。 (選用)
- GW 名稱:Vnet1GW
- 公用 IP 名稱:VNet1GWPIP
- VpnType:RouteBased
建立資源群組、VNet 和公用 IP 位址
下列步驟會建立一個資源群組,並在此資源群組中建立具有三個子網路的虛擬網路。 在替代值時,請務必一律將閘道子網路具體命名為 GatewaySubnet。 如果您將其命名為其他名稱,閘道建立會失敗。
使用 New-AzResourceGroup 來建立資源群組。
New-AzResourceGroup -Name "TestRG1" -Location "EastUS"
使用 New-AzVirtualNetwork 建立虛擬網路。
$vnet = New-AzVirtualNetwork ` -ResourceGroupName "TestRG1" ` -Location "EastUS" ` -Name "VNet1" ` -AddressPrefix 10.1.0.0/16
使用 New-AzVirtualNetworkSubnetConfig 建立子網路,並命名為:FrontEnd 和 GatewaySubnet (閘道子網路必須命名為 GatewaySubnet)。
$subnetConfigFrontend = Add-AzVirtualNetworkSubnetConfig ` -Name Frontend ` -AddressPrefix 10.1.0.0/24 ` -VirtualNetwork $vnet $subnetConfigGW = Add-AzVirtualNetworkSubnetConfig ` -Name GatewaySubnet ` -AddressPrefix 10.1.255.0/27 ` -VirtualNetwork $vnet
使用 Set-AzVirtualNetwork 來將子網路設定寫入虛擬網路,這樣會在虛擬網路中建立子網路:
$vnet | Set-AzVirtualNetwork
要求公用 IP 位址
VPN 閘道必須具有公用 IP 位址。 您會先要求 IP 位址資源,然後在建立虛擬網路閘道時參考它。 建立 VPN 閘道時,系統會將 IP 位址靜態指派給此資源。 公用 IP 位址只會在刪除或重新建立閘道時變更。 它不會因為重新調整、重設或 VPN 閘道的其他內部維護/升級而變更。
使用 New-AzPublicIpAddress 要求 VPN 閘道的公用 IP 位址。
$gwpip = New-AzPublicIpAddress -Name "GatewayIP" -ResourceGroupName "TestRG1" -Location "EastUS" -AllocationMethod Static -Sku Standard
使用 New-AzVirtualNetworkGatewayIpConfig 建立閘道 IP 位址設定。 當您建立 VPN 閘道時,會參考此設定。
$vnet = Get-AzVirtualNetwork -Name "VNet1" -ResourceGroupName "TestRG1" $gwsubnet = Get-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -VirtualNetwork $vnet $gwipconfig = New-AzVirtualNetworkGatewayIpConfig -Name gwipconfig1 -SubnetId $gwsubnet.Id -PublicIpAddressId $gwpip.Id
設定 RADIUS 伺服器
在您建立和設定虛擬網路閘道之前,應正確設定 RADIUS 伺服器以供驗證。
- 如果您沒有已部署的 RADIUS 伺服器,請部署一部。 如需部署步驟,請參閱 RADIUS 廠商所提供的設定指南。
- 將 VPN 閘道設定為 RADIUS 上的 RADIUS 用戶端。 新增此 RADIUS 用戶端時,指定您所建立的虛擬網路 GatewaySubnet。
- 設定 RADIUS 伺服器後,請取得 RADIUS 伺服器的 IP 位址和 RADIUS 用戶端應用來與 RADIUS 伺服器通訊的共用祕密。 如果 RADIUS 伺服器位於 Azure VNet 中,請使用 RADIUS 伺服器 VM 的 CA IP。
網路原則伺服器 (NPS) 一文提供有關設定 Windows RADIUS 伺服器 (NPS) 以便進行 AD 網域驗證的指引。
建立 VPN 閘道
在此步驟中,您會設定和建立 VNet 的虛擬網路閘道。 如需驗證和通道類型的完整資訊,請參閱本文之 Azure 入口網站版本中的指定通道和驗證類型 (部分機器翻譯)。
- -GatewayType 必須是 'Vpn' 而 -VpnType 必須是 'RouteBased'。
- 視您選取的閘道 SKU 而定,VPN 閘道可能需要 45 分鐘的時間才能建置。
在下列範例中,我們使用 VpnGw2 (第 2 代 SKU)。 如果您看到有關 GatewaySKU 值和在本機執行這些命令的 ValidateSet 錯誤,請確認您已安裝最新版的 PowerShell Cmdlet。 最新版本包含最新閘道 SKU 已經過驗證的新值。
使用 New-AzVirtualNetworkGateway 建立具有「VPN」閘道類型的虛擬網路閘道。
New-AzVirtualNetworkGateway -Name "VNet1GW" -ResourceGroupName "TestRG1" `
-Location "EastUS" -IpConfigurations $gwipconfig -GatewayType Vpn `
-VpnType RouteBased -EnableBgp $false -GatewaySku VpnGw2 -VpnGatewayGeneration "Generation2"
新增 RADIUS 伺服器
- 可以依名稱或依 IP 位址指定 -RadiusServer。 如果您指定此名稱且伺服器位於內部部署,則 VPN 閘道可能無法解析此名稱。 如果是這樣,最好是指定伺服器的 IP 位址。
- -RadiusSecret 應符合 RADIUS 伺服器的設定。
- -VpnClientAddressPool 是連線 VPN 用戶端時從中接收 IP 位址的範圍。 使用不會重疊的私人 IP 位址範圍搭配您從其連線的內部部署位置,或搭配您要連線至的 VNet。 確定您已設定夠大的位址集區。
為 Radius 祕密建立安全字串。
$Secure_Secret=Read-Host -AsSecureString -Prompt "RadiusSecret"
系統會提示您輸入 RADIUS 祕密。 您輸入的字元並不會顯示,將由 "*" 字元所取代。
RadiusSecret:***
新增用戶端位址集區和 RADIUS 伺服器值
在本節中,新增 VPN 用戶端位址集區和 RADIUS 伺服器資訊。 有多個可能的組態。 選取您想要設定的範例。
SSTP 組態
$Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName "TestRG1" -Name "VNet1GW"
Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway `
-VpnClientAddressPool "172.16.201.0/24" -VpnClientProtocol "SSTP" `
-RadiusServerAddress "10.51.0.15" -RadiusServerSecret $Secure_Secret
OpenVPN 組態
$Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName "TestRG1" -Name "VNet1GW"
Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway -VpnClientRootCertificates @()
Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway `
-VpnClientAddressPool "172.16.201.0/24" -VpnClientProtocol "OpenVPN" `
-RadiusServerAddress "10.51.0.15" -RadiusServerSecret $Secure_Secret
IKEv2 組態
$Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName "TestRG1" -Name "VNet1GW"
Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway `
-VpnClientAddressPool "172.16.201.0/24" -VpnClientProtocol "IKEv2" `
-RadiusServerAddress "10.51.0.15" -RadiusServerSecret $Secure_Secret
SSTP + IKEv2
$Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName "TestRG1" -Name "VNet1GW"
Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway `
-VpnClientAddressPool "172.16.201.0/24" -VpnClientProtocol @( "SSTP", "IkeV2" ) `
-RadiusServerAddress "10.51.0.15" -RadiusServerSecret $Secure_Secret
指定兩部 RADIUS 伺服器
若要指定兩部 RADIUS 伺服器,請使用下列語法。 視需要修改 -VpnClientProtocol 值。
$radiusServer1 = New-AzRadiusServer -RadiusServerAddress 10.1.0.15 -RadiusServerSecret $radiuspd -RadiusServerScore 30
$radiusServer2 = New-AzRadiusServer -RadiusServerAddress 10.1.0.16 -RadiusServerSecret $radiuspd -RadiusServerScore 1
$radiusServers = @( $radiusServer1, $radiusServer2 )
Set-AzVirtualNetworkGateway -VirtualNetworkGateway $actual -VpnClientAddressPool 201.169.0.0/16 -VpnClientProtocol "IkeV2" -RadiusServerList $radiusServers
設定 VPN 用戶端並連線
VPN 用戶端設定檔群組態套件包含可協助您設定 VPN 用戶端設定檔以連線至 Azure VNet 的設定。
若要產生 VPN 用戶端組態套件並設定 VPN 用戶端,請參閱下列其中一篇文章:
設定 VPN 用戶端之後,請連線到 Azure。
驗證您的連線
若要驗證您的 VPN 連線為作用中狀態,請開啟提升權限的命令提示字元,並執行 ipconfig/all。
檢視結果。 請注意,您接收到的 IP 位址是您在組態中指定的 P2S VPN 用戶端位址集區中的其中一個位址。 結果類似於此範例:
PPP adapter VNet1: Connection-specific DNS Suffix .: Description.....................: VNet1 Physical Address................: DHCP Enabled....................: No Autoconfiguration Enabled.......: Yes IPv4 Address....................: 172.16.201.3(Preferred) Subnet Mask.....................: 255.255.255.255 Default Gateway.................: NetBIOS over Tcpip..............: Enabled
如要針對 P2S 進行疑難排解,請參閱針對 Azure 點對站連線進行疑難排解。
連線至虛擬機器
您可以建立 VM 的遠端桌面連線,以連線至已部署至虛擬網路的 VM。 一開始確認您可以連線至 VM 的最佳方法是使用其私人 IP 位址 (而不是電腦名稱) 進行連線。 這樣一來,您會測試以查看您是否可以連線,而不是否已正確設定名稱解析。
找出私人 IP 位址。 在 Azure 入口網站中或使用 PowerShell 查看 VM 的屬性,即可找到 VM 的私人 IP 位址。
Azure 入口網站:在 Azure 入口網站中尋找您的 VM。 檢視 VM 的屬性。 系統會列出私人 IP 位址。
PowerShell:使用範例來檢視資源群組中的 VM 和私人 IP 位址清單。 使用此範例前,您不需要加以修改。
$VMs = Get-AzVM $Nics = Get-AzNetworkInterface | Where-Object VirtualMachine -ne $null foreach ($Nic in $Nics) { $VM = $VMs | Where-Object -Property Id -eq $Nic.VirtualMachine.Id $Prv = $Nic.IpConfigurations | Select-Object -ExpandProperty PrivateIpAddress $Alloc = $Nic.IpConfigurations | Select-Object -ExpandProperty PrivateIpAllocationMethod Write-Output "$($VM.Name): $Prv,$Alloc" }
確認您已連線至虛擬網路。
在工作列上的搜尋方塊中輸入 [RDP] 或 [遠端桌面連線] 以開啟 [遠端桌面連線]。 然後選取 [遠端桌面連線]。 您也可以在 PowerShell 中使用
mstsc
命令,開啟 [遠端桌面連線]。在 [遠端桌面連線] 中,輸入 VM 的私人 IP 位址。 您可以選取 [顯示選項],調整其他設定,然後進行連線。
如果您無法透過 VPN 連線與 VM 連線,請檢查下列幾點:
- 確認您的 VPN 連線成功。
- 確認您正連線至 VM 的私人 IP 位址。
- 如果您可以使用私人 IP 位址 (而非電腦名稱) 來連線至 VM,請確認您已正確設定 DNS。 如需 VM 的名稱解析運作方式的詳細資訊,請參閱 VM 的名稱解析。
如需 RDP 連線的詳細資訊,請參閱對 VM 的遠端桌面連線進行疑難排解。
確認 VPN 用戶端設定套件是在為 VNet 指定 DNS 伺服器 IP 位址之後產生的。 如果您更新了 DNS 伺服器 IP 位址,請產生並安裝新的 VPN 用戶端設定套件。
使用 'ipconfig' 來檢查指派給所連線電腦上乙太網路介面卡的 IPv4 位址。 如果 IP 位址位在您要連線的 VNet 位址範圍內,或在您 VPNClientAddressPool 的位址範圍內,這稱為重疊位址空間。 當您的位址空間以這種方式重疊時,網路流量不會連線到 Azure,它會保留在本機網路上。
常見問題集
如需常見問題資訊,請參閱常見問題的點對站 - RADIUS 驗證一節。
下一步
一旦完成您的連接,就可以將虛擬機器加入您的虛擬網路。 如需詳細資訊,請參閱虛擬機器。 若要了解網路與虛擬機器的詳細資訊,請參閱 Azure 與 Linux VM 網路概觀。
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: