摩洛哥卡萨布兰卡 - 2023 年 6 月 10 日
credcheck PostgreSQL 扩展提供了一些通用的凭据检查,这些检查将在用户创建、密码更改和用户重命名期间进行评估。通过使用此扩展,我们可以定义一组规则
v2.0.0 版本增加了一个主要功能,并与 PostgreSQL 16 兼容。升级需要重启 PostgreSQL 以重新加载 credcheck 库。
添加“身份验证失败禁止”新功能
PostgreSQL 没有任何机制来限制用户被禁止前的身份验证失败尝试次数。使用 credcheck 扩展,在身份验证失败次数达到配置指令 credcheck.max_auth_failure
定义的数值后,用户可能会被禁止,即使稍后给出正确的密码也无法再连接。此功能要求将 credcheck 扩展添加到 shared_preload_libraries
配置选项中。
所有用户的身份验证失败都记录在共享内存中,其中包含用户被禁止的时间戳。身份验证失败历史记录仅保存在内存中,这意味着历史记录会在 PostgreSQL 重启时丢失。目前我还没有看到在启动时恢复缓存的必要性。
身份验证失败缓存大小默认为 1024 条记录,可以使用 credcheck.auth_failure_cache_size
配置指令进行调整。更改此 GUC 需要重启 PostgreSQL。
两个设置允许控制此功能的行为
credcheck.max_auth_failure
:用户被禁止之前允许的身份验证失败次数。credcheck.reset_superuser
:强制超级用户不被禁止,或者当设置为 true 时重置被禁止的超级用户。第一个设置的默认值为 0
,表示禁用身份验证失败禁止功能。第二个设置的默认值为 false
,表示 postgres
超级用户可能会被禁止。
如果 postgres
超级用户被禁止,他将无法再登录。如果没有其他超级用户帐户可用于重置被禁止的超级用户的记录,请将 credcheck.reset_superuser
配置指令设置为 true
到 postgresql.conf 文件中,并向 PostgreSQL 进程 pid 发送 SIGHUP 信号,以便重新读取配置。下次超级用户尝试连接时,其身份验证失败缓存条目将被删除。
完整的更改列表可在此处获取:此处
credcheck 是一个在 PostgreSQL 许可证下发布的开源项目,最初由 MigOps Inc 创建,由 Gilles Darold 开发和维护。欢迎任何贡献来构建更好的工具。您可以使用 GitHub 工具发送您的想法、功能请求或补丁。
链接
credcheck 扩展是 MigOps Inc 的原创作品,由于 MigOPs 已关闭,Gilles Darold 是官方维护者。如果您需要更多信息,请 联系我