연습 - Azure VPN 게이트웨이 만들기

완료됨

공용 인터넷을 통해 암호화된 터널을 사용하여 사용자 환경 내의 클라이언트 또는 사이트를 Azure에 연결할 수 있는지 확인하려고 합니다. 이 단원에서는 지점 및 사이트 간 VPN Gateway를 만든 다음, 클라이언트 컴퓨터에서 해당 게이트웨이에 연결합니다. 보안을 위해 네이티브 Azure 인증서 인증 연결을 사용합니다.

다음 프로세스를 수행합니다.

  1. RouteBased VPN 게이트웨이를 만듭니다.

  2. 인증을 위해 루트 인증서의 공개 키를 업로드합니다.

  3. 루트 인증서에서 클라이언트 인증서를 생성한 다음, 인증을 위해 가상 네트워크에 연결할 각 클라이언트 컴퓨터에 클라이언트 인증서를 설치합니다.

  4. 클라이언트를 가상 네트워크에 연결하는 데 필요한 정보가 포함된 VPN 클라이언트 구성 파일을 만듭니다.

설치

이 모듈을 완료하려면 로컬 Windows 10 컴퓨터에서 Azure PowerShell을 사용합니다.

  1. Azure PowerShell 모듈이 설치된 로컬 Windows 10 컴퓨터에서 새 PowerShell 세션을 엽니다.

  2. PowerShell cmdlet Connect-AzAccount를 실행하여 Azure에 로그인합니다.

  3. 가상 네트워크를 만드는 데 사용할 변수를 설정합니다. 다음 변수를 복사하여 PowerShell에 붙여넣습니다.

$VNetName  = "VNetData"
$FESubName = "FrontEnd"
$BESubName = "Backend"
$GWSubName = "GatewaySubnet"
$VNetPrefix1 = "192.168.0.0/16"
$VNetPrefix2 = "10.254.0.0/16"
$FESubPrefix = "192.168.1.0/24"
$BESubPrefix = "10.254.1.0/24"
$GWSubPrefix = "192.168.200.0/26"
$VPNClientAddressPool = "172.16.201.0/24"
$ResourceGroup = "VpnGatewayDemo"
$Location = "East US"
$GWName = "VNetDataGW"
$GWIPName = "VNetDataGWPIP"
$GWIPconfName = "gwipconf"

가상 네트워크 구성

  1. 다음 명령을 실행하여 리소스 그룹을 만듭니다.

    New-AzResourceGroup -Name $ResourceGroup -Location $Location
    
  2. 다음 명령을 실행하여 가상 네트워크의 서브넷 구성을 만듭니다. 이러한 구성의 이름은 FrontEnd, BackEndGatewaySubnet입니다. 이러한 서브넷은 모두 가상 네트워크 접두사 내에 존재합니다.

    $fesub = New-AzVirtualNetworkSubnetConfig -Name $FESubName -AddressPrefix $FESubPrefix
    $besub = New-AzVirtualNetworkSubnetConfig -Name $BESubName -AddressPrefix $BESubPrefix
    $gwsub = New-AzVirtualNetworkSubnetConfig -Name $GWSubName -AddressPrefix $GWSubPrefix
    
  3. 이제 다음 명령으로 서브넷 값 및 정적 DNS 서버를 사용하여 가상 네트워크를 만듭니다.

    New-AzVirtualNetwork -Name $VNetName -ResourceGroupName $ResourceGroup -Location $Location -AddressPrefix $VNetPrefix1,$VNetPrefix2 -Subnet $fesub, $besub, $gwsub -DnsServer 10.2.1.3
    
  4. 이제 만든 이 네트워크의 변수를 지정합니다.

    $vnet = Get-AzVirtualNetwork -Name $VNetName -ResourceGroupName $ResourceGroup
    $subnet = Get-AzVirtualNetworkSubnetConfig -Name $GWSubName -VirtualNetwork $vnet
    
  5. 다음 명령을 실행하여 동적으로 할당된 공용 IP 주소를 요청합니다.

    $pip = New-AzPublicIpAddress -Name $GWIPName -ResourceGroupName $ResourceGroup -Location $Location -AllocationMethod Dynamic
    $ipconf = New-AzVirtualNetworkGatewayIpConfig -Name $GWIPconfName -Subnet $subnet -PublicIpAddress $pip
    

