Azure DevTest Labs'de uzak masaüstü ağ geçidi yapılandırma ve kullanma

Bu makalede, Azure DevTest Labs'de laboratuvar sanal makinelerine (VM) güvenli uzak masaüstü erişimi için bir ağ geçidinin nasıl ayarlanacağı ve kullanılacağı açıklanmaktadır. Sanal makinelerin Uzak Masaüstü Protokolü (RDP) bağlantı noktalarını İnternet'te kullanıma sunmadığınızdan ağ geçidi kullanmak güvenliği artırır. Bu uzak masaüstü ağ geçidi çözümü, belirteç kimlik doğrulamayı da destekler.

DevTest Labs, laboratuvar kullanıcılarının vm'lerini görüntülemesi ve vm'lerine bağlanması için merkezi bir yer sağlar. Laboratuvar VM'sinin Genel Bakış sayfasındaRDP aracılığıyla Bağlan> seçeneğinin seçilmesi makineye özgü bir RDP dosyası oluşturur ve kullanıcılar vm'ye bağlanmak için dosyayı açabilir.

Uzak masaüstü ağ geçidi ile laboratuvar kullanıcıları vm'lerine bir ağ geçidi makinesi aracılığıyla bağlanır. Kullanıcılar doğrudan ağ geçidi makinesinde kimlik doğrulaması yapar ve etki alanına katılmış makinelerde şirket tarafından sağlanan kimlik bilgilerini kullanabilir. Belirteç kimlik doğrulaması ek bir güvenlik katmanı sağlar.

Bağlantı noktalarını veya IP adreslerini göstermeden laboratuvar VM'lerine güvenli bir şekilde erişmenin bir diğer yolu da Azure Bastion ile bir tarayıcı kullanmaktır. Daha fazla bilgi için bkz . Azure Bastion ile DevTest Labs VM'lerine tarayıcı bağlantısını etkinleştirme.

Mimari

Aşağıdaki diyagramda uzak masaüstü ağ geçidinin belirteç kimlik doğrulamasını nasıl uyguladığı ve DevTest Labs VM'lerine nasıl bağlanacağı gösterilmektedir.

Uzak masaüstü ağ geçidi mimarisini gösteren diyagram.

  1. Laboratuvar VM'sindenRDP aracılığıylaBağlan'ı> seçtiğinizde getRdpFileContents REST komutu çağrılır:

    POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines/{name}/getRdpFileContents
    
  2. Laboratuvar bir ağ geçidiyle yapılandırıldığında, kimlik doğrulama belirteci istemek için getRdpFileContents eylemi https://{gateway-hostname}/api/host/{lab-machine-name}/port/{port-number} çağrılır.

    • {gateway-hostname}veya {lb-uri} bir yük dengeleyici için, laboratuvarın Laboratuvar ayarları sayfasında belirtilen ağ geçidi ana bilgisayar adıdır.
    • {lab-machine-name} bağlanacak VM'nin adıdır.
    • {port-number} bağlantı için kullanılacak bağlantı noktasıdır. Genellikle bu bağlantı noktası 3389'dur, ancak laboratuvar VM'sinde paylaşılan IP adresi kullanılıyorsa bağlantı noktası numarası farklıdır.
  3. Uzak masaüstü ağ geçidi, bir Azure İşlevleri işlev uygulamasına yapılan çağrıyı ertelemek için kullanırhttps://{function-app-uri}/api/host/{lab-machine-name}/port/{port-number}.

    Not

    İstek üst bilgisi, laboratuvarın anahtar kasasından aldığı işlev anahtarını otomatik olarak içerir. İşlev anahtarının gizli adı, laboratuvarın Laboratuvar ayarları sayfasında belirtilen Ağ Geçidi belirteci adı olarak belirtilmiştir.

  4. Azure işlevi, ağ geçidi makinesinde sertifika tabanlı kimlik doğrulaması için bir belirteç oluşturur ve döndürür.

  5. Eylem getRdpFileContents , kimlik doğrulama belirteci de dahil olmak üzere tam RDP dosyasını döndürür.

RDP bağlantı programı RDP dosyasını açtığında, uzak masaüstü ağ geçidi belirtecin kimliğini doğrular ve bağlantı laboratuvar VM'sine iletilir.

