安全
Rudis 的安全模型和特性。
网络安全
Rudis 端口的访问应该被拒绝给网络中的所有人,除了受信任的客户端,因此运行 Rudis 的服务器应该只能被使用 Rudis 实现应用程序的计算机直接访问。
在单台计算机直接暴露在互联网上的常见情况下,比如虚拟化的 Linux 实例(Linode、EC2 等),Rudis 端口应该通过防火墙防止外部访问。客户端仍然能够使用环回接口访问 Rudis。
请注意,可以通过在 rudis.conf 文件中添加如下行来将 Rudis 绑定到单个接口:
bind 127.0.0.1未能保护 Rudis 端口免受外部访问可能会因为 Rudis 的特性而产生重大安全影响。例如,外部攻击者可以使用单个 FLUSHALL 命令删除整个数据集。
认证
传统的认证方法通过编辑 Rudis.conf 文件并使用 requirepass 设置提供数据库密码来启用。所有客户端都将使用此密码。
当启用该设置时,Rudis 将拒绝未经身份验证的客户端的任何查询。客户端可以通过发送 AUTH 命令后跟密码来进行身份验证。
requirepass 12345认证层的目标是可选地提供一层冗余。如果防火墙或任何其他用于保护 Rudis 免受外部攻击者攻击的系统失效,外部客户端仍然无法在不知道认证密码的情况下访问 Rudis 实例。
由于 AUTH 命令与每个其他 Rudis 命令一样是以未加密形式发送的,因此它无法防止有权访问网络进行窃听的攻击者。