다음을 통해 공유


P2S VPN Gateway 인증서 인증을 위한 서버 설정 구성-PowerShell

이 문서는 Windows, Linux 또는 macOS를 실행하는 개별 클라이언트를 Azure PowerShell을 사용하여 Azure VNet(가상 네트워크)에 안전하게 연결하도록 P2S(지점 및 사이트 간) VPN을 구성하는 데 유용합니다. 이 문서에는 기본 PowerShell 구성 단계가 포함되어 있습니다. 이러한 유형의 P2S VPN을 만드는 방법에 대한 자세한 내용은 Azure Portal 문서를 사용하여 지점 간 VPN 구성을 참조하세요.

P2S VPN 연결은 집에서 재택 근무하는 경우 또는 회의와 같이 원격 위치에서 VNet에 연결하려는 경우에 유용합니다. 또한 VNet에 연결해야 하는 몇 가지 클라이언트만 있는 경우 사이트 간 VPN 대신 P2S를 사용할 수도 있습니다. P2S 연결에는 VPN 디바이스나 공용 IP 주소가 필요하지 않습니다. P2S는 SSTP(Secure Socket Tunneling Protocol) 또는 IKEv2를 통한 VPN 연결을 만듭니다.

컴퓨터에서 Azure VNet으로 연결하는 방법을 보여주는 지점 및 사이트 간 연결의 다이어그램

P2S VPN에 대한 자세한 내용은 P2S VPN 정보를 참조하세요.

P2S Azure 인증서 인증 연결은 이 연습에서 구성하는 다음 항목을 사용합니다.

  • 경로 기반 VPN Gateway(정책 기반 아님) VPN 형식에 대한 자세한 내용은 VPN Gateway 설정을 참조하세요.
  • Azure에 업로드된 루트 인증서에 대한 공개 키(.cer 파일)입니다. 인증서가 업로드되면 신뢰할 수 있는 인증서로 간주되며 인증에 사용됩니다.
  • 루트 인증서에서 생성된 클라이언트 인증서. 클라이언트 인증서는 VNet에 연결할 각 클라이언트 컴퓨터에 설치됩니다. 이 인증서는 클라이언트 인증을 위해 사용 됩니다.
  • VPN 클라이언트 구성 파일. VPN 클라이언트는 VPN 클라이언트 구성 파일을 사용하여 구성됩니다. 이러한 파일에는 클라이언트를 VNet에 연결하는 데 필요한 정보가 포함됩니다. 연결되는 각 클라이언트는 구성 파일에서 설정을 사용하여 구성해야 합니다.

필수 조건

Azure 구독이 있는지 확인합니다. Azure 구독이 아직 없는 경우 MSDN 구독자 혜택을 활성화하거나 무료 계정에 등록할 수 있습니다.

Azure PowerShell

Azure Cloud Shell을 사용하거나 PowerShell을 로컬로 실행할 수 있습니다. 자세한 내용은 Azure PowerShell을 설치 및 구성하는 방법을 참조하세요.

  • 이 문서에 나오는 대부분의 단계에서 Azure Cloud Shell을 사용할 수 있습니다. 그러나 Cloud Shell를 사용하여 인증서를 생성할 수는 없습니다. 추가적으로 루트 인증서 공개 키를 업로드하려면 Azure PowerShell을 로컬에서 사용하거나 Azure Portal을 사용해야 합니다.

  • “이 cmdlet의 출력 개체 형식은 이후 릴리스에서 수정될 예정입니다”라는 경고가 표시될 수 있습니다. 이는 정상적인 동작이며 사용자는 이러한 경고를 안전하게 무시할 수 있습니다.

로그인

Azure Cloud Shell을 사용하는 경우 Cloudshell을 열면 계정에 로그인하라는 메시지가 자동으로 표시됩니다. Connect-AzAccount을(를) 실행할 필요가 없습니다. 로그인한 후에도 Get-AzSubscriptionSelect-AzSubscription을 사용하여 필요한 경우 구독을 변경할 수 있습니다.

PowerShell을 로컬로 실행하는 경우 상승된 권한으로 PowerShell 콘솔을 열고 Azure 계정에 연결합니다. Connect-AzAccount cmdlet에서 자격 증명을 입력하라는 메시지를 표시합니다. 인증한 다음, Azure PowerShell에 사용할 수 있도록 계정 설정을 다운로드합니다. Get-AzSubscriptionSelect-AzSubscription -SubscriptionName "Name of subscription"을 사용하여 구독을 변경할 수 있습니다.

