1.操作系统特殊配置
1.1配置安全SSH协议
配置项名称 | 配置安全SSH协议 |
检查方法 | grep -P '^[^#]*Protocol\s*' /etc/ssh/sshd_config |
操作步骤 | 以root身份在/etc/ssh/sshd_config文件中配置参数Protocol,设置之后需要重启SSH服务生效。 su - root vim /etc/ssh/sshd_config service sshd restart #重启SSH服务 |
操作风险等级 | 中 |
1.2 配置安全 SSH 服务允许组
配置项名称 | 配置安全SSH服务允许组 |
检查方法 | grep -P '^[^#]*AllowGroups\s*' /etc/ssh/sshd_config |
操作步骤 | 以root身份在/etc/ssh/sshd_config文件中配置参数AllowGroups,设置完成之后需要重启SSH服务生效。 su - root vim /etc/ssh/sshd_config service sshd restart #重启SSH服务 |
操作风险等级 | 中 |
1.3配置安全SSH协议服务root 用户允许登录方式
配置项名称 | 配置安全SSH协议服务root 用户允许登录方式 |
检查方法 | grep -P '^[^#]*Protocol\s*' /etc/ssh/sshd_config |
操作步骤 | 以root身份在/etc/ssh/sshd_config文件中配置参数PermitRootLogin,设置完成之后需要重启SSH服务。 su - root vim /etc/ssh/sshd_config service sshd restart #重启SSH服务 |
操作风险等级 | 中 |
1.4配置安全SSH协议服务监听IP地址
配置项名称 | 配置安全SSH协议服务监听IP地址 |
检查方法 | grep -P '^[^#]*PermitRootLogin\s*' /etc/ssh/sshd_config |
操作步骤 | 以root身份在/etc/ssh/sshd_config文件中配置参数PermitRootLogin,设置完成之后需要重启SSH服务。 su - root vim /etc/ssh/sshd_config service sshd restart #重启SSH服务 |
操作风险等级 | 中 |
1.5配置安全SSH协议服务密码认证方式
配置项名称 | 配置安全SSH协议服务密码认证方式 |
检查方法 | grep -P '^[^#]*PasswordAuthentication\s*' /etc/ssh/sshd_config |
操作步骤 | 以root身份在/etc/ssh/sshd_config文件中配置参数PasswordAuthentication,设置之后需要重启SSH服务生效。 su - root vim /etc/ssh/sshd_config service sshd restart #重启SSH服务 |
操作风险等级 | 中 |
1.6配置安全SSH服务互信IP访问权限
配置项名称 | 配置安全SSH服务互信IP访问权限 |
检查方法 | cat ~/.ssh/authorized_keys |
操作步骤 | 以用户账户身份在~/.ssh/authorized_keys文件中配置from字段。 vim ~/.ssh/authorized_keys 配置内容见如下示例(在建立互信后检查该文件中,是否配置有from字段,如没有,请添加需要使用互信的主机IP和主机名称): from="10.180.40.100,10.180.40.101,10.180.40.102,plat1,plat2,plat3" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArMU/cd5QDIkA/ trmLpfj1W1zBk2pW8zyDjMEvc7JiAdtOlsOIFyRpdmdMv39WuQfZ6G/ +zbAc9JJwYLP8/3aYgkNSJ10+c4VcyQJ8jBsLJyKLW/Pt2t3IlY+zG35UUyhyDo9P8Bt/ uZ0d1XbgRrWuVrO8idWIFncallJYrmaTvd5b7CULKMSrFI+CMys9FLYOk5lGHVdQSQUE0uNor/ k63plsyyL7+fVqG2ZDRbB77nVC+ah5PMfogBym24g1ouiuxQPIihOTt2dDPeqnnWpC0/WzhB/PjIoeHCK +HbGFg92eWdi7CJexb7H6OiG/Ylvej2ED4yc8WqEnCSZmWQDow== xijie_trunk@plat1 |
操作风险等级 | 中 |
1.7修改数据库安装的omm密码
配置项名称 | 修改数据库安装的omm密码 |
检查方法 | 使用默认密码登录时登录失败,使用新设置密码时登录成功 |
操作步骤 | 以root身份修改数据库安装用户omm密码。 |
操作风险等级 | 中 |
2.数据库文件限制
2.1限制home、data目录权限
配置项名称 | 限制home、data目录权限 |
检查方法 | find ${GAUSSHOME} -prune\( ! -user ${GAUSSUSER} -o ! -group${GAUSSGROUP} -o -perm/ g=rwx,o=rwx \) find${GAUSSDATA} -prune \( ! -user${GAUSSUSER} -o ! -group ${GAUSSGROUP} -o -perm / g=rwx,o=rwx \) |
操作步骤 | chmod 0700 ${GAUSSHOME} chmod 0700 ${GAUSSDATA} 环境变量{GAUSSUSER}和{GAUSSGROUP}需要配置为集群的安装用户和用户组 |
操作风险等级 | 中 |
2.1限制postgresql.conf、pg_hba.conf文件权限
配置项名称 | 限制postgresql.conf、pg_hba.conf文件权限 |
检查方法 | find ${GAUSSDATA}/postgresql.conf \( ! -user ${GAUSSUSER} -o ! -group ${GAUSSGROUP} -o -perm / u=x,g=rwx,o=rwx \) find ${GAUSSDATA}/pg_hba.conf \( ! -user ${GAUSSUSER} -o ! -group ${GAUSSGROUP} -o -perm / u=x,g=rwx,o=rwx \) |
操作步骤 | chmod 0600 {GAUSSDATA}/postgresql.conf chmod 0600 {GAUSSDATA}/pg_hba.conf 其中GAUSSDATA为CN以及DN的data目录。环境变量{GAUSSUSER}和{GAUSSGROUP}需要配置为集群的安装用户和用户组 |
操作风险等级 | 中 |
3.连接设置
3.1监听地址不允许包括*或 0.0.0.0
配置项名称 | 监听地址不允许包括*或 0.0.0.0 |
检查方法 | SELECT name,setting FROM pg_settings WHERE name = 'listen_addresses' AND (setting = '*' OR setting = '0.0.0.0'); |
操作步骤 | 在postgresql.conf配置文件中修改参数listen_addresses为“localhost”,然后重启数据库。 vim ${GAUSSDATA}/postgresql.conf pgs_ om-t stop pgs_ om-t start 其中GAUSSDATA为CN的data目录。 |
操作风险等级 | 中 |
3.2端口使用非默认端口
配置项名称 | 端口使用非默认端口 |
检查方法 | SELECT name,setting FROM pg_settings WHERE name = 'port' AND setting = '25308'; |
操作步骤 | 在postgresql.conf配置文件中修改服务器监听端口参数port为非25308的值,然后重启数据库。 vim ${GAUSSDATA}/postgresql.conf pgs_ om-t stop pgs_ om-t start 其中GAUSSDATA为CN的data目录。 |
操作风险等级 | 中 |
3.3配置数据库最大并发连接数
配置项名称 | 配置数据库最大并发连接数 |
检查方法 | SELECT name,setting FROM pg_settings WHERE name = 'max_connections'; |
操作步骤 | 在postgresql.conf配置文件中修改参数max_connections为800,然后重启数据库。 vim ${GAUSSDATA}/postgresql.conf pgs_ om-t stop pgs_ om-t start 其中GAUSSDATA为CN的data目录。 |
操作风险等级 | 中 |
3.4配置系统管理员使用的连接数
配置项名称 | 配置系统管理员使用的连接数 |
检查方法 | SELECT name,setting FROM pg_settings WHERE name='sysadmin_reserved_connections'; |
操作步骤 | 在postgresql.conf配置文件中修改参数sysadmin_reserved_connections为3,然后重启数据库。 vim ${GAUSSDATA}/postgresql.conf pgs_ om-t stop pgs_ om-t start 其中GAUSSDATA为CN的data目录。 |
操作风险等级 | 中 |
4.安全认证设置
4.1配置客户端认证超时时间
配置项名称 | 配置客户端认证超时时间 |
检查方法 | SELECT name,setting FROM pg_settings WHERE name = 'authentication_timeout'; |
操作步骤 | 在postgresql.conf配置文件中修改参数authentication_timeout为1min,然后重启数据库。 vim ${GAUSSDATA}/postgresql.conf pgs_ om-t stop pgs_ om-t start 其中GAUSSDATA为CN的data目录。 |
操作风险等级 | 中 |
4.2配置SSL协议
配置项名称 | 配置SSL协议 |
检查方法 | SELECT name,setting FROM pg_settings WHERE name='ssl'; |
操作步骤 | 在postgresql.conf配置文件中修改参数ssl为on,然后重启数据库。 vim ${GAUSSDATA}/postgresql.conf pgs_ om-t stop pgs_ om-t start 其中GAUSSDATA为CN的data目录。 |
操作风险等级 | 中 |
4.3配置SSL协议加密算法
配置项名称 | 配置SSL协议加密算法 |
检查方法 | SELECT name,setting FROM pg_settings WHERE name='ssl_ciphers'; |
操作步骤 | 在postgresql.conf配置文件中修改参数ssl_ciphers为ALL,然后重启数据库,配置参数ssl_ciphers为ALL,GaussDB A默认会选择AES256-SHA。 vim ${GAUSSDATA}/postgresql.conf pgs_ om-t stop pgs_ om-t start 其中GAUSSDATA为CN的data目录。 |
操作风险等级 | 中 |
5.用户身份鉴别配置和访问控制
5.1配置密码复杂度检查
配置项名称 | 配置密码复杂度检查 |
检查方法 | SELECT name,setting FROM pg_settings WHERE name='password_policy' and setting !=1; |
操作步骤 | gs_guc reload-Z coordinator -D ${BIGDATA_DATA_HOME}/mppdb/data1/coordinator -c "password_policy=1" |
操作风险等级 | 中 |
5.2配置密码存储加密方式
配置项名称 | 配置密码存储加密方式 |
检查方法 | SELECT name,setting FROM pg_settings WHERE name='password_encryption_type' and setting !=1; |
操作步骤 | gs_guc reload-Z coordinator -D ${BIGDATA_DATA_HOME}/mppdb/data1/coordinator -c "password_encryption_type=1" |
操作风险等级 | 中 |
5.3配置密码不可重用天数
配置项名称 | 配置密码不可重用天数 |
检查方法 | SELECT name,setting FROM pg_settings WHERE name='password_reuse_time'; |
操作步骤 | gs_guc reload-Z coordinator -D ${BIGDATA_DATA_HOME}/mppdb/data1/coordinator -c "password_reuse_time=60" |
操作风险等级 | 中 |
5.4配置登录失败尝试次数
配置项名称 | 配置登录失败尝试次数 |
检查方法 | SELECT name,setting FROM pg_settings WHERE name='failed_login_attempts'; |
操作步骤 | gs_guc reload-Z coordinator -D ${BIGDATA_DATA_HOME}/mppdb/data1/coordinator -c "failed_login_attempts=10" |
操作风险等级 | 中 |
5.5配置账户锁定后自动解锁时间
配置项名称 | 配置账户锁定后自动解锁时间 |
检查方法 | SELECT name,setting FROM pg_settings WHERE name='password_lock_time'; |
操作步骤 | gs_guc reload-Z coordinator -D ${BIGDATA_DATA_HOME}/mppdb/data1/coordinator -c " password_lock_time=1" |
操作风险等级 | 中 |
6.权限控制
6.1回收 PUBLIC 角色拥有的 CREATE 权限
配置项名称 | 回收 PUBLIC角色拥有的 CREATE权限 |
检查方法 | SELECT CAST(has_schema_privilege('public','public','CREATE') AS TEXT); |
操作步骤 | REVOKE CREATE ON SCHEMA PUBLIC FROM public; |
操作风险等级 | 中 |
6.2所有对象权限不允许授予public
配置项名称 | 配所有对象权限不允许授予public |
检查方法 | SELECT relname,relacl FROM pg_class WHERE CAST(relacl AS TEXT) LIKE '%,=%}' OR CAST(relacl AS TEXT) LIKE '{=%}'; |
操作步骤 | REVOKE ALL ON <OBJECT_NAME>FROM public; |
操作风险等级 | 中 |
6.3开启三权分离配置
配置项名称 | 开启三权分离配置 |
检查方法 | SELECT name,setting FROM pg_settings WHERE name = 'enableSeparationOfDuty' and setting!='on'; |
操作步骤 | 在postgresql.conf配置文件中修改参数enableSeparationOfDuty为on,然后重启数据库。 vim ${GAUSSDATA}/postgresql.conf pgs_ om-t stop pgs_ om-t start 其中GAUSSDATA为CN的data目录。 |
操作风险等级 | 中 |
7.数据库审计
7.1开启数据库审计
配置项名称 | 开启数据库审计 |
检查方法 | SELECT name,setting FROM pg_settings WHERE name = 'audit_enabled' and setting!='on'; |
操作步骤 | 在postgresql.conf配置文件中修改参数audit_enabled为on,然后重启数据库。 vim ${GAUSSDATA}/postgresql.conf pgs_ om-t stop pgs_ om-t start 其中GAUSSDATA为CN的data目录。 |
操作风险等级 | 中 |
7.2开启登录注销审计
配置项名称 | 开启登录注销审计 |
检查方法 | SELECT name,setting FROM pg_settings WHERE name = 'audit_login_logout'; |
操作步骤 | gs_guc reload-Z coordinator -D ${BIGDATA_DATA_HOME}/mppdb/data1/coordinator -c "audit_login_logout =7" |
操作风险等级 | 中 |
7.3开启数据库启动、停止、恢复和切换审计
配置项名称 | 开启数据库启动、停止、恢复和切换审计 |
检查方法 | SELECT name,setting FROM pg_settings WHERE name = 'audit_database_process'; |
操作步骤 | gs_guc reload-Z coordinator -D ${BIGDATA_DATA_HOME}/mppdb/data1/coordinator -c "audit_database_process =1" |
操作风险等级 | 中 |
7.4开启数据库锁定和解锁审计
配置项名称 | 开启数据库锁定和解锁审计 |
检查方法 | SELECT name,setting FROM pg_settings WHERE name = 'audit_user_locked'; |
操作步骤 | gs_guc reload-Z coordinator -D ${BIGDATA_DATA_HOME}/mppdb/data1/coordinator -c "audit_user_locked =1" |
操作风险等级 | 中 |
7.5开启权限授予和回收审计
配置项名称 | 开启权限授予和回收审计 |
检查方法 | SELECT name,setting FROM pg_settings WHERE name = 'audit_grant_revoke'; |
操作步骤 | gs_guc reload-Z coordinator -D ${BIGDATA_DATA_HOME}/mppdb/data1/coordinator -c "audit_grant_revoke =1" |
操作风险等级 | 中 |
7.6对数据库对象的增加、删除、修改进行审计
配置项名称 | 对数据库对象的增加、删除、修改进行审计 |
检查方法 | SELECT name,setting FROM pg_settings WHERE name = 'audit_system_object'; |
操作步骤 | gs_guc reload-Z coordinator -D ${BIGDATA_DATA_HOME}/mppdb/data1/coordinator -c "audit_system_object =7" |
操作风险等级 | 中 |
7.7配置日志审计文件最小保存时间
配置项名称 | 配置日志审计文件最小保存时间 |
检查方法 | SELECT name,setting FROM pg_settings WHERE name = 'audit_file_remain_time'; |
操作步骤 | 在postgresql.conf配置文件中修改参数audit_file_remain_time为180天,然后重启数据库。 vim ${GAUSSDATA}/postgresql.conf pgs_ om-t stop pgs_ om-t start 其中GAUSSDATA为CN的data目录。 |
操作风险等级 | 中 |
7.8开启日志收集器
配置项名称 | 开启日志收集器 |
检查方法 | SELECT name,setting FROM pg_settings WHERE name='logging_collector' AND setting != 'on'; |
操作步骤 | 在postgresql.conf配置文件中修改参数logging_collector为on,然后重启数据库。 vim ${GAUSSDATA}/postgresql.conf pgs_ om-t stop pgs_ om-t start 其中GAUSSDATA为CN的data目录。 |
操作风险等级 | 中 |
7.9配置日志路径
配置项名称 | 配置日志路径 |
检查方法 | SELECT name,setting FROM pg_settings WHERE name='log_directory'; |
操作步骤 | 在postgresql.conf配置文件中修改参数log_directory为pg_log,然后重启数据库。 vim ${GAUSSDATA}/postgresql.conf pgs_ om-t stop pgs_ om-t start 其中GAUSSDATA为CN的data目录。 |
操作风险等级 | 中 |
7.10开启用户登录时日志记录功能
配置项名称 | 开启用户登录时日志记录功能 |
检查方法 | SELECT name,setting FROM pg_settings WHERE name='log_connections' AND setting !='on'; |
操作步骤 | 在postgresql.conf配置文件中修改参数log_connections为on,然后重启数据库。 vim ${GAUSSDATA}/postgresql.conf pgs_ om-t stop pgs_ om-t start 其中GAUSSDATA为CN的data目录。 |
操作风险等级 | 中 |
7.11开启用户注销时日志记录功能
配置项名称 | 开启用户注销时日志记录功能 |
检查方法 | SELECT name,setting FROM pg_settings WHERE name='log_disconnections' AND setting !='on'; |
操作步骤 | 在postgresql.conf配置文件中修改参数log_disconnections为on,然后重启数据库。 vim ${GAUSSDATA}/postgresql.conf pgs_ om-t stop pgs_ om-t start 其中GAUSSDATA为CN的data目录。 |
操作风险等级 | 中 |