文章目录
- 前言:什么是等保测评`
- 一、数据库基本测试内容
- 二、操作步骤
- 1.修改数据库配置文件
- 2.配置SSL证书
- 修改SYSTEM密码
- 修改安全员SSO密码
- 修改审计员SAO密码
- 修改sys_hba文件
- 配置审计规则
- 审计转储
- 验证等保内容
- 验证SYSTEM密码
- 验证安全员SSO密码
- 验证审计员SAO密码
- 查看密码复杂度
- 查看登录失败次数及锁定时间
- 查看闲置连接的断开时间
- 查看用户密码过期时间
- 验证SSL连接是否开启
- 验证设计功能是否开启
- 查看审计日志
- 总结
前言:什么是等保测评`
全称是信息安全等级保护测评,是经公安部认证的具有资质的测评机构,依据国家信息安全等级保护规范规定,受有关单位委托,按照有关管理规范和技术标准,对信息系统安全等级保护状况进行检测评估的活动。
一、数据库基本测试内容
- 数据库密码复杂度
- 数据库登录错误限制
- 数据库闲置链接超时时间
- 数据库基础账号密码修改
- 数据库SSL安全配置
- 数据库审计
- 审计日志转储
二、操作步骤
1.修改数据库配置文件
切换到kingbase用户下
su kingbase
修改数据库data目录下kiingbase.conf文件,找到
shared_preload_libraries = 'repmgr,liboracle_parser, synonym, plsql, force_view, ,plugin_debugger, plsql_plugin_debugger, plsql_plprofiler, ora_commands,kdb_ora_expr, sepapower, dblink, sys_kwr, sys_ksh, sys_spacequota, sys_stat_statements, backtrace, kdb_utils_function'
在最后添加参数passwordcheck,identity_pwdexp,sso_update_user,sysaudit,如下所示
shared_preload_libraries = 'repmgr,liboracle_parser, synonym, plsql, force_view, ,plugin_debugger, plsql_plugin_debugger, plsql_plprofiler, ora_commands,kdb_ora_expr, sepapower, dblink, sys_kwr, sys_ksh, sys_spacequota, sys_stat_statements, backtrace, kdb_utils_function,passwordcheck,identity_pwdexp,sso_update_user,sysaudit'
* 这里注意:一定要修改kingbase.con在es_rep.conf文件中添加无效
修改数据库data目录下es_rep.conf文件
* 这里注意:所有节点都需修改
log_destination='stderr'
logging_collector=on
log_directory='sys_log'
log_filename='kingbase-%w.log'
log_file_mode=0600
log_truncate_on_rotation=on
log_rotation_age=1d
log_rotation_size=1000MB
log_checkpoints=on
log_connections=on
log_disconnections=on
log_line_prefix='%t %d %u %p %x'
log_statement='mod'
lc_messages='C'
passwordcheck.enable=on #开启密码复杂度验证
passwordcheck.password_length =8 #密码最小长度
passwordcheck.password_condition_letter=2 #至少包含的字母数
passwordcheck.password_condition_digit = 2 #至少包含的数字数
passwordcheck.password_condition_punct = 2 #至少包含的特殊字符数
identity_pwdexp.password_change_interval=30 #数据库用户密码更新周期为30天
password_encryption=scram-sha-256 #数据库用户密码加密方式 默认值为scram-sha-256 可选值md5
identity_pwdexp.error_user_connect_times=10 #用户登录最大错误次数
passwordcheck.level = 'true' #数据库密码需要特殊字符
identity_pwdexp.error_user_connect_interval = 15 #用户登录失败次数大于最大次数后锁定时间为15分钟
client_idle_timeout=15min #闲置链接15分后自动断开
log_min_duration_statement=1000
sso_update_user.sso_update_user_enable = true #开启三权分立否
sysaudit.enable=on #开启数据库审计
ssl = on #开启SSL安全链接
ssl_ca_file = 'root.crt' #SSL数据库证书配置 默认读取data目录下
2.配置SSL证书
上传SSL证书包到/home/kingbase目录下(如图)
解压SSL证书包
su kingbase
unzip Cert.zip
得到如下文件
* server.crt,server.key,root.crt 为数据库服务器端证书文件,其余为客户端证书文件
chown -R kingbase.kingbase Cert
chmod -R 700 Cert
cd Cert
#配置数据证书文件到data目录
cp root.crt server.key server.crt /home/kingbase/cluster/KingbaseCluster/KingbaseCluster/kingbase/data/
#配置客户端连接证书文件默认读取用户目录下.kingbase目录
cd ..
mv Cert /home/kingbase/.kingbase
如图:
到这里需要重启数据库集群
切换到数据库bin目录下并重启集群
cd /home/kingbase/cluster/KingbaseCluster/KingbaseCluster/kingbase/bin
./sys_monitor.sh restart
如图
修改SYSTEM密码
我们的旧密为123456需修改为kingbase@123.bj
./ksql -U system test
进入数据库后
alter user system with password 'kingbase@123.bj';
\q #退出数据库
如图
把密码进行base64位加密
echo 'kingbase@123.bj' | base64
如图
拷贝密码串后,修改all_nodes_tools.conf的密码串
* 这里注意:所有节点都需修改
cd /home/kingbase/cluster/KingbaseCluster/KingbaseCluster/kingbase/etc
vi all_nodes_tools.conf
如图(修改红色部分):
修改为
修改安全员SSO密码
登录数据库
./ksql -U sso test #默认密码为12345678ab
进入数据库后修改密码
alter user sso with password 'kingbase@123.zg';
\q #退出数据库
如图
修改审计员SAO密码
./ksql -U sao test #默认密码为12345678ab
进入数据库后修改密码
* 这里注意: sysaudit.audit_table_password必须修改否则无法记录审计日志
alter user sao with password 'kingbase@123.nn';
alter system set sysaudit.local_sao_password ='kingbase@123.nn';
alter system set sysaudit.audit_table_password ='kingbase@123.nn';
select sys_reload_conf();
\q #退出数据库
./sys_encpwd -H 127.0.0.1 -P 54321 -D security -U sao -W 'kingbase@123.nn'
如图
修改sys_hba文件
* 这里注意:所有节点都需修改
cd /home/kingbase/cluster/KingbaseCluster/KingbaseCluster/kingbase/data/
vi sys_hba.conf
如图所示
第一行修改为
local all all scram-sha-256
第三行修改为
hostssl all all 0.0.0.0/0 scram-sha-256 clientcert=1
* 这里注意:两行中scram-sha-256位置为加密方式,保持原样不变
* 这里注意:0.0.0.0/0 为接受所有IP 可以根据要求自行修改放行的IP
如图所示:
最后重启集群让配置生效
cd /home/kingbase/cluster/KingbaseCluster/KingbaseCluster/kingbase/bin
./sys_monitor.sh restart
配置审计规则
* 这里注意:开启审计日志会占用更多磁盘IO,内存,CPU预计占比50%,建议能不开启就别开启
cd /home/kingbase/cluster/KingbaseCluster/KingbaseCluster/kingbase/bin
./ksql -U sao test #默认密码为12345678ab
执行数据库语句
select sysaudit.set_audit_stmt('CREATE TABLE','system', null, null);
select sysaudit.set_audit_stmt('alter table', 'system', null, null);
select sysaudit.set_audit_object('table', 'system', null, null);
审计转储
* 这里注意:审计转储中auditlog_dump_dir必须是真实的绝对路径
alter system set sysaudit.auditlog_dump_dir = '/home/kingbase/auditlog';
alter system set sysaudit.enable_auto_dump_auditlog = true;
select sys_reload_conf();
验证等保内容
验证SYSTEM密码
./ksql -U system test
验证安全员SSO密码
./ksql -U sso test
验证审计员SAO密码
./ksql -U sao test
查看密码复杂度
登录system用户
./ksql -U system test
执行
show passwordcheck.enable;
show passwordcheck.password_length;
show passwordcheck.password_condition_letter;
show passwordcheck.password_condition_digit;
show passwordcheck.password_condition_punct;
如图
查看登录失败次数及锁定时间
show identity_pwdexp.error_user_connect_times;
show identity_pwdexp.error_user_connect_interva;
如图
查看闲置连接的断开时间
show client_idle_timeout;
如图
查看用户密码过期时间
show identity_pwdexp.password_change_interval;
如图
验证SSL连接是否开启
登录system用户
./ksql -U system test -h127.0.0.1
验证设计功能是否开启
show sysaudit.enable;
查看审计日志
登录system用户
./ksql -U system test -h127.0.0.1
create table test_01(id integer);
insert into test_01 select generate_series(1,100);
使用审计员sao用户登录安全库security
./ksql -U sao security -h127.0.0.1
查看审计视图
select * from sysaudit_record_sao;
总结
提示:以上是本次R6集群修改等保的基本内容,后续会更新更多金仓数据库知识