credcheck PostgreSQL 扩展提供了很少的一般凭证检查,这些检查将在用户创建、密码更改和用户重命名期间进行评估。通过使用这个扩展,我们可以定义一组规则:
- 允许一组特定的凭据
- 拒绝某种类型的凭据
- 对密码强制使用至少一天的到期日期
- 定义密码重用策略
- 定义在禁止用户之前允许的身份验证失败次数
2023-06-12,credcheck v2.0.0 版本发布。credcheck 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 信号,以便它重新读取配置。下次超级用户尝试连接时,其身份验证失败缓存条目将被删除。
此处提供完整的更改列表:https://github.com/MigOpsRepos/credcheck/blob/v2.0/ChangeLog
链接
credcheck 是一个基于 PostgreSQL 许可的开放项目,最初由MigOps Inc创建,由Gilles Darold开发和维护。欢迎为构建更好的工具做出任何贡献。您可以使用 GitHub 工具发送您的想法、功能请求或补丁。
链接:
- 下载: https: //github.com/MigOpsRepos/credcheck/releases/
- 支持:使用 GitHub 报告工具https://github.com/MigOpsRepos/credcheck/issues
文章来源:https://www.postgresql.org/about/news/credcheck-v200-released-2654/
评论