Not

Tüm RDP bağlantı programları belirteç kimlik doğrulamayı desteklemez.

Önemli

Azure işlevi, kimlik doğrulama belirteci için bir sona erme tarihi ayarlar. Belirtecin süresi dolmadan önce kullanıcının VM'ye bağlanması gerekir.

Yapılandırma gereksinimleri

Ağ geçidi makineleri, Azure İşlevleri ve ağlarının DevTest Labs RDP erişimi ve belirteç kimlik doğrulamasıyla çalışmasını sağlamak için bazı yapılandırma gereksinimleri vardır:

Ağ geçidi makine gereksinimleri

Ağ geçidi makinesi aşağıdaki yapılandırmaya sahip olmalıdır:

İnternet Information Services (IIS) için Uygulama Yönlendirme İsteği modülünü kullanarak https://{gateway-hostname}/api/host/{lab-machine-name}/port/{port-number} isteklerini işlev uygulamasına yeniden yönlendirebilirsiniz.

Azure İşlevleri gereksinimleri

Azure İşlevleri işlev uygulaması istekleri https://{function-app-uri}/app/host/{lab-machine-name}/port/{port-number} biçiminde işler ve ağ geçidi makinesinin imzalama sertifikasına göre kimlik doğrulama belirtecini oluşturur ve döndürür. {function-app-uri} işlevine erişmek için kullanılan URI'dir.

İstek üst bilgisi, laboratuvarın anahtar kasasından aldığı işlev anahtarını geçirmelidir.

Örnek işlev için bkz . CreateToken.cs.

Ağ gereksinimleri

  • Ağ geçidi makinesinin TLS/SSL sertifikasıyla ilişkili FQDN'nin DNS'sinin trafiği ağ geçidi makinesine veya ağ geçidi makine grubunun yük dengeleyicisine yönlendirmesi gerekir.

  • Laboratuvar VM'sinde özel IP adresi kullanılıyorsa ağ geçidi makinesinden laboratuvar makinesine giden bir ağ yolu olmalıdır. İki makinenin aynı sanal ağı paylaşması veya eşlenmiş sanal ağları kullanması gerekir.

Uzak masaüstü ağ geçidi oluşturma

Azure DevTest Labs GitHub deposunda DevTest Labs belirteç kimlik doğrulamasını ve uzak masaüstü ağ geçidi kaynaklarını ayarlamaya yardımcı olan Azure Resource Manager (ARM) şablonları vardır. Ağ geçidi makine oluşturma, laboratuvar ayarları ve işlev uygulaması için şablonlar vardır.

Not

Örnek şablonların kullanılması , Uzak Masaüstü Ağ Geçidi lisans koşullarıyla sözleşmenizi gösterir.

