Ресурс firewalld
Используйте ресурс аудита Chef InSpec, чтобы проверить, настроен ли firewalld для разрешения и запрета доступа к определённым хостам, службам и портам на системе.
В firewalld имеется несколько зон, которые можно настроить для разрешения и запрета доступа к определённым хостам, службам и портам.
Доступность
Установка
Этот ресурс распространяется вместе с самим Chef InSpec. Вы можете использовать его автоматически.
Версия
Этот ресурс стал доступен в версии v1.40.0 InSpec.
Синтаксис
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, если богатая правила указана в зоне.
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/