P2S VPN Gateway サーバー設定の構成 - RADIUS 認証
この記事は、RADIUS 認証を使用するポイント対サイト (P2S) 接続の作成に役立ちます。 この構成は、PowerShell または Azure portal を使用して作成できます。 別の方法を使用して認証する場合は、次の記事を参照してください。
ポイント対サイト VPN の詳細については、「ポイント対サイト VPN について」を参照してください。
この種類の接続には、以下が必要です。
- RouteBased VPN ゲートウェイ。
- ユーザー認証を処理する RADIUS サーバー。 RADIUS サーバーは、オンプレミスまたは Azure 仮想ネットワーク (VNet) にデプロイできます。 また、高可用性のために 2 つの RADIUS サーバーを構成することもできます。
- VPN クライアント プロファイル構成パッケージ。 VPN クライアント プロファイル構成パッケージは、生成するパッケージです。 これには VPN クライアントが P2S を介して接続するために必要な設定が含まれています。
制限事項:
- RADIUS で IKEv2 を使っている場合は、EAP ベースの認証のみがサポートされます。
- ExpressRoute 接続を使用してオンプレミスの RADIUS サーバーに接続することはできません。
P2S VPN の Active Directory (AD) ドメイン認証について
AD ドメイン認証では、ユーザーは組織のドメイン資格情報を使用して Azure にサインインできます。 これには AD サーバーと統合する RADIUS サーバーが必要です。 また、組織は既存の RADIUS デプロイを利用することもできます。
RADIUS サーバーは、オンプレミスまたは Azure VNet に配置できます。 認証が行われる間、VPN ゲートウェイがパススルーとして機能し、接続するデバイスと RADIUS サーバーの間で認証メッセージを転送します。 重要なのは、VPN ゲートウェイが RADIUS サーバーにアクセスできることです。 RADIUS サーバーがオンプレミスに存在する場合、Azure からオンプレミス サイトへの VPN サイト間接続が必要になります。
RADIUS サーバーは、Active Directory とは別に、その他の外部 ID システムとも統合できます。 これにより、MFA のオプションなど、P2S VPN 向けの多数の認証オプションを利用できるようになります。 RADIUS サーバーと統合される ID システムの一覧を取得するには、そのベンダーのドキュメントをご確認ください。
作業を開始する前に
Azure サブスクリプションを持っていることを確認します。 Azure サブスクリプションをまだお持ちでない場合は、MSDN サブスクライバーの特典を有効にするか、無料アカウントにサインアップしてください。
Azure PowerShell を使用する
この記事では、PowerShell コマンドレットを使用します。 コマンドレットを実行するには、Azure Cloud Shell を使用できます。 Cloud Shell は無料のインタラクティブ シェルです。この記事の手順は、Azure Cloud Shell を使って実行することができます。 一般的な Azure ツールが事前にインストールされており、アカウントで使用できるように構成されています。
Cloud Shell を開くには、コード ブロックの右上の隅にある [Cloudshell を開く] を選択するだけです。 https://shell.azure.com/powershell に移動して、別のブラウザー タブで Cloud Shell を開くこともできます。 [コピー] を選択してコードのブロックをコピーし、Cloud Shell に貼り付けてから、Enter キーを押して実行します。
Azure PowerShell コマンドレットは、ローカルのコンピューターにインストールして実行することもできます。 PowerShell コマンドレットは、頻繁に更新されます。 最新バージョンをインストールしていないと、手順で指定されている値は失敗する場合があります。 コンピューターにインストールされている Azure PowerShell のバージョンを確認するには、Get-Module -ListAvailable Az
コマンドレットを使用します。 インストールまたは更新するには、「Install the Azure PowerShell module (Azure PowerShell モジュールのインストール)」を参照してください。
値の例
値の例を使用して、テスト環境を作成できます。また、この値を参考にしながら、この記事の例を確認していくこともできます。 手順をチュートリアルとして利用して値を変更せずに使用することも、実際の環境に合わせて値を変更することもできます。
- 名前:VNet1
- アドレス空間: 192.168.0.0/16 と 10.254.0.0/16
この例では、この構成が複数のアドレス空間で機能することを示すために、複数のアドレス空間を使用します。 ただし、この構成で複数のアドレス空間は必須ではありません。 - サブネット名:FrontEnd
- サブネットのアドレス範囲: 12.2.0.0/24
- サブネット名: BackEnd
- サブネットのアドレス範囲: 10.254.1.0/24
- サブネット名: GatewaySubnet
VPN ゲートウェイが機能するには、サブネット名 GatewaySubnet が必須となります。- GatewaySubnet のアドレス範囲 = 192.168.255.0/27
- VPN クライアント アドレス プール: 172.16.201.0/24
この P2S 接続を利用して VNet に接続する VPN クライアントは、この VPN クライアント アドレス プールから IP アドレスを受け取ります。 - サブスクリプション: サブスクリプションが複数ある場合は、適切なものを使用していることを確認します。
- リソース グループ: TestRG1
- 場所:米国東部
- DNS サーバー: VNet の名前解決に利用する DNS サーバーの IP アドレス。 (省略可能)
- GW 名: Vnet1GW
- パブリック IP 名: VNet1GWPIP
- VPN の種類:RouteBased
リソース グループ、VNet、パブリック IP アドレスの作成
次の手順では、1 つのリソース グループを作成し、3 つのサブネットと共に仮想ネットワークをそのリソース グループに作成します。 値を代入するときは、ゲートウェイ サブネットの名前を必ず 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 と次の名前でサブネットを作成します: 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-AzureRmVirtualNetwork を使用して、仮想ネットワークにサブネット構成を書き込みます。これにより、仮想ネットワークにサブネットが作成されます。
$vnet | Set-AzVirtualNetwork
パブリック IP アドレスの要求
VPN ゲートウェイには、パブリック IP アドレスが必要です。 これにはまず IP アドレスのリソースを要求したうえで、仮想ネットワーク ゲートウェイの作成時にそのリソースを参照する必要があります。 IP アドレスは、VPN ゲートウェイの作成時にリソースに対して静的に割り当てられます。 パブリック IP アドレスが変わるのは、ゲートウェイが削除され、再度作成されたときのみです。 VPN ゲートウェイのサイズ変更、リセット、その他の内部メンテナンス/アップグレードでは、IP アドレスは変わりません。
Get-AzPublicIpAddress を使用する VPN Gateway のパブリック IP アドレスを要求します。
$gwpip = New-AzPublicIpAddress -Name "GatewayIP" -ResourceGroupName "TestRG1" -Location "EastUS" -AllocationMethod Static -Sku Standard
New-AzVirtualNetworkGatewayIpConfig を使用するゲートウェイ IP アドレス構成を作成します。 この構成は、VPN Gateway を作成するときに参照されます。
$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 ベンダーから提供されたセットアップ ガイドを参照してください。
- RADIUS で VPN ゲートウェイを RADIUS クライアントとして構成します。 この RADIUS クライアントを追加する際に、作成した仮想ネットワーク GatewaySubnet を指定します。
- RADIUS サーバーの設定が完了したら、RADIUS クライアントが RADIUS サーバーとの通信に使用する RADIUS サーバーの IP アドレスと共有シークレットを取得します。 RADIUS サーバーが Azure VNet 内にある場合、RADIUS サーバー VM の CA IP を使用します。
記事「ネットワーク ポリシー サーバー (NPS)」では、AD ドメイン認証用に Windows RADIUS サーバー (NPS) を構成する方法についてのガイダンスが示されています。
VPN ゲートウェイを作成する
この手順では、VNet の仮想ネットワーク ゲートウェイを構成して作成します。 認証とトンネルの種類の詳細については、この記事の Azure portal バージョンである「トンネルの種類と認証の種類を指定する」を参照してください。
- -GatewayType は Vpn、-VpnType は RouteBased にする必要があります。
- 選択するゲートウェイ SKU によっては、VPN ゲートウェイがビルドされるまでに 45 分以上かかる場合があります。
次の例では、VpnGw2、第 2 世代 SKU を使用します。 GatewaySKU 値に関する ValidateSet エラーが表示され、ローカルでこれらのコマンドを実行している場合は、PowerShell コマンドレットの最新バージョンがインストールされていることを確認してください。 最新バージョンには、最新の Gateway 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 サーバーを追加する
- -RadiusServer は名前または IP アドレスで指定できます。 サーバーがオンプレミスに存在する場合に名前を指定すると、VPN ゲートウェイでその名前を解決できない可能性があります。 この場合、サーバーの IP アドレスを指定することをお勧めします。
- -RadiusSecret は、RADIUS サーバーで構成したものと一致している必要があります。
- -VpnClientAddressPool は、接続する VPN クライアントが受け取る IP アドレスの範囲です。 接続元であるオンプレミスの場所、または接続先とする VNet と重複しないプライベート IP アドレス範囲を使用してください。 また、構成するアドレス プールには十分な広さを確保してください。
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
2 つの RADIUS サーバーを指定する
2 つの 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 クライアント プロファイル構成パッケージには、Azure VNet への接続用に VPN クライアント プロファイルを構成するのに役立つ設定が含まれています。
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 に接続できるかどうかを初めて確認する際に最も良い方法は、その VM のコンピューター名ではなく、プライベート IP アドレスを使って接続してみることです。 この方法であれば、名前の解決が適切に構成されているかではなく、VM に接続できるかどうかをテストすることができます。
プライベート IP アドレスを特定します。 VM のプライベート IP アドレスは、Azure portal で VM のプロパティを表示するか、PowerShell を使うと確認できます。
Azure portal: Azure portal で 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 の名前解決に関するページを参照してください。
詳細については、VM に対するリモート デスクトップ接続のトラブルシューティングに関するページを参照してください。
VNet に対して DNS サーバーの IP アドレスが指定された後に VPN クライアント構成パッケージが生成されたことを確認します。 DNS サーバーの IP アドレスを更新した場合は、新しい VPN クライアント構成パッケージを生成してインストールしてください。
接続元のコンピューターのイーサネット アダプターに割り当てられている IPv4 アドレスを 'ipconfig' を使用して確認します。 その IP アドレスが、接続先の VNet のアドレス範囲内または VPNClientAddressPool のアドレス範囲内にある場合、これを "アドレス空間の重複" といいます。 アドレス空間がこのように重複していると、ネットワーク トラフィックが Azure に到達せずローカル ネットワーク上に留まることになります。
よくあるご質問
FAQ 情報については、よくある質問の 「ポイント対サイト - RADIUS 認証」セクションを参照してください。
次のステップ
接続が完成したら、仮想ネットワークに仮想マシンを追加することができます。 詳細については、Virtual Machines に関するページを参照してください。 ネットワークと仮想マシンの詳細については、「Azure と Linux の VM ネットワークの概要」を参照してください。