Ведение журнала ресурсов для группы безопасности сети

Группа безопасности сети (NSG) содержит правила, которые разрешают или запрещают трафик для подсети виртуальной сети, сетевого интерфейса или и того, и другого.

При включении ведения журнала для NSG можно собрать следующие типы данных журнала ресурсов:

  • Журналы событий. Содержат записи, по которым правила NSG на основе MAC-адреса применяются к виртуальным машинам.
  • Журналы счетчиков. Содержат записи с информацией о том, сколько раз каждое правило NSG было применено для запрета или разрешения трафика. Состояние этих правил регистрируется каждые 300 секунд.

Журналы ресурсов доступны только для NSG, для которых применена модель развертывания с помощью Azure Resource Manager. Вы не сможете включить ведение журналов ресурсов для NSG, развернутых с помощью классической модели развертывания. Чтобы получить более полное представление об этих двух моделях, прочитайте статью Развертывание с помощью Azure Resource Manager и классическое развертывание: сведения о моделях развертывания и состоянии ресурсов.

Ведение журналов ресурсов следует включить отдельно для каждой NSG, для которой вы намерены собирать данные. Если вместо этого вам нужны журналы действий (операций), ознакомьтесь с ведением журнала действий Azure. Если вас интересует IP-трафик, проходящий через группы безопасности сети, см. Журналы потоков групп безопасности сети службы Наблюдатель за сетями Azure.

Включение ведения журналов

Чтобы включить ведение журнала ресурсов, можно использовать портал Azure, PowerShell или Azure CLI.

Портал Azure

  1. Войдите на портал.

  2. Щелкните Все службы, затем введите группы безопасности сети. Когда элемент Группы безопасности сети появится в результатах поиска, выберите его.

  3. Выберите NSG, для которой хотите включить ведение журнала.

  4. В разделе Мониторинг выберите Журналы диагностики и выберите Включить диагностику, как показано на следующем рисунке.

    Включение диагностики

  5. В разделе Параметры диагностики выберите или введите приведенные ниже сведения, а затем нажмите кнопку Сохранить.

    Параметр Значение
    Имя Имя на ваш выбор. Например: myNsgDiagnostics.
    Архивировать в учетной записи хранения, Передать в концентратор событий и Отправить в Log Analytics Можно выбрать любые назначения. Узнайте больше в разделе Целевое расположение для журналов.
    LOG Выберите одну или обе категории журналов. Чтобы узнать больше о данных, записываемых в каждую категорию, ознакомьтесь с разделом Категории журналов.
  6. Просмотрите и проанализируйте журналы. Дополнительные сведения см. в разделе Просмотр и анализ журналов.

PowerShell

Примечание

Для взаимодействия с Azure рекомендуется использовать модуль Azure Az PowerShell. Чтобы начать работу, см. статью Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

Вы можете выполнить приведенные ниже команды в Azure Cloud Shell или с помощью PowerShell на своем компьютере. Azure Cloud Shell — это бесплатная интерактивная оболочка. Она включает предварительно установленные общие инструменты Azure и настроена для использования с вашей учетной записью. Если вы выполняете PowerShell на локальном компьютере, вам потребуется модуль Azure PowerShell 1.0.0 или более поздней версии. Выполните Get-Module -ListAvailable Az на компьютере, чтобы получить сведения об установленной версии. Если вам необходимо выполнить обновление, ознакомьтесь со статьей, посвященной установке модуля Azure PowerShell. Если PowerShell работает локально, необходимо также выполнить команду Connect-AzAccount, чтобы войти в Azure с учетной записью, предоставляющей необходимые разрешения.

Чтобы включить ведение журнала ресурсов, требуется идентификатор существующей группы NSG. Если у вас нет NSG, ее можно создать, выполнив командлет New-AzNetworkSecurityGroup.

Получите группу безопасности сети, для которой вы хотите включить ведение журнала ресурсов, выполнив командлет Get-AzNetworkSecurityGroup. Например, чтобы получить NSG myNsg в группе ресурсов myResourceGroup, введите следующую команду.

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

Журналы ресурсов можно записывать в назначения трех типов. Дополнительные сведения см. в разделе Целевое расположение для журналов. В этой статье журналы отправляются в Log Analytics в качестве примера. Получите существующую рабочую область Log Analytics, выполнив командлет Get-AzOperationalInsightsWorkspace. Например, чтобы получить рабочую область myWorkspace в группе ресурсов myWorkspaces, введите следующую команду:

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

Если у вас нет рабочей области, ее можно создать с помощью командлета New-AzOperationalInsightsWorkspace.

Существуют две категории, для которых можно включить журналы. Дополнительные сведения см. в разделе Категории журналов. Включите ведение журнала ресурсов для NSG с помощью командлета Set-AzDiagnosticSetting. Следующий пример записывает в журнал данные о категориях событий и счетчиков и сохраняет его в рабочую область для NSG, используя идентификаторы NSG и рабочей области, полученные ранее.