Örnek bir uzak masaüstü ağ geçidi grubu ayarlamak için bu adımları izleyin.

  1. İmzalama sertifikası oluşturun.

    Create-SigningCertificate.ps1 dosyasını çalıştırın. Daha sonra kullanmak üzere yeni sertifikanın parmak izini, parolasını ve Base64 kodlamasını kaydedin.

  2. TLS/SSL sertifikası alın. TLS/SSL sertifikasıyla ilişkili FQDN, denetlediğiniz bir etki alanı için olmalıdır.

  3. DAHA sonra kullanmak üzere TLS/SSL sertifikası için parola, parmak izi ve Base64 kodlamasını kaydedin.

    • Parmak izini almak için aşağıdaki PowerShell komutlarını kullanın:

      $cer = New-Object System.Security.Cryptography.X509Certificates.X509Certificate;
      $cer.Import('path-to-certificate');
      $hash = $cer.GetCertHashString()
      
    • Base64 kodlamasını almak için aşağıdaki PowerShell komutunu kullanın:

      [System.Convert]::ToBase64String([System.IO.File]::ReadAllBytes('path-to-certificate'))
      
  4. tüm dosyaları adresinden https://github.com/Azure/azure-devtestlab/tree/master/samples/DevTestLabs/GatewaySample/arm/gatewayindirin. Tüm dosyaları ve RDGatewayFedAuth.msi depolama hesabındaki bir blob kapsayıcısına kopyalayın.

  5. https://github.com/Azure/azure-devtestlab/tree/master/samples/DevTestLabs/GatewaySample/arm/gateway'den azuredeploy.json'ı açın ve aşağıdaki parametreleri doldurun.

    Parametre Gerekli mi? Açıklama
    adminUsername Zorunlu Ağ geçidi makineleri için yönetici kullanıcı adı.
    adminPassword Zorunlu Ağ geçidi makineleri için yönetici hesabının parolası.
    instanceCount Oluşturulacak ağ geçidi makinelerinin sayısı.
    alwaysOn Oluşturulan Azure İşlevleri uygulamasının açık tutulup tutulmayacağı. Uygulamanın açık tutulması, kullanıcıların laboratuvar VM'lerine ilk kez bağlanmaya çalışmalarındaki gecikmeleri önler, ancak bunun maliyeti etkiler.
    tokenLifetime HH:MM:SS biçiminde oluşturulan belirtecin geçerli olduğu süre.
    sslCertificate Zorunlu Ağ geçidi makinesi için TLS/SSL sertifikasının Base64 kodlaması.
    sslCertificatePassword Zorunlu Ağ geçidi makinesi için TLS/SSL sertifikasının parolası.
    sslCertificateThumbprint Zorunlu İmzalama sertifikasının yerel sertifika deposunda tanımlama için sertifika parmak izi.
    signCertificate Zorunlu Ağ geçidi makinesi için imzalama sertifikası için Base64 kodlaması.
    signCertificatePassword Zorunlu Ağ geçidi makinesi için imzalama sertifikasının parolası.
    signCertificateThumbprint Zorunlu İmzalama sertifikasının yerel sertifika deposunda tanımlama için sertifika parmak izi.
    _artifactsLocation Zorunlu Bu şablonun gerektirdiği yapıtları bulmak için URI konumu. Bu değer göreli yol değil, tam URI olmalıdır. Yapıtlar arasında belirteç kimlik doğrulamasını destekleyen diğer şablonlar, PowerShell betikleri ve RDGatewayFedAuth.msiolarak adlandırılması beklenen Uzak Masaüstü Ağ Geçidi Eklenebilir Kimlik Doğrulaması modülü bulunur.
    _artifactsLocationSasToken Zorunlu Bir Azure depolama hesabıysa _artifactsLocation yapıtlara erişmek için paylaşılan erişim imzası (SAS) belirteci.
  6. azuredeploy.json dağıtmak için aşağıdaki Azure CLI komutunu çalıştırın:

    az deployment group create --resource-group {resource-group} --template-file azuredeploy.json --parameters @azuredeploy.parameters.json -–parameters _artifactsLocation="{storage-account-endpoint}/{container-name}" -–parameters _artifactsLocationSasToken = "?{sas-token}"
    
    • {storage-account-endpoint} komutunu çalıştırarak az storage account show --name {storage-account-name} --query primaryEndpoints.bloböğesini alın.

    • {sas-token} komutunu çalıştırarak az storage container generate-sas --name {container-name} --account-name {storage-account-name} --https-only –permissions drlw –expiry {utc-expiration-date}öğesini alın.

      • {storage-account-name} , karşıya yüklediğiniz dosyaları barındıran depolama hesabının adıdır.
      • {container-name} , karşıya yüklediğiniz dosyaları barındıran kapsayıcıdır {storage-account-name} .
      • {utc-expiration-date} , SAS belirtecinin süresinin dolacağı ve depolama hesabına erişmek için artık kullanılamadığı UTC tarihidir.
  7. Ve değerlerini gatewayFQDNgatewayIP şablon dağıtım çıkışından kaydedin. Ayrıca, işlev uygulamasının Uygulama ayarları sekmesinde bulabileceğiniz yeni oluşturulan işlev için anahtarın değerini kaydedin.

  8. TLS/SSL sertifikasının FQDN'sinin IP adresine yönlendirilmesi için DNS'yi gatewayIP yapılandırın.

Uzak masaüstü ağ geçidi grubu oluşturup DNS'yi güncelleştirdikten sonra DevTest Labs'i ağ geçidini kullanacak şekilde yapılandırın.

