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