PostgreSQL数据库安全加固

数据已经成为了一个企业发展的基石,数据的安全至关重要,近年来,发生了多起,数据被删除的案例。因此数据库的安全策略相当重要,本文列举了一些常见的安全加固方法。

1、设置PostgreSQL数据库实例的最大连接数,并给超级用户预留足够的连接

Alter system set max_connections to 2000;Alter system set superuser_reserved_connections to 20;注意:普通用户的最大连接数实际为:2000-20 =1980;参数修改后,需要重启数据库生效

2、为数据库设置最大允许的连接数

Alter database dbname with connection limit 1000;

3、修改数据库实例的默认监听端口

查看PG使用的监听端口:PostgreSQL数据库安全加固设置数据库监听端口:Alter system set port to 6789;//注意需要使用超级用户修改,重启生效

4、为应用用户设置最大连接数

Max_connections设置PG实例的最大连接数,还可以为单独用户设置最大连接数Create user weiqiang password ‘weiqiang’ connection limit 300;或者Alter user weiqiang wiyh connection limit 300;

5、自定义PG超级管理员

在初始化数据库时,指定超级管理员:PostgreSQL数据库安全加固PostgreSQL数据库安全加固

6、设置用户角色的密码的导入日期

PostgreSQL数据库安全加固尝试进行登录报错信息如下:PostgreSQL数据库安全加固

7、不使用默认的postgres数据库

在数据库集群初始化完毕后,不建议保留postgres数据,建议使用一个新的空的数据库进行代替,避免人为非法尝试登录默认数据库:Create database empty_used;\c empty_usedDrop database postgres;

8、修改用户的默认密码加密方式

新版本数据库建议用户密码加密方式设置为scram-sha-256修改用户加密方式PostgreSQL数据库安全加固或者在数据库实例初始化时指定密码加密方式:Initdb -A scram-sha-256或者Alter system set password_encryption to ‘scram-sha-256’;

9、设置PostgreSQL实例的监听地址

PostgreSQL监听地址默认为localhost,不建议使用*或0.0.0.0建议修改为:应用的ip地址Alter system set listen_addresses to ‘192.168.21.142,192,168.21.144’;重启生效

10、配置pg_hba.conf客户端认证

Local all all scram-sha-256 ##本地登录使用密码验证,禁止设置为trust认证Host all postgres 0.0.0.0/0 reject ##禁止超级用户远程登录Host all all 192.168.21.142/32 scram-sha-256Host replication repuser 192.168.21.144/32 scram-sha-256

11、设置用户密码复杂度策略

不建议用户和密码相同;建议使用大小写字母及特殊字符混合,且不能小于一定的长度。建议使用passwordcheck进行密码复杂度检查。在CREATE USER或ALTER USER设置用户密码时会自动触发密码复杂度检查。Vi $PGDATA/postgresql.confShared_preload_libraries=’passwordcheck’;Passwordcheck.level=’true’;举例:PostgreSQL数据库安全加固PostgreSQL数据库安全加固

12、用户权限设置

用户权限设置原则:应用用户权限越小越好;够用就好建议1:数据库删除public模式,或者回收所有用户拥有的public模式的权限Revoke all privileges on schema public from PUBLIC;建议2:设置应用用户的search_path to ‘app_user_schema’;不建议将该shema的所有权限授予引用用户

13、设置idle_in_transaction_session_timeout参数,避免长时间的空闲未提交的事务导致表膨胀14、建议设置statement_timeout参数,避免SQL执行时间过长,占用过多资源,建议在会话中设置15、建议安装pg_stat_statements插件,捕捉性能低下的SQL进行优化,提高系统响应。16、PostgreSQL数据库版本每个季度发行一个小版本,因此相关BUG、漏洞会较快的修复,建议根据需要定期进行版本升级。

来源:IT那活儿,本文观点不代表自营销立场,网址:https://www.zyxiao.com/p/126142

发表评论

登录后才能评论
侵权联系
返回顶部