Laboratuvarı belirteç kimlik doğrulamasını kullanacak şekilde yapılandırma

Laboratuvar ayarlarını güncelleştirmeden önce, kimlik doğrulama belirteci işlevinin anahtarını laboratuvarın anahtar kasasında depolayın. İşlev anahtarı değerini Azure portalındaki İşlev Anahtarları sayfasından alabilirsiniz. Laboratuvarın anahtar kasasının kimliğini bulmak için aşağıdaki Azure CLI komutunu çalıştırın:

az resource show --name {lab-name} --resource-type 'Microsoft.DevTestLab/labs' --resource-group {lab-resource-group-name} --query properties.vaultName

Anahtar Kasası'na bir gizli kaydetmeyi öğrenmek için bkz. Anahtar Kasası'na Gizli Ekleme. Daha sonra kullanmak için gizli dizi adını kaydedin. Bu değer işlev anahtarının kendisi değil, işlev anahtarını barındıran anahtar kasası gizli dizisinin adıdır.

Bir laboratuvarın Ağ Geçidi ana bilgisayar adını ve Ağ Geçidi belirteci gizliliğini, ağ geçidi makinesi veya makineleriyle belirteç kimlik doğrulaması kullanacak şekilde yapılandırmak için şu adımları tamamlayın:

  1. Laboratuvarın Genel Bakış sayfasında, sol bölmede Yapılandırma ve ilkeler'i seçin.

  2. Yapılandırma ve ilkeler sayfasında, sol bölmedeki Ayarlar bölümünde Laboratuvar ayarları'nı seçin.

  3. Uzak masaüstü bağlantısı bölümünde:

    • Ağ geçidi ana bilgisayar adı kutusuna uzak masaüstü hizmetleri ağ geçidi makinesinin veya grubunun FQDN veya IP adresini girin. Bu değer, ağ geçidi makinelerinde kullanılan TLS/SSL sertifikasının FQDN değeriyle eşleşmelidir.

    • Ağ geçidi belirteç gizli anahtarı kutusuna daha önce kaydettiğiniz gizli anahtar adını girin. Bu değer işlev anahtarının kendisi değil, işlev anahtarını barındıran anahtar kasası gizli dizisinin adıdır.

    Laboratuvar ayarlarında uzak masaüstü seçeneklerinin ekran görüntüsü.

  4. Kaydet'i seçin.

    Not

    Kaydet'in seçilmesi, Uzak Masaüstü Ağ Geçidi lisans koşullarını kabul ettiğinizi gösterir.

Hem ağ geçidini hem de laboratuvarı yapılandırdıktan sonra, laboratuvar kullanıcısı Bağlan'ı seçtiğinde oluşturulan RDP bağlantı dosyası, ağ geçidine bağlanmak ve belirteç kimlik doğrulamasını kullanmak için gerekli bilgileri içerir.

Laboratuvar yapılandırmasını otomatikleştirme

  • PowerShell: Set-DevTestLabGateway.ps1, Ağ Geçidi ana bilgisayar ismi ve Ağ Geçidi gizli belirteç ayarlarını otomatik olarak yapılandırmak için kullanılan örnek bir PowerShell betiğidir.

  • ARM: Ağ Geçidi ana bilgisayar adı ve Ağ geçidi belirteci gizli anahtarı ayarlarıyla laboratuvar oluşturmak veya güncelleştirmek için Azure DevTest Labs GitHub deposundaki Ağ Geçidi örnek ARM şablonlarını kullanın.

Ağ güvenlik grubunu yapılandırın

Laboratuvarın güvenliğini daha da sağlamak için ağ güvenlik grubu oluşturma, değiştirme veya silme başlığında açıklandığı gibi laboratuvar VM'lerinin kullandığı sanal ağa bir ağ güvenlik grubu (NSG) ekleyin. Örneğin, bir NSG yalnızca ağ geçidinden geçen trafiğin laboratuvar VM'lerine ulaşmasına izin verebilir. Kural kaynağı, ağ geçidi grubunun ağ geçidi makinesinin VEYA yük dengeleyicinin IP adresidir.

Ağ güvenlik grubu kuralının ekran görüntüsü.

Sonraki adım