postgresql数据库进行等保测评(审计) 需要修改的参数

595 阅读3分钟

本文已参与「新人创作礼亅活动,一起开启掘金创作之路。

postgresql数据库进行等保测评(审计) 需要修改的参数


前言

本周因需要对postgresql数据库 进行等保测评 修改了部分参数,记录如下 :(部分数据已做保密处理)


一、身份鉴别

1.身份标识和鉴别

1. 数据库通过账号密码登录?密码长度多少位、复杂度是(大写字母、小写字母、数字、特殊字符)几种组合,通过什么函数或机制实现的,是否强制多久更换一次密码(通过技术机制还是管理制度方式)

解决办法 针对这个测评项,postgresql采用用户名+口令的方式进行身份标识和鉴别, 首先我们需要确认用户当前口令的组成情况,来判断当前口令是否达到等保要求,一般要求口令由大写字母、小写字母、数字、特殊字符中的三种组成,且长度8位以上。 密码复杂度模块配置: 在postgresql数据库中可以通过 passwordcheck.so模块来实现密码复杂度要求,此模块可以检查密码,如果密码太弱,他会拒绝连接 创建用户或修改用户密码时,强制限制密码的复杂度,限制密码不能重复使用 修改参数shared_preload_libraries为‘$libdir/passwordcheck’ 在这里插入图片描述

重启服务后生效

2. 数据库是否配置相应策略:连续尝错几次后锁定账户或IP多长时间;登录连接超时多长时间自动退出?

目前pg数据库好像不支持此功能(知道的请告知,谢谢) 2.1查询密码到期时间 select * from pg_shadow ;--查看valuntil字段

在这里插入图片描述 通过Navicat管理工具这里可以直接设置 在这里插入图片描述

3. 通过什么方式或工具远程连接数据库来防止鉴别信息被窃听;

在postgresql.conf文件下操作 把ssl改为off 在这里插入图片描述 pg_hba文件下修改 把认证方式改为md5加密 在这里插入图片描述

加密方式解释
md5:是常用的密码认证方式,如果你不使用ident,最好使用md5。密码是以md5形式传送给数据库,较安全,且不需建立同名的操作系统用户。
-------------
password:是以明文密码传送给数据库,建议不要在生产环境中使用。
-------------
trust:是只要知道数据库名就不需要密码或ident就能登录,建议不要在生产环境中使用。
-------------
reject:是拒绝认证。

4. 登录数据库采用什么方式进行身份鉴别

postgresql采用用户名+口令的方式进行身份标识和鉴别 这个可以在Navicat管理工具上查看


二、访问控制

1. 数据库分配了几个登录账号,不同账号对应的权限是什么,是否实现权限分离

这个在Navicat管理工具上面可以查看 在这里插入图片描述 在这里插入图片描述

2. 是否存在默认账户postgres,若存在默认账户的话是否修改默认口令

这个没啥可说的 ,修改一下密码就行

3. 数据库都有哪些账户,是否存在多余、过期的账户(如测试账户test),每个实际运维人员就有一个账户还是所有运维人员均使用同一个账户,

这个也是在Navicat管理工具上面可以查看 ,根据实际回答就行


三、安全审计

1. 数据库是否开启相关审计功能,能对用户行为和安全事件进行审计;

在postgresql.conf文件下操作 logging_collector = on 在这里插入图片描述

2. 审计记录内容包括哪些

参数 log_statement

log_statement参数控制记录哪些SQL语句。有效值是none(off),ddl,mod和all(所有语句)。
ddl记录所有数据定义语句,例如CREATEALTERDROP语句。
mod记录所有ddl语句,以及数据修改语句,如INSERTUPDATEDELETETRUNCATECOPY FROM。
默认值是none。只有超级用户可以更改此设置。

在这里插入图片描述

总结

这是我根据对方提供的等保测评对pg数据库做了一定的修改,如果有不对的地方请指出,谢谢