配置 fapolicyd 以只允许 SAP HANA 可执行文件
使开源包含更多 复制链接链接已复制到粘贴板!
红帽承诺替换我们的代码和文档中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于这一努力的精力,这些更改将在即将发布的版本中逐渐实施。有关让我们的语言更加包含的更多详情,请参阅我们的CTO Chris Wright 信息。
对红帽文档提供反馈 复制链接链接已复制到粘贴板!
我们感谢您对我们文档的反馈。让我们了解如何改进它。
通过 Jira 提交反馈(需要帐户)
- 确保您已登录到 JIRA 网站。
- 通过单击此链接 来提供反馈。https://issues.redhat.com/secure/CreateIssueDetails!init.jspa?pid=12330720&issuetype=3&components=12387093&priority=10200&summary=Doc&description=Please+include+the+Document+URL,+the+section+number+and%20+describe+the+issue&labels=SAP_DOCS&customfield_12311140=SAPOCP-775&assignee=rh-ee-pmohta
- 在 Summary 字段中输入描述性标题。
- 在 Description 字段中输入您对改进的建议。包括文档相关部分的链接。
- 如果要通知将来的更新,请确保已分配为 Reporter。
- 点对话框底部的 Create。
第 1 章 fapolicyd 简介 复制链接链接已复制到粘贴板!
fapolicyd 软件框架根据用户定义的策略来控制应用程序的执行。这是防止在系统上运行不受信任的和可能具有恶意的应用程序的最有效的方法之一。如需更多信息,请参阅 RHEL 9 安全强化 指南中的使用 fapolicyd 来阻止和 允许应用程序。
下面的步骤将所有检测到的 SAP HANA 可执行文件放入 fapolicyd 信任文件中,其中包含可信文件的所有名称、大小和校验和。SAP HANA 二进制文件和 shell 脚本只能在 fapolicyd 信任文件中包含时才执行。因此,如果您执行不包含在 fapolicyd 信任文件中的 SAP HANA 二进制文件或 shell 脚本,则可能会出现不必要的影响,包括损坏或数据丢失。您必须仔细测试所有步骤,并首先在非生产环境的系统上进行正确的验证。
第 2 章 使用 fapolicyd 保护 SAP HANA 安装 复制链接链接已复制到粘贴板!
您可以执行以下步骤来保护 SAP HANA 安装:
-
安装
fapolicyd软件包。 -
将完整性检查设置为
SHA-256哈希。 -
添加自定义
fapolicyd规则来保护 shell 脚本。 - 将 SAP HANA 文件标记为可信。
-
启用
fapolicyd服务。
2.1. 安装 fapolicyd 软件包 复制链接链接已复制到粘贴板!
流程
安装
fapolicyd软件包:dnf install fapolicyd
# dnf install fapolicydCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
使用以下命令验证
fapolicyd服务是否已安装,但当前没有运行:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2. 将完整性检查设置为 SHA-256 哈希 复制链接链接已复制到粘贴板!
默认情况下,fapolicyd 会在决定应用程序是否被阻止执行时验证文件名。您可以为更高级别的保护将此设置修改为 SHA-256。
先决条件
-
fapolicyd软件包已安装在您的系统中。
流程
在您选择的文本编辑器中打开
/etc/fapolicyd/fapolicyd.conf文件,例如:vi /etc/fapolicyd/fapolicyd.conf
# vi /etc/fapolicyd/fapolicyd.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置 integrity 选项,将默认值
none改为sha-256:integrity = sha-256
integrity = sha-256Copy to Clipboard Copied! Toggle word wrap Toggle overflow
要使更改生效,您需要重启 fapolicyd 服务。但您不得现在重启 fapolicyd,因为您必须对 fapolicyd 配置进行更多更改。
验证
验证正确的条目:
fapolicyd-cli --check-config Daemon config is OK
# fapolicyd-cli --check-config Daemon config is OKCopy to Clipboard Copied! Toggle word wrap Toggle overflow
SAP HANA 基准在 RHEL 9.2 上进行了测试。在这样做时,最初禁用了 fapolicyd,然后启用来评估 fapolicyd 的性能影响。要允许测试运行,总计 19,184 条目被添加到 fapolicyd 信任文件中。在 99% 的测试中,性能影响为 5% 或更少,因为大多数测试都遇到了缓慢的 1-3% 的测试。
请注意,某些工作负载可能会遇到更高的性能损失。因此,您必须完全评估特定环境中的性能,才能准确观察潜在的影响。
2.3. 添加自定义 fapolicyd 规则来保护 shell 脚本 复制链接链接已复制到粘贴板!
默认情况下,fapolicyd 会阻止二进制可执行文件和某些程序(如 Python)被执行。为了保护 SAP HANA 安装目录中的 shell 脚本,您必须添加新的自定义规则。
先决条件
-
fapolicyd软件包已安装在您的系统中。
流程
-
打开目录
/etc/fapolicyd/rules.d。 添加一个以 71 开头的文件名(带文件名
71-sap-shellscript.rules)的新文件,以便规则放置在文件70-trusted-lang.rules和72-shell.rules的规则之间,其内容如下:# Deny shell script execution and sourcing under SAP HANA directories deny_audit perm=any all : ftype=text/x-shellscript dir=/hana/,/usr/sap/ trust=0
# Deny shell script execution and sourcing under SAP HANA directories deny_audit perm=any all : ftype=text/x-shellscript dir=/hana/,/usr/sap/ trust=0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将文件的所有权设置为
/etc/fapolicyd/rules.d中其他文件的所有权:chown root:fapolicyd 71-sap-shellscript.rules
# chown root:fapolicyd 71-sap-shellscript.rulesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下命令确认定义了新规则,然后载入新规则:
fagenrules --check /usr/sbin/fagenrules: Rules have changed and should be updated fagenrules --load
# fagenrules --check /usr/sbin/fagenrules: Rules have changed and should be updated # fagenrules --loadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证规则是否已更新:
fagenrules --check /usr/sbin/fagenrules: No change
# fagenrules --check /usr/sbin/fagenrules: No changeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4. 将 SAP HANA 文件标记为可信 复制链接链接已复制到粘贴板!
前提条件
-
fapolicyd软件包已安装在您的系统中。
流程
- 安装 SAP HANA 软件(如果尚未完成)。
使用以下命令将所有 SAP HANA 文件添加到
fapolicyd信任数据库。我们建议为每个目录树使用单独的信任文件,如hana和usr_sap:fapolicyd-cli --file add /hana --trust-file hana fapolicyd-cli --file add /usr/sap --trust-file usr_sap
# fapolicyd-cli --file add /hana --trust-file hana # fapolicyd-cli --file add /usr/sap --trust-file usr_sapCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这会在
/etc/fapolicyd/trust.d目录中创建两个名为hana和usr_sap的文件,其中包含/hana和/usr/sap下所有文件的条目。对于新安装的 RHEL 系统上的 SAP HANA 安装,SAP HANA 安装程序会创建目录
/hana和/usr/sap,因此我们可以信任这些目录中的所有文件都是有效的 SAP 文件。在任何其他情况下,这些目录中可能存在 SAP HANA 安装程序尚未创建的文件。
因此,您应该仔细验证信任文件
/etc/fapolicyd/trust.d/hana和/etc/fapolicyd/trust.d/usr_sap中的所有文件都是有效的 SAP 文件。以下是可能的方法之一:- 在另一个新安装的 RHEL 系统上执行全新的 SAP HANA 安装。
- 在该系统上重复步骤 2。
- 比较两个系统生成的信任文件。
2.5. 启用 fapolicyd 服务 复制链接链接已复制到粘贴板!
先决条件
-
fapolicyd软件包已安装,且当前没有在您的系统中运行。 - 您已完成了所有前面的步骤。
流程
启用并启动
fapolicyd服务:systemctl enable --now fapolicyd
# systemctl enable --now fapolicydCopy to Clipboard Copied! Toggle word wrap Toggle overflow fapolicyd服务现在保护 SAP HANA 系统。不在fapolicyd信任文件中的/hana或/usr/sap中的脚本和二进制文件会被阻止,非 root 用户无法执行这些文件。
验证
验证
fapolicyd服务是否正在运行:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证非 root 用户,包括 SAP HANA 管理员用户(例如:
h70adm),无法在/hana和/usr/sap中执行任何新脚本和二进制程序:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 3 章 更新 SAP HANA 时重新创建 fapolicyd 信任文件 复制链接链接已复制到粘贴板!
先决条件
-
fapolicyd软件包已安装在您的系统中。 - 您已确认 SAP HANA 软件目录中没有新的可执行文件,因此您不会意外地添加来自未知来源的软件。如需更多信息,请参阅将 SAP HANA 文件标记为可信。
流程
在执行 SAP HANA 软件更新前,停止
fapolicyd:systemctl stop fapolicyd
# systemctl stop fapolicydCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
创建现有
fapolicyd信任文件/etc/fapolicyd/trust.d/hana和/etc/fapolicyd/trust.d/usr_sap的备份,然后删除这些文件。 - 执行 SAP HANA 软件更新。
-
重复步骤部分的第 2 步,将 SAP HANA 文件标记为可信,以便为 SAP HANA 重新创建
fapolicyd信任文件。 启动
fapolicyd:systemctl start fapolicyd
# systemctl start fapolicydCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第 4 章 故障排除与 fapolicyd 相关的问题 复制链接链接已复制到粘贴板!
要诊断与 fapolicyd 相关的问题,您可以:
-
检查文件
/var/log/fapolicyd-access.log以了解fapolicyd访问统计信息和/或 -
在 debug 模式下运行
fapolicyd。
有关诊断 fapolicyd 相关问题的更多信息,请参阅与 fapolicyd 相关的故障排除问题。
第 5 章 附加信息 复制链接链接已复制到粘贴板!
在
fapolicyd信任文件中添加更多文件后,使用以下命令更新fapolicyd数据库:fapolicyd-cli --update
# fapolicyd-cli --updateCopy to Clipboard Copied! Toggle word wrap Toggle overflow 从
fapolicyd信任文件中删除条目后,您必须重启fapolicyd:systemctl restart fapolicyd
# systemctl restart fapolicydCopy to Clipboard Copied! Toggle word wrap Toggle overflow