Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Azure Bastion'ı Kerberos kimlik doğrulamasını kullanacak şekilde yapılandırma adımları gösterilmektedir. Azure Bastion için Temel SKU katmanı veya üzeri ile Kerberos kimlik doğrulaması kullanılabilir. Kerberos kimlik doğrulaması hakkında daha fazla bilgi için bkz. Kerberos kimlik doğrulamasına genel bakış. Azure Bastion hakkında daha fazla bilgi için bkz. Azure Bastion nedir?
Dikkat edilmesi gereken noktalar
- Azure Bastion için Kerberos ayarı yalnızca Azure portalında yapılandırılabilir ve yerel istemciyle yapılandırılamaz.
- Şirket içinden Azure'a geçirilen VM'ler şu anda Kerberos için desteklenmemektedir.
- Bölgeler arası kimlik doğrulaması şu anda Kerberos için desteklenmiyor.
- Etki alanı denetleyicisi, bastion'ın dağıtılacağı sanal ağ içinde azure tarafından barındırılan bir VM olmalıdır.
- DNS sunucularında yapılan değişiklikler Bastion'a yayılmaz. DNS bilgilerinin düzgün yayılması için Savunma yeniden dağıtımı gereklidir. DNS sunucusunda herhangi bir değişiklik yaptıktan sonra Bastion kaynağını silmeniz ve yeniden oluşturmanız gerekir.
- Daha fazla DC (etki alanı denetleyicisi) eklenirse Bastion yalnızca ilk DC'yi tanır.
- Farklı etki alanları için daha fazla DC eklenirse, eklenen etki alanları Kerberos ile başarıyla kimlik doğrulaması yapamaz.
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı. Yoksa ücretsiz bir tane oluşturun. Bastion kullanarak tarayıcınız aracılığıyla bir VM'ye bağlanabilmek için Azure portalında oturum açabilmeniz gerekir.
- Hem Azure Bastion hem de Kerberos özellikli sistemlerle (etki alanı denetleyicileri gibi) ilişkili Ağ Güvenlik Gruplarının (NSG) şu bağlantı noktalarında hem gelen hem de giden trafiğe izin verin: 53, 88, 389, 464 ve 636. Bu bağlantı noktaları düzgün DNS çözümlemesi, Kerberos kimlik doğrulaması ve Active Directory iletişimi için gereklidir. Daha fazla başvuru için, Active Directory etki alanları ve güvenleri için güvenlik duvarlarını yapılandırmayla ilgili Microsoft belgelerine bakın: Windows Güvenlik Duvarı'nı Active Directory etki alanlarına ve güvenlerine izin verecek şekilde yapılandırma
- Bir Azure sanal ağı. Sanal ağ oluşturma adımları için bkz . Hızlı Başlangıç: Sanal ağ oluşturma.
Sanal ağ DNS sunucularını güncelleştirme
Bu bölümde, aşağıdaki adımlar sanal ağınızı özel DNS ayarlarını belirtecek şekilde güncelleştirmenize yardımcı olur.
- Azure Portal’ında oturum açın.
- Bastion kaynaklarını dağıtmak istediğiniz sanal ağa gidin.
- Sanal ağınızın DNS sunucuları sayfasına gidin ve Özel'i seçin. Azure'da barındırılan etki alanı denetleyicinizin IP adresini ekleyin ve Kaydet'i seçin.
Bastion’ı dağıtma
- Öğretici: Bastion'ı el ile yapılandırma ayarlarını kullanarak dağıtma başlığı altındaki adımları kullanarak savunma dağıtımınızı yapılandırmaya başlayın. Temel Bilgiler sekmesindeki ayarları yapılandırın. Ardından, sayfanın üst kısmındaki Gelişmiş'e tıklayarak Gelişmiş sekmesine gidin.
- Gelişmiş sekmesinde Kerberos'ı seçin.
- Sayfanın en altında Gözden geçir + oluştur'u ve ardından Bastion'ı sanal ağınıza dağıtmak için Oluştur'u seçin.
- Dağıtım tamamlandıktan sonra, önceki adımlarda belirttiğiniz özel DNS'ye katılmış tüm erişilebilir Windows VM'lerinde oturum açmak için bunu kullanabilirsiniz.
Mevcut Bastion dağıtımlarını değiştirmek için
Bu bölümde, aşağıdaki adımlar Kerberos kimlik doğrulaması için sanal ağınızı ve mevcut Bastion dağıtımını değiştirmenize yardımcı olur.
- Sanal ağınız için DNS ayarlarını güncelleştirin.
- Bastion dağıtımınızın portal sayfasına gidin ve Yapılandırma'ya tıklayın.
- Yapılandırma sayfasında Kerberos kimlik doğrulaması'nı ve ardından Uygula'yı seçin.
- Bastion, yeni yapılandırma ayarlarıyla güncelleştirilir.
Bastion'ın Kerberos kullandığını doğrulamak için
Not
Kerberos kullanarak oturum açmak için Kullanıcı Asıl Adı'nı (UPN) kullanmanız gerekir.
Bastion kaynağınızda Kerberos'ı etkinleştirdikten sonra, hedef etki alanına katılmış VM'de kimlik doğrulaması için Kerberos kullandığını doğrulayabilirsiniz.
Hedef VM'de oturum açın (Bastion aracılığıyla veya değil). Görev çubuğundan "Grup İlkesini Düzenle" araması yapın ve Yerel Grup İlkesi Düzenleyicisi'ni açın.
Bilgisayar Yapılandırması > Windows Ayarları Güvenlik Ayarları >> Yerel İlkeler Güvenlik Seçenekleri'ni> seçin.
Ağ güvenliği: NTLM'yi kısıtla: Gelen NTLM Trafiği ilkesini bulun ve tüm etki alanı hesaplarını reddet olarak ayarlayın. Bastion, Kerberos devre dışı bırakıldığında kimlik doğrulaması için NTLM kullandığından, bu ayar NTLM tabanlı kimlik doğrulamasının VM'de gelecekteki oturum açma girişimleri için başarısız olmasını sağlar.
VM oturumunu sonlandırın.
Bastion'ı kullanarak hedef VM'ye yeniden bağlanın. Bastion'ın kimlik doğrulaması için Kerberos (NTLM değil) kullandığını gösteren oturum açma başarılı olmalıdır.
Not
NTLM'ye geri dönüşü önlemek için önceki adımları izlediğinizden emin olun. Kerberos'un etkinleştirilmesi (yordamı izlemeden) NTLM'ye geri dönüşü engellemez.
Hızlı Başlangıç: Kerberos ile Bastion ayarlama - Resource Manager şablonu
Şablonu gözden geçirme
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"defaultValue": "[resourceGroup().location]",
"type": "string"
},
"defaultNsgName": {
"type": "string",
"defaultValue": "Default-nsg"
},
"VnetName": {
"type": "string",
"defaultValue": "myVnet"
},
"ClientVMName": {
"defaultValue": "Client-vm",
"type": "string"
},
"ServerVMName": {
"defaultValue": "Server-vm",
"type": "string"
},
"vmsize": {
"defaultValue": "Standard_DS1_v2",
"type": "string",
"metadata": {
"description": "VM SKU to deploy"
}
},
"ServerVMUsername": {
"type": "string",
"defaultValue": "serveruser",
"metadata": {
"description": "Admin username on all VMs."
}
},
"ServerVMPassword": {
"type": "securestring",
"metadata": {
"description": "Admin password on all VMs."
}
},
"SafeModeAdministratorPassword": {
"type": "securestring",
"metadata": {
"description": "See https://learn.microsoft.com/en-us/powershell/module/addsdeployment/install-addsdomaincontroller?view=windowsserver2022-ps#-safemodeadministratorpassword"
}
},
"ClientVMUsername": {
"type": "string",
"defaultValue": "clientuser",
"metadata": {
"description": "username on ClientVM."
}
},
"ClientVMPassword": {
"type": "securestring",
"metadata": {
"description": "password on ClientVM."
}
},
"ServerVmImage": {
"type": "object",
"defaultValue": {
"offer": "WindowsServer",
"publisher": "MicrosoftWindowsServer",
"sku": "2019-Datacenter",
"version": "latest"
}
},
"ClientVmImage": {
"type": "object",
"defaultValue": {
"offer": "Windows",
"publisher": "microsoftvisualstudio",
"sku": "Windows-10-N-x64",
"version": "latest"
}
},
"publicIPAllocationMethod": {
"type": "string",
"defaultValue": "Static"
},
"BastionName": {
"defaultValue": "Bastion",
"type": "string"
},
"BastionPublicIPName": {
"defaultValue": "Bastion-ip",
"type": "string"
}
},
"variables": {
"DefaultSubnetId": "[concat(resourceId('Microsoft.Network/virtualNetworks', parameters('VnetName')), '/subnets/default')]",
"ClientVMSubnetId": "[concat(resourceId('Microsoft.Network/virtualNetworks', parameters('VnetName')), '/subnets/clientvm-subnet')]",
"DNSServerIpAddress": "10.16.0.4",
"ClientVMPrivateIpAddress": "10.16.1.4"
},
"resources": [
{
"apiVersion": "2020-03-01",
"name": "[parameters('VnetName')]",
"type": "Microsoft.Network/virtualNetworks",
"location": "[parameters('location')]",
"properties": {
"dhcpOptions": {
"dnsServers": [ "[variables('DNSServerIpAddress')]" ]
},
"subnets": [
{
"name": "default",
"properties": {
"addressPrefix": "10.16.0.0/24"
}
},
{
"name": "clientvm-subnet",
"properties": {
"addressPrefix": "10.16.1.0/24"
}
},
{
"name": "AzureBastionSubnet",
"properties": {
"addressPrefix": "10.16.2.0/24"
}
}
],
"addressSpace": {
"addressPrefixes": [
"10.16.0.0/16"
]
}
}
},
{
"type": "Microsoft.Network/networkInterfaces",
"apiVersion": "2018-10-01",
"name": "[concat(parameters('ServerVMName'), 'Nic')]",
"location": "[parameters('location')]",
"dependsOn": [
"[concat('Microsoft.Network/virtualNetworks/', parameters('VnetName'))]"
],
"properties": {
"ipConfigurations": [
{
"name": "[concat(parameters('ServerVMName'), 'NicIpConfig')]",
"properties": {
"privateIPAllocationMethod": "Static",
"privateIPAddress": "[variables('DNSServerIpAddress')]",
"subnet": {
"id": "[variables('DefaultSubnetId')]"
}
}
}
]
}
},
{
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2020-06-01",
"name": "[parameters('ServerVMName')]",
"location": "[parameters('location')]",
"dependsOn": [
"[concat('Microsoft.Network/networkInterfaces/', parameters('ServerVMName'), 'Nic')]"
],
"properties": {
"hardwareProfile": {
"vmSize": "[parameters('vmSize')]"
},
"osProfile": {
"AdminUsername": "[parameters('ServerVMUsername')]",
"AdminPassword": "[parameters('ServerVMPassword')]",
"computerName": "[parameters('ServerVMName')]"
},
"storageProfile": {
"imageReference": "[parameters('ServerVmImage')]",
"osDisk": {
"createOption": "FromImage",
"managedDisk": {
"storageAccountType": "Standard_LRS"
}
}
},
"networkProfile": {
"networkInterfaces": [
{
"id": "[ResourceId('Microsoft.Network/networkInterfaces/', concat(parameters('ServerVMName'), 'Nic'))]"
}
]
}
}
},
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"apiVersion": "2021-04-01",
"name": "[concat(parameters('ServerVMName'),'/', 'PromoteToDomainController')]",
"location": "[parameters('location')]",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/',parameters('ServerVMName'))]"
],
"properties": {
"publisher": "Microsoft.Compute",
"type": "CustomScriptExtension",
"typeHandlerVersion": "1.7",
"autoUpgradeMinorVersion": true,
"settings": {
"commandToExecute": "[concat('powershell.exe -Command \"Install-windowsfeature AD-domain-services; Import-Module ADDSDeployment;$Secure_String_Pwd = ConvertTo-SecureString ',parameters('SafeModeAdministratorPassword'),' -AsPlainText -Force; Install-ADDSForest -DomainName \"bastionkrb.test\" -SafeModeAdministratorPassword $Secure_String_Pwd -Force:$true')]"
}
}
},
{
"type": "Microsoft.Network/networkInterfaces",
"apiVersion": "2018-10-01",
"name": "[concat(parameters('ClientVMName'), 'Nic')]",
"location": "[parameters('location')]",
"dependsOn": [
"[concat('Microsoft.Network/virtualNetworks/', parameters('VnetName'))]",
"[concat('Microsoft.Compute/virtualMachines/', parameters('ServerVMName'))]"
],
"properties": {
"ipConfigurations": [
{
"name": "[concat(parameters('ClientVMName'), 'NicIpConfig')]",
"properties": {
"privateIPAllocationMethod": "Static",
"privateIPAddress": "[variables('ClientVMPrivateIpAddress')]",
"subnet": {
"id": "[variables('ClientVMSubnetId')]"
}
}
}
]
}
},
{
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2020-06-01",
"name": "[parameters('ClientVMName')]",
"location": "[parameters('location')]",
"dependsOn": [
"[concat('Microsoft.Network/networkInterfaces/', parameters('ClientVMName'), 'Nic')]"
],
"properties": {
"hardwareProfile": {
"vmSize": "[parameters('vmSize')]"
},
"osProfile": {
"AdminUsername": "[parameters('ClientVMUsername')]",
"AdminPassword": "[parameters('ClientVMPassword')]",
"computerName": "[parameters('ClientVMName')]"
},
"storageProfile": {
"imageReference": "[parameters('ClientVmImage')]",
"osDisk": {
"createOption": "FromImage",
"managedDisk": {
"storageAccountType": "Standard_LRS"
}
}
},
"networkProfile": {
"networkInterfaces": [
{
"id": "[ResourceId('Microsoft.Network/networkInterfaces/', concat(parameters('ClientVMName'), 'Nic'))]"
}
]
}
}
},
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"apiVersion": "2021-04-01",
"name": "[concat(parameters('ClientVMName'),'/', 'DomainJoin')]",
"location": "[parameters('location')]",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/',parameters('ClientVMName'))]",
"[concat('Microsoft.Compute/virtualMachines/', parameters('ServerVMName'),'/extensions/', 'PromoteToDomainController')]",
"[concat('Microsoft.Network/bastionHosts/', parameters('BastionName'))]"
],
"properties": {
"publisher": "Microsoft.Compute",
"type": "CustomScriptExtension",
"typeHandlerVersion": "1.7",
"autoUpgradeMinorVersion": true,
"settings": {
"commandToExecute": "[concat('powershell.exe -Command Set-ItemProperty -Path HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Lsa\\MSV1_0\\ -Name RestrictReceivingNTLMTraffic -Value 1; $Pass= ConvertTo-SecureString -String ',parameters('ServerVMPassword'),' -AsPlainText -Force; $Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList \"AD\\serveruser\", $Pass; do { try { $joined = add-computer -computername Client-vm -domainname bastionkrb.test –credential $Credential -passthru -restart –force; } catch {}} while ($joined.HasSucceeded -ne $true)')]"
}
}
},
{
"apiVersion": "2020-11-01",
"type": "Microsoft.Network/publicIPAddresses",
"name": "[parameters('BastionPublicIPName')]",
"location": "[resourceGroup().location]",
"sku": {
"name": "Standard"
},
"properties": {
"publicIPAllocationMethod": "Static"
},
"tags": {}
},
{
"type": "Microsoft.Network/bastionHosts",
"apiVersion": "2020-11-01",
"name": "[parameters('BastionName')]",
"location": "[resourceGroup().location]",
"dependsOn": [
"[concat('Microsoft.Network/virtualNetworks/', parameters('VnetName'))]",
"[concat('Microsoft.Network/publicIpAddresses/', parameters('BastionPublicIPName'))]"
],
"sku": {
"name": "Standard"
},
"properties": {
"enableKerberos": "true",
"ipConfigurations": [
{
"name": "IpConf",
"properties": {
"privateIPAllocationMethod": "Dynamic",
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIpAddresses', parameters('BastionPublicIPName'))]"
},
"subnet": {
"id": "[concat(resourceId('Microsoft.Network/virtualNetworks', parameters('VnetName')), '/subnets/AzureBastionSubnet')]"
}
}
}
]
}
}
]
}
Şablonda aşağıdaki kaynaklar tanımlanmıştır:
Aşağıdaki Azure kaynaklarını dağıtır:
- Microsoft.Network/virtualNetworks: Bir Azure sanal ağı oluşturun.
- Microsoft.Network/bastionHosts: Genel IP ve Kerberos özelliği etkin bir Standart SKU Bastion oluşturun.
- Windows 10 ClientVM ve Windows Server 2019 ServerVM oluşturun.
Sanal ağ DNS Sunucusu'nun ServerVM'nin (etki alanı denetleyicisi) özel IP adresine işaret etmelerini sağlayın.
ServerVM'de bir özel betik uzantısı çalıştırarak, onu etki alanı adı
bastionkrb.test
olan bir etki alanı denetleyicisine yükseltin.ClientVM'de bir Özel Betik Uzantısı çalıştırarak şu işleri yapmasını sağlar:
- NTLM'yi kısıtla: Gelen NTLM trafiği = Tüm etki alanı hesaplarını reddet (kimlik doğrulaması için Kerberos kullanıldığından emin olmak için).
-
bastionkrb.test
etki alanına katılın.
Şablonu dağıtma
Kerberos'ı ayarlamak için aşağıdaki PowerShell cmd'sini çalıştırarak önceki ARM şablonunu dağıtın:
New-AzResourceGroupDeployment -ResourceGroupName <your-rg-name> -TemplateFile "<path-to-template>\KerberosDeployment.json"`
Dağıtılan kaynakları gözden geçirme
Şimdi Bastion'ı Kerberos kimlik doğrulamasıyla kullanarak ClientVM'de oturum açın:
- kimlik bilgileri: kullanıcı adı =
serveruser@bastionkrb.test
ve parola =<password-entered-during-deployment>
.
Sonraki adımlar
Azure Bastion hakkında daha fazla bilgi için bkz. Azure Bastion nedir?