Hızlı Başlangıç: Azure CLI kullanarak sanal makine ağ trafiği filtresi sorununu tanılama

Bu hızlı başlangıçta bir sanal makine dağıtacak ve farklı IP adreslerinden gelen ve giden bağlantıyı test etmek için Ağ İzleyicisi IP akışı doğrulamasını kullanacaksınız. IP akışı doğrulama sonuçlarını kullanarak trafiği engelleyen ve iletişim hatasına neden olan güvenlik kuralını belirler ve bunu nasıl çözebileceğinizi öğrenirsiniz. Ayrıca, bir güvenlik kuralının trafiğe neden izin vermek veya trafiği reddetmek olduğunu belirlemek için ağ arabirimi için etkili güvenlik kurallarını kullanmayı da öğrenirsiniz.

Diyagram, Ağ İzleyicisi hızlı başlangıçta oluşturulan kaynakları gösterir.

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Önkoşullar

  • Etkin aboneliği olan bir Azure hesabı.

  • 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. Bu hızlı başlangıç için Azure CLI'nın 2.0 veya sonraki bir sürümü gerekir. Azure CLI'yı yerel olarak çalıştırıyorsanız az login komutunu kullanarak Azure'da oturum açın .

Sanal makine oluşturun

Bu bölümde, Doğu ABD bölgesinde bir sanal ağ ve bir alt ağ oluşturacaksınız. Ardından, alt ağda varsayılan bir ağ güvenlik grubuna sahip bir sanal makine oluşturursunuz.

  1. 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'
    
  2. az network vnet create komutunu kullanarak bir sanal ağ oluşturun.

    # Create a virtual network and a subnet.
    az network vnet create --resource-group 'myResourceGroup' --name 'myVNet' --subnet-name 'mySubnet' --subnet-prefixes 10.0.0.0/24 
    
  3. 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'
    
  4. az vm create komutunu kullanarak bir sanal makine oluşturun. İstendiğinde, bir kullanıcı adı ve parola girin.

    # Create a Linux virtual machine using the latest Ubuntu 20.04 LTS image.
    az vm create --resource-group 'myResourceGroup' --name 'myVM' --location 'eastus' --vnet-name 'myVNet' --subnet 'mySubnet' --public-ip-address '' --nsg 'myVM-nsg' --image 'Canonical:0001-com-ubuntu-server-focal:20_04-lts-gen2:latest'
    

IP akışı doğrulamayı kullanarak ağ iletişimlerini test edin

Bu bölümde, sanal makineye giden ve sanal makineden gelen ağ iletişimini test etmek için Ağ İzleyicisi IP akışı doğrulama özelliğini kullanacaksınız.

  1. IP akışı doğrulamasını kullanarak myVM'den 13.107.21.200'e giden iletişimi test etmek için az network watcher test-ip-flow komutunu kullanın (13.107.21.200 tarafından www.bing.comkullanılan genel IP adreslerinden biridir):

    # Start the IP flow verify session to test outbound flow to www.bing.com.
    az network watcher test-ip-flow --direction 'outbound' --protocol 'TCP' --local '10.0.0.4:60000' --remote '13.107.21.200:80' --vm 'myVM' --nic 'myVmVMNic' --resource-group 'myResourceGroup' --out 'table'
    

    Birkaç saniye sonra aşağıdaki örneğe benzer bir çıkış elde edersiniz:

    Access  RuleName
    ------  --------
    Allow   defaultSecurityRules/AllowInternetOutBound
    

    Test sonucu, AllowInternetOutBound varsayılan güvenlik kuralı nedeniyle 13.107.21.200'e erişime izin verildiğini gösterir. Varsayılan olarak, Azure sanal makineleri İnternet'e erişebilir.

  2. RemoteIPAddress değerini 10.0.1.10 olarak değiştirin ve testi yineleyin. 10.0.1.10, myVNet adres alanında özel bir IP adresidir.

    # Start the IP flow verify session to test outbound flow to 10.0.1.10.
    az network watcher test-ip-flow --direction 'outbound' --protocol 'TCP' --local '10.0.0.4:60000' --remote '10.0.1.10:80' --vm 'myVM' --nic 'myVmVMNic' --resource-group 'myResourceGroup' --out 'table'
    

    Birkaç saniye sonra aşağıdaki örneğe benzer bir çıkış elde edersiniz:

    Access RuleName
    ------ --------
    Allow  defaultSecurityRules/AllowVnetOutBound
    

    İkinci testin sonucu, allowVnetOutBound varsayılan güvenlik kuralı nedeniyle 10.0.1.10'aerişime izin verildiğini gösterir. Varsayılan olarak, bir Azure sanal makinesi sanal ağının adres alanında bulunan tüm IP adreslerine erişebilir.

  3. RemoteIPAddress değerini 10.10.10.10 olarak değiştirin ve testi yineleyin. 10.10.10.10, myVNet adres alanında olmayan özel bir IP adresidir.

    # Start the IP flow verify session to test outbound flow to 10.10.10.10.
    az network watcher test-ip-flow --direction 'outbound' --protocol 'TCP' --local '10.0.0.4:60000' --remote '10.10.10.10:80' --vm 'myVM' --nic 'myVmVMNic' --resource-group 'myResourceGroup' --out 'table'
    

    Birkaç saniye sonra aşağıdaki örneğe benzer bir çıkış elde edersiniz:

    Access RuleName
    ------ --------
    Allow  defaultSecurityRules/DenyAllOutBound
    

    Üçüncü testin sonucu, varsayılan güvenlik kuralı DenyAllOutBound nedeniyle 10.10.10.10'a erişimin reddedildiğini gösterir.

  4. Yönü gelen, yerel bağlantı noktasını 80, uzak bağlantı noktasını 60000 olarak değiştirin ve testi tekrarlayın.

    # Start the IP flow verify session to test inbound flow from 10.10.10.10.
    az network watcher test-ip-flow --direction 'inbound' --protocol 'TCP' --local '10.0.0.4:80' --remote '10.10.10.10:6000' --vm 'myVM' --nic 'myVmVMNic' --resource-group 'myResourceGroup' --out 'table'
    

    Birkaç saniye sonra aşağıdaki örneğe benzer bir çıkış elde edersiniz:

    Access RuleName
    ------ --------
    Allow  defaultSecurityRules/DenyAllInBound
    

    Dördüncü testin sonucu, varsayılan güvenlik kuralı DenyAllInBound nedeniyle erişimin 10.10.10.10'danreddedildiğini gösterir. Varsayılan olarak, sanal ağın dışından bir Azure sanal makinesine tüm erişim reddedilir.

