PostgreSQL数据库安全加固(一)——设置密码复杂度

文章介绍了如何通过安装和配置PostgreSQL的passwordcheck扩展插件,结合cracklib字典来增强密码复杂度规则。步骤包括下载扩展,安装cracklib,修改配置,编译安装插件,装载模块以及测试密码策略。
摘要由CSDN通过智能技术生成


前言

PostgreSQL数据库密码复杂度设置可以通过安装passwordcheck扩展插件来实现,该插件默认的密码复杂度规则是密码长度必须大于等于8、必须包含字母和非字母、密码不能包含用户名。如果这些规则仍然不能满足你的密码强度要求,那么还可以安装cracklib以及字典来提高密码强度。

一、下载扩展插件

passwordcheck扩展插件就包含在PostgreSQL数据库的源码安装包中,所以你需要先下载与你数据库版本一致的安装包。
安装包下载地址:http://www.postgresql.org/ftp/source/

# 解压安装包
tar -zxvf postgresql-14.7.tar.gz

解压后的postgresql-14.7/contrib/passwordcheck目录就是passwordcheck插件的文件目录

二、安装cracklib以及字典

如果passwordcheck插件的默认密码规则无法满足你的需求,那么你需要本步操作,安装cracklib以及字典。

yum install –y cracklib-devel cracklib-dicts cracklib

在这里插入图片描述

三、修改passwordcheck相关配置

进入postgresql的源安装包文件夹,进入contrib目录,找到passwordcheck文件夹

cd postgresql-14.7/contrib/passwordcheck

编辑修改passwordcheck.c文件中的MIN_PWD_LENGTH,可根据实际需要更改最小密码长度,默认值为8,建议更改为20或更大。注意:此处的#号并非注释,不要去掉。
在这里插入图片描述
修改Makefile文件, 把下图红框的2行注释去掉, 并修改字典文件和路径(文件不要带.pwd后缀,如下图)。如果你不知道cracklib_dict文件的路径。可以使用find命令查询,请确保路径正确。

find / -name cracklib_dict*

在这里插入图片描述

四、编辑安装passwordcheck插件

使用make命令编译安装插件。

make && make install

在这里插入图片描述

五、装载模块

打开${PGDATA?}/postgresql.conf文件,修改shared_preload_libraries参数以包含’passwordcheck’,重启数据库。

# 注意配置文件路径
vi /pgsql/postgresql/data/postgresql.conf

在这里插入图片描述

六、测试

创建用户测试密码复杂度是否设置成功。提示下图的“ERROR: password is too short”表示设置成功。

create user admin001 with password '123abc';

在这里插入图片描述

总结

设置密码复杂度时注意路径和权限,根据报错排查问题。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
PostgreSQL 数据库中,密码复杂度密码检查插件控制。要查看密码检查插件及其相关配置,可以按照以下步骤进行操作: 1. 打开 PostgreSQL 数据库的命令行界面。 2. 输入以下命令,连接到要查询的数据库: ``` \c your_database_name ``` 其中,'your_database_name' 是你要查询的数据库名称。 3. 输入以下命令,查看密码检查插件及其相关配置: ``` SELECT name, setting FROM pg_settings WHERE category = 'Authentication / Password'; ``` 这个命令将返回密码检查插件及其相关配置的列表。其中,name 列包含插件名称,setting 列包含插件的当前设置值。 4. 查看名为 password_check 的插件的设置值,确定密码复杂度要求: ``` SELECT name, setting FROM pg_settings WHERE name = 'password_check'; ``` 这个命令将返回 password_check 插件的设置值。如果设置值为“on”,则表示密码复杂度要求已启用。如果设置值为“off”,则表示密码复杂度要求已禁用。 如果密码复杂度要求已启用,可以通过查看插件的其他设置值来确定密码复杂度的要求。例如,password_min_length 设置表示密码的最小长度,password_min_digits 设置表示密码中必须包含的数字数量,password_min_uppercase 设置表示密码中必须包含的大写字母数量等。 注意:在确定密码复杂度要求时,还应该考虑其他因素,例如密码的历史记录、密码过期时间等。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小马穿云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值