身份验证

身份验证是任何实际的 OpenStack 部署不可或缺的一部分,因此应该仔细考虑系统设计的这一方面。 本指南无法全面涵盖此主题,但以下部分介绍了一些关键主题。

从最基本层面来说,身份验证是确认身份的过程——确认用户是否真的是他们声称的身份。 一个熟悉的例子是在登录系统时提供用户名和密码。

OpenStack Identity 服务 (keystone) 支持多种身份验证方法,包括用户名和密码、LDAP 以及外部身份验证方法。 身份验证成功后,Identity 服务会为用户提供授权令牌,用于后续服务请求。

传输层安全 (TLS) 通过 X.509 证书提供服务和用户之间的身份验证。 虽然 TLS 的默认模式是仅服务器端身份验证,但证书也可以用于客户端身份验证。

无效登录尝试

从 Newton 版本开始,Identity 服务可以在重复的未成功登录尝试后限制对帐户的访问。 重复的失败登录尝试模式通常是暴力攻击的指标(请参阅 攻击类型)。 这种类型的攻击在公共云部署中更为普遍。

对于需要此功能的旧部署,可以通过使用在配置数量的失败登录尝试后锁定帐户的外部身份验证系统来防止这种情况发生。 然后,只有通过进一步的侧信道干预才能解锁帐户。

如果无法防止,可以使用检测来减轻损害。 检测包括频繁审查访问控制日志,以识别未经授权的帐户访问尝试。 可能的补救措施包括审查用户密码的强度,或通过防火墙规则阻止攻击的网络源。 限制连接数量的 keystone 服务器上的防火墙规则可用于降低攻击效果,从而劝退攻击者。

此外,检查帐户活动是否存在异常登录时间和可疑操作也很有用,并采取纠正措施,例如禁用帐户。 信用卡提供商通常会采取这种方法来进行欺诈检测和警报。

多因素身份验证

为特权用户帐户的网络访问启用多因素身份验证。 Identity 服务通过 Apache Web 服务器支持外部身份验证服务,这些服务可以提供此功能。 服务器还可以使用证书强制执行客户端身份验证。

此建议可防止暴力破解、社会工程以及可能危及管理员密码的鱼叉式和批量网络钓鱼攻击。