2024年5月1日发(作者:)

PostgreSQL-1

空口令账号

5

用户口令不能为空,避免账号被他人盗用

1.使用psql工具或pgAdmin工具连接到数据库

2.登录成功后执行“select count(*) from pg_shadow where

检测方法 passwd is null or passwd ='md5' || md5(usename ||

usename);”,查看系统是否存在空口令或者密码与用户名相同的

账号

1.当结果为0时合规,表示不存在空口令或者密码与用户名相同的

合规判定条件 账号

2.当结果不为0时不合规

编码

名称

权重

风险描述

检查结果 截图

采用psql工具,以数据库管理员用户登录数据库,执行:

select usename ,passwd from pg_shadow where passwd is null

or passwd ='md5' || md5(usename || usename);

加固方案

查看口令为空的账号信息,手动删除空口令账户或者添加强口令

alter user SCOTT password 'tiger';

即可修改SCOTT用户口令为tiger

编码 PostgreSQL-2

名称 口令自动加密配置

权重 3

1.使用psql工具或pgAdmin工具连接到数据库

检测方法

2.登录成功后执行“show password_encryption;”

1.当结果为on时合规,表示口令自动加密

合规判定条件

2.当结果为off时不合规

检查结果 截图

加固方案

采用psql工具,以数据库管理员用户登录数据库,执行:

ALTER DATABASE postgres SET password_encryption = 'on';

postgres为数据库名, 则数据库会自动加密用户账户口令

修改后对新会话生效,当前连接会话不生效

编码 PostgreSQL-3

名称 口令失效时间

权重 2

1.使用psql工具或pgAdmin工具连接到数据库

检测方法 2.登录成功后执行“select count(*) from pg_shadow where

valuntil is null ; ”

1.当结果为0时合规,表示账号均配置了口令失效时间

合规判定条件

2.当结果不为0时不合规

检查结果 截图

采用psql工具,以数据库管理员用户登录数据库,执行:

update pg_authid set rolvaliduntil = '2016-7-29

14:50:43+08' where rolname ='scott' ;

加固方案

即可设置scott账户口令失效时间为2016年7月29日14点50分

43秒失效,日期时区为东八区。时区若不指定则采用数据库user

级参数TimeZone里的设置

编码 PostgreSQL-4

名称 账户验证超时配置

权重 1

1.使用psql工具或pgAdmin工具连接到数据库

检测方法

2.登录成功后执行“show authentication_timeout;”

1.当结果小于等于60时合规,表示验证超过60秒则超时关闭

合规判定条件

2.当结果大于60时不合规

检查结果 截图

加固方案

1.备份数据库配置文件,用数据库的系统账户执

行“cp -a /var/lib/pgsql/data/

/var/lib/pgsql/data/”

2.编辑配置文件,找到authentication_timeout所在的行,并修