VNet 만들기

  1. New-AzResourceGroup을 사용하여 리소스 그룹을 만듭니다.

    New-AzResourceGroup -Name "TestRG1" -Location "EastUS"
    
  2. New-AzVirtualNetwork를 사용하여 가상 네트워크를 만듭니다.

    $vnet = New-AzVirtualNetwork `
    -ResourceGroupName "TestRG1" `
    -Location "EastUS" `
    -Name "VNet1" `
    -AddressPrefix 10.1.0.0/16
    
  3. 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
    
  4. Set-AzVirtualNetwork를 사용하여 가상 네트워크에 서브넷 구성을 작성합니다. 그러면 가상 네트워크에 서브넷이 만들어집니다.

    $vnet | Set-AzVirtualNetwork
    

VPN 게이트웨이 만들기

공용 IP 주소 요청

VPN Gateway에는 공용 IP 주소가 있어야 합니다. 먼저 IP 주소 리소스를 요청하고, 가상 네트워크 게이트웨이를 만들 때 참조합니다. IP 주소는 VPN 게이트웨이가 생성될 때 리소스에 정적으로 할당됩니다. 게이트웨이가 삭제되고 다시 만들어지는 경우에만 공용 IP 주소가 변경됩니다. VPN Gateway의 크기 조정, 다시 설정 또는 기타 내부 유지 관리/업그레이드 시에는 변경되지 않습니다.

  1. New-AzPublicIpAddress를 사용하여 VPN 게이트웨이의 공용 IP 주소를 요청합니다.

    $gwpip = New-AzPublicIpAddress -Name "GatewayIP" -ResourceGroupName "TestRG1" -Location "EastUS" -AllocationMethod Static -Sku Standard
    
  2. 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
    

VPN 게이트웨이 만들기

이 단계에서 VNet용 가상 네트워크 게이트웨이를 구성하고 만듭니다. 인증 및 터널 유형에 대한 자세한 내용은 이 문서의 Azure Portal 버전에서 터널 및 인증 유형 지정을 참조하세요.

  • -GatewayType은  Vpn이어야 하고 -VpnType은 RouteBased여야 합니다.
  • -VpnClientProtocol은 사용하려는 터널의 유형을 지정하는 데 사용됩니다. 터널 옵션은 OpenVPN, SSTPIKEv2입니다. 그중 하나 또는 지원되는 모든 조합을 사용하도록 선택할 수 있습니다. 여러 형식을 사용하려는 경우 쉼표로 구분하여 이름을 지정합니다. OpenVPN 및 SSTP를 함께 사용하도록 설정할 수 없습니다. Android와 Linux의 strongSwan 클라이언트 및 iOS와 macOS의 네이티브 IKEv2 VPN 클라이언트는 IKEv2 터널만 사용하여 연결합니다. Windows 클라이언트는 IKEv2를 먼저 시도하고 연결되지 않는 경우 SSTP로 대체합니다. OpenVPN 클라이언트를 사용하여 OpenVPN 터널 형식에 연결할 수 있습니다.
  • 가상 네트워크 게이트웨이 '기본' SKU는 IKEv2, OpenVPN 또는 RADIUS 인증을 지원하지 않습니다. Mac 클라이언트를 가상 네트워크에 연결하려는 경우 기본 SKU를 사용하지 마세요.
  • VPN 게이트웨이는 선택한 게이트웨이 SKU에 따라 빌드하는 데 45분 이상 걸릴 수 있습니다.
  1. New-AzVirtualNetworkGateway를 사용하여 게이트웨이 유형이 "Vpn"인 가상 네트워크 게이트웨이를 만듭니다.

    이 예제에서는 VpnGw2, 2세대 SKU를 사용합니다. GatewaySKU 값과 관련된 ValidateSet 오류가 표시되고 이러한 명령을 로컬로 실행하는 경우 PowerShell cmdlet 최신 버전을 설치했는지 확인합니다. 최신 버전은 최신 게이트웨이 SKU에 대한 유효성이 검사된 새 값을 포함합니다.

    New-AzVirtualNetworkGateway -Name "VNet1GW" -ResourceGroupName "TestRG1" `
    -Location "EastUS" -IpConfigurations $gwipconfig -GatewayType Vpn `
    -VpnType RouteBased -EnableBgp $false -GatewaySku VpnGw2 -VpnGatewayGeneration "Generation2" -VpnClientProtocol IkeV2,OpenVPN
    
  2. 게이트웨이를 만들면 다음 예제를 사용하여 볼 수 있습니다.

    Get-AzVirtualNetworkGateway -Name VNet1GW -ResourceGroup TestRG1
    

