3.3. 传输中加密(Encryption in transit)

从 Red Hat Ceph Storage 4 及更高版本开始,您可以通过引入 messenger version 2 协议,为网络上的所有 Ceph 流量启用加密。me senger v2 的安全模式设置加密 Ceph 守护进程和 Ceph 客户端之间的通信,从而为您提供端到端加密。

messenger v2 协议

Ceph on-wire 协议 msgr2 的第二个版本包括几个新功能:

  • 安全模式通过网络加密所有数据。
  • 身份验证有效负载的封装改进。
  • 功能公告和协商的改进。

Ceph 守护进程绑定到多个端口,允许旧旧 v1- 兼容新的 v2 兼容 Ceph 客户端,以连接同一存储集群。Ceph 客户端或其他 Ceph 守护进程连接到 Ceph Monitor 守护进程将先尝试使用 v2 协议(如果可能),但若不可能,则使用旧的 v1 协议。默认情况下,启用 messenger 协议 v1v2。新的 v2 端口为 3300,旧的 v1 端口默认为 6789。

msgr2 协议支持两种连接模式:

  • crc

    • 当使用 cephx 建立连接时,提供强大的初始身份验证。
    • 提供 crc32c 完整性检查,以防止比特反转(bit flipping)攻击。
    • 不能提供对恶意的中间人攻击提供保护。
    • 不能阻止对认证后的网络流量进行窃听。
  • secure

    • 当使用 cephx 建立连接时,提供强大的初始身份验证。
    • 提供所有认证后的网络流量的完全加密。
    • 提供加密完整性检查。

默认模式是 crc

Ceph 对象网关加密

另外,Ceph 对象网关支持使用其 S3 API 与客户提供的密钥进行加密。

重要

为了遵守法规合规性标准要求传输严格的加密,管理员必须通过客户端侧加密部署 Ceph 对象网关。

Ceph 块设备加密

系统管理员使用 dm_crypt 将 Ceph 块设备卷集成为 Red Hat OpenStack Platform 13 必须 加密 Ceph 块设备卷,以确保 Ceph 存储集群中的在线加密。

重要

为了遵守法规合规性标准要求传输严格的加密,系统管理员必须使用 dmcrypt 用于 RBD Cinder,以确保 Ceph 存储集群中的在线加密。

其它资源

3.3.1. 启用 messenger v2 协议

对于 Red Hat Ceph Storage 4 的新安装,默认为启用 messenger v2 协议 msgr2。对于 Red Hat Ceph Storage 3 或更早版本,Ceph Monitor 绑定到旧的 v1 端口 6789。升级后,您可以启用 msgr2 协议来利用其新功能。在重启 Ceph Monitor 服务后,Ceph Monitor 会绑定到 msgr2 协议后,它们开始公告 v2 地址。msgr2 协议的默认连接模式是 crc

请确定在规划 Red Hat Ceph Storage 集群时考虑集群 CPU 要求,使其包含加密开销。

重要

Ceph 内核客户端目前支持使用 secure 模式,比如 Red Hat Enterprise Linux 8.2 上的 CephFS 和 krbd。Ceph 客户端使用 librbd (如 OpenStack Nova、Glance 和 Cinder)支持使用 secure 模式。

先决条件

  • 正在运行的 Red Hat Ceph Storage 4 集群。
  • 在防火墙中打开 TCP 端口 3300。
  • Ceph 监控节点的 root 级别访问。

流程

  1. 默认情况下,打开 Ceph 配置文件(默认为 /etc/ceph/ceph.conf)进行编辑。
  2. [global] 部分下,将以下内容添加到新行中:

    ms_bind_msgr2 = true
    1. 另外,要在 Ceph 守护进程之间启用在线加密,并在 Ceph 客户端和守护进程之间启用在线加密,请在 Ceph 配置文件的 [global] 部分中添加以下选项:

      [global]
      ms_cluster_mode=secure
      ms_service_mode=secure
      ms_client_mode=secure
  3. 保存对 Ceph 配置文件的更改。
  4. 将更新的 Ceph 配置文件复制到 Red Hat Ceph Storage 集群中的所有节点。
  5. 启用 msgr2 协议:

    [root@mon ~]# ceph mon enable-msgr2
  6. 重启每个 Ceph Monitor 节点上的 Ceph Monitor 服务:

    [root@mon ~]# systemctl restart ceph-mon.target

其它资源