Ağ güvenlik grubu için kaynak günlüğü

Ağ güvenlik grubu (NSG), sanal ağ alt ağına, ağ arabirimine veya her ikisine yönelik trafiğe izin veren veya trafiği reddeden kurallar içerir.

NSG için günlüğe kaydetmeyi etkinleştirdiğinizde, aşağıdaki türlerdeki kaynak günlüğü bilgilerini toplayabilirsiniz:

  • Olay: Girişler, MAC adresine göre sanal makinelere NSG kurallarının uygulandığı günlüğe kaydedilir.
  • Kural sayacı: Trafiğe izin vermek veya trafiği reddetmek için her NSG kuralının kaç kez uygulandığına ilişkin girdiler içerir. Bu kuralların durumu her 300 saniyede bir toplanır.

Kaynak günlükleri yalnızca Azure Resource Manager dağıtım modeli aracılığıyla dağıtılan NSG'ler için kullanılabilir. Klasik dağıtım modeli aracılığıyla dağıtılan NSG'ler için kaynak günlüğünü etkinleştiremezsiniz. Daha fazla bilgi için bkz. Dağıtım modellerini anlama.

Kaynak günlüğü, tanılama verilerinin toplandığı her NSG için ayrı olarak etkinleştirilir. Bunun yerine etkinlik veya işlem günlükleriyle ilgileniyorsanız bkz. Azure platform günlüklerine genel bakış. NSG'lerden geçen IP trafiğiyle ilgileniyorsanız bkz. Ağ güvenlik grupları için akış günlükleri.

Günlü kaydını etkinleştir

Kaynak günlüğünü etkinleştirmek için Azure portal, Azure PowerShell veya Azure CLI'yı kullanabilirsiniz.

Azure portal

  1. Azure portal oturum açın.

  2. Azure portal üst kısmındaki arama kutusuna ağ güvenlik grupları yazın. Arama sonuçlarında Ağ güvenlik grupları'nı seçin.

  3. Günlüğe kaydetmenin etkinleştirileceği NSG'yi seçin.

  4. İzleme'nin altında Tanılama ayarları'nı ve ardından Tanılama ayarı ekle'yi seçin:

    Tanılama ayarı ekle seçeneğinin vurgulandığı NSG'nin tanılama ayarlarını gösteren ekran görüntüsü.

  5. Tanılama ayarı alanına myNsgDiagnostic gibi bir ad girin.

  6. Günlükler için allLogs'ı seçin veya tek tek günlük kategorilerini seçin. Her kategori hakkında daha fazla bilgi için bkz . Günlük kategorileri.

  7. Hedef ayrıntıları'nın altında bir veya daha fazla hedef seçin:

    • Log Analytics çalışma alanına gönderme
    • Bir depolama hesabına arşivle
    • Bir olay hub'ına akış yap
    • İş ortağı çözümüne gönder

    Daha fazla bilgi için bkz . Günlük hedefleri.

  8. Kaydet’i seçin.

  9. Günlükleri görüntüleyin ve analiz edin. Daha fazla bilgi için bkz. Günlükleri görüntüleme ve analiz etme.

Azure PowerShell

Not

Azure ile etkileşime geçmek için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Bu bölümdeki komutları Azure Cloud Shell veya bilgisayarınızdan PowerShell çalıştırarak çalıştırabilirsiniz. Azure Cloud Shell ücretsiz etkileşimli bir kabuk. Yaygın Azure araçları, kabuğa önceden yüklenmiştir ve kabuk, hesabınızla birlikte kullanılacak şekilde yapılandırılmıştır.

PowerShell'i bilgisayarınızdan çalıştırıyorsanız Azure PowerShell modülüne (sürüm 1.0.0 veya üzeri) ihtiyacınız vardır. Yüklü sürümü bulmak için Get-Module -ListAvailable Az komutunu çalıştırın. Yükseltmeniz gerekirse, bkz. Azure PowerShell modülünü yükleme. PowerShell'i yerel olarak çalıştırıyorsanız, Azure'da gerekli izinlere sahip bir hesapla oturum açmak için Connect-AzAccount cmdlet'ini de çalıştırmanız gerekir.