VPN 클라이언트 주소 풀 추가

VPN 게이트웨이에서 만들기를 완료한 후에 VPN 클라이언트 주소 풀을 추가할 수 있습니다. VPN 클라이언트 주소 풀은 연결할 때 VPN 클라이언트에서 IP 주소를 받는 범위입니다. 연결 원본이 되는 온-프레미스 위치 또는 연결 대상이 되는 VNet과 겹치지 않는 개인 IP 주소 범위를 사용합니다.

  1. 다음 변수를 선언합니다.

    $VNetName  = "VNet1"
    $VPNClientAddressPool = "172.16.201.0/24"
    $RG = "TestRG1"
    $Location = "EastUS"
    $GWName = "VNet1GW"
    
  2. VPN 클라이언트 주소 풀을 추가합니다.

    $Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName $RG -Name $GWName
    Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway -VpnClientAddressPool $VPNClientAddressPool
    

인증서 생성

Important

Azure Cloud Shell을 사용하여 인증서를 생성할 수 없습니다. 이 섹션에 설명된 메서드 중 하나를 사용해야 합니다. PowerShell을 사용하려는 경우 로컬로 설치해야 합니다.

Azure는 인증서를 사용하여 P2S VPN에 대한 VPN 클라이언트를 인증합니다. Azure에 루트 인증서의 공개 키 정보를 업로드합니다. 그러면 공개 키가 ‘신뢰할 수 있는 키’로 간주됩니다. 클라이언트 인증서는 신뢰할 수 있는 루트 인증서에서 생성한 다음 각 클라이언트 컴퓨터의 [인증서 - 현재 사용자/개인] 인증서 저장소에 설치해야 합니다. 인증서는 VNet에 대한 연결을 시작할 때 해당 클라이언트를 인증하는 데 사용됩니다.

자체 서명된 인증서를 사용하는 경우 특정 매개 변수를 사용하여 만들어야 합니다. Windows 10 이상을 실행하는 Windows 컴퓨터용 PowerShell 지침을 사용하여 자체 서명된 인증서를 만들 수 있습니다. Windows 10 이상을 실행하지 않는 경우 MakeCert를 대신 사용합니다.

자체 서명된 루트 인증서 및 클라이언트 인증서를 생성할 때 지침에 나와 있는 단계를 따르는 것이 중요합니다. 그렇지 않으면 생성된 인증서가 P2S 연결과 호환되지 않으며 연결 오류가 발생합니다.

루트 인증서

  1. 루트 인증서용 .cer 파일을 가져옵니다. 엔터프라이즈 솔루션을 사용하여 생성된 루트 인증서를 사용하거나(추천) 자체 서명된 인증서를 생성할 수 있습니다. 루트 인증서가 만들어지면 공용 인증서 데이터(프라이빗 키 아님)를 Base64로 인코딩된 X.509 .cer 파일로 내보냅니다. 이 파일은 나중에 Azure에 업로드합니다.

    • 엔터프라이즈 인증서: 엔터프라이즈 솔루션을 사용하는 경우 기존 인증서 체인을 사용할 수 있습니다. 사용하려는 루트 인증서용 .cer 파일을 획득합니다.

    • 자체 서명된 루트 인증서: 엔터프라이즈 인증서 솔루션을 사용하지 않는 경우 자체 서명된 루트 인증서를 만듭니다. 그렇지 않으면 만든 인증서가 P2S 연결과 호환되지 않으며, 연결하려고 할 때 연결 오류 메시지가 클라이언트에 표시됩니다. Microsoft Azure PowerShell, MakeCert, 또는 OpenSSL을 사용할 수 있습니다. 다음 문서의 단계에서는 호환되는 자체 서명된 루트 인증서를 생성하는 방법을 설명합니다.

      • Windows 10 이상에 대한 PowerShell 지침: 이러한 지침에서는 Windows 10 이상을 실행하는 컴퓨터에 PowerShell이 필요합니다. 루트 인증서에서 생성된 클라이언트 인증서는 지원되는 모든 P2S 클라이언트에 설치할 수 있습니다.
      • MakeCert 지침: Windows 10 이상을 실행하는 컴퓨터에 액세스할 수 없는 경우 MakeCert를 사용하여 인증서를 생성합니다. MakeCert는 더 이상 사용되지 않지만, 인증서를 생성하는 데에는 여전히 사용할 수 있습니다. 루트 인증서에서 생성한 클라이언트 인증서는 지원되는 모든 P2S 클라이언트에 설치할 수 있습니다.
      • Linux - OpenSSL 지침
      • Linux - StrongSwan 지침
  2. 루트 인증서가 만들어지면 공용 인증서 데이터(프라이빗 키 아님)를 Base64로 인코딩된 X.509 .cer 파일로 내보냅니다.

