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


前言

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';

在这里插入图片描述

总结

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

猜你喜欢

转载自blog.csdn.net/ma286388309/article/details/129043861#comments_27394251
今日推荐