一、sys_securecmdd工具
SYS_SECURECMDD 是集群中自带的工具,集群监控、管理集群时通过SYS_SECURECMDD 安全执行命令。SYS_SECURECMDD主要包含以下文件
1、sys_securecmdd,服务端二进制,集群中每个节点都有 sys_securecmdd进程运行,默认监听
8890端口,接受sys_securecmd的连接并执行指定的命令
2、sys_securecmd,客户端二进制,集群通过sys_securecmd发送指令给服务端并执行
3、sys_HAscmdd.sh,管理sys_securecmdd的脚本,主要负责秘钥协商的初始化
sys_securecmdd进程高可用管理等
4、sys_HAscmdd.conf,配置文件,sys_HAscmdd.sh 读取此文件
5、securecmdd_config,配置文件,sys_securecmdd 读取此文件,初始化阶段由
sys_HAscmdd.sh 自动配
6、securecmd_config,配置文件,sys_securecmd读取此文件,初始化阶段由sys_HAscmdd.sh
自动配置
二、sys_securecmdd 用户认证
使用 openssh 密钥对认证
三、sys_securecmdd 用户认证与 ssh 用户认证
1、sys_securecmdd 用户认证配置
2、ssh用户认证配置
四、脚本sys_HAscmdd.sh 使用方法
注:都需要root权限执行
1、#初始化,主要初始化 sys_securecmdd/sys_securecmd需要的配置文件和秘钥协商
sys_HAscmdd.sh init
#启动sys_securecmdd进程和进程高可用能力
# start_method=systemd 将securecmdd.service服务文件拷贝到/etc/systemd/system目录下,
并启动sys_securecmdd服务
2、# start_method=crontab 在/etc/cron.d/KINGBASECRON中设置sys_securecmdd的定时任务
sys_HAscmdd.sh start
3、#查看sys_securecmdd 进程状态
sys_HAscmdd.sh status
4、#关闭sys_securecmdd 进程和进程高可用能力
sys_HAscmdd.sh stop
5、#卸载sys_securecmdd 的配置文件和服务
sys_HAscmdd.sh uninstall
五、测试securecmdd连接
1、debug 模式启动 securecmdd服务
[kingbase@rdjc15 bin]$ /home/kingbase/cluster/install/kingbase/bin/sys_securecmdd -D -ddd
2、客户端连接
部分省略。。。。。。
六、sys_securecmdd 认证配置文件
相关的 sys_securecmdd 认证配置文件如图所示
七、集群部署时配置 securecmdd 服务介绍
对于KingbaseES V8R6C5版本在部集群时,需要建立kingbase、root用户在节点间的ssh互信,如
果在生产环境禁用root用户ssh登录,则通过ssh部署会失败,在图形化部署时可以借securecmdd
工具进行节点之间通讯
八、集群修改 securecmdd 工具服务端口
1、在一些生产环境,为了系统安全,不支持ssh互信,或限制root用户使用ssh登录,KingbaseES
V8R6可以使用securecmdd工具支持主机之间的通讯。securecmdd工具默认使用的是8890服务
端口,有的生产环境可能需要修改此端口号
2、配置总结
在部署完成集群后,如果修改securecmdd工具端口号,会涉及到集群配置文件repmgr.conf中
参数的修改,必须重启集群才能生效,所以,对于生产环境,修改需注意,尽量在部署前确定
号服务端口号
九、集群securecmd连接密码问题
1、在KingbaseES V8R6集群可以使用securecmdd代替sshd实现集群主机节点间的通讯,
securecmdd通讯认证采用非对称加密方式(公钥和私钥),客户端连接服务器不需要输入密码认
证身份,如果客户端连接服务器需要密码认证,需要检查securecmdd的配置
2、配置总结
在配置了 ssh 或 securecmdd 工具后,不要随意修改root及数据库用户宿主目录的权限,用户
宿主目录权限被修改后,ssh 或 securecmdd 工具的公钥和私钥文件的权限发生变化,将导致
互信失败
十、关于 root 用户 securecmd 连接 "Permission denied" 错误
1、在KingbaseES V8R6数据库在不支持ssh连接的系统环境,可以通过securecmdd服务建立主机
之间的通讯,默认securecmdd服务建立用户之间的互信,通过publickey认证建立访问连接。
在配置securecmdd服务后,默认kingbase和root用户都可以通过publickey建立连接
2、配置总结
对于securecmdd服务,在建立用户的publickey的认证访问后,经常会出现用户访问需要
password认证或 'permission denied' 等故障问题。当出现类似问题,重点查看securecmdd相
关目录和文件的权限及属主,以及kingbase和root用户宿主目录的权限和属主
十一、关于集群 securecmdd 工具 usePAM 配置
1、默认在部署securecmdd工具后,在配置文件securecmdd_config 中配置参数 usePAM=yes,在
有的系统主机环境,会导致securecmd客户端连接失败
2、配置总结
对于usePAM=yes的配置,会影响到sshd及securecmdd服务的连接,相关具体资料可以查看网
上关于PAM认证的介绍。PAM 即插入式验证模块 (Pluggable Authentication Module)
PAM 模块是按模块类型归类的。任何给定的模块至少要实现四种模块类型功能之一
1、验证模块(auth):用于验证用户或设置,销毁凭证
2、帐户管理模块(account): 将执行与访问、帐户及凭证有效期、密码限制规则等有关的操作
3、会话管理模块(session): 用于初始化和终止会话
4、密码管理模块(password):将执行与密码更改,更新有关的操作
十二、集群 securecmdd 相关进程
1、sys_securecmdd进程
sys_securecmdd: /home/kingbase/cluster/install/kingbase/bin/sys_securecmdd -f /etc/.kes/securecmdd_config
2、sys_securecmdd启动任务
*/1 * * * * root /home/kingbase/cluster/install/kingbase/bin/sys_HAscmdd.sh crond_start >> /home/kingbase/cluster/install/kingbase/log/sys_securecmdd_start.log 2>&1