Hızlı Başlangıç: Azure PowerShell 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 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 hızlı başlangıç için Az PowerShell modülü gerekir. 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 Bağlan-AzAccount cmdlet'ini 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. 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' 
    
  2. New-AzVirtualNetworkSubnetConfig komutunu kullanarak sanal makine alt ağı ve Bastion ana bilgisayar alt ağı için bir alt ağ yapılandırması oluşturun.

    # Create subnets configuration.
    $Subnet = New-AzVirtualNetworkSubnetConfig -Name 'mySubnet' -AddressPrefix '10.0.0.0/24'
    
  3. New-AzVirtualNetwork kullanarak bir sanal ağ oluşturun.

    # Create a virtual network.
    New-AzVirtualNetwork -Name 'myVNet' -ResourceGroupName 'myResourceGroup' -Location 'eastus' -AddressPrefix '10.0.0.0/16' -Subnet $Subnet
    
  4. New-AzNetworkSecurityGroup kullanarak varsayılan bir ağ güvenlik grubu oluşturun.

    # Create a network security group. 
    New-AzNetworkSecurityGroup -Name 'myVM-nsg' -ResourceGroupName 'myResourceGroup' -Location  'eastus'
    
  5. New-AzVM 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.
    New-AzVm -ResourceGroupName 'myResourceGroup' -Name 'myVM' -Location 'eastus' -VirtualNetworkName 'myVNet' -SubnetName 'mySubnet' -SecurityGroupName '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 Test-AzNetworkWatcherIPFlow kullanın (13.107.21.200 tarafından www.bing.comkullanılan genel IP adreslerinden biridir):

    # Place myVM configuration into a variable.
    $vm = Get-AzVM -ResourceGroupName 'myResourceGroup' -Name 'myVM'
    
    # Start the IP flow verify session to test outbound flow to www.bing.com.
    Test-AzNetworkWatcherIPFlow -Location 'eastus' -TargetVirtualMachineId $vm.Id -Direction 'Outbound' -Protocol 'TCP' -RemoteIPAddress '13.107.21.200' -RemotePort '80' -LocalIPAddress '10.0.0.4' -LocalPort '60000'
    

    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.
    Test-AzNetworkWatcherIPFlow -Location 'eastus' -TargetVirtualMachineId $vm.Id -Direction 'Outbound' -Protocol 'TCP' -RemoteIPAddress '10.0.1.10' -RemotePort '80' -LocalIPAddress '10.0.0.4' -LocalPort '60000'
    

    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.
    Test-AzNetworkWatcherIPFlow -Location 'eastus' -TargetVirtualMachineId $vm.Id -Direction 'Outbound' -Protocol 'TCP' -RemoteIPAddress '10.10.10.10' -RemotePort '80' -LocalIPAddress '10.0.0.4' -LocalPort '60000'
    

    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, LocalPort'u80 ve RemotePort'u 60000 olarak değiştirin ve testi tekrarlayın.

    # Start the IP flow verify session to test inbound flow from 10.10.10.10.
    Test-AzNetworkWatcherIPFlow -Location 'eastus' -TargetVirtualMachineId $vm.Id -Direction 'Inbound' -Protocol 'TCP' -RemoteIPAddress '10.10.10.10' -RemotePort '60000' -LocalIPAddress '10.0.0.4' -LocalPort '80'
    

    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 Get-AzEffectiveNetworkSecurityGroup cmdlet'ini 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.
Get-AzEffectiveNetworkSecurityGroup -NetworkInterfaceName 'myVM' -ResourceGroupName 'myResourceGroup'

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

{
 "Name": "defaultSecurityRules/AllowInternetOutBound",
 "Protocol": "All",
 "SourcePortRange": [
   "0-65535"
 ],
 "DestinationPortRange": [
   "0-65535"
 ],
 "SourceAddressPrefix": [
   "0.0.0.0/0",
   "0.0.0.0/0"
 ],
 "DestinationAddressPrefix": [
   "Internet"
 ],
 "ExpandedSourceAddressPrefix": [],
 "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"
 ],
 "Access": "Allow",
 "Priority": 65001,
 "Direction": "Outbound"
},

Çı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 Remove-AzResourceGroup kullanarak kaynak grubunu ve içerdiği tüm kaynakları silin:

# Delete the resource group and all resources it contains.
Remove-AzResourceGroup -Name 'myResourceGroup' -Force

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.