passwordcheck_cracklib

使用cracklib加固PG用户密码

概览

扩展包名版本分类许可证语言
passwordcheck_cracklib3.1.0SECLGPL-2.1C
ID扩展名BinLibLoadCreateTrustReloc模式
7000passwordcheck_cracklib-
相关扩展pg_auth_mon credcheck pgaudit login_hook auth_delay set_user sepgsql

版本

类型仓库版本PG 大版本包名依赖
EXTMIXED3.1.01817161514passwordcheck_cracklib-
RPMPGDG3.1.01817161514passwordcheck_cracklib_$v-
DEBPIGSTY3.1.01817161514postgresql-$v-passwordcheck-cracklib-
OS / PGPG18PG17PG16PG15PG14
el8.x86_64
PGDG 3.1.0
PGDG 3.1.0
PGDG 3.0.0
PGDG 3.0.0
el8.aarch64
PGDG 3.1.0
PGDG 3.1.0
PGDG 3.0.0
PGDG 3.0.0
PGDG 3.0.0
el9.x86_64
PGDG 3.1.0
PGDG 3.1.0
PGDG 3.0.0
PGDG 3.0.0
el9.aarch64
PGDG 3.1.0
PGDG 3.1.0
PGDG 3.0.0
PGDG 3.0.0
PGDG 3.0.0
el10.x86_64
PGDG 3.1.0
PGDG 3.1.0
PGDG 3.1.0
PGDG 3.1.0
PGDG 3.1.0
el10.aarch64
PGDG 3.1.0
PGDG 3.1.0
PGDG 3.1.0
PGDG 3.1.0
PGDG 3.1.0
d12.x86_64
PIGSTY 3.1.0
PIGSTY 3.1.0
PIGSTY 3.1.0
PIGSTY 3.1.0
PIGSTY 3.1.0
d12.aarch64
PIGSTY 3.1.0
PIGSTY 3.1.0
PIGSTY 3.1.0
PIGSTY 3.1.0
PIGSTY 3.1.0
d13.x86_64
PIGSTY 3.1.0
PIGSTY 3.1.0
PIGSTY 3.1.0
PIGSTY 3.1.0
PIGSTY 3.1.0
d13.aarch64
PIGSTY 3.1.0
PIGSTY 3.1.0
PIGSTY 3.1.0
PIGSTY 3.1.0
PIGSTY 3.1.0
u22.x86_64
PIGSTY 3.1.0
PIGSTY 3.1.0
PIGSTY 3.1.0
PIGSTY 3.1.0
PIGSTY 3.1.0
u22.aarch64
PIGSTY 3.1.0
PIGSTY 3.1.0
PIGSTY 3.1.0
PIGSTY 3.1.0
PIGSTY 3.1.0
u24.x86_64
PIGSTY 3.1.0
PIGSTY 3.1.0
PIGSTY 3.1.0
PIGSTY 3.1.0
PIGSTY 3.1.0
u24.aarch64
PIGSTY 3.1.0
PIGSTY 3.1.0
PIGSTY 3.1.0
PIGSTY 3.1.0
PIGSTY 3.1.0

构建

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

pig build pkg passwordcheck_cracklib         # 构建 DEB 包

安装

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

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

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

pig install passwordcheck_cracklib;          # 当前活跃 PG 版本安装
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 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 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 加强 PostgreSQL 用户密码检查

passwordcheck_cracklib 类似于标准 PostgreSQL passwordcheck 模块,但使用 cracklib 进行更严格的密码检查。每当通过 CREATE ROLEALTER ROLE 设置密码时检查用户密码。如果密码被认为太弱,将被拒绝并以错误终止命令。

配置

postgresql.conf 中添加到 shared_preload_libraries

shared_preload_libraries = '$libdir/passwordcheck_cracklib'

重启 PostgreSQL 以生效。

工作原理

加载后,任何设置密码的 CREATE ROLEALTER ROLE 命令都会根据 cracklib 字典检查密码。弱密码或容易猜到的密码将被自动拒绝。

-- 如果密码太弱将被拒绝
CREATE ROLE myuser WITH LOGIN PASSWORD 'password123';
-- ERROR: password is easily cracked

-- 强密码将被接受
CREATE ROLE myuser WITH LOGIN PASSWORD 'X9#kLm$vQ2!pR7';

无需 CREATE EXTENSION —— 这仅是一个共享库模块。


最后修改 2026-03-14: update extension metadata (953cbd0)