一篇实用的GaussDB数据库安全加固文档

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目录。

操作风险等级

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值