Spec-Zone.ru › Chef 17

wmi ресурс

[править на GitHub]

Используйте wmi ресурс аудита Chef InSpec для проверки настроек WMI в Windows.

Доступность

Установка

Этот ресурс поставляется вместе с самим Chef InSpec. Вы можете использовать его автоматически.

Версия

Этот ресурс впервые стал доступен в версии v1.0.0 InSpec.

Синтаксис

Блок ресурса wmi тестирует настройки WMI в Windows:

describe wmi({
  class: 'class_name',
  namespace: 'path\\to\\setting',
  filter: 'filter',
  query: 'query'
}) do
  its('setting_name') { should eq '' }
end

где

  • class, namespace, filter, и query составляют Ruby хеш объекта WMI
  • ('class') — это класс WMI, к которому относится настройка, например win32_service
  • ('namespace') — путь к этому объекту, например root\\cimv2
  • Используйте ('filter') для настройки информации, определенной классом WMI, например, для поиска конкретной службы (filter: "name like '%winrm%'"), для поиска конкретной настройки (filter: 'KeyName = \'MinimumPasswordAge\' And precedence=1') и так далее
  • Используйте ('query') для выполнения запроса, возвращающего данные для проверки, например "SELECT Setting FROM RSOP_SecuritySettingBoolean WHERE KeyName='LSAAnonymousNameLookup' AND Precedence=1"
  • ('setting_name') — это настройка в объекте WMI, подлежащая проверке, а should eq '' — ожидаемое значение этой настройки

Например, оба следующих теста проверят, присутствует ли WinRM на целевом узле. Первый проверяет, принадлежит ли WinRM к списку работающих служб в классе win32_service.

describe wmi({class: 'win32_service'}) do
  its('DisplayName') { should include 'Windows Remote Management (WS-Management)'}
end

А второй использует фильтр в Ruby хеше для предварительного определения WinRM и последующего выполнения дополнительных проверок:

describe wmi({
  class: 'win32_service',
  filter: "name like '%winrm%'"
}) do
  its('Status') { should cmp 'ok' }
  its('State') { should cmp 'Running' }
  its('ExitCode') { should cmp 0 }
  its('DisplayName') { should eq 'Windows Remote Management (WS-Management)'}
end

Примеры

Следующие примеры показывают, как использовать этот ресурс аудита Chef InSpec.

Проверка политики смены паролей

describe wmi({
  class: 'RSOP_SecuritySettingNumeric',
  namespace: 'root\\rsop\\computer',
  filter: 'KeyName = \'MinimumPasswordAge\' And precedence=1'
}) do
   its('Setting') { should eq 1 }
end

Проверка возможности анонимного пользователя запросить Local Security Authority (LSA)

describe wmi({
  namespace: 'root\\rsop\\computer',
  query: "SELECT Setting FROM RSOP_SecuritySettingBoolean WHERE KeyName='LSAAnonymousNameLookup' AND Precedence=1"
}) do
  its('Setting') { should eq false }
end

Сопоставители

Полный список доступных сопоставителей вы найдете на нашей странице сопоставителей.

© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/wmi/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API