클라이언트 인증서

  1. 지점 및 사이트 간 연결을 사용하여 VNet에 연결하는 각 클라이언트 컴퓨터에는 클라이언트 인증서가 설치되어 있어야 합니다. 이 인증서는 루트 인증서에서 생성하여 각 클라이언트 컴퓨터에 설치합니다. 유효한 클라이언트 인증서를 설치하지 않으면 클라이언트에서 VNet에 연결하려고 할 때 인증이 실패합니다.

    연결할 각 클라이언트에 대해 고유한 인증서를 생성하거나 여러 클라이언트에서 동일한 인증서를 사용할 수 있습니다. 고유한 클라이언트 인증서를 생성하면 단일 인증서를 해지할 수 있는 장점이 있습니다. 그렇지 않으면 여러 클라이언트에서 인증하는 데 동일한 클라이언트 인증서를 사용하지만 이 인증서를 철회하는 경우 해당 인증서를 사용하는 모든 클라이언트에 대해 새 인증서를 생성하여 설치해야 합니다.

    클라이언트 인증서는 다음 메서드를 사용하여 생성할 수 있습니다.

    • 엔터프라이즈 인증서:

      • 엔터프라이즈 인증서 솔루션을 사용하는 경우 클라이언트 인증서를 일반적인 이름 값 형식(name@yourdomain.com)으로 생성합니다. 도메인 이름\사용자 이름 형식 대신 이 형식을 사용합니다.

      • 클라이언트 인증서가 사용자 목록의 첫 번째 항목으로 나열된 클라이언트 인증이 있는 사용자 인증서 템플릿을 기반으로 하는지 확인합니다. 인증서를 두 번 클릭하고 세부 정보 탭에서 확장된 키 사용을 확인하여 해당 인증서를 확인합니다.

    • 자체 서명된 루트 인증서: 다음 P2S 인증서 문서 중 하나의 단계에 따라 생성하는 클라이언트 인증서가 P2S 연결과 호환될 수 있도록 합니다.

      자체 서명된 루트 인증서에서 클라이언트 인증서를 생성하는 경우 이를 생성하는 데 사용한 컴퓨터에 자동으로 설치됩니다. 다른 클라이언트 컴퓨터에 클라이언트 인증서를 설치하려면 전체 인증서 체인과 함께 .pfx 파일로 내보냅니다. 이렇게 하면 클라이언트에서 인증하는 데 필요한 루트 인증서 정보가 포함된 .pfx 파일이 만들어집니다.

      이 문서의 단계를 통해 호환되는 클라이언트 인증서를 생성하고 이를 내보내어 배포할 수 있습니다.

      • Windows 10 이상 PowerShell 지침: 이 지침을 사용하려면 Windows 10 이상이 필요하고 PowerShell에서 인증서를 생성해야 합니다. 생성된 인증서는 지원되는 모든 P2S 클라이언트에 설치할 수 있습니다.

      • MakeCert 지침: 인증서 생성을 위해 Windows 10 이상 컴퓨터에 액세스할 수 없는 경우 MakeCert를 사용합니다. MakeCert는 더 이상 사용되지 않지만, 인증서를 생성하는 데에는 여전히 사용할 수 있습니다. 생성된 인증서는 지원되는 모든 P2S 클라이언트에 설치할 수 있습니다.

      • Linux: strongSwan 또는 OpenSSL 지침을 참조하세요.

  2. 클라이언트 인증서가 만들어지면 내보냅니다. 각 클라이언트 컴퓨터에 연결하고 인증하려면 클라이언트 인증서가 필요합니다.

루트 인증서 공개 키 정보 업로드

VPN 게이트웨이에서 만들기가 완료되었는지 확인합니다. 완료되었으면 신뢰할 수 있는 루트 인증서의 .cer 파일(공개 키 정보 포함)을 Azure로 업로드할 수 있습니다. .cer 파일이 업로드되면 Azure는 이.cer 파일을 사용하여 신뢰할 수 있는 루트 인증서에서 생성된 클라이언트 인증서를 설치한 클라이언트를 인증합니다. 필요한 경우 나중에 신뢰할 수 있는 루트 인증서 파일을 최대 20개까지 추가로 업로드할 수 있습니다.

