postgresql 数据库 等保审计 遇到的问题与办法 (整理)
Posted yang_z_1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了postgresql 数据库 等保审计 遇到的问题与办法 (整理)相关的知识,希望对你有一定的参考价值。
postgresql 数据库 等保审计 遇到的问题与办法 (整理)
文章目录
前言
最近工作老是碰到需要对数据库进行等保测评 ,我在次整理一次。
1. 数据库未启用鉴别信息检查
开启强密码判断,需要统一改一次密码,建议开启passwordcheck.so模块
密码复杂度模块配置:
passwordcheck.so模块可以实现密码复杂度要求,此模块可以检查密码,如果密码太弱,他会拒绝连接
创建用户或修改用户密码时,强制限制密码的复杂度,限制密码不能重复使用
1.首先修改密码 ,把密码改成强密码
alter role postgres with password ‘new password’;
2.修改参数shared_preload_libraries为‘$libdir/passwordcheck’
2. 数据库未配置密码使用期限
方法一:
select * from pg_shadow;
修改valuntil 字段。
方法二: navicat 上修改
3.数据库未实现登录超时自动退出
根据业务需求修改参数
idle_in_transaction_session_timeout
终止开启事务但空闲时间超过指定持续时间(以毫秒为单位)的任何会话。
这样可以释放该会话持有的所有锁,并重新使用连接插槽;它还允许vacuum仅对该事务可见的元组。
默认值0禁用此功能。
connect_timeout
最大等待连接时间,以秒为单位(以十进制整数形式编写,例如10)。零,负数或未指定意味着无限期等待。
允许的最小超时为2秒,因此将值1解释为2。
此超时分别适用于每个主机名或IP地址。例如,如果指定两个主机且connect_timeout为5,则如果5秒钟内未建立任何连接,则每个主机都将超时,因此等待连接所花费的总时间可能最多为10秒。
我这边是把idle_in_transaction_session_timeout=30000.
4.数据库安全审计功能不完善
1.建议开启log_connections、log_disconnections 实现对用户登入、登出的记录
2.建议messages至少为info级别
log_min_messages (string)
控制写到数据库日志文件中的消息的级别。合法的取值是DEBUG5、DEBUG4、DEBUG3、DEBUG2、DEBUG1、INFO、NOTICE、WARNING、ERROR、 LOG、FATAL和PANIC,每个级别都包含排在它后面的所有级别中的信息。级别越低,数据库运行日志中记录的消息就越少。默认值是NOTICE。只有超级用户才能修改这个参数。只有超级用户才能设置这个参数。
5. 数据库日志保存时间不足六个月(当前为一周)
修改
log_filename = ‘postgresql-%j.log’
6.数据库终端接入地址未限制
listen_addresses (string)
这个参数只有在启动数据库时,才能被设置。它指定数据库用来监听客户端连接的TCP/IP地址。默认是值是* ,表示数据库在启动以后将在运行数据的机器上的所有的IP地址上监听用户请求(如果机器只有一个网卡,只有一个IP地址,有多个网卡的机器有多个 IP地址)。可以写成机器的名字,也可以写成IP地址,不同的值用逗号分开,例如,’server01’, ’140.87.171.49, 140.87.171.21’。如果被设成localhost,表示数据库只能接受本地的客户端连接请求,不能接受远程的客户端连接请求。
修改postgres的系统文件pg_hba.conf 文档
添加服务器ip限制
ip | 限制 |
---|---|
0.0.0.0/0 | 无限制 |
10.0.0.0/8 | 允许以10.开头的ip访问 |
10.10.0.0/16 | 允许以10.10.. 开头的ip访问 |
10.10.10.0/24 | 允许以10.10.10.* 的ip访问 |
10.10.10.100/32 | 只允许10.10.10.100的ip访问 |
重启服务器
systemctl stop postgresql-11
systemctl start postgresql-11
以上是关于postgresql 数据库 等保审计 遇到的问题与办法 (整理)的主要内容,如果未能解决你的问题,请参考以下文章