Ресурс xinetd_conf
Используйте ресурс аудита 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/