참고 항목

Azure Cloud Shell을 사용하여 .cer 파일을 업로드할 수 없습니다. 컴퓨터에서 로컬로 PowerShell을 사용할 수도 있고, Azure Portal 단계를 사용할 수도 있습니다.

  1. 인증서 이름에 대한 변수를 선언하고 변수를 고유한 값으로 바꿉니다.

    $P2SRootCertName = "P2SRootCert.cer"
    
  2. 파일 경로를 고유한 값으로 바꾼 후 cmdlet을 실행합니다.

    $filePathForCert = "C:\cert\P2SRootCert.cer"
    $cert = new-object System.Security.Cryptography.X509Certificates.X509Certificate2($filePathForCert)
    $CertBase64 = [system.convert]::ToBase64String($cert.RawData)
    
  3. 공개 키 정보를 Azure에 업로드합니다. 인증서 정보가 업로드되면 Azure는 해당 인증서를 신뢰할 수 있는 루트 인증서로 간주합니다. 업로드할 때 컴퓨터에서 PowerShell을 로컬로 실행 중인지 확인하거나, 대신 Azure Portal 단계를 사용할 수 있습니다. 업로드가 완료되면 PublicCertData를 보여주는 PowerShell 반환이 표시됩니다. 인증서 업로드 프로세스가 완료되는 데 약 10분이 걸립니다.

    Add-AzVpnClientRootCertificate -VpnClientRootCertificateName $P2SRootCertName -VirtualNetworkGatewayname "VNet1GW" -ResourceGroupName "TestRG1" -PublicCertData $CertBase64
    

내보낸 클라이언트 인증서 설치

다음 단계를 통해 Windows 클라이언트를 설치할 수 있습니다. 추가 클라이언트 및 자세한 내용은 클라이언트 인증서 설치를 참조하세요.

  1. 클라이언트 인증서를 내보낸 후에는 .pfx 파일을 찾아서 클라이언트 컴퓨터에 복사합니다.
  2. 클라이언트 컴퓨터에서 .pfx 파일을 두 번 클릭하여 설치합니다. 저장소 위치현재 사용자로 유지한 후, 다음을 선택합니다.
  3. 가져올 파일 페이지에서 아무 것도 변경하지 않습니다. 다음을 선택합니다.
  4. 프라이빗 키 보호 페이지에서 인증서의 암호를 입력하거나 보안 주체가 올바른지 확인한 후, 다음을 선택합니다.
  5. 인증서 저장소 페이지에서 기본 위치를 유지한 후, 다음을 선택합니다.
  6. 마침을 선택합니다. 인증서 설치에 대한 보안 경고에서 를 선택합니다. 인증서를 생성했으므로 이 보안 경고에 대해 '예'를 편리하게 선택할 수 있습니다.
  7. 이제 인증서를 성공적으로 가져왔습니다.

전체 인증서 체인(즉, 기본값)과 함께.pfx로 클라이언트 인증서를 내보냈는지 확인합니다. 그렇지 않은 경우, 루트 인증서 정보가 클라이언트 컴퓨터에 존재하지 않으며 클라이언트를 제대로 인증할 수 없습니다.

VPN 클라이언트 프로필 구성 패키지 생성 및 다운로드

각 VPN 클라이언트는 생성하고 다운로드하는 VPN 클라이언트 프로필 구성 패키지의 파일을 사용하여 구성됩니다. 구성 패키지에는 자신이 만든 VPN 게이트웨이와 관련된 설정이 포함되어 있습니다. 터널 유형, 인증서 또는 인증 유형 변경과 같이 게이트웨이를 변경하는 경우 다른 VPN 클라이언트 프로필 구성 패키지를 생성하여 각 클라이언트에 설치해야 합니다. 그렇지 않으면 VPN 클라이언트가 연결되지 않을 수 있습니다.

VPN 클라이언트 구성 파일을 생성하는 경우 '-AuthenticationMethod' 값은 'EapTls'입니다. 다음 명령을 사용하여 VPN 클라이언트 구성 파일을 생성합니다.

$profile=New-AzVpnClientConfiguration -ResourceGroupName "TestRG" -Name "VNet1GW" -AuthenticationMethod "EapTls"

$profile.VPNProfileSASUrl

브라우저에 URL을 복사하여 zip 파일을 다운로드합니다.

VPN 클라이언트 구성 및 Azure에 연결

VPN 클라이언트를 구성하고 Azure에 연결하는 단계는 다음 문서를 참조하세요.