VPN 게이트웨이 만들기

이 VPN 게이트웨이를 만드는 경우:

  • GatewayType은 Vpn이어야 합니다.
  • VpnType은 RouteBased여야 합니다.

연습의 이 부분은 완료하는 데 최대 45분이 걸릴 수 있습니다.

  1. VPN 게이트웨이를 만들려면 다음 명령을 실행하고 Enter 키를 누릅니다.

    New-AzVirtualNetworkGateway -Name $GWName -ResourceGroupName $ResourceGroup `
    -Location $Location -IpConfigurations $ipconf -GatewayType Vpn `
    -VpnType RouteBased -EnableBgp $false -GatewaySku VpnGw1 -VpnClientProtocol "IKEv2"
    
  2. 명령 출력이 표시될 때까지 기다립니다.

VPN 클라이언트 주소 풀 추가

  1. 다음 명령을 실행하여 VPN 클라이언트 주소 풀을 추가합니다.

    $Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName $ResourceGroup -Name $GWName
    Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway -VpnClientAddressPool $VPNClientAddressPool
    
  2. 명령 출력이 표시될 때까지 기다립니다.

클라이언트 인증서 생성

Azure에서 만들어진 네트워크 인프라에서는 로컬 머신에 자체 서명 클라이언트 인증서를 만들어야 합니다. 이 생성 작업은 대부분의 운영 체제에서 유사하나 여기서는 Azure PowerShell 모듈 및 Windows Certificate Manager 유틸리티와 PowerShell을 통해 Windows 10에서 클라이언트 인증서를 생성하는 방법을 살펴보겠습니다.

  1. 먼저 자체 서명된 루트 인증서를 만듭니다. 다음 명령을 실행합니다.

    $cert = New-SelfSignedCertificate -Type Custom -KeySpec Signature `
    -Subject "CN=P2SRootCert" -KeyExportPolicy Exportable `
    -HashAlgorithm sha256 -KeyLength 2048 `
    -CertStoreLocation "Cert:\CurrentUser\My" -KeyUsageProperty Sign -KeyUsage CertSign
    
  2. 이제 새 루트 인증서로 서명한 클라이언트 인증서를 생성합니다.

    New-SelfSignedCertificate -Type Custom -DnsName P2SChildCert -KeySpec Signature `
    -Subject "CN=P2SChildCert" -KeyExportPolicy Exportable `
    -HashAlgorithm sha256 -KeyLength 2048 `
    -CertStoreLocation "Cert:\CurrentUser\My" `
    -Signer $cert -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2")
    

인증서 공개 키를 내보냅니다.

생성된 인증서를 사용하여 루트 인증서의 공개 키를 내보내야 합니다.

  1. PowerShell에서 certmgr을 실행하여 인증서 관리자를 엽니다.

  2. 개인>인증서로 이동합니다.

  3. 목록에서 P2SRootCert 인증서를 마우스 오른쪽 단추로 클릭하고 모든 작업>내보내기를 선택합니다.

  4. 인증서 내보내기 마법사에서 다음을 선택합니다.

  5. 아니요, 프라이빗 키를 내보내지 않습니다.를 선택했는지 확인한 후 다음을 선택합니다.

  6. 내보내기 파일 형식 페이지에서 Base 64로 인코딩된 X.509(.CER)를 선택했는지 확인한 후 다음을 선택합니다.

  7. 내보낼 파일 페이지의 파일 이름에서 기억해 둘 위치로 이동한 다음, 파일을 P2SRootCert.cer로 지정하고 다음을 선택합니다.

  8. 인증서 내보내기 마법사 완료 페이지에서 마침을 선택합니다.

  9. 인증서 내보내기 마법사 메시지 상자에서 확인을 선택합니다.

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

  1. PowerShell 창에서 다음 명령을 실행하여 인증서 이름의 변수를 선언합니다.

    $P2SRootCertName = "P2SRootCert.cer"
    
  2. <cert-path> 자리 표시자를 루트 인증서 내보내기 위치로 바꾸고 다음 명령을 실행합니다.

    $filePathForCert = "<cert-path>\P2SRootCert.cer"
    $cert = new-object System.Security.Cryptography.X509Certificates.X509Certificate2($filePathForCert)
    $CertBase64 = [system.convert]::ToBase64String($cert.RawData)
    $p2srootcert = New-AzVpnClientRootCertificate -Name $P2SRootCertName -PublicCertData $CertBase64
    
  3. 그룹 이름 집합을 사용하여 다음 명령으로 인증서를 Azure에 업로드합니다.

    Add-AzVpnClientRootCertificate -VpnClientRootCertificateName $P2SRootCertName -VirtualNetworkGatewayname $GWName -ResourceGroupName $ResourceGroup -PublicCertData $CertBase64
    

    이제 Azure가 이 인증서를 가상 네트워크에 대해 신뢰할 수 있는 루트 인증서로 인식합니다.

네이티브 VPN 클라이언트 구성

  1. 다음 명령을 실행하여 .ZIP 형식으로 VPN 클라이언트 구성 파일을 만듭니다.

    $profile = New-AzVpnClientConfiguration -ResourceGroupName $ResourceGroup -Name $GWName -AuthenticationMethod "EapTls"
    $profile.VPNProfileSASUrl
    
  2. 이 명령의 출력에 반환된 URL을 복사하여 브라우저에 붙여넣습니다. 브라우저에서 .ZIP 파일 다운로드가 시작됩니다. 보관 콘텐츠를 추출하여 적합한 위치에 둡니다.

    일부 브라우저는 처음에 이 ZIP 파일을 위험한 다운로드로 여겨 다운로드를 차단하려 합니다. 보관 콘텐츠를 추출하려면 브라우저에서 이를 재정의해야 합니다.

  3. 추출된 폴더에서 WindowsAmd64 폴더(64비트 Windows 컴퓨터의 경우) 또는 WindowsX86 폴더(32비트 컴퓨터의 경우) 중 하나로 이동합니다.

    비 Windows 컴퓨터에서 VPN을 구성할 경우 Generic 폴더의 인증서와 설정 파일을 사용할 수 있습니다.

  4. VpnClientSetup{architecture}.exe 파일을 두 번 클릭합니다. {architecture}는 해당 아키텍처에 따릅니다.

  5. Windows의 PC 보호 화면에서 자세한 정보를 선택한 다음, 실행을 선택합니다.

  6. 사용자 계정 컨트롤 대화 상자에서 를 선택합니다.

  7. VNetData 대화 상자에서 를 선택합니다.

Azure에 연결

  1. Windows 키를 누르고 설정을 입력하고 kbd>Enter 키를 누릅니다.

  2. 설정 창에서 네트워크 및 인터넷을 선택합니다.

  3. 왼쪽 창에서 VPN을 선택합니다.

  4. 오른쪽 창에서 VNetData를 선택한 다음, 연결을 선택합니다.

  5. VNetData 창에서 연결을 선택합니다.

  6. 다음 VNetData 창에서 계속을 선택합니다.

  7. 사용자 계정 컨트롤 메시지 상자에서 를 선택합니다.

이 단계가 작동하지 않으면 컴퓨터를 다시 시작해야 합니다.

연결 확인

  1. 새 Windows 명령 프롬프트에서 IPCONFIG /ALL을 실행합니다.

  2. PPP 어댑터 VNetData의 IP 주소를 복사하거나 적어둡니다.

  3. IP 주소가 172.16.201.0/24 VPNClientAddressPool 범위에 있는지 확인합니다.

  4. Azure VPN Gateway에 성공적으로 연결했습니다.

VPN 게이트웨이를 설정하기만 하면, Azure에서 가상 네트워크에 대해 암호화된 클라이언트 연결을 만들 수 있습니다. 이 방법은 클라이언트 컴퓨터 및 소규모 사이트 간 연결에 적합합니다.