Spec-Zone.ru › Chef 16

ресурс порта

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

Используйте ресурс аудита port Chef InSpec для проверки основных свойств порта, таких как порт, процесс, прослушивание.

Доступность

Установка

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

Версия

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

Синтаксис

Блок ресурса port объявляет порт, а затем, в зависимости от того, что нужно проверить, процесс, протокол, идентификатор процесса и его состояние (прослушивает ли он?):

describe port(514) do
  it { should be_listening }
  its('processes') {should include 'syslog'}
end

где processes возвращает процессы, прослушивающие порт 514.

Фильтр может указывать атрибут:

describe port.where { protocol =~ /tcp/ && port > 22 && port < 80 } do
  it { should_not be_listening }
end

где

  • .where{} указывает блок, в котором один (или несколько) атрибутов—port, address, protocol, process, pid, или listening?—определяют область проверки для портов, которые соответствуют этим атрибутам

Например, для проверки доступности SSH-демона на машине Linux через стандартный порт (22):

describe port(22) do
  its('processes') { should include 'sshd' }
  its('protocols') { should include 'tcp' }
  its('addresses') { should include '0.0.0.0' }
end

Примеры

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

Проверка порта 80 на прослушивание с протоколом TCP

describe port(80) do
  it { should be_listening }
  its('protocols') { should cmp 'tcp' }
end

Проверка порта 80 по определенному адресу

Определённый адрес порта можно проверить, используя любой из следующих примеров:

describe port(80) do
  it { should be_listening }
  its('addresses') {should include '0.0.0.0'}
end

или:

describe port('0.0.0.0', 80) do
  it { should be_listening }
end

Проверка порта 80 на прослушивание с протоколом TCP версии IPv6

describe port(80) do
  it { should be_listening }
  its('protocols') { should cmp 'tcp6' }
end

Проверка, что только защищённые порты принимают запросы

describe port(80) do
  it { should_not be_listening }
end

describe port(443) do
  it { should be_listening }
  its('protocols') { should cmp 'tcp' }
end

Проверка, что порт 65432 не прослушивает

describe port(22) do
  it { should be_listening }
  its('protocols') { should include('tcp') }
  its('protocols') { should_not include('udp') }
end

describe port(65432) do
  it { should_not be_listening }
end

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

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

адрес

Сопоставитель addresses проверяет, связан ли указанный адрес с портом:

its('addresses') { should include '0.0.0.0' }

be_listening

Сопоставитель be_listening проверяет, прослушивает ли порт трафик:

it { should be_listening }

идентификаторы процессов

Сопоставитель pids проверяет идентификаторы процессов (PID):

its('pids') { should cmp 27808 }

процессы

Сопоставитель processes проверяет, запущен ли указанный процесс на системе:

its('processes') { should cmp 'syslog' }

протоколы

Сопоставитель protocols проверяет интернет-протокол: ICMP ('icmp'), TCP ('tcp' или 'tcp6') или UDP ('udp' или 'udp6'):

its('protocols') { should include 'tcp' }

или для IPv6-протокола:

its('protocols') { should include 'tcp6' }

© 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/port/

Spec-Zone.ru

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