Kaynak günlüğünü etkinleştirmek için mevcut bir NSG'nin kimliği gerekir. Mevcut bir NSG'niz yoksa New-AzNetworkSecurityGroup cmdlet'ini kullanarak bir NSG oluşturun.

Get-AzNetworkSecurityGroup cmdlet'ini kullanarak kaynak günlüğünü etkinleştirmek istediğiniz ağ güvenlik grubunu alın. NSG'yi daha sonra kullanmak üzere bir değişkende depolayın. Örneğin, myResourceGroup adlı bir kaynak grubunda bulunan myNsg adlı bir NSG'yi almak için aşağıdaki komutu girin:

$Nsg=Get-AzNetworkSecurityGroup `
  -Name myNsg `
  -ResourceGroupName myResourceGroup

Farklı hedef türlerine kaynak günlükleri yazabilirsiniz. Daha fazla bilgi için bkz . Günlük hedefleri. Bu makalede günlükler Log Analytics çalışma alanı hedefine gönderilir. Var olan bir çalışma alanınız yoksa New-AzOperationalInsightsWorkspace cmdlet'ini kullanarak bir çalışma alanı oluşturabilirsiniz.

Get-AzOperationalInsightsWorkspace cmdlet'iyle mevcut log analytics çalışma alanını alın. Örneğin, myWorkspace adlı mevcut bir çalışma alanını almak ve myWorkspaces adlı bir kaynak grubunda depolamak için aşağıdaki komutu girin:

$Oms=Get-AzOperationalInsightsWorkspace `
  -ResourceGroupName myWorkspaces `
  -Name myWorkspace

Etkinleştirebileceğiniz iki günlük kategorisi vardır. Daha fazla bilgi için bkz . Günlük kategorileri. New-AzDiagnosticSetting cmdlet'iyle NSG için kaynak günlüğünü etkinleştirin. Aşağıdaki örnek, bir NSG için hem olay hem de sayaç kategorisi verilerini çalışma alanına kaydeder. Önceki komutlarla aldığınız NSG ve çalışma alanının kimliklerini kullanır:

New-AzDiagnosticSetting `
   -Name myDiagnosticSetting `
   -ResourceId $Nsg.Id `
   -WorkspaceId $Oms.ResourceId

Log Analytics çalışma alanından farklı bir hedefe oturum açmak istiyorsanız, komutta uygun bir parametre kullanın. Daha fazla bilgi için bkz. Azure kaynak günlükleri.

Ayarlar hakkında daha fazla bilgi için bkz. New-AzDiagnosticSetting.

Günlükleri görüntüleyin ve analiz edin. Daha fazla bilgi için bkz. Günlükleri görüntüleme ve analiz etme.

Azure CLI

Bu bölümdeki komutları Azure Cloud Shell veya bilgisayarınızdan Azure CLI'yı çalıştırarak çalıştırabilirsiniz. Azure Cloud Shell ücretsiz etkileşimli bir kabuk. Yaygın Azure araçları, kabuğa önceden yüklenmiştir ve kabuk, hesabınızla birlikte kullanılacak şekilde yapılandırılmıştır.

CLI'yi bilgisayarınızdan çalıştırıyorsanız 2.0.38 veya sonraki bir sürüme ihtiyacınız vardır. Yüklü sürümü bulmak için bilgisayarınızda komutunu çalıştırın az --version . Yükseltmeniz gerekiyorsa bkz. Azure CLI'yı yükleme. CLI'yı yerel olarak çalıştırıyorsanız, Azure'da gerekli izinlere sahip bir hesapla oturum açmak için de komutunu çalıştırmanız az login gerekir.

Kaynak günlüğünü etkinleştirmek için mevcut bir NSG'nin kimliği gerekir. Mevcut bir NSG'niz yoksa az network nsg create komutunu kullanarak bir NSG oluşturun.

az network nsg show ile kaynak günlüğünü etkinleştirmek istediğiniz ağ güvenlik grubunu alın ve depolayın. Örneğin, myResourceGroup adlı bir kaynak grubunda bulunan myNsg adlı bir NSG'yi almak için aşağıdaki komutu girin:

nsgId=$(az network nsg show \
  --name myNsg \
  --resource-group myResourceGroup \
  --query id \
  --output tsv)

Farklı hedef türlerine kaynak günlükleri yazabilirsiniz. Daha fazla bilgi için bkz . Günlük hedefleri. Bu makalede, örnek olarak günlükler bir Log Analytics çalışma alanı hedefine gönderilir. Daha fazla bilgi için bkz . Günlük kategorileri.

az monitor diagnostic-settings create komutuyla NSG için kaynak günlüğünü etkinleştirin. Aşağıdaki örnek hem olay hem de sayaç kategorisi verilerini myWorkspace adlı kaynak grubunda bulunan myWorkspace adlı mevcut bir çalışma alanına günlüğe kaydeder. Önceki komutu kullanarak kaydettiğiniz NSG'nin kimliğini kullanır.

az monitor diagnostic-settings create \
  --name myNsgDiagnostics \
  --resource $nsgId \
  --logs '[ { "category": "NetworkSecurityGroupEvent", "enabled": true, "retentionPolicy": { "days": 30, "enabled": true } }, { "category": "NetworkSecurityGroupRuleCounter", "enabled": true, "retentionPolicy": { "days": 30, "enabled": true } } ]' \
  --workspace myWorkspace \
  --resource-group myWorkspaces

Var olan bir çalışma alanınız yoksa, Azure portal veya Azure PowerShell kullanarak bir çalışma alanı oluşturun. Günlükleri etkinleştirebileceğiniz iki günlük kategorisi vardır.

Yalnızca bir kategori veya diğeri için verileri günlüğe kaydetmek istiyorsanız, önceki komutta verileri günlüğe kaydetmek istemediğiniz kategoriyi kaldırın. Log Analytics çalışma alanından farklı bir hedefe oturum açmak istiyorsanız uygun bir parametre kullanın. Daha fazla bilgi için bkz. Azure kaynak günlükleri.

Günlükleri görüntüleyin ve analiz edin. Daha fazla bilgi için bkz. Günlükleri görüntüleme ve analiz etme.

Günlük hedefleri

Tanılama verilerini aşağıdaki seçeneklere gönderebilirsiniz:

Günlük kategorileri

JSON biçimli veriler şu günlük kategorileri için yazılır: olay ve kural sayacı.

Olay

Olay günlüğü, MAC adresine göre sanal makinelere hangi NSG kurallarının uygulandığı hakkında bilgi içerir. Her olay için aşağıdaki veriler günlüğe kaydedilir. Aşağıdaki örnekte veriler, IP adresi 192.168.1.4 ve MAC adresi 00-0D-3A-92-6A-7C olan bir sanal makine için günlüğe kaydedilir:

{
    "time": "[DATE-TIME]",
    "systemId": "[ID]",
    "category": "NetworkSecurityGroupEvent",
    "resourceId": "/SUBSCRIPTIONS/[SUBSCRIPTION-ID]/RESOURCEGROUPS/[RESOURCE-GROUP-NAME]/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/[NSG-NAME]",
    "operationName": "NetworkSecurityGroupEvents",
    "properties": {
        "vnetResourceGuid":"[ID]",
        "subnetPrefix":"192.168.1.0/24",
        "macAddress":"00-0D-3A-92-6A-7C",
        "primaryIPv4Address":"192.168.1.4",
        "ruleName":"[SECURITY-RULE-NAME]",
        "direction":"[DIRECTION-SPECIFIED-IN-RULE]",
        "priority":"[PRIORITY-SPECIFIED-IN-RULE]",
        "type":"[ALLOW-OR-DENY-AS-SPECIFIED-IN-RULE]",
        "conditions":{
            "protocols":"[PROTOCOLS-SPECIFIED-IN-RULE]",
            "destinationPortRange":"[PORT-RANGE-SPECIFIED-IN-RULE]",
            "sourcePortRange":"[PORT-RANGE-SPECIFIED-IN-RULE]",
            "sourceIP":"[SOURCE-IP-OR-RANGE-SPECIFIED-IN-RULE]",
            "destinationIP":"[DESTINATION-IP-OR-RANGE-SPECIFIED-IN-RULE]"
            }
        }
}

Kural sayacı

Kural sayacı günlüğü, kaynaklara uygulanan her kural hakkında bilgi içerir. Aşağıdaki örnek veriler her kural uygulandığında günlüğe kaydedilir. Aşağıdaki örnekte veriler, IP adresi 192.168.1.4 ve MAC adresi 00-0D-3A-92-6A-7C olan bir sanal makine için günlüğe kaydedilir:

{
    "time": "[DATE-TIME]",
    "systemId": "[ID]",
    "category": "NetworkSecurityGroupRuleCounter",
    "resourceId": "/SUBSCRIPTIONS/[SUBSCRIPTION ID]/RESOURCEGROUPS/[RESOURCE-GROUP-NAME]/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/[NSG-NAME]",
    "operationName": "NetworkSecurityGroupCounters",
    "properties": {
        "vnetResourceGuid":"[ID]",
        "subnetPrefix":"192.168.1.0/24",
        "macAddress":"00-0D-3A-92-6A-7C",
        "primaryIPv4Address":"192.168.1.4",
        "ruleName":"[SECURITY-RULE-NAME]",
        "direction":"[DIRECTION-SPECIFIED-IN-RULE]",
        "type":"[ALLOW-OR-DENY-AS-SPECIFIED-IN-RULE]",
        "matchedConnections":125
        }
}

Not

İletişimin kaynak IP adresi günlüğe kaydedilmez. Bir NSG için NSG akış günlüğünü etkinleştirebilirsiniz. Bu günlük, tüm kural sayacı bilgilerini ve iletişimi başlatan kaynak IP adresini günlüğe kaydeder. NSG akış günlüğü verileri bir Azure Depolama hesabına yazılır. Azure Ağ İzleyicisi trafik analizi özelliğiyle verileri analiz edebilirsiniz.

Günlükleri görüntüleme ve analiz etme

Tanılama verilerini şu kişilere gönderirseniz:

  • Azure İzleyici günlükleri: Gelişmiş içgörüler için ağ güvenlik grubu analiz çözümünü kullanabilirsiniz. Çözüm, bir sanal makinedeki ağ arabiriminin MAC adresi başına trafiğe izin veren veya trafiği reddeden NSG kuralları için görselleştirmeler sağlar.

  • Azure Depolama hesabı: Veriler bir PT1H.json dosyasına yazılır. Şunları bulabilirsiniz:

    • Şu yolda bulunan olay günlüğü: insights-logs-networksecuritygroupevent/resourceId=/SUBSCRIPTIONS/[ID]/RESOURCEGROUPS/[RESOURCE-GROUP-NAME-FOR-NSG]/PROVIDERS/MICROSOFT. NETWORK/NETWORKSECURITYGROUPS/[NSG NAME]/y=[YEAR]/m=[MONTH/d=[DAY]/h=[HOUR]/m=[MINUTE]
    • Şu yolda bulunan kural sayacı günlüğü: insights-logs-networksecuritygrouprulecounter/resourceId=/SUBSCRIPTIONS/[ID]/RESOURCEGROUPS/[RESOURCE-GROUP-NAME-FOR-NSG]/PROVIDERS/MICROSOFT. NETWORK/NETWORKSECURITYGROUPS/[NSG NAME]/y=[YEAR]/m=[MONTH/d=[DAY]/h=[HOUR]/m=[MINUTE]

Kaynak günlüğü verilerini görüntülemeyi öğrenmek için bkz. Azure platform günlüklerine genel bakış.

Sonraki adımlar

  • Etkinlik günlüğü hakkında daha fazla bilgi için bkz. Azure platformu günlüklerine genel bakış.

    Etkinlik günlüğü, Azure dağıtım modellerinden biri aracılığıyla oluşturulan NSG'ler için varsayılan olarak etkindir. Etkinlik günlüğündeki NSG'lerde hangi işlemlerin tamamlandığını belirlemek için aşağıdaki kaynak türlerini içeren girdileri arayın:

    • Microsoft.ClassicNetwork/networkSecurityGroups
    • Microsoft.ClassicNetwork/networkSecurityGroups/securityRules
    • Microsoft.Network/networkSecurityGroups
    • Microsoft.Network/networkSecurityGroups/securityRules
  • Tanılama bilgilerinin nasıl günlüğe kaydedildiğini öğrenmek için bkz. Azure portal kullanarak sanal makineye gelen ve sanal makineden gelen ağ trafiğini günlüğe kaydetme.