인증 터널 종류 클라이언트 OS VPN 클라이언트
인증서
IKEv2, SSTP Windows 네이티브 VPN 클라이언트
IKEv2 macOS 네이티브 VPN 클라이언트
IKEv2 Linux strongSwan
OpenVPN Windows Azure VPN 클라이언트
OpenVPN 클라이언트 버전 2.x
OpenVPN 클라이언트 버전 3.x
OpenVPN macOS OpenVPN 클라이언트
OpenVPN iOS OpenVPN 클라이언트
OpenVPN Linux Azure VPN Client
OpenVPN 클라이언트
Microsoft Entra ID
OpenVPN Windows Azure VPN 클라이언트
OpenVPN macOS Azure VPN Client
OpenVPN Linux Azure VPN Client

연결을 확인하는 방법

이러한 지침은 Windows 클라이언트에 적용됩니다.

  1. VPN 연결이 활성인지를 확인하려면, 관리자 권한 명령 프롬프트를 열고 ipconfig/all을 실행합니다.

  2. 결과를 확인합니다. 수신한 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.13(Preferred)
       Subnet Mask.....................: 255.255.255.255
       Default Gateway.................:
       NetBIOS over Tcpip..............: Enabled
    

가상 컴퓨터에 연결하려면

이러한 지침은 Windows 클라이언트에 적용됩니다.

VM에 대한 원격 데스크톱 연결을 만들어 가사 네트워크에 배포된 VM에 연결할 수 있습니다. 처음에 VM에 연결할 수 있는지 확인하는 가장 좋은 방법은 컴퓨터 이름이 아닌 개인 IP 주소를 사용하여 연결하는 것입니다. 이렇게 하면 연결할 수 있는지, 아니면 이름 확인이 제대로 구성되었는지를 테스트할 수 있습니다.

  1. 개인 IP 주소를 찾습니다. Azure Portal에서 VM의 속성을 살펴보거나 PowerShell을 사용하여 VM의 개인 IP 주소를 찾을 수 있습니다.

    • 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"
      }
      
  2. 가상 네트워크에 연결되어 있는지 확인합니다.

  3. 작업 표시줄의 검색 상자에 RDP 또는 원격 데스크톱 연결을 입력하여 원격 데스크톱 연결을 엽니다. 그런 다음, 원격 데스크톱 연결을 선택합니다. PowerShell에서 mstsc 명령을 사용하여 원격 데스크톱 연결을 열 수도 있습니다.

  4. 원격 데스크톱 연결에서 VM의 개인 IP 주소를 입력합니다. 옵션 표시를 선택하여 다른 설정을 조정한 다음, 연결할 수 있습니다.

VPN 연결을 통해 VM에 연결하는 데 문제가 있는 경우 다음 사항을 확인합니다.

  • VPN 연결이 성공했는지 확인합니다.
  • VM의 개인 IP 주소에 연결하고 있는지 확인합니다.
  • 컴퓨터 이름이 아닌 개인 IP 주소를 사용하여 VM에 연결할 수 있으면 DNS를 올바르게 구성했는지 확인합니다. VM에 대한 이름 확인이 작동하는 방법에 대한 자세한 내용은 VM에 대한 이름 확인을 참조하세요.

RDP 연결에 대한 자세한 내용은 VM에 대한 원격 데스크톱 연결 문제 해결을 참조하세요.

  • DNS 서버 IP 주소가 VNet에 지정된 후에 VPN 클라이언트 구성 패키지가 생성되었는지 확인합니다. DNS 서버 IP 주소를 업데이트한 경우 새 VPN 클라이언트 구성 패키지를 생성하고 설치합니다.

  • 'ipconfig'를 사용하여 연결하는 컴퓨터의 이더넷 어댑터에 할당된 IPv4 주소를 확인합니다. IP 주소가 연결하는 VNet의 주소 범위 또는 VPNClientAddressPool의 주소 범위 내에 있는 경우 이 주소를 겹치는 주소 공간이라고 합니다. 주소 공간이 이러한 방식으로 겹치면 네트워크 트래픽이 Azure에 도달하지 않고 로컬 네트워크에 남아 있습니다.

루트 인증서를 추가 또는 제거하는 방법

