A Bastion for Kerberos-hitelesítés konfigurálása az Azure Portal használatával
Ez a cikk bemutatja, hogyan konfigurálhatja az Azure Bastiont a Kerberos-hitelesítés használatára. A Kerberos-hitelesítés az Alapszintű és a Standard Bastion termékváltozatokkal is használható. A Kerberos-hitelesítésről további információt a Kerberos-hitelesítés áttekintésében talál. További információ az Azure Bastionról: Mi az Az Azure Bastion?
Megfontolások
- Az Azure Bastion Kerberos-beállítása csak az Azure Portalon konfigurálható, natív ügyféllel nem.
- A helyszíniről az Azure-ba migrált virtuális gépek jelenleg nem támogatottak a Kerberos esetében.
- A kerberosok jelenleg nem támogatják a tartományok közötti hitelesítést.
- A tartományvezérlőnek egy Azure-ban üzemeltetett virtuális gépnek kell lennie ugyanazon a virtuális hálózaton belül, amelyet a megerősített rendszer üzembe helyezett.
- A DNS-kiszolgálók módosításai nem propagálnak a Bastionba. A DNS-adatok megfelelő propagálásához a Bastion újratelepítésére van szükség. Miután módosította a DNS-kiszolgálót, törölnie kell és újra létre kell hoznia a Bastion-erőforrást.
- Ha további tartományvezérlőket (tartományvezérlőket) ad hozzá, a Bastion csak az első tartományvezérlőt ismeri fel.
- Ha a rendszer további tartományvezérlőket ad hozzá a különböző tartományokhoz, a hozzáadott tartományok nem tudnak sikeresen hitelesíteni a Kerberossal.
Előfeltételek
Egy Azure-fiók, aktív előfizetéssel. Ha nincs ilyenje, hozzon létre egyet ingyen. Ahhoz, hogy a Bastion használatával kapcsolódhasson egy virtuális géphez a böngészőben, be kell tudnia jelentkeznie az Azure Portalra.
Egy Azure-beli virtuális hálózat. A virtuális hálózat létrehozásának lépéseit a rövid útmutatóban találja : Virtuális hálózat létrehozása.
Virtuális hálózati DNS-kiszolgálók frissítése
Ebben a szakaszban az alábbi lépések segítenek frissíteni a virtuális hálózatot az egyéni DNS-beállítások megadásához.
- Jelentkezzen be az Azure Portalra.
- Lépjen arra a virtuális hálózatra, amelyhez telepíteni szeretné a Bastion-erőforrásokat.
- Nyissa meg a virtuális hálózat DNS-kiszolgálóinak lapját, és válassza az Egyéni lehetőséget. Adja hozzá az Azure által üzemeltetett tartományvezérlő ÉS a Mentés IP-címét.
A Bastion üzembe helyezése
Kezdje el konfigurálni a megerősített üzembe helyezést az oktatóanyag lépéseivel : A Bastion üzembe helyezése manuális konfigurációs beállítások használatával. Konfigurálja a beállításokat az Alapszintű beállítások lapon. Ezután a lap tetején kattintson a Speciális gombra a Speciális lap eléréséhez.
A Speciális lapon válassza a Kerberos lehetőséget.
A lap alján válassza a Véleményezés + létrehozás, majd a Létrehozás lehetőséget a Bastion virtuális hálózaton való üzembe helyezéséhez.
Az üzembe helyezés befejeződése után bejelentkezhet a korábbi lépésekben megadott egyéni DNS-hez csatlakoztatott, elérhető Windows rendszerű virtuális gépekre.
Meglévő Bastion-telepítés módosítása
Ebben a szakaszban a következő lépések segítenek módosítani a virtuális hálózatot és a Meglévő Bastion-telepítést a Kerberos-hitelesítéshez.
- Frissítse a virtuális hálózat DNS-beállításait .
- Nyissa meg a Bastion-telepítés portállapját, és válassza a Konfiguráció lehetőséget.
- A Konfiguráció lapon válassza a Kerberos-hitelesítés, majd az Alkalmaz lehetőséget.
- A Bastion az új konfigurációs beállításokkal frissül.
Annak ellenőrzése, hogy a Bastion Kerberost használ-e
Feljegyzés
A Kerberos használatával való bejelentkezéshez az egyszerű felhasználónévvel (UPN) kell bejelentkeznie.
Miután engedélyezte a Kerberost a Bastion-erőforráson, ellenőrizheti, hogy valóban a Kerberost használja-e a céltartományhoz csatlakoztatott virtuális gép hitelesítéséhez.
Jelentkezzen be a cél virtuális gépre (vagy a Bastionon keresztül, vagy nem). Keressen rá a "Csoportházirend szerkesztése" kifejezésre a tálcán, és nyissa meg a Helyi csoportházirend-szerkesztőt.
Válassza a Számítógép konfigurációja > Windows-beállítások > biztonsági beállítások > helyi házirendek > biztonsági beállításai lehetőséget.
Keresse meg a házirend hálózati biztonságát: Korlátozza az NTLM: Bejövő NTLM-forgalmat, és állítsa be az összes tartományi fiók megtagadására. Mivel a Bastion NTLM-et használ a hitelesítéshez, ha a Kerberos le van tiltva, ez a beállítás biztosítja, hogy az NTLM-alapú hitelesítés sikertelen legyen a virtuális gépen való jövőbeli bejelentkezési kísérletek esetén.
Fejezd be a virtuálisgép-munkamenetet.
Csatlakozzon ismét a cél virtuális géphez a Bastion használatával. A bejelentkezésnek sikeresnek kell lennie, ami azt jelzi, hogy a Bastion a Kerberost (és nem az NTLM-et) használta a hitelesítéshez.
Feljegyzés
Az NTLM-be történő feladat-visszavétel megakadályozásához kövesse az előző lépéseket. A Kerberos engedélyezése (az eljárás követése nélkül) nem akadályozza meg az NTLM-be történő feladat-visszavételt.
Rövid útmutató: A Bastion beállítása a Kerberos használatával – Resource Manager-sablon
A sablon áttekintése
{
"$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')]"
}
}
}
]
}
}
]
}
A sablon a következő erőforrásokat definiálta:
- A következő Azure-erőforrásokat helyezi üzembe:
- Microsoft.Network/virtualNetworks: Hozzon létre egy Azure-beli virtuális hálózatot.
- Microsoft.Network/bastionHosts: Hozzon létre egy standard termékváltozat-tárolót, amelyen engedélyezve van a nyilvános IP-cím és a Kerberos szolgáltatás.
- Hozzon létre egy Windows 10 ClientVM-et és egy Windows Server 2019 ServerVM-et.
- A VNet-pont DNS-kiszolgálóját a ServerVM (tartományvezérlő) magánhálózati IP-címére kell helyezni.
- Egyéni szkriptbővítményt futtat a ServerVM-en, hogy előléptesse azt egy tartományvezérlőre a következő tartományvezérlőn:
bastionkrb.test
. - Egyéni szkriptbővítményt futtat a ClientVM-en a következőhöz:
- NTLM korlátozása: Bejövő NTLM-forgalom = Az összes tartományi fiók megtagadása (ez a Kerberos hitelesítéshez való használatának biztosítása).
- Tartomány csatlakoztatása a
bastionkrb.test
tartományhoz.
A sablon üzembe helyezése
A Kerberos beállításához telepítse az előző ARM-sablont a következő PowerShell-parancsmag futtatásával:
New-AzResourceGroupDeployment -ResourceGroupName <your-rg-name> -TemplateFile "<path-to-template>\KerberosDeployment.json"`
Üzembe helyezett erőforrások áttekintése
Most jelentkezzen be a ClientVM-be a Bastion használatával Kerberos-hitelesítéssel:
- hitelesítő adatok: felhasználónév =
serveruser@bastionkrb.test
és jelszó =<password-entered-during-deployment>
.
Következő lépések
További információ az Azure Bastionról: Mi az Az Azure Bastion?