跳转到主要内容

passwordcheck_cracklib

使用cracklib加固PG用户密码

概览

扩展包名版本分类许可证语言
passwordcheck_cracklib3.2.1SECLGPL-2.1C
ID扩展名BinLibLoadCreateTrustReloc模式
7000passwordcheck_cracklib否是是否否否-

Preload-only; requires cracklib dictionaries.

版本

类型仓库版本PG 大版本包名依赖
EXTPIGSTY3.2.11817161514passwordcheck_cracklib-
RPMPIGSTY3.2.11817161514passwordcheck_cracklib_$vcracklib-dicts
DEBPIGSTY3.2.11817161514postgresql-$v-passwordcheck-cracklibcracklib-runtime, libcrack2
OS / PGPG18PG17PG16PG15PG14
el8.x86_64
el8.aarch64
el9.x86_64
el9.aarch64
el10.x86_64
el10.aarch64
d12.x86_64
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
d12.aarch64
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
d13.x86_64
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
d13.aarch64
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
u22.x86_64
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
u22.aarch64
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
u24.x86_64
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
u24.aarch64
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
u26.x86_64
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
u26.aarch64
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1
PIGSTY 3.2.1

构建

您可以使用 pig build 命令构建 passwordcheck_cracklib 扩展的 RPM / DEB 包:

pig build pkg passwordcheck_cracklib         # 构建 RPM / DEB 包

安装

您可以直接安装 passwordcheck_cracklib 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:

pig repo add pgsql -u          # 添加仓库并更新缓存

使用 pig 或者是 apt/yum/dnf 安装扩展:

安装
pig install passwordcheck_cracklib;          # 当前活跃 PG 版本安装
pig
pig ext install -y passwordcheck_cracklib -v 18  # PG 18
pig ext install -y passwordcheck_cracklib -v 17  # PG 17
pig ext install -y passwordcheck_cracklib -v 16  # PG 16
pig ext install -y passwordcheck_cracklib -v 15  # PG 15
pig ext install -y passwordcheck_cracklib -v 14  # PG 14
dnf
dnf install -y passwordcheck_cracklib_18       # PG 18
dnf install -y passwordcheck_cracklib_17       # PG 17
dnf install -y passwordcheck_cracklib_16       # PG 16
dnf install -y passwordcheck_cracklib_15       # PG 15
dnf install -y passwordcheck_cracklib_14       # PG 14
apt
apt install -y postgresql-18-passwordcheck-cracklib   # PG 18
apt install -y postgresql-17-passwordcheck-cracklib   # PG 17
apt install -y postgresql-16-passwordcheck-cracklib   # PG 16
apt install -y postgresql-15-passwordcheck-cracklib   # PG 15
apt install -y postgresql-14-passwordcheck-cracklib   # PG 14

预加载配置:

shared_preload_libraries = '$libdir/passwordcheck_cracklib';

用法

来源:

passwordcheck_cracklib 使用 CrackLib 检查通过 CREATE ROLE 和 ALTER ROLE 设置的密码。它是服务器钩子库,不创建 SQL 扩展对象。

启用钩子

将它加入现有预加载列表,然后重启 PostgreSQL:

shared_preload_libraries = '$libdir/passwordcheck_cracklib'

不要执行 CREATE EXTENSION passwordcheck_cracklib。PostgreSQL 操作系统账号必须能够使用 CrackLib 库和字典。

密码检查

CREATE ROLE app_user LOGIN PASSWORD 'password123';

弱明文密码会触发错误。钩子检查长度、密码与用户名的关系、字符组成以及 CrackLib 字典。通过这些检查并不保证密码能够抵抗所有攻击。

安全边界

字典检查要求在修改密码时获得明文密码。如果客户端提交已经计算好的密码散列,模块无法完成完整的强度检查;此时仅能检查密码是否等于用户名。应约束密码修改入口,并保护传输明文密码的连接。

模块不会追溯扫描已有密码。钩子还会调用先前安装的密码检查钩子;同时加载其他凭证策略库前,应检查它们的交互。

这个页面对您有帮助吗?