Azure에서 신뢰할 수 있는 루트 인증서를 추가 및 제거할 수 있습니다. 루트 인증서를 제거하면 해당 루트 인증서에서 생성된 인증서가 있는 클라이언트를 인증하지 못하게 되며 연결할 수도 없습니다. 클라이언트를 인증하고 연결하려는 경우 Azure에 (업로드된)신뢰할 수 있는 루트 인증서에서 생성된 새 클라이언트 인증서를 설치해야 합니다. 이 단계를 수행하려면 컴퓨터에 Azure PowerShell cmdlet이 로컬로 설치되어 있어야 합니다(Azure Cloud Shell 아님). Azure Portal을 사용하여 루트 인증서를 추가할 수도 있습니다.

추가하는 방법:

Azure에 최대 20개의 루트 인증서 .cer 파일을 추가할 수 있습니다. 다음 단계를 통해 루트 인증서를 추가할 수 있습니다.

  1. 업로드할 .cer 파일을 준비합니다.

    $filePathForCert = "C:\cert\P2SRootCert3.cer"
    $cert = new-object System.Security.Cryptography.X509Certificates.X509Certificate2($filePathForCert)
    $CertBase64_3 = [system.convert]::ToBase64String($cert.RawData)
    
  2. 파일을 업로드합니다. 한 번에 하나의 파일만 업로드할 수 있습니다.

    Add-AzVpnClientRootCertificate -VpnClientRootCertificateName $P2SRootCertName -VirtualNetworkGatewayname "VNet1GW" -ResourceGroupName "TestRG1" -PublicCertData $CertBase64_3
    
  3. 인증서 파일이 업로드되었는지 확인하려면

    Get-AzVpnClientRootCertificate -ResourceGroupName "TestRG1" `
    -VirtualNetworkGatewayName "VNet1GW"
    

제거하는 방법:

  1. 변수를 선언합니다. 예제의 변수를 제거하려는 인증서와 일치하도록 수정합니다.

    $GWName = "Name_of_virtual_network_gateway"
    $RG = "Name_of_resource_group"
    $P2SRootCertName2 = "ARMP2SRootCert2.cer"
    $MyP2SCertPubKeyBase64_2 = "MIIC/zCCAeugAwIBAgIQKazxzFjMkp9JRiX+tkTfSzAJBgUrDgMCHQUAMBgxFjAUBgNVBAMTDU15UDJTUm9vdENlcnQwHhcNMTUxMjE5MDI1MTIxWhcNMzkxMjMxMjM1OTU5WjAYMRYwFAYDVQQDEw1NeVAyU1Jvb3RDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyjIXoWy8xE/GF1OSIvUaA0bxBjZ1PJfcXkMWsHPzvhWc2esOKrVQtgFgDz4ggAnOUFEkFaszjiHdnXv3mjzE2SpmAVIZPf2/yPWqkoHwkmrp6BpOvNVOpKxaGPOuK8+dql1xcL0eCkt69g4lxy0FGRFkBcSIgVTViS9wjuuS7LPo5+OXgyFkAY3pSDiMzQCkRGNFgw5WGMHRDAiruDQF1ciLNojAQCsDdLnI3pDYsvRW73HZEhmOqRRnJQe6VekvBYKLvnKaxUTKhFIYwuymHBB96nMFdRUKCZIiWRIy8Hc8+sQEsAML2EItAjQv4+fqgYiFdSWqnQCPf/7IZbotgQIDAQABo00wSzBJBgNVHQEEQjBAgBAkuVrWvFsCJAdK5pb/eoCNoRowGDEWMBQGA1UEAxMNTXlQMlNSb290Q2VydIIQKazxzFjMkp9JRiX+tkTfSzAJBgUrDgMCHQUAA4IBAQA223veAZEIar9N12ubNH2+HwZASNzDVNqspkPKD97TXfKHlPlIcS43TaYkTz38eVrwI6E0yDk4jAuPaKnPuPYFRj9w540SvY6PdOUwDoEqpIcAVp+b4VYwxPL6oyEQ8wnOYuoAK1hhh20lCbo8h9mMy9ofU+RP6HJ7lTqupLfXdID/XevI8tW6Dm+C/wCeV3EmIlO9KUoblD/e24zlo3YzOtbyXwTIh34T0fO/zQvUuBqZMcIPfM1cDvqcqiEFLWvWKoAnxbzckye2uk1gHO52d8AVL3mGiX8wBJkjc/pMdxrEvvCzJkltBmqxTM6XjDJALuVh16qFlqgTWCIcb7ju"
    
  2. 인증서를 제거합니다.

    Remove-AzVpnClientRootCertificate -VpnClientRootCertificateName $P2SRootCertName2 -VirtualNetworkGatewayName $GWName -ResourceGroupName $RG -PublicCertData $MyP2SCertPubKeyBase64_2
    
  3. 다음 예제를 사용하여 인증서가 성공적으로 제거되었는지 확인합니다.

    Get-AzVpnClientRootCertificate -ResourceGroupName "TestRG1" `
    -VirtualNetworkGatewayName "VNet1GW"
    