Güvenlik kuralının ayrıntılarını görüntüleme

Önceki bölümde yer alan kuralların neden iletişime izin verileceğini veya reddedileceğini belirlemek için az network nic list-effective-nsg komutunu kullanarak myVM sanal makinesinin ağ arabirimi için geçerli güvenlik kurallarını gözden geçirin:

# Get the effective security rules for the network interface of myVM.
az network nic list-effective-nsg --resource-group 'myResourceGroup' --name 'myVmVMNic'

Döndürülen çıkış, öğesine giden erişime izin veren AllowInternetOutbound kuralı için www.bing.comaşağıdaki bilgileri içerir:

{
  "access": "Allow",
  "destinationAddressPrefix": "Internet",
  "destinationAddressPrefixes": [
	"Internet"
  ],
  "destinationPortRange": "0-65535",
  "destinationPortRanges": [
	"0-65535"
  ],
  "direction": "Outbound",
  "expandedDestinationAddressPrefix": [
	"1.0.0.0/8",
	"2.0.0.0/7",
	"4.0.0.0/9",
	"4.144.0.0/12",
	"4.160.0.0/11",
	"4.192.0.0/10",
	"5.0.0.0/8",
	"6.0.0.0/7",
	"8.0.0.0/7",
	"11.0.0.0/8",
	"12.0.0.0/8",
	"13.0.0.0/10",
	"13.64.0.0/11",
	"13.104.0.0/13",
	"13.112.0.0/12",
	"13.128.0.0/9",
	"14.0.0.0/7",
	...
	...
	...
	"200.0.0.0/5",
	"208.0.0.0/4"
  ],
  "name": "defaultSecurityRules/AllowInternetOutBound",
  "priority": 65001,
  "protocol": "All",
  "sourceAddressPrefix": "0.0.0.0/0",
  "sourceAddressPrefixes": [
	"0.0.0.0/0",
	"0.0.0.0/0"
  ],
  "sourcePortRange": "0-65535",
  "sourcePortRanges": [
	"0-65535"
  ]
},

Çıkışta 13.104.0.0/13 adres ön ekinin AllowInternetOutBound kuralının adres ön ekleri arasında olduğunu görebilirsiniz. Bu ön ek, ile giden iletişimi www.bing.comtest etmek için kullandığınız 13.107.21.200 IP adresini kapsar.

Benzer şekilde, her kuralın altındaki kaynak ve hedef IP adresi ön eklerini görmek için diğer kuralları de kontrol edebilirsiniz.

Kaynakları temizleme

Artık gerekli olmadığında az group delete komutunu kullanarak myResourceGroup kaynak grubunu ve içerdiği tüm kaynakları silin:

# Delete the resource group and all resources it contains.
az group delete --name 'myResourceGroup' --yes

Sonraki adımlar

Bu hızlı başlangıçta bir sanal makine oluşturdunuz ve gelen ve giden ağ trafiği filtrelerini tanıladınız. Ağ güvenlik grubu kurallarının bir sanal makineye gelen ve sanal makineden giden trafiğe izin verdiğini veya bu trafikleri reddettiğini öğrendiniz. Güvenlik kuralları ve güvenlik kuralları oluşturma hakkında daha fazla bilgi edinin.

Uygun ağ trafiği filtreleri mevcut olsa bile, yönlendirme yapılandırması nedeniyle sanal makineyle iletişim yine başarısız olabilir. Sanal makine yönlendirme sorunlarını tanılamayı öğrenmek için bkz . Sanal makine ağ yönlendirme sorununu tanılama. Bir araçla giden yönlendirme, gecikme süresi ve trafik filtreleme sorunlarını tanılamak için bkz. Azure Ağ İzleyicisi ile bağlantı sorunlarını giderme.