Set-AzDiagnosticSetting `
  -ResourceId $Nsg.Id `
  -WorkspaceId $Oms.ResourceId `
  -Enabled $true

Если требуется записывать данные только одной из категорий, добавьте в предыдущую команду параметр -Categories и NetworkSecurityGroupEvent или NetworkSecurityGroupRuleCounter. Если вы хотите записывать журналы не в рабочую область Log Analytics, а в другое расположение, используйте соответствующие параметры для учетной записи хранения или Центров событий Azure.

Просмотрите и проанализируйте журналы. Дополнительные сведения см. в разделе Просмотр и анализ журналов.

Azure CLI

Вы можете выполнить приведенные ниже команды в Azure Cloud Shell или Azure CLI на своем компьютере. Azure Cloud Shell — это бесплатная интерактивная оболочка. Она включает предварительно установленные общие инструменты Azure и настроена для использования с вашей учетной записью. Для запуска CLI на компьютере требуется версия 2.0.38 или выше. Выполните az --version на компьютере, чтобы получить сведения об установленной версии. Если вам необходимо выполнить обновление, см. статью Установка Azure CLI. Если CLI работает локально, необходимо также выполнить az login, чтобы войти в Azure с учетной записью, предоставляющей необходимые разрешения.

Чтобы включить ведение журнала ресурсов, требуется идентификатор существующей группы NSG. Если у вас нет NSG, ее можно создать, выполнив команду az network nsg create.

Получите группу безопасности сети, для которой вы хотите включить ведение журнала ресурсов, выполнив команду az network nsg show. Например, чтобы получить NSG myNsg в группе ресурсов myResourceGroup, введите следующую команду.

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

Журналы ресурсов можно записывать в назначения трех типов. Дополнительные сведения см. в разделе Целевое расположение для журналов. В этой статье журналы отправляются в Log Analytics в качестве примера. Дополнительные сведения см. в разделе Категории журналов.

Включите ведение журнала ресурсов для NSG с помощью команды az monitor diagnostic-settings create. Следующий пример записывает данные событий и категории счетчика в существующую рабочую область с именем myWorkspace, которая существует в группе ресурсов с именем myWorkspaces, а также идентификатор группы безопасности сети, который вы получили ранее:

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

Если у вас нет существующей рабочей области, ее можно создать с помощью портала Azure или PowerShell. Существуют две категории, для которых можно включить журналы.

Если вы хотите регистрировать данные только для какой-то из категорий, удалите ненужную категорию с помощью предыдущей команды. Если вы хотите записывать журналы не в рабочую область Log Analytics, а в другое расположение, используйте соответствующие параметры для учетной записи хранения или Центров событий Azure.

Просмотрите и проанализируйте журналы. Дополнительные сведения см. в разделе Просмотр и анализ журналов.

Целевое расположение для журналов

Назначения данных диагностики:

Категории журналов

Данные в формате JSON записываются в журналы следующих категорий.

Событие

Журнал событий содержит сведения о том, какие правила NSG на основе MAC-адреса применяются к виртуальным машинам. Эти данные регистрируются для каждого события. В следующем примере данные зарегистрированы для виртуальной машины с IP-адресом 192.168.1.4 и MAC-адресом 00-0D-3A-92-6A-7C.

{
	"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]"
			}
		}
}

Счетчик правил

Журнал счетчика правил содержит сведения о всех случаях применения правил к ресурсам. Данные, представленные в этом примере, регистрируются для каждого применения правила. В следующем примере данные зарегистрированы для виртуальной машины с IP-адресом 192.168.1.4 и MAC-адресом 00-0D-3A-92-6A-7C.

{
	"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
		}
}

Примечание

Исходный IP-адрес для обмена данными записывается. Однако можно включить ведение журнала потока NSG для NSG. В этом случае в журнал будут записываться все сведения о счетчике правил, а также исходный IP-адрес, с которого был инициирован обмен данными. Данные журнала потоков NSG записываются в учетную запись хранения Azure. Данные можно анализировать с помощью функции анализа трафика службы "Наблюдатель за сетями".

Просмотр и анализ журналов

Сведения о просмотре данных журнала ресурсов см. в статье Общие сведения о журналах платформы Azure. Если данные диагностики отправляются в:

  • Журналы Azure Monitor, то важные сведения можно получать с помощью решения для анализа групп безопасности сети. Это решение наглядно представляет правила NSG, которые разрешают или запрещают трафик по MAC-адресу сетевого интерфейса в виртуальной машине.
  • учетную запись хранения, то данные записываются в файл PT1H.json. Расположение журналов:
    • журнал событий: 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]
    • журнал счетчика правил: 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]

Дальнейшие действия

  • Узнайте подробнее о ведении журнала действий. Ведение журнала действий включено по умолчанию для всех создаваемых NSG, независимо от модели развертывания Azure. Чтобы определить в журнале активности, какие операции были выполнены с группами безопасности сети, найдите записи, содержащие следующие типы ресурсов:
    • Microsoft.ClassicNetwork/networkSecurityGroups
    • Microsoft.ClassicNetwork/networkSecurityGroups/securityRules
    • Microsoft.Network/networkSecurityGroups
    • Microsoft.Network/networkSecurityGroups/securityRules
  • Чтобы узнать, как вести журнал диагностики и записывать в него исходные IP-адреса для каждого потока, ознакомьтесь с разделом Руководство по регистрации потока сетевого трафика на виртуальную машину и с нее с помощью портала Azure.