Spec-Zone.ru › Chef 16

Ресурс xinetd_conf

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

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

Доступность

Установка

Этот ресурс распространяется вместе с самим 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' — это ожидаемое значение

Примеры

Следующие примеры показывают, как использовать этот ресурс аудита 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 }

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, для использования указанного типа сокета:

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

где socket — один из dgram, raw или stream. Для службы на основе 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 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