freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

PostgreSQL数据库的最佳安全配置
不在人间见白头 2020-12-17 15:03:14 137691

这里我们以在centos7的环境下去安装PostgreSQL数据库并详细的说明一下其最佳安全配置(数据库以9.4为例)

一、首先我们看一下在centos环境下去安装PostgreSQL数据库
选择一个合适的数据库版本如:https://download.postgresql.org/pub/repos/yum/9.4/redhat/rhel-7-x86_64/pgdg-centos94-9.4-3.noarch.rpm

以root方式进入centos7 输入 yum install + 上面的地址 回车

1608182594_5fdaeb423ee1124a680ba.png!small

安装PostgreSQL:输入:yum install -y postgresql94-server postgresql94-contrib回车

1608182781_5fdaebfde8f4b915f6031.png!small

1608182827_5fdaec2b31f7beb6f4b9d.png!small

初始化数据库   输入:/usr/pgsql-9.4/bin/postgresql94-setup initdb

1608182935_5fdaec9751b258b967e36.png!small

二、安全配置

1、查看1)注册并正确设置了服务运行级别以及、2)数据库集群安装成功

1608183463_5fdaeea79150b3027cff0.png!small

2、配置正确的文件掩码  输入: umask 回车

Linux中 umask值默认为002代表文件的所有者和同组用户能够读写文件,其他用户能够读取文件内容。

在这里我们需要将掩码设置为077若掩码设置错误不为 077,将导致其他用户能够读、写甚至执行 postgres 用户创建的文件和脚本。所以必须要正确设置 umask,防止出现用户越权操作。

1608183737_5fdaefb92604f88463a97.png!small

3、日志监控和审计

  1. 开启日志收集器功能  进入数据库 执行命令:

    show logging_collector;

  2. 设置正确的日志格式  执行命令:

    show log_destination;

  3. 设置正确的日志文件权限(默认值为0600) 执行命令:

    show log_file_mode;
  4. 确保“log_truncate_on_rotation”已启用 执行命令:

    show log_truncate_on_rotation;

  5. 设置正确的日志文件大小(当日志文件大小设置为“0”时,将无法创建新的日志文件) 执行命令:

    show log_rotation_size;

4、用户访问和授权安全配置

撤销过多的函数权限

  1. 进入数据库执行下列语句

    select nspname,proname,proargtypes,prosecdef,rolename,proconfig from

    pg_proc p join pg_namespace n on p.pronamespace = n.oid join pg_authid a on

    a.oid = p.propwner where prosecdef or not proconfig is Null;

    在查询结果中,如果 a processdef 的值为“t”,表示该行的函数使用了过多的

    权限。

撤销过多的管理员权限

  1. 确定当前数据库中超级用户所拥有的权限,进入数据库执行命令:

    \du postgres

  2. 查看其他用户的权限,与超级用户进行对比,查询数据库中所有用户,执行命令:

    Select * from pg_user order by username;

  3. 查看用户权限信息,执行命令:

    \du * ; (其中“*”替换为用户名)

5、PostgreSQL 数据库安全配置

  1. 正确配置了“backend”运行时参数,进入数据库执行命令:
    select name,setting,unit from pg_settings where context like ’%backend%’ order by 1;

  2. 开启正确配置ssl(以保证客户端与服务器之间通讯的保密性),进入数据库执行命令:
    show ssl
  3. 确保使用 FIPS 140-2 OpenSSL(如果结果不为“1”,表示该操作系统未启动 FIPS;),进入数据库执行命令:cat /proc/sys/crypto/fips_enabled

安装并正确配置 pgcrypto

在数据库中执行命令:

select * from pg_available_extensions where name=’pgcrypto’;

以上是我对postgresql数据库的浅显理解与说明,希望对读者的你有所帮助。

# PostgreSQL # 数据安全 # 数据库
本文为 不在人间见白头 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
不在人间见白头 LV.1
互联网永不下班
  • 5 文章数
  • 8 关注者
FlexE接口功能配置详解
2021-07-29
记一次Linux的测评结果记录
2020-12-21
Mysql数据库的最佳安全配置
2020-12-18