安全设计

手动替换证书步骤

  • 创建自认证证书

    自认证证书生成请参考(证书生成)。

    对私钥密码的保护,使用cm encrypt工具,请参考cm_ctl工具介绍

    1. cm_ctl encrypt [-M MODE] -D DATADIR
    1. 生成服务器端密钥因子server.key.cipher、server.key.rand。

      1. cm_ctl encrypt -M server -D DATADIR
      2. please enter the password:(使用密码需要与服务器私钥的保护密码相同)
    2. 生成客户端密钥因子client.key.cipher、client.key.rand。

      1. cm_ctl encrypt -M client -D DATADIR
      2. please enter the password:(使用密码需要与客户端私钥的保护密码相同)

证书使用指南

  1. 使用证书需配置cm_server参数为on (默认开启),cm_agent有同名参数,配置相同,这里以cm_server为例。

    1. cm_ctl set --param --server -k enable_ssl="on"
  2. 证书文件需要存在于所有节点的$GAUSSHOME/share/sslcert/cm中,证书替换后重启集群生效。所需证书文件:server.crt、server.key、client.crt、client.key、cacert.pem、server.key.cipher、server.key.rand、client.key.cipher、client.key.rand根证书、密钥、证书以及密钥密码加密文件的权限,需保证权限为400。如果权限不满足要求,则无法使用ssl。

    • chmod 400 cacert.pem
    • chmod 400 server.crt
    • chmod 400 server.key
    • chmod 400 server.key.cipher
    • chmod 400 server.key.rand
    • chmod 400 client.crt
    • chmod 400 client.key
    • chmod 400 client.key.cipher
    • chmod 400 client.key.rand
  3. 证书有效期的检测周期为1天,可通过ssl_cert_expire_check_interval设置。证书有效期剩余90天时会开始产生告警,可通过ssl_cert_expire_alert_threshold设置。(配置参数详见ssl_cert_expire_alert_threshold)。

  4. 客户端和服务端的证书吊销列表分别为client.crl、server.crl。

ifconfig 提权步骤

  1. 执行以下命令获取ifconfig绝对路径。

    1. which ifconfig
  2. 执行以下命令修改权限文件/etc/sudoers。

    1. Cmnd_Alias COMMAND_FLAG = ifconfig 绝对路径
    2. 集群用户名 ALL=(root) NOPASSWD: COMMAND_FLAG

    可以缩小权限范围,例如:

    1. Cmnd_Alias COMMAND_FLAG = /usr/sbin/ifconfig * netmask * up, /usr/sbin/ifconfig * down
    2. 注意:/usr/sbin/ifconfig 需要按实际修改为 ifconfig 的绝对路径
    3. 集群用户名 ALL=(root) NOPASSWD: COMMAND_FLAG