Spec-Zone.ru › Chef 17

Ресурс xinetd_conf

[редактировать на GitHub]

Используйте ресурс аудита Chef InSpec, чтобы проверить службы под Linux и Unix. xinetd — расширенный демон интернет-служб — прослушивает все порты и загружает соответствующую программу на основе запроса. Файл обычно расположен по адресу и содержит список интернет-служб, связанных с портами, на которых эта служба будет прослушивать. Только включённые службы могут обрабатывать запрос; должны быть включены только службы, необходимые системе.

Доступность

Установка

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

Версия

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

Синтаксис

Блок ресурса xinetd_conf объявляет параметры, найденные в файле xinetd.conf для указанной службы:

describe xinetd_conf.services('service_name') do
  it { should be_enabled } # or be_disabled
  its('setting') { should eq 'value' }
end

где

  • 'service_name' — это служба, расположенная в /etc/xinet.d
  • ('setting') — это параметр в файле xinetd.conf
  • should eq 'value' — это ожидаемое значение

Свойства

ids

Свойство ids проверяет, находится ли указанная служба в /etc/xinet.d:

its('ids') { should include 'service_name' }

Например:

its('ids') { should include 'chargen-stream chargen-dgram'}

services

Свойство services проверяет, указана ли указанная служба в /etc/xinet.d:

its('services') { should include 'service_name' }

socket_types

Свойство socket_types проверяет, настроена ли служба, перечисленная в /etc/xinet.d для использования указанного типа сокета.

Используйте socket если тип сокета dgram, raw, или stream:

its('socket_types') { should eq 'socket' }

Для службы на основе UDP:

its('socket_types') { should eq 'dgram' }

Для сокета raw (например, для службы, использующей нестандартный протокол или службы, требующей прямого доступа к IP):

its('socket_types') { should eq 'raw' }

Для службы на основе TCP:

its('socket_types') { should eq 'stream' }

types

Свойство types проверяет тип службы:

its('type') { should eq 'TYPE' }

где 'TYPE' — это INTERNAL (для службы, предоставляемой xinetd), RPC (для службы на основе вызова удалённой процедуры) или UNLISTED (для служб, не находящихся в /etc/services или /etc/rpc).

wait

Свойство wait проверяет, как служба обрабатывает входящие соединения.

Для типов сокетов UDP (dgram) свойство wait должно проверять yes:

its('socket_types') { should eq 'dgram' }
its('wait') { should eq 'yes' }

Для типов сокетов TCP (stream) свойство wait должно проверять no:

its('socket_types') { should eq 'stream' }
its('wait') { should eq 'no' }

Примеры

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

Проверка типа сокета

Тип сетевого сокета: dgram (служба на основе датаграмм), raw (служба, требующая прямого доступа к IP-адресу), stream (потоковая служба) или seqpacket (служба, требующая упорядоченных пакетов).

describe xinetd_conf.services('service_name') do
   its('socket_types') { should include 'dgram' }
end

Проверка типа службы

Тип службы: INTERNAL (служба, предоставляемая xinetd), RPC (служба на основе RPC), TCPMUX (служба, запускаемая на известном порту TCPMUX) или UNLISTED (служба, не указанная в стандартном системном файле).

describe xinetd_conf.services('service_name') do
   its('type') { should include 'RPC' }
end

Проверка службы telnet

Например, файл telnet в /etc/xinet.d содержит следующие параметры:

service telnet
{
  disable         = yes
  flags           = REUSE
  socket_type     = stream
  wait            = no
  user            = root
  server          = /usr/sbin/in.telnetd
  log_on_failure  += USERID
}

Примеры тестов, которые можно выполнить с этим файлом:

describe xinetd_conf.services('telnet') do
  it { should be_disabled }
end

и

describe xinetd_conf.services('telnet') do
  its('socket_type') { should include 'stream' }
end

и

describe xinetd_conf.services('telnet') do
  its('wait') { should eq 'no' }
end

Все три параметра можно проверить в одном блоке:

describe xinetd_conf.services('telnet') do
  it { should be_disabled }
  its('socket_type') { should include 'stream' }
  its('wait') { should eq 'no' }
end

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

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

be_enabled

Сопоставитель be_enabled проверяет, включена ли служба, перечисленная в /etc/xinet.d:

it { should be_enabled }

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

Spec-Zone.ru

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