PostgreSql数据库安全加固
1.确保通过“主机” TCP / IP套接字登录已正确配置
描述
大量的身份验证方法可用于使用
TCP / IP套接字,包括:
?信任
? 拒绝
?md5
?scram-sha-256
?密码
?gss
?sspi
?身份
?pam
?ldap
?半径
?证书
方法trust,password和ident不能用于远程登录。 方法md5是
最受欢迎,可以在加密和未加密会话中使用,但是
容易受到数据包重播攻击。 建议使用scram-sha-256
而不是md5。
使用gss,sspi,pam,ldap,radius和cert方法,但比md5更安全,
取决于外部认证过程/服务的可用性,因此
未包含在此基准测试中。
加固建议
在配置文件(pg_hba.conf)中如下配置
# TYPE DATABASE USER ADDRESS METHOD
host all postgres 127.0.0.1/32 scram-sha-256
配置文件路径可登录postgres数据库 show hba_file;进行查看
2.确保已禁用“ debug_print_plan”
描述
debug_print_plan设置启用打印每个已执行查询的执行计划。
这些消息在LOG消息级别发出。除非您另有指示
组织的日志记录策略,建议通过将其设置为off来禁用此设置。
加固建议
1.进入postgresql数据库,执行命令show debug_print_plan;
查看状态
2.执行命令
alter system set debug_print_plan = 'off';
select pg_reload_conf();
3.重复执行步骤1,查看状态是否为off(关闭) 请注意: 如果您的postgresql版本在9.3(或更早),请修改配置文件 postgresql.conf 中配置
debug_print_plan = 'off'
并重启
3.确保已禁用“ debug_print_rewrite”
描述
debug_print_rewrite设置允许为每个输出打印查询重写器输出
执行查询。这些消息在LOG消息级别发出。除非有指示
否则,根据您组织的日志记录策略,建议禁用此设置
通过将其设置为关闭
加固建议
1.进入postgresql数据库,执行命令 show debug_print_rewritten;
查看状态
2.执行命令
alter system set debug_print_rewritten = 'off';
select pg_reload_conf(); 3.重复执行步骤1,查看状态是否为off(关闭) 请注意: 如果您的postgresql版本在9.3(或更早),请修改配置文件 postgresql.conf 中配置
debug_print_rewritten= 'off'`
并重启
4.确保已禁用“ debug_print_parse”
描述
debug_print_parse设置启用为每次执行打印结果分析树
查询。 这些消息在LOG消息级别发出。 除非另有指示
您组织的日志记录策略,建议通过设置禁用此设置
关闭。
加固建议
1.进入postgresql数据库,执行命令 show debug_print_parse;
查看状态 2.执行命令
alter system set debug_print_parse = 'off';
select pg_reload_conf();
3.重复执行步骤1,查看状态是否为off(关闭) 请注意: 如果您的postgresql版本在9.3(或更早),请修改配置文件 postgresql.conf 中配置
debug_print_parse = 'off'
并重启
5.确保正确设置了日志目标
描述
PostgreSQL支持多种记录服务器消息的方法,包括stderr,
csvlog和syslog。 在Windows上,也支持eventlog。 这些中的一个或多个
应该为服务器日志输出设置目的地。
加固建议
1.进入postgresql数据库,执行命令 show log_destination;
查看状态
2.执行命令 alter system set log_destination = 'csvlog'; select pg_reload_conf()
;
3.重复执行步骤1,查看状态是否为'csvlog'
6.密码复杂度检查
描述
检查密码长度和密码是否使用多种字符类型
加固建议
修改shared_preload_libraries参数
$ vi postgresql.conf
新增配置项
shared_preload_libraries = 'passwordcheck'
切换到数据库启动用户:如 u -postgres
执行命令
pg_ctl -D $PGDATA restart
使配置生效(如未配置系统变量pg_ctl 默认在安装的bin目录下)
如果您没有安装配置passwordcheck(自带的第三方插件,建议重新安装) 如不能重装,可考虑加白名单。
7.确保撤销过多的管理特权
描述
关于PostgreSQL管理SQL命令,仅超级用户应具有
特权提升。 PostgreSQL常规或应用程序用户不应具备此能力
创建角色,创建新数据库,管理复制或执行任何其他操作
被视为特权。 通常,普通用户只应被授予
与管理应用程序相对应的特权:
?DDL(创建表,创建视图,创建索引等)
?DML(选择,插入,更新,删除)
此外,为DDL和DML创建单独的角色已经成为最佳实践。 给定一个
名为“工资单”的应用程序,将创建以下用户:
?payroll_owner
?payroll_user
DML特权仅授予“ payroll_owner”帐户,而DML
特权将仅授予“ payroll_user”帐户。 这样可以防止意外
通过作为应用程序运行的应用程序代码创建/更改/删除数据库对象
“ payroll_user”帐户
加固建议
1.进入postgresql数据库,执行select usename from pg_user;
,查看用户
2.执行\du 用户名;,分别查看用户权限,要求除超级用户,审计员,管理员外,尽可能的降低普通用户的权限
3.确保只有一个超级用户(例:postgres),普通用户的权限应比超级用户更低
4.找到您需要限制的用户(username),执行以下一条或多条命令
8.禁止以root用户直接启动数据库
描述
以postgres用户启动,降低数据库在系统中的权限占比
加固建议
建议以postgres用户启动
9.建议修改数据库的默认端口
描述
避免使用熟知的端口,降低被初级扫描的风险
加固建议
在配置文件(postgresql.conf)中修改端口 如:
port = 5433
修改后连接时也需更改对应端口
10.确保文件权限掩码正确
描述
始终使用默认权限集创建文件。文件权限可以是
通过应用称为umask的权限掩码进行限制。 Postgres用户帐户
应该使用umask 077拒绝对除所有者以外的所有用户帐户的文件访问。
加固建议
whoami
postgres
$ cd ~
$ ls -ld .{bash_profile,profile,bashrc}
$ echo "umask 077" >> .bash_profile
$ source .bash_profile
$ umask
0077
如上述示例,在~/.bash_profile
, ~/.profile
, ~/.bashrc
的任意一个文件末尾添加umask 077并执行 source ~/.bash_profile | ~/.profile | ~/.bashrc
使其生效在postgres用户下输入umask
查看返回值验证,弱返回值为077或0077,则符合要求
PostgreSql数据库安全加固的更多相关文章
- Redis缓存数据库安全加固指导(二)
背景 在众多开源缓存技术中,Redis无疑是目前功能最为强大,应用最多的缓存技术之一,参考2018年国外数据库技术权威网站DB-Engines关于key-value数据库流行度排名,Redis暂列第一 ...
- Redis缓存数据库安全加固指导(一)
背景 在众多开源缓存技术中,Redis无疑是目前功能最为强大,应用最多的缓存技术之一,参考2018年国外数据库技术权威网站DB-Engines关于key-value数据库流行度排名,Redis暂列第一 ...
- POSTGRESQL同步——SLONY-I配置
来自:http://bbs.chinaunix.net/thread-955564-1-1.html 参考文档 http://bbs.chinaunix.net/viewthr ... page%3D ...
- 加固mysql服务器
实验环境:CentOS7 [root@~ localhost]#yum -y install mariadb-server [root@~ localhost]#mysql_secure_instal ...
- Mysql安全配置
相关学习资料 http://drops.wooyun.org/tips/2245 http://www.cnblogs.com/siqi/archive/2012/11/21/2780966.html ...
- Mysql安全配置【转】
相关学习资料 http://drops.wooyun.org/tips/2245 http://www.cnblogs.com/siqi/archive/2012/11/21/2780966.html ...
- 从运维的角度分析使用阿里云数据库RDS的必要性--你不应该在阿里云上使用自建的MySQL/SQL Server/Oracle/PostgreSQL数据库
开宗明义,你不应该在阿里云上使用自建的MySQL or SQL Server数据库,对了,还有Oracle or PostgreSQL数据库. 云数据库 RDS(Relational Database ...
- linux加固目标和对象
一. linux加固目标和对象 项目加固的目标: 解决今年信通公司在风险评估工作中发现的linux服务器存在的安全问题,并结合南方电网安全基线标准修订版部署相关要求,将linux服务器的安全状况提 ...
- Drupal 网站漏洞修复以及网站安全防护加固方法
drupal是目前网站系统使用较多一个开源PHP管理系统,架构使用的是php环境+mysql数据库的环境配置,drupal的代码开发较为严谨,安全性较高,但是再安全的网站系统,也会出现网站漏洞,dru ...
随机推荐
- java开发环境搭建,配置
java开发环境搭建 下载jdk8的地址 是oracle的 安装JDK 下载电脑对应的版本 双击安装JDK 记住安装路径 配置环境变量 我的电脑/此电脑 右键属性 高级设置 环境变量 点击新建 变量名 ...
- [loj3333]混合物
假设选择的调味瓶为$k_{1}<k_{2}<...<k_{s}$,即判定是否存在正有理数解$\{x_{1},x_{2},...,x_{s}\}$,满足$$(\sum_{i=1}^{s ...
- [atARC119D]Grid Repainting 3
将每一行和每一列分别作为一个点,当第$i$行第$j$列的格子为红色时,将第$i$行与第$j$列连边 此时,考虑选择第$i$行的红色格子并将第$i$行的格子全部改成白色: 关于这一操作的条件,即需要第$ ...
- [loj3500]矩阵游戏
为了方便,令$a_{i,j}$的下标范围为$[0,n]$和$[0,m]$,$b_{i,j}$的下标范围为$[1,n]$和$[1,m]$ 当确定$a_{i,0}$和$a_{0,j}$后,即可通过$b_{ ...
- 【Mysql】三大日志 redo log、bin log、undo log
@ 目录 redo log(物理日志\重做日志) binlog(逻辑日志/归档日志) update语句执行流程 Uodolog(回滚日志/重做日志) undo log+redo log保证持久性 re ...
- 【备考06组01号】第四届蓝桥杯JAVA组A组国赛题解
1.填算式 (1)题目描述 请看下面的算式: (ABCD - EFGH) * XY = 900 每个字母代表一个0~9的数字,不同字母代表不同数字,首位不能为0. 比如 ...
- #10470. 「2020-10-02 提高模拟赛」流水线 (line)
题面:#10470. 「2020-10-02 提高模拟赛」流水线 (line) 题目中的那么多区间的条件让人感觉极其难以维护,而且贪心的做法感觉大多都能 hack 掉,因此考虑寻找一些性质,然后再设计 ...
- 【机器学习与R语言】6-线性回归
目录 1.理解回归 1)简单线性回归 2)普通最小二乘估计 3)相关系数 4)多元线性回归 2.线性回归应用示例 1)收集数据 2)探索和准备数据 3)训练数据 4)评估模型 5)提高模型性能 1.理 ...
- dokuwiki使用随笔
1. 在dokuwiki上安装MataJax插件后: a. $....$:之间书写数学公式;如完全平方公式:$a^2+b^2+2ab$,该公式将与当前行文字处于同一行; b. $$ .... $$ 之 ...
- 【讲座】朱正江——基于LC-MS的非靶向代谢组学
本次课程主题为<基于LC-MS的非靶向代谢组学>,主要分为代谢组学简介.代谢组学技术简介.非靶向代谢组学方法和数据采集.非靶向代谢组学数据分析和代谢物结构鉴定几个方面. 一.代谢组简介 基 ...