检查清单¶
检查-计算-01:配置文件用户/组所有权是否设置为 root/nova?¶
配置文件包含组件平稳运行所需的关键参数和信息。如果未授权用户(无论是故意还是意外)修改或删除任何参数或文件本身,都将导致严重的可访问性问题,从而导致其他端用户服务中断。此类关键配置文件的用户所有权必须设置为 root,组所有权必须设置为 nova。此外,包含目录应具有相同的所有权,以确保正确拥有新文件。
运行以下命令
$ stat -L -c "%U %G" /etc/nova/nova.conf | egrep "root nova"
$ stat -L -c "%U %G" /etc/nova/api-paste.ini | egrep "root nova"
$ stat -L -c "%U %G" /etc/nova/policy.json | egrep "root nova"
$ stat -L -c "%U %G" /etc/nova/rootwrap.conf | egrep "root nova"
$ stat -L -c "%U %G" /etc/nova | egrep "root nova"
通过:如果所有这些配置文件的用户和组所有权分别设置为 root 和 nova。上述命令显示 root nova 的输出。
失败:如果上述命令未返回任何输出,则用户和组所有权可能设置为除 root 之外的任何用户或除 nova 之外的任何组。
推荐于:计算。
检查-计算-02:是否为配置文件设置了严格的权限?¶
与之前的检查类似,我们建议为这些配置文件设置严格的访问权限。
运行以下命令
$ stat -L -c "%a" /etc/nova/nova.conf
$ stat -L -c "%a" /etc/nova/api-paste.ini
$ stat -L -c "%a" /etc/nova/policy.json
$ stat -L -c "%a" /etc/nova/rootwrap.conf
也可以进行更广泛的限制:如果包含目录设置为 750,则可以保证在此目录中创建的新文件将具有所需的权限。
通过:如果权限设置为 640 或更严格,或者包含目录设置为 750。权限 640/750 转换为所有者 r/w,组 r,且其他用户无任何权限。例如,“u=rw,g=r,o=”。
注意
如果 检查-计算-01:配置文件用户/组所有权是否设置为 root/nova? 和权限设置为 640,则 root 具有读/写访问权限,nova 具有对这些配置文件的读取访问权限。还可以使用以下命令验证访问权限。如果您的系统支持 ACL,则此命令才可用。
$ getfacl --tabular -a /etc/nova/nova.conf
getfacl: Removing leading '/' from absolute path names
# file: etc/nova/nova.conf
USER root rw-
GROUP nova r--
mask r--
other ---
失败:如果权限未设置为至少 640/750。
推荐于:计算。
检查-计算-03:是否使用 keystone 进行身份验证?¶
注意
此项目仅适用于 Rocky 及更早的 OpenStack 版本,因为 auth_strategy 在 Stein 中已被弃用。
OpenStack 支持各种身份验证策略,例如 noauth 和 keystone。如果使用 noauth 策略,则用户无需任何身份验证即可与 OpenStack 服务交互。这可能是一种潜在风险,因为攻击者可能会获得对 OpenStack 组件的未经授权访问。我们强烈建议所有服务必须使用其服务帐户通过 keystone 进行身份验证。
Ocata 之前
通过:如果 /etc/nova/nova.conf 中 [DEFAULT] 部分下参数 auth_strategy 的值设置为 keystone。
失败:如果 /etc/nova/nova.conf 中 [DEFAULT] 部分下参数 auth_strategy 的值设置为 noauth 或 noauth2。
Ocata 之后
通过:如果 /etc/nova/nova.conf 中 [api] 或 [DEFAULT] 部分下参数 auth_strategy 的值设置为 keystone。
失败:如果 /etc/nova/nova.conf 中 [api] 或 [DEFAULT] 部分下参数 auth_strategy 的值设置为 noauth 或 noauth2。
检查-计算-04:是否使用安全协议进行身份验证?¶
OpenStack 组件使用各种协议相互通信,并且通信可能涉及敏感或机密数据。攻击者可能会尝试窃听通道以获取对敏感信息的访问权限。所有组件必须使用安全的通信协议相互通信。
通过:如果 /etc/nova/nova.conf 中 [keystone_authtoken] 部分下参数 www_authenticate_uri 的值设置为以 https:// 开头的 Identity API 端点,并且相同 /etc/nova/nova.conf 中相同 [keystone_authtoken] 部分下参数 insecure 的值设置为 False。
失败:如果 /etc/nova/nova.conf 中 [keystone_authtoken] 部分下参数 www_authenticate_uri 的值未设置为以 https:// 开头的 Identity API 端点,或者相同 /etc/nova/nova.conf 中相同 [keystone_authtoken] 部分下参数 insecure 的值设置为 True。
检查-计算-05:Nova 是否使用安全方式与 Glance 通信?¶
OpenStack 组件使用各种协议相互通信,并且通信可能涉及敏感或机密数据。攻击者可能会尝试窃听通道以获取对敏感信息的访问权限。所有组件必须使用安全的通信协议相互通信。
通过:如果 /etc/nova/nova.conf 中 [glance] 部分下参数 api_insecure 的值设置为 False,并且相同 /etc/nova/nova.conf 中 [glance] 部分下参数 api_servers 的值设置为以 https:// 开头的值。
失败:如果 /etc/nova/nova.conf 中 [glance] 部分下参数 api_insecure 的值设置为 True,或者如果 /etc/nova/nova.conf 中 [glance] 部分下参数 api_servers 的值设置为不以 https:// 开头的值。