클라이언트 인증서를 해지하거나 복구하는 방법

클라이언트 인증서를 해지할 수 있습니다. 인증서 해지 목록을 사용하면 필요에 따라 개별 클라이언트 인증서를 기반으로 하는 P2S 연결을 거부할 수 있습니다. 이것은 신뢰할 수 있는 루트 인증서를 제거하는 것과 다릅니다. Azure에서 신뢰할 수 있는 루트 인증서 .cer를 제거하면, 해지된 루트 인증서로 생성/서명된 모든 클라이언트 인증서에 대한 액세스 권한도 해지됩니다. 루트 인증서가 아닌 클라이언트 인증서를 해지하면 루트 인증서에서 생성된 다른 인증서를 인증에 계속 사용할 수 있습니다.

해지된 클라이언트 인증서를 사용하는 동안 개별 사용자의 세분화된 액세스 제어를 위해 일반적으로 루트 인증서를 사용하여 팀 또는 조직 수준에서 액세스를 관리합니다.

해지 방법:

  1. 클라이언트 인증서 지문을 검색합니다. 자세한 내용은 인증서의 지문을 검색하는 방법을 참조하세요.

  2. 텍스트 편집기에 정보를 복사하고 연속 문자열이 되도록 공백을 모두 제거합니다. 이 문자열은 다음 단계에서 변수로 선언됩니다.

  3. 변수를 선언합니다. 이전 단계에서 검색된 지문을 선언해야 합니다.

    $RevokedClientCert1 = "NameofCertificate"
    $RevokedThumbprint1 = "‎51ab1edd8da4cfed77e20061c5eb6d2ef2f778c7"
    $GWName = "Name_of_virtual_network_gateway"
    $RG = "Name_of_resource_group"
    
  4. 해지된 인증서 목록에 지문을 추가합니다. 지문이 추가되면 "성공"이라고 표시됩니다.

    Add-AzVpnClientRevokedCertificate -VpnClientRevokedCertificateName $RevokedClientCert1 `
    -VirtualNetworkGatewayName $GWName -ResourceGroupName $RG `
    -Thumbprint $RevokedThumbprint1
    
  5. 지문이 인증서 해지 목록에 추가되었는지 확인합니다.

    Get-AzVpnClientRevokedCertificate -VirtualNetworkGatewayName $GWName -ResourceGroupName $RG
    
  6. 지문이 추가된 후에는 인증서를 더 이상 연결에 사용할 수 없습니다. 이 인증서를 사용하여 연결하려는 클라이언트는 인증서가 더 이상 유효하지 않다고 하는 메시지를 받습니다.

복구하는 방법:

해지된 클라이언트 인증서 목록에서 지문을 제거하여 클라이언트 인증서를 복구할 수 있습니다.

  1. 변수를 선언합니다. 복구하려는 인증서에 대한 올바른 지문을 선언해야 합니다.

    $RevokedClientCert1 = "NameofCertificate"
    $RevokedThumbprint1 = "‎51ab1edd8da4cfed77e20061c5eb6d2ef2f778c7"
    $GWName = "Name_of_virtual_network_gateway"
    $RG = "Name_of_resource_group"
    
  2. 인증서 지문을 인증서 해지 목록에서 제거합니다.

    Remove-AzVpnClientRevokedCertificate -VpnClientRevokedCertificateName $RevokedClientCert1 `
    -VirtualNetworkGatewayName $GWName -ResourceGroupName $RG -Thumbprint $RevokedThumbprint1
    
  3. 해지된 목록에서 지문이 제거되었는지 확인합니다.

    Get-AzVpnClientRevokedCertificate -VirtualNetworkGatewayName $GWName -ResourceGroupName $RG
    

P2S FAQ

추가 P2S 정보는 VPN Gateway P2S FAQ를 참조하세요.

다음 단계

연결이 완료되면 가상 네트워크에 가상 머신을 추가할 수 있습니다. 자세한 내용은 Virtual Machines를 참조하세요. 네트워킹 및 가상 머신에 대한 자세한 내용은 Azure 및 Linux VM 네트워크 개요를 참조하세요.

P2S 문제 해결 정보는 문제 해결: Azure P2S 연결 문제를 참조하세요.