firewalld ресурс
Используйте firewalld ресурс проверки Chef InSpec, чтобы проверить, настроено ли firewalld для разрешения и запрета доступа к определённым хостам, службам и портам на системе.
У firewalld есть ряд зон, которые можно настроить для разрешения и запрета доступа к определённым хостам, службам и портам.
Доступность
Установка
Этот ресурс распространяется вместе с самим Chef InSpec. Вы можете использовать его автоматически.
Версия
Этот ресурс впервые стал доступен в версии InSpec v1.40.0.
Синтаксис
describe firewalld do
it { should be_running }
its('default_zone') { should eq 'public' }
it { should have_service_enabled_in_zone('ssh', 'public') }
it { should have_rule_enabled('family=ipv4 source address=192.168.0.14 accept', 'public') }
end
Используйте предложение where для проверки открытых интерфейсов, источников и служб в активных зонах.
describe firewalld.where { zone == 'public' } do
its('interfaces') { should cmp ['enp0s3', 'eno2'] }
its('sources') { should cmp ['192.168.1.0/24', '192.168.1.2'] }
its('services') { should cmp ['ssh', 'icmp'] }
end
Свойства
interfaces
Свойство interfaces используется в сочетании с предложением where для отображения открытых интерфейсов в активной зоне.
describe firewalld.where { zone == 'public' } do
its('interfaces') { should cmp ['enp0s3', 'eno2'] }
end
sources
Свойство sources используется в сочетании с предложением where для отображения открытых источников в активной зоне.
describe firewalld.where { zone == 'public' } do
its('sources') { should cmp ['192.168.1.0/24', '192.168.1.2'] }
end
services
Свойство services используется в сочетании с предложением where для отображения открытых служб в активной зоне.
describe firewalld.where { zone == 'public' } do
its('services') { should cmp ['ssh', 'icmp'] }
end
default_zone
Свойство default_zone отображает активную по умолчанию зону для использования.
its('default_zone') { should eq 'public' }
Сопоставители
Полный список доступных сопоставителей см. на нашей странице сопоставителей.
be_installed
Сопоставитель be_installed проверяет, установлена ли служба firewalld:
it { should be_installed }
be_running
Сопоставитель be_running проверяет, запущена ли служба firewalld:
it { should be_running }
have_zone
have_zone возвращает true или false, если зона установлена в firewalld. Это не означает, что зона активна.
it { should have_zone('public') }
have_service_enabled_in_zone
have_service_enabled_in_zone возвращает true или false, если служба разрешена в указанной зоне.
it { should have_service_enabled_in_zone('ssh', 'public') }
have_port_enabled_in_zone
have_port_enabled_in_zone возвращает true или false, если порт разрешен в указанной зоне.
it { should have_port_enabled_in_zone('22/tcp', 'public') }
have_rule_enabled
have_rule_enabled возвращает true или false, если rich-правило указано в зоне.
it { should have_rule_enabled('family=ipv4 source address=192.168.0.14 accept', 'public') }
Добавлять строку «rule» не обязательно, и можно начинать с необязательных флагов, используемых в firewalld, и заканчивать действием.
© 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/firewalld/