CentOS 7:启用河豚哈希进行密码身份验证

CentOS 7:启用河豚哈希进行密码身份验证

在我们的组织中,我们正在为许多本地帐户分发预先哈希的密码值。目前,这些帐户的密码使用 Blowfish ( $2a$[...]) 或 Blowfish-8-bit ( $2y$[...]) 进行哈希处理。我们使用的其他发行版能够处理这个问题,但 RedHat / CentOS 似乎不能故意在 glibc 中缺乏对 Blowfish 的支持就这样。

有没有什么方法可以让 CentOS/RedHat 系统处理 Blowfish 哈希值,而不会通过标准更新渠道严重破坏其可服务性?

我正在使用简单的启动配置和最少的软件包选择来部署 CentOS 7.2:

%packages --nobase --ignoremissing
@core
kexec-tools

%end

答案1

在 Ulrich Schwarz 在问题的评论中提到自定义 PAM 模块之后,我想我可以去看看 SLES(使 Blowfish 成为默认值)正在使用什么。

结果发现它是一个独立的模块,pam_unix2.so与 CentOS 系统上的任何内容都不冲突。作为概念验证,我已将/lib64/security/pam_unix2.soSLES 11 SP4 系统复制到/usr/lib64/security/pam_unix2.soCentOS 主机上,并下载并安装其依赖项libxcrypt它也是一个 SuSE 软件包,但可以在 CentOS 7 上用于这个狭隘的目的。

添加

auth        sufficient    pam_unix2.so

允许/etc/pam.d/system-auth我在控制台上根据 Blowfish 加密的密码进行身份验证。

为了确保authconfig下次调用时不会破坏配置,/etc/pam.d/system-auth指向的符号链接/etc/pam.d/system-auth-ac应替换为/etc/pam.d/system-auth-ac.

底线:SuSE的pam_unix2模块似乎是让 Blowfish 哈希值被接受的侵入性最小的方法,尽管这也意味着我需要监视安全公告pam_unix2libxcrypt分别地。

相关内容