Katello:使用OpenSCAP进行安全合规性管理
我们将配置OpenSCAP插件,以接收来自Foreman主机的自动化漏洞评估和安全合规性审核。
本文是KVM,Katelo和Puppet系列测试环境项目的一部分。
测试环境
我们在CentOS 7服务器上安装了Katello:
katello.igi.local(10.11.1.4)
OpenSCAP
通过安全内容自动化协议(SCAP),可以定义配置和安全策略,还可以通过审计手段来检查是否符合这些策略。
在Foreman中,使用OpenSCAP项目提供的工具来实现SCAP。
OpenSCAP插件使Foreman可以从Foreman主机接收自动漏洞评估和安全合规性审核。
我们可以上传SCAP合规性内容,从中创建合规性策略,然后将策略分配给主机或者主机组。
安装
可以在Foreman上找到详细的安装说明。
有关网络链接,请参见参考。
我们需要安装以下内容:
- 工头OpenSCAP(foreman_openscap)。
- 智能代理OpenSCAP(smart_proxy_openscap)。
- foreman_scap_client。
- puppet-foreman_scap_client。
安装foreman_openscap
# foreman-installer --enable-foreman-plugin-openscap
安装smart_proxy_openscap
# foreman-installer --enable-foreman-proxy-plugin-openscap
如果需要,可以使用自定义设置修改'/etc/foreman-proxy/settings.d/openscap.yml'。
在代理上安装smart_proxy_openscap之后,刷新代理的功能,以便它将在Foreman上向OpenSCAP功能注册。
安装Puppet模块puppet-foreman_scap_client
这个p模块将自动安装foreman_scap_client并使用foreman_scap_client操作所需的所有参数来配置客户端。
# puppet module install theforeman-foreman_scap_client --environment homelab Notice: Preparing to install into /etc/puppetlabs/code/environments/homelab/modules ... Notice: Downloading from https://forgeapi.puppet.com ... Notice: Installing -- do not interrupt ... /etc/puppetlabs/code/environments/homelab/modules └─┬ theforeman-foreman_scap_client (v0.3.18) └── puppetlabs-stdlib (v4.24.0)
安装模块后,通过Katello WebUI导入新的Puppet类:
'配置>Puppet类>从katello.igi.local导入环境'
设置工头插件存储库
从Foreman 1.14附带的puppet-foreman_scap_client 0.3.14开始,如果我们至少定义了Foreman的主要发行版本,则可以设置Foreman插件yum repo。
需要此存储库来安装foreman_scap_client,否则将失败。
请注意,程序包未签名。
创建一个新的存储库并对其进行同步:
# hammer repository create \ --product "el7_repos" \ --name "foreman-plugins-117" \ --label "foreman-plugins-117" \ --content-type "yum" \ --download-policy "on_demand" \ --url "https://yum.theforeman.org/plugins/1.17/el7/x86_64/"
# hammer repository synchronize \ --name "foreman-plugins-117" \ --product "el7_repos"
将新的存储库添加到内容视图:
# hammer content-view add-repository \ --name "el7_content" \ --product "el7_repos" \ --repository "foreman-plugins-117"
发布内容视图的新版本,其中包括Foreman插件存储库:
# hammer content-view publish \ --name "el7_content" \ --description "Publishing foreman plugins 1.17"
让我们看到我们要升级的版本号:
# hammer content-view version list
将内容视图版本升级到我们的“稳定”生命周期环境:
# hammer content-view version promote \ --content-view "el7_content" \ --version "11.0" \ --to-lifecycle-environment "stable" \ --description "Publishing foreman plugins 1.17"
此时,新的存储库应可供客户端使用。
用法
创建默认的SCAP内容
以下内容将搜索scap-security-guide SCAP内容,并在Foreman上创建SCAP内容。
# foreman-rake foreman_openscap:bulk_upload:default Saved /usr/share/xml/scap/ssg/content/ssg-centos6-ds.xml as Red Hat centos6 default content Saved /usr/share/xml/scap/ssg/content/ssg-centos7-ds.xml as Red Hat centos7 default content Saved /usr/share/xml/scap/ssg/content/ssg-firefox-ds.xml as Red Hat firefox default content Saved /usr/share/xml/scap/ssg/content/ssg-jre-ds.xml as Red Hat jre default content Saved /usr/share/xml/scap/ssg/content/ssg-rhel6-ds.xml as Red Hat rhel6 default content Saved /usr/share/xml/scap/ssg/content/ssg-rhel7-ds.xml as Red Hat rhel7 default content
创建策略向导
打开Katello WebUI并导航到以下位置:
“主机>合规性>策略>新合规性策略”
创建一个新策略并提供以下详细信息:
- 策略名称(例如homelab)。
- 选择要应用的SCAP内容和SCAP配置文件(例如STIG)。
- 选择执行此政策的时间安排(例如,每周的星期日)。
- 选择该政策所属的位置/组织(例如theitroad/HomeLab)。
- 选择我们希望将此策略应用于哪些主机组(例如,el7_group)。
结果应如下所示:
这会将策略分配给指定的主机组。
属于该主机组的所有主机都将自动分配给该策略,并且将包括Puppet类。
打开Katello WebUI,编辑主机组并指定OpenSCAP代理:
确保分配给主机组的所有主机都分配有OpenSCAP代理。
主机将在下一次运行Puppet代理时自动安装并配置foreman_scap_client。
将创建一个cron文件'/etc/cron.d/foreman_scap_client_cron',该文件将根据创建策略时选择的计划运行。
如何手动运行foreman_scap_client
在要运行客户端的主机上检查cron文件的内容(我们使用db1.igi.local):
[db1]# cat /etc/cron.d/foreman_scap_client_cron # DO NOT EDIT THIS FILE MANUALLY # IT IS MANAGED BY PUPPET # foreman_scap_client cron job # Runs foreman_scap_client 1 0 1 * * 0 root /usr/bin/foreman_scap_client 1 > /dev/null
复制文件中的行并运行:
[db1]# /usr/bin/foreman_scap_client 1 [...] Uploading results to https://katello.igi.local:9090/compliance/arf/1
可以在此处找到报告:“主机>合规性>报告”
SCAP工作台和Tailoring文件
默认的SCAP策略可能无法满足需求,因此可以对其进行编辑。
SCAP Workbench是一种图形实用程序,提供了一种简便的方法。
Workbench允许我们轻松修改XCCDF配置文件,而无需更改相应的XCCDF文件。
该工具提供了启用或者禁用XCCDF元素的图形方式。
我们所做的更改可以存储为XCCDF定制文件。