Bu makalede, ağ güvenlik gruplarıve Azure Sanal Ağ Yöneticisi aracılığıyla Azure trafiğinize uygulanan güvenlik kurallarını denetlemek ve sorunlarını gidermek için Azure Ağ İzleyicisi NSG tanılamasını kullanmayı öğreneceksiniz. NSG tanılaması, uygulanan güvenlik kurallarının trafiğe izin verip vermediğini kontrol eder.
Bu makaledeki örnekte, yanlış yapılandırılmış bir ağ güvenlik grubunun bir sanal makineye bağlanmak için Azure Bastion'ı kullanmanızı nasıl engelleyebileceği gösterilmektedir.
Önkoşullar
Etkin aboneliği olan bir Azure hesabı.
Ücretsiz hesap oluşturun.
Azure Cloud Shell veya Azure PowerShell.
Bu makaledeki adımlar Azure Cloud Shell'de Azure PowerShell cmdlet'lerini etkileşimli olarak çalıştırır. Komutları Cloud Shell'de çalıştırmak için kod bloğunun sağ üst köşesindeki Cloud Shell'i Aç'ı seçin. Kodu kopyalamak için Kopyala'yı seçin ve çalıştırmak için Cloud Shell'e yapıştırın. Cloud Shell'i Azure portalından da çalıştırabilirsiniz.
Cmdlet'leri çalıştırmak için Azure PowerShell'i yerel olarak da yükleyebilirsiniz. Bu makale, Az PowerShell modülünü gerektirir. Daha fazla bilgi için bkz . Azure PowerShell'i yükleme. Yüklü sürümü bulmak için Get-InstalledModule -Name Az komutunu çalıştırın. PowerShell'i yerel olarak çalıştırıyorsanız Connect-AzAccount cmdlet'ini kullanarak Azure'da oturum açın.
Etkin aboneliği olan bir Azure hesabı.
Ücretsiz hesap oluşturun.
Azure Cloud Shell veya Azure CLI.
Bu makaledeki adımlar, Azure Cloud Shell'de Azure CLI komutlarını etkileşimli olarak çalıştırır. Komutları Cloud Shell'de çalıştırmak için kod bloğunun sağ üst köşesindeki Cloud Shell'i Aç'ı seçin. Kodu kopyalamak için Kopyala'yı seçin ve çalıştırmak için Cloud Shell'e yapıştırın. Cloud Shell'i Azure portalından da çalıştırabilirsiniz.
Komutları çalıştırmak için Azure CLI'yi yerel olarak da yükleyebilirsiniz. Azure CLI'yı yerel olarak çalıştırıyorsanız az login komutunu kullanarak Azure'da oturum açın .
Bir kaynak grubu oluşturun
Azure portalınaoturum açın.
Portalın üst kısmındaki arama kutusuna Kaynak grubu yazın. Arama sonuçlarında Kaynak grupları'nı seçin.
+Oluştur'u seçin.
Kaynak grubu oluştur'unTemel Bilgiler sekmesinde aşağıdaki bilgileri girin veya seçin:
| Ayar |
Değer |
| Abonelik |
Aboneliğinizi seçin. |
| Kaynak grubu |
myResourceGroup girin. |
| Bölge |
Doğu ABD’yi seçin. |
Gözden geçir ve oluştur’u seçin.
Oluştur'i seçin.
New-AzResourceGroup kullanarak bir kaynak grubu oluşturun. Azure kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır.
# Create a resource group.
New-AzResourceGroup -Name 'myResourceGroup' -Location 'eastus'
az group create ile bir kaynak grubu oluşturun. Azure kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır.
# Create a resource group.
az group create --name 'myResourceGroup' --location 'eastus'
Sanal ağ oluşturma
Bu bölümde, bir alt ağ ve alt ağa bir ağ güvenlik grubu uygulanmış bir sanal ağ oluşturacaksınız.
Portalın üst kısmındaki arama kutusuna sanal ağlar girin. Arama sonuçlarından Sanal ağlar'ı seçin.
+Oluştur'u seçin. Sanal ağ oluştur bölümünde Temel Bilgiler sekmesinde aşağıdaki değerleri girin veya seçin:
| Ayar |
Değer |
|
Proje Ayrıntıları |
|
| Abonelik |
Azure aboneliği seçin. |
| Kaynak Grubu |
myResourceGroup'u seçin. |
|
Örnek ayrıntıları |
|
| Sanal ağın adı |
myVNet yazın. |
| Bölge |
(ABD) Doğu ABD'yi seçin. |
Güvenlik sekmesine gitmek için İleri'yi seçin.
IP Adresleri sekmesine gitmek için İleri'yi seçin.
10.0.0.0/16 varsayılan IP adresi alanını kabul edin ve kalem simgesini seçerek varsayılan alt ağı düzenleyin.
Alt ağı düzenle sayfasında aşağıdaki değerleri girin:
| Ayar |
Değer |
|
Alt ağ ayrıntıları |
|
| Veri Akışı Adı |
mySubnet girin. |
|
Güvenlik |
|
| Ağ güvenlik grubu |
Yeni oluştur’u seçin.
Ad alanına mySubnet-nsg girin.
Tamam'ı seçin. |
Kaydetseçeneğini seçin.
Ekranın alt kısmındaki Gözden geçir + oluştur'u seçin ve doğrulama başarılı olduğunda Oluştur'u seçin.
New-AzNetworkSecurityGroup kullanarak varsayılan bir ağ güvenlik grubu oluşturun.
# Create a network security group.
$networkSecurityGroup = New-AzNetworkSecurityGroup -Name 'mySubnet-nsg' -ResourceGroupName 'myResourceGroup' -Location 'eastus'
New-AzVirtualNetworkSubnetConfig komutunu kullanarak sanal makine alt ağı ve Azure Bastion alt ağı için alt ağ yapılandırmaları oluşturun.
# Create subnet configurations.
$firstSubnet = New-AzVirtualNetworkSubnetConfig -Name 'mySubnet' -AddressPrefix '10.0.0.0/24' -NetworkSecurityGroup $networkSecurityGroup
$secondSubnet = New-AzVirtualNetworkSubnetConfig -Name 'AzureBastionSubnet' -AddressPrefix '10.0.1.0/26'
New-AzVirtualNetwork kullanarak bir sanal ağ oluşturun.
# Create a virtual network.
$vnet = New-AzVirtualNetwork -Name 'myVNet' -ResourceGroupName 'myResourceGroup' -Location 'eastus' -AddressPrefix '10.0.0.0/16' -Subnet $firstSubnet,$secondSubnet
az network nsg create komutunu kullanarak varsayılan bir ağ güvenlik grubu oluşturun.
# Create a network security group.
az network nsg create --name 'mySubnet-nsg' --resource-group 'myResourceGroup' --location 'eastus'
az network vnet create komutunu kullanarak bir sanal ağ oluşturun.
az network vnet create --resource-group 'myResourceGroup' --name 'myVNet' --subnet-name 'mySubnet' --subnet-prefixes 10.0.0.0/24 --network-security-group 'mySubnet-nsg'
az network vnet subnet create komutunu kullanarak bir Azure Bastion alt ağı oluşturun.
az network vnet subnet create --resource-group 'myResourceGroup' --vnet-name 'myVNet' --name 'AzureBastionSubnet' --address-prefixes 10.0.1.0/26
Azure Bastion’ı dağıtma
Azure Bastion, özel IP adreslerini kullanarak güvenli kabuk (SSH) veya uzak masaüstü protokolü (RDP) üzerinden sanal ağınızdaki sanal makinelere (VM) bağlanmak için tarayıcınızı kullanır. Sanal makinelerin genel IP adreslerine, istemci yazılımına veya özel yapılandırmaya ihtiyacı yoktur. Azure Bastion hakkında daha fazla bilgi için bkz . Azure Bastion.
Not
Saatlik fiyatlandırma, giden veri kullanımına bakılmaksızın Bastion dağıtıldığından itibaren başlar. Daha fazla bilgi için bkz . Fiyatlandırma ve SKU'lar. Bastion'ı bir öğretici veya test kapsamında dağıtıyorsanız, kullanmayı bitirdikten sonra bu kaynağı silmenizi öneririz.
Portalın üst kısmındaki arama kutusuna Bastion yazın. Arama sonuçlarında Bastions'ı seçin.
+Oluştur'u seçin.
Bastion Oluşturma'nınTemel Bilgiler sekmesinde aşağıdaki bilgileri girin veya seçin:
| Ayar |
Değer |
|
Proje ayrıntıları |
|
| Abonelik |
Aboneliğinizi seçin. |
| Kaynak grubu |
myResourceGroup'u seçin. |
|
Örnek ayrıntıları |
|
| Veri Akışı Adı |
myVNet-Bastion girin. |
| Bölge |
Doğu ABD’yi seçin. |
| Katman |
Geliştirici'yi seçin. |
|
Sanal ağları yapılandırma |
|
| Sanal ağ |
myVNet'i seçin. |
| Alt ağ |
AzureBastionSubnet, /26 veya daha büyük bir adres alanıyla otomatik olarak oluşturulur. |
Gözden geçir ve oluştur’u seçin.
Oluştur'i seçin.
New-AzPublicIpAddress kullanarak Azure Bastion için bir genel IP adresi oluşturun.
# Create a public IP address for Azure Bastion.
$bastionIp = New-AzPublicIpAddress -ResourceGroupName 'myResourceGroup' -Name 'myBastionIp' -Location 'eastus' -Sku 'Standard' -AllocationMethod 'Static'
New-AzBastion kullanarak Temel SKU Bastion konağı oluşturun.
# Create an Azure Bastion host.
New-AzBastion -ResourceGroupName 'myResourceGroup' -Name 'myVNet-Bastion' -PublicIpAddressRgName 'myResourceGroup' -PublicIpAddressName 'myBastionIp' -VirtualNetworkRgName 'myResourceGroup' -VirtualNetworkName 'myVNet' -Sku 'Basic'
az network public-ip create komutunu kullanarak Azure Bastion için bir genel IP adresi oluşturun.
az network public-ip create --resource-group 'myResourceGroup' --name 'myBastionIp' --sku 'Standard' --location 'eastus'
az network bastion create komutunu kullanarak Bir Temel SKU Bastion konağı oluşturun.
az network bastion create --name 'myVNet-Bastion' --resource-group 'myResourceGroup' --vnet-name 'myVNet' --public-ip-address 'myBastionIp' --sku 'Basic' --location 'eastus'
Önemli
Bastion sunucusu dağıtıldığında, giden veri kullanımına bakılmaksızın saatlik fiyatlandırma başlar. Daha fazla bilgi için bkz. Fiyatlandırma. Bu kaynağı kullanmayı bitirdikten sonra silmenizi öneririz.
Sanal makine oluşturun
Bu bölümde, bir sanal makine ve ağ arabirimine uygulanan bir ağ güvenlik grubu oluşturacaksınız.
Portalın üst kısmındaki arama kutusuna sanal makineler girin. Arama sonuçlarından Sanal makineler'i seçin.
+ Oluştur'u seçin ve ardından Azure sanal makinesi'ni seçin.
Sanal makine oluştur bölümünde Temel Bilgiler sekmesinde aşağıdaki değerleri girin veya seçin:
| Ayar |
Değer |
|
Proje Ayrıntıları |
|
| Abonelik |
Azure aboneliği seçin. |
| Kaynak Grubu |
myResourceGroup'u seçin. |
|
Örnek ayrıntıları |
|
| Sanal makine ismi |
myVM'i girin. |
| Bölge |
(ABD) Doğu ABD'yi seçin. |
| Kullanılabilirlik Seçenekleri |
Altyapı yedekliliği gerekmiyor seçeneğini seçin. |
| Güvenlik türü |
Standart'ı seçin. |
| Görsel |
Windows Server 2022 Datacenter: Azure Edition - x64 2. Nesil'i seçin. |
| Boyut |
Bir boyut seçin veya varsayılan ayarı değiştirmeyin. |
|
Yönetici hesabı |
|
| Kullanıcı adı |
Bir kullanıcı adı girin. |
| Parola |
Bir parola girin. |
| Parolayı onaylayın |
Parolayı yeniden girin. |
Ağ sekmesini veya İleri: Diskler'i ve ardından İleri: Ağ'ı seçin.
Ağ sekmesinde aşağıdaki değerleri seçin:
| Ayar |
Değer |
|
Ağ arabirimi |
|
| Sanal ağ |
myVNet'i seçin. |
| Alt ağ |
mySubnet öğesini seçin. |
| Genel IP Adresi |
Hiçbiri seçeneğini belirtin. |
| NIC ağ güvenlik grubu |
Temel'i seçin. |
| Genel gelen trafik bağlantı noktaları |
Hiçbiri seçeneğini belirtin. |
Gözden geçir ve oluştur’u seçin.
Ayarları gözden geçirin ve oluştur'u seçin.
New-AzNetworkSecurityGroup kullanarak varsayılan bir ağ güvenlik grubu oluşturun.
# Create a default network security group.
New-AzNetworkSecurityGroup -Name 'myVM-nsg' -ResourceGroupName 'myResourceGroup' -Location eastus
New-AzVM kullanarak bir sanal makine oluşturun. İstendiğinde, bir kullanıcı adı ve parola girin.
# Create a virtual machine using the latest Windows Server 2022 image.
New-AzVm -ResourceGroupName 'myResourceGroup' -Name 'myVM' -Location 'eastus' -VirtualNetworkName 'myVNet' -SubnetName 'mySubnet' -SecurityGroupName 'myVM-nsg' -ImageName 'MicrosoftWindowsServer:WindowsServer:2022-Datacenter-azure-edition:latest'
az network nsg create komutunu kullanarak varsayılan bir ağ güvenlik grubu oluşturun.
# Create a default network security group.
az network nsg create --name 'myVM-nsg' --resource-group 'myResourceGroup' --location 'eastus'
az vm create komutunu kullanarak bir sanal makine oluşturun. İstendiğinde, bir kullanıcı adı ve parola girin.
# Create a virtual machine using the latest Windows Server 2022 image.
az vm create --resource-group 'myResourceGroup' --name 'myVM' --location 'eastus' --vnet-name 'myVNet' --subnet 'mySubnet' --public-ip-address '' --nsg 'myVM-nsg' --image 'Win2022AzureEditionCore'
Ağ güvenlik grubuna güvenlik kuralı ekleme
Bu bölümde, myVM'nin ağ arabirimiyle ilişkili ağ güvenlik grubuna bir güvenlik kuralı eklersiniz. Kural, sanal ağdan gelen trafiği reddeder.
Portalın üst kısmındaki arama kutusuna ağ güvenlik grupları girin. Arama sonuçlarından Ağ güvenlik grupları'nı seçin.
Ağ güvenlik grupları listesinden myVM-nsg öğesini seçin.
Ayarlar altında Gelen güvenlik kuralları’nı seçin.
+ Ekle'yi seçin. Ağ sekmesinde aşağıdaki değerleri girin veya seçin:
| Ayar |
Değer |
| Kaynak |
Hizmet Etiketi'ne tıklayın. |
| Kaynak hizmeti etiketi |
VirtualNetwork'i seçin. |
| Kaynak bağlantı noktası aralıkları |
*. giriniz. |
| Hedef |
Herhangi birini seçin. |
| Hizmet |
Özel'i seçin. |
| Hedef bağlantı noktası aralıkları |
*. giriniz. |
| Protokol |
Herhangi birini seçin. |
| Eylem |
Reddet'i seçin. |
| Öncelik |
Girin 1000. |
| Veri Akışı Adı |
DenyVnetInBound girin. |
Ekle'yi seçin.
Add-AzNetworkSecurityRuleConfig komutunu kullanarak sanal ağdan gelen trafiği reddeden bir güvenlik kuralı oluşturun. Ardından Set-AzNetworkSecurityGroup komutunu kullanarak ağ güvenlik grubunu yeni güvenlik kuralıyla güncelleştirin.
# Place the network security group configuration into a variable.
$networkSecurityGroup = Get-AzNetworkSecurityGroup -Name 'myVM-nsg' -ResourceGroupName 'myResourceGroup'
# Create a security rule that denies inbound traffic from the virtual network service tag.
Add-AzNetworkSecurityRuleConfig -Name 'DenyVnetInBound' -NetworkSecurityGroup $networkSecurityGroup `
-Access 'Deny' -Protocol '*' -Direction 'Inbound' -Priority '1000' `
-SourceAddressPrefix 'virtualNetwork' -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '*'
# Updates the network security group.
Set-AzNetworkSecurityGroup -NetworkSecurityGroup $networkSecurityGroup
Ağ güvenlik grubuna sanal ağdan gelen trafiği engelleyen bir güvenlik kuralı eklemek için az network nsg rule create komutunu kullanın.
# Add to the network security group a security rule that denies inbound traffic from the virtual network service tag.
az network nsg rule create --name 'DenyVnetInBound' --resource-group 'myResourceGroup' --nsg-name 'myVM-nsg' --priority '1000' \
--access 'Deny' --protocol '*' --direction 'Inbound' --source-address-prefixes 'virtualNetwork' --source-port-ranges '*' \
--destination-address-prefixes '*' --destination-port-ranges '*'
Not
VirtualNetwork hizmet etiketi, sanal ağın adres alanını, tüm bağlı şirket içi adres alanlarını, eşlenmiş sanal ağları, sanal ağ geçidine bağlı sanal ağları, konağın sanal IP adresini ve kullanıcı tanımlı yollarda kullanılan adres ön eklerini temsil eder. Daha fazla bilgi için bkz . Hizmet etiketleri.
Sanal makine trafiğine uygulanan güvenlik kurallarını denetleme
Bastion alt ağından sanal makineye gelen trafiğe uygulanan güvenlik kurallarını denetlemek için NSG tanılamasını kullanın.
Portalın üst kısmındaki arama kutusunda Ağ İzleyicisi arayın ve seçin.
Ağ tanılama araçları'nın altında NSG tanılaması'nı seçin.
NSG tanılama sayfasında aşağıdaki değerleri girin veya seçin:
| Ayar |
Değer |
|
Hedef kaynak |
|
| Hedef kaynak türü |
Sanal makine'yi seçin. |
| Sanal makine |
myVM sanal makinesi'ne tıklayın. |
|
Trafik ayrıntıları |
|
| Protokol |
TCP’yi seçin. Diğer kullanılabilir seçenekler şunlardır: Tümü, UDP ve ICMP. |
| Yön |
Gelen'i seçin. Diğer kullanılabilir seçenek: Giden. |
| Kaynak türü |
IPv4 adresi/CIDR'yi seçin. Diğer kullanılabilir seçenek: Hizmet Etiketi. |
| IPv4 adres/CIDR |
Bastion alt ağdaki IP adresi aralığı olan 10.0.1.0/26 girin. Kabul edilebilir değerler şunlardır: tek IP adresi, birden çok IP adresi, tek IP ön eki, birden çok IP ön eki. |
| Hedef IP adresi |
myVM'nin IP adresi olan 10.0.0.4 varsayılanını değiştirmeyin. |
| Hedef bağlantı noktası |
Tüm bağlantı noktalarını eklemek için * girin. |
Testi çalıştırmak için NSG tanılamasını çalıştır'ı seçin. NSG tanılaması tüm güvenlik kurallarını denetlemeyi tamamladıktan sonra sonucu görüntüler.
Sonuç, Bastion alt ağından gelen bağlantı için değerlendirilen üç güvenlik kuralı olduğunu gösterir:
-
GlobalRules: Bu güvenlik yöneticisi kuralı Azure Sanal Ağ Yönet kullanılarak sanal ağ düzeyinde uygulanır. Kural, Bastion alt ağından sanal makineye gelen TCP trafiğine izin verir.
-
mySubnet-nsg: Bu ağ güvenlik grubu alt ağ düzeyinde (sanal makinenin alt ağı) uygulanır. Kural, Bastion alt ağından sanal makineye gelen TCP trafiğine izin verir.
-
myVM-nsg: Bu ağ güvenlik grubu, ağ arabirimi (NIC) düzeyinde uygulanır. Kural, Bastion alt ağından sanal makineye gelen TCP trafiğini reddeder.
Bu ağ güvenlik grubunun sahip olduğu güvenlik kuralları ve trafiği reddeden kural hakkındaki ayrıntıları görmek için myVM-nsg ayrıntılarını görüntüle'yi seçin.
myVM-nsg ağ güvenlik grubunda DenyVnetInBound güvenlik kuralı, VirtualNetwork hizmet etiketinin adres alanından sanal makineye gelen trafiği reddeder. Bastion konağı, sanal makineye bağlanmak için VirtualNetwork hizmet etiketine dahil edilen 10.0.1.0/26 adres aralığındaki IP adreslerini kullanır. Bu nedenle, Bastion konağından gelen bağlantı DenyVnetInBound güvenlik kuralı tarafından reddedilir.
NSG tanılama oturumunu başlatmak için Invoke-AzNetworkWatcherNetworkConfigurationDiagnostic komutunu kullanın.
# Create a profile for the diagnostic session.
$profile = New-AzNetworkWatcherNetworkConfigurationDiagnosticProfile -Direction Inbound -Protocol Tcp -Source 10.0.1.0/26 -Destination 10.0.0.4 -DestinationPort *
# Place the virtual machine configuration into a variable.
$vm = Get-AzVM -Name 'myVM' -ResourceGroupName 'myResourceGroup'
# Start the the NSG diagnostics session.
Invoke-AzNetworkWatcherNetworkConfigurationDiagnostic -Location 'eastus' -TargetResourceId $vm.Id -Profile $profile | Format-List
Aşağıdaki örnek çıktıya benzer bir çıktı döndürülür:
Results : {Microsoft.Azure.Commands.Network.Models.PSNetworkConfigurationDiagnosticResult}
ResultsText : [
{
"Profile": {
"Direction": "Inbound",
"Protocol": "Tcp",
"Source": "10.0.1.0/26",
"Destination": "10.0.0.4",
"DestinationPort": "*"
},
"NetworkSecurityGroupResult": {
"SecurityRuleAccessResult": "Deny",
"EvaluatedNetworkSecurityGroups": [
{
"NetworkSecurityGroupId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/NetworkAdmin/providers/Microsoft.Network/networkManagers/GlobalRules",
"MatchedRule": {
"RuleName": "VirtualNetwork",
"Action": "Allow"
},
"RulesEvaluationResult": [
{
"Name": "VirtualNetwork",
"ProtocolMatched": true,
"SourceMatched": true,
"SourcePortMatched": true,
"DestinationMatched": true,
"DestinationPortMatched": true
}
]
},
{
"NetworkSecurityGroupId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/mySubnet-nsg",
"MatchedRule": {
"RuleName": "DefaultRule_AllowVnetInBound",
"Action": "Allow"
},
"RulesEvaluationResult": [
{
"Name": "DefaultRule_AllowVnetInBound",
"ProtocolMatched": true,
"SourceMatched": true,
"SourcePortMatched": true,
"DestinationMatched": true,
"DestinationPortMatched": true
}
]
},
{
"NetworkSecurityGroupId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myVM-nsg",
"MatchedRule": {
"RuleName": "UserRule_DenyVnetInBound",
"Action": "Deny"
},
"RulesEvaluationResult": [
{
"Name": "UserRule_DenyVnetInBound",
"ProtocolMatched": true,
"SourceMatched": true,
"SourcePortMatched": true,
"DestinationMatched": true,
"DestinationPortMatched": true
}
]
}
]
}
}
]
Sonuç, Bastion alt ağından gelen bağlantı için değerlendirilen üç güvenlik kuralı olduğunu gösterir:
-
GlobalRules: Bu güvenlik yöneticisi kuralı Azure Sanal Ağ Yönet kullanılarak sanal ağ düzeyinde uygulanır. Kural, Bastion alt ağından sanal makineye gelen TCP trafiğine izin verir.
-
mySubnet-nsg: Bu ağ güvenlik grubu alt ağ düzeyinde (sanal makinenin alt ağı) uygulanır. Kural, Bastion alt ağından sanal makineye gelen TCP trafiğine izin verir.
-
myVM-nsg: Bu ağ güvenlik grubu, ağ arabirimi (NIC) düzeyinde uygulanır. Kural, Bastion alt ağından sanal makineye gelen TCP trafiğini reddeder.
myVM-nsg ağ güvenlik grubunda DenyVnetInBound güvenlik kuralı, VirtualNetwork hizmet etiketinin adres alanından sanal makineye gelen trafiği reddeder. Bastion konağı, sanal makineye bağlanmak için VirtualNetwork hizmet etiketi dahil 10.0.1.0/26 ip adreslerini kullanır. Bu nedenle, Bastion konağından gelen bağlantı DenyVnetInBound güvenlik kuralı tarafından reddedilir.
NSG tanılama oturumunu başlatmak için az network watcher run-configuration-diagnostic komutunu kullanın.
# Start the the NSG diagnostics session.
az network watcher run-configuration-diagnostic --resource 'myVM' --resource-group 'myResourceGroup' --resource-type 'virtualMachines' --direction 'Inbound' --protocol 'TCP' --source '10.0.1.0/26' --destination '10.0.0.4' --port '*'
Aşağıdaki örnek çıktıya benzer bir çıktı döndürülür:
{
"results": [
{
"networkSecurityGroupResult": {
"evaluatedNetworkSecurityGroups": [
{
"appliedTo": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVNet",
"matchedRule": {
"action": "Allow",
"ruleName": "VirtualNetwork"
},
"networkSecurityGroupId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/NetworkAdmin/providers/Microsoft.Network/networkManagers/GlobalRules",
"rulesEvaluationResult": [
{
"destinationMatched": true,
"destinationPortMatched": true,
"name": "VirtualNetwork",
"protocolMatched": true,
"sourceMatched": true,
"sourcePortMatched": true
}
]
},
{
"appliedTo": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVNet/subnets/mySubnet",
"matchedRule": {
"action": "Allow",
"ruleName": "DefaultRule_AllowVnetInBound"
},
"networkSecurityGroupId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/mySubnet-nsg",
"rulesEvaluationResult": [
{
"destinationMatched": true,
"destinationPortMatched": true,
"name": "DefaultRule_AllowVnetInBound",
"protocolMatched": true,
"sourceMatched": true,
"sourcePortMatched": true
}
]
},
{
"appliedTo": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myvm36",
"matchedRule": {
"action": "Deny",
"ruleName": "UserRule_DenyVnetInBound"
},
"networkSecurityGroupId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myVM-nsg",
"rulesEvaluationResult": [
{
"destinationMatched": true,
"destinationPortMatched": true,
"name": "UserRule_DenyVnetInBound",
"protocolMatched": true,
"sourceMatched": true,
"sourcePortMatched": true
}
]
}
],
"securityRuleAccessResult": "Deny"
},
"profile": {
"destination": "10.0.0.4",
"destinationPort": "*",
"direction": "Inbound",
"protocol": "TCP",
"source": "10.0.1.0/26"
}
}
]
}
Sonuç, Bastion alt ağından gelen bağlantı için değerlendirilen üç güvenlik kuralı olduğunu gösterir:
-
GlobalRules: Bu güvenlik yöneticisi kuralı Azure Sanal Ağ Yönet kullanılarak sanal ağ düzeyinde uygulanır. Kural, Bastion alt ağından sanal makineye gelen TCP trafiğine izin verir.
-
mySubnet-nsg: Bu ağ güvenlik grubu alt ağ düzeyinde (sanal makinenin alt ağı) uygulanır. Kural, Bastion alt ağından sanal makineye gelen TCP trafiğine izin verir.
-
myVM-nsg: Bu ağ güvenlik grubu, ağ arabirimi (NIC) düzeyinde uygulanır. Kural, Bastion alt ağından sanal makineye gelen TCP trafiğini reddeder.
myVM-nsg ağ güvenlik grubunda DenyVnetInBound güvenlik kuralı, VirtualNetwork hizmet etiketinin adres alanından sanal makineye gelen trafiği reddeder. Bastion konağı, sanal makineye bağlanmak için VirtualNetwork hizmet etiketi dahil 10.0.1.0/26 ip adreslerini kullanır. Bu nedenle, Bastion konağından gelen bağlantı DenyVnetInBound güvenlik kuralı tarafından reddedilir.
Bastion alt ağından gelen trafiğe izin vermek için güvenlik kuralı ekleme
Azure Bastion kullanarak myVM'ye bağlanmak için, Bastion alt ağından gelen trafiğe ağ güvenlik grubu tarafından izin verilmelidir. 10.0.1.0/26'dan gelen trafiğe izin vermek için DenyVnetInBound kuralından daha yüksek öncelikli (düşük öncelikli) bir güvenlik kuralı ekleyin veya DenyVnetInBound kuralını Bastion alt ağından gelen trafiğe izin verecek şekilde düzenleyin.
Güvenlik kuralını, sanal makineye gelen trafiği reddeden güvenlik kuralıyla ilgili ayrıntıları gösteren Ağ İzleyicisi sayfasından ağ güvenlik grubuna ekleyebilirsiniz.
Güvenlik kuralını Ağ İzleyicisi içinden eklemek için + Güvenlik kuralı ekle'yi seçin ve ardından aşağıdaki değerleri girin veya seçin:
| Ayar |
Değer |
| Kaynak |
IP Adresleri'ne tıklayın. |
| Kaynak IP adresleri/CIDR aralıkları |
Bastion alt ağdaki IP adresi aralığı olan 10.0.1.0/26 girin. |
| Kaynak bağlantı noktası aralıkları |
*. giriniz. |
| Hedef |
Herhangi birini seçin. |
| Hizmet |
Özel'i seçin. |
| Hedef bağlantı noktası aralıkları |
*. giriniz. |
| Protokol |
Herhangi birini seçin. |
| Eylem |
İzin ver'i seçin. |
| Öncelik |
900, DenyVnetInBound kuralı için kullanılan 1000'den yüksek öncelikli olarak girin. |
| Veri Akışı Adı |
Girin AllowBastionConnections. |
Tanılama oturumunu yeniden çalıştırmak için Yeniden Denetle'yi seçin. Tanılama oturumu artık Bastion alt ağından gelen trafiğe izin verildiğini göstermelidir.
AllowBastionConnections güvenlik kuralı, 10.0.1.0/26'daki herhangi bir IP adresinden sanal makineye giden trafiğe izin verir. Bastion konağı 10.0.1.0/26 ip adreslerini kullandığından, AllowBastionConnections güvenlik kuralı tarafından sanal makineyle bağlantısına izin verilir.
Bastion alt ağından gelen trafiğe izin veren bir güvenlik kuralı oluşturmak için Add-AzNetworkSecurityRuleConfig komutunu kullanın. Ardından Set-AzNetworkSecurityGroup komutunu kullanarak ağ güvenlik grubunu yeni güvenlik kuralıyla güncelleştirin.
# Place the network security group configuration into a variable.
$networkSecurityGroup = Get-AzNetworkSecurityGroup -Name 'myVM-nsg' -ResourceGroupName 'myResourceGroup'
# Create a security rule.
Add-AzNetworkSecurityRuleConfig -Name 'AllowBastionConnections' -NetworkSecurityGroup $networkSecurityGroup -Priority '900' -Access 'Allow' `
-Protocol '*' -Direction 'Inbound' -SourceAddressPrefix '10.0.1.0/26' -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '*'
# Updates the network security group.
Set-AzNetworkSecurityGroup -NetworkSecurityGroup $networkSecurityGroup
Yeni bir NSG tanılama oturumu kullanarak yeniden denetlemek için Invoke-AzNetworkWatcherNetworkConfigurationDiagnostic komutunu kullanın.
# Create a profile for the diagnostic session.
$profile = New-AzNetworkWatcherNetworkConfigurationDiagnosticProfile -Direction 'Inbound' -Protocol 'Tcp' -Source '10.0.1.0/26' -Destination '10.0.0.4' -DestinationPort '*'
# Place the virtual machine configuration into a variable.
$vm = Get-AzVM -Name 'myVM' -ResourceGroupName 'myResourceGroup'
# Start the diagnostic session.
Invoke-AzNetworkWatcherNetworkConfigurationDiagnostic -Location 'eastus' -TargetResourceId $vm.Id -Profile $profile | Format-List
Aşağıdaki örnek çıktıya benzer bir çıktı döndürülür:
Results : {Microsoft.Azure.Commands.Network.Models.PSNetworkConfigurationDiagnosticResult}
ResultsText : [
{
"Profile": {
"Direction": "Inbound",
"Protocol": "Tcp",
"Source": "10.0.1.0/26",
"Destination": "10.0.0.4",
"DestinationPort": "*"
},
"NetworkSecurityGroupResult": {
"SecurityRuleAccessResult": "Allow",
"EvaluatedNetworkSecurityGroups": [
{
"NetworkSecurityGroupId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/NetworkAdmin/providers/Microsoft.Network/networkManagers/GlobalRules",
"MatchedRule": {
"RuleName": "VirtualNetwork",
"Action": "Allow"
},
"RulesEvaluationResult": [
{
"Name": "VirtualNetwork",
"ProtocolMatched": true,
"SourceMatched": true,
"SourcePortMatched": true,
"DestinationMatched": true,
"DestinationPortMatched": true
}
]
},
{
"NetworkSecurityGroupId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/mySubnet-nsg",
"MatchedRule": {
"RuleName": "DefaultRule_AllowVnetInBound",
"Action": "Allow"
},
"RulesEvaluationResult": [
{
"Name": "DefaultRule_AllowVnetInBound",
"ProtocolMatched": true,
"SourceMatched": true,
"SourcePortMatched": true,
"DestinationMatched": true,
"DestinationPortMatched": true
}
]
},
{
"NetworkSecurityGroupId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myVM-nsg",
"MatchedRule": {
"RuleName": "UserRule_AllowBastionConnections",
"Action": "Allow"
},
"RulesEvaluationResult": [
{
"Name": "UserRule_AllowBastionConnections",
"ProtocolMatched": true,
"SourceMatched": true,
"SourcePortMatched": true,
"DestinationMatched": true,
"DestinationPortMatched": true
}
]
}
]
}
}
]
AllowBastionConnections güvenlik kuralı, 10.0.1.0/26'daki herhangi bir IP adresinden sanal makineye giden trafiğe izin verir. Bastion konağı 10.0.1.0/26 ip adreslerini kullandığından, AllowBastionConnections güvenlik kuralı tarafından sanal makineyle bağlantısına izin verilir.
Ağ güvenlik grubuna Bastion alt ağından gelen trafiğe izin veren bir güvenlik kuralı eklemek için az network nsg rule create komutunu kullanın.
# Add a security rule to the network security group.
az network nsg rule create --name 'AllowBastionConnections' --resource-group 'myResourceGroup' --nsg-name 'myVM-nsg' --priority '900' \
--access 'Allow' --protocol '*' --direction 'Inbound' --source-address-prefixes '10.0.1.0/26' --source-port-ranges '*' \
--destination-address-prefixes '*' --destination-port-ranges '*'
Yeni bir NSG tanılama oturumu kullanarak yeniden denetlemek için az network watcher run-configuration-diagnostic komutunu kullanın.
# Start the the NSG diagnostics session.
az network watcher run-configuration-diagnostic --resource 'myVM' --resource-group 'myResourceGroup' --resource-type 'virtualMachines' --direction 'Inbound' --protocol 'TCP' --source '10.0.1.0/26' --destination '10.0.0.4' --port '*'
Aşağıdaki örnek çıktıya benzer bir çıktı döndürülür:
{
"results": [
{
"networkSecurityGroupResult": {
"evaluatedNetworkSecurityGroups": [
{
"appliedTo": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVNet",
"matchedRule": {
"action": "Allow",
"ruleName": "VirtualNetwork"
},
"networkSecurityGroupId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/NetworkAdmin/providers/Microsoft.Network/networkManagers/GlobalRules",
"rulesEvaluationResult": [
{
"destinationMatched": true,
"destinationPortMatched": true,
"name": "VirtualNetwork",
"protocolMatched": true,
"sourceMatched": true,
"sourcePortMatched": true
}
]
},
{
"appliedTo": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVNet/subnets/mySubnet",
"matchedRule": {
"action": "Allow",
"ruleName": "DefaultRule_AllowVnetInBound"
},
"networkSecurityGroupId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/mySubnet-nsg",
"rulesEvaluationResult": [
{
"destinationMatched": true,
"destinationPortMatched": true,
"name": "DefaultRule_AllowVnetInBound",
"protocolMatched": true,
"sourceMatched": true,
"sourcePortMatched": true
}
]
},
{
"appliedTo": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myvm36",
"matchedRule": {
"action": "Allow",
"ruleName": "UserRule_AllowBastionConnections"
},
"networkSecurityGroupId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myVM-nsg",
"rulesEvaluationResult": [
{
"destinationMatched": true,
"destinationPortMatched": true,
"name": "UserRule_AllowBastionConnections",
"protocolMatched": true,
"sourceMatched": true,
"sourcePortMatched": true
}
]
}
],
"securityRuleAccessResult": "Allow"
},
"profile": {
"destination": "10.0.0.4",
"destinationPort": "*",
"direction": "Inbound",
"protocol": "TCP",
"source": "10.0.1.0/26"
}
}
]
}
AllowBastionConnections güvenlik kuralı, 10.0.1.0/26'daki herhangi bir IP adresinden sanal makineye giden trafiğe izin verir. Bastion konağı 10.0.1.0/26 ip adreslerini kullandığından, AllowBastionConnections güvenlik kuralı tarafından sanal makineyle bağlantısına izin verilir.
Kaynakları temizleme
Artık gerekli olmadığında kaynak grubunu ve içerdiği tüm kaynakları silin:
Portalın üst kısmındaki arama kutusuna myResourceGroup değerini girin. Arama sonuçlarından myResourceGroup öğesini seçin.
Kaynak grubunu sil'i seçin.
Kaynak grubunu sil bölümüne myResourceGroup yazın ve Sil'i seçin.
Kaynak grubunun ve tüm kaynaklarının silinmesini onaylamak için Sil'i seçin.
Kaynak grubunu ve içerdiği tüm kaynakları silmek için Remove-AzResourceGroup kullanın.
# Delete the resource group and all the resources it contains.
Remove-AzResourceGroup -Name 'myResourceGroup' -Force
Kaynak grubunu ve içerdiği tüm kaynakları kaldırmak için az group delete komutunu kullanın
# Delete the resource group and all the resources it contains.
az group delete --name 'myResourceGroup' --yes --no-wait
İlgili içerik