更改口令加密的缺省算法(任务)
缺省情况下,使用 crypt_sha256 算法对用户口令进行加密。可以通过更改缺省口令加密算法来使用不同的加密算法。
如何指定口令加密的算法
在此过程中,BSD-Linux 版本的 MD5 算法是用户更改其口令时使用的缺省加密算法。此算法适合由运行 Oracle Solaris、BSD 和 Linux 版本的 UNIX 的系统构成的混合网络。有关口令加密算法和算法标识符的列表,请参见表 2-1。
开始之前
您必须是 root 角色。指定所选加密算法的标识符。
键入该标识符作为 /etc/security/policy.conf 文件中 CRYPT_DEFAULT 变量的值。
可能需要在文件中添加注释以对选择进行说明。# cat /etc/security/policy.conf
…
CRYPT_ALGORITHMS_ALLOW=1,2a,md5,5,6
#
# Use the version of MD5 (5) that works with Linux and BSD systems.
# Passwords previously encrypted with SHA256 (1) will be encrypted
# with MD5 when users change their passwords.
#
#
#CRYPT_DEFAULT=5
CRYPT_DEFAULT=1
在此示例中,算法配置可确保不使用算法 sha256 对口令进行加密。使用 sha256 模块加密口令的用户将在更改其口令时获得使用 crypt_bsdmd5 加密的口令。
有关配置算法选择的更多信息,请参见 policy.conf(4) 手册页。
示例 3-6 在异构环境中限制口令加密算法
此示例中,包含 BSD 和 Linux 系统的网络上的管理员将口令配置为适用于所有系统。由于某些网络应用程序无法处理 SHA512 加密,因此管理员不将其标识符包含在允许的算法列表中。管理员保留 SHA256 算法,5 作为 CRYPT_DEFAULT 变量的值。CRYPT_ALGORITHMS_ALLOW
变量包含与 BSD 和 Linux 系统兼容的 MD5 标识符,以及与 BSD 系统兼容的 Blowfish 标识符。由于 5
是 CRYPT_DEFAULT 算法,因此无需在 CRYPT_ALGORITHMS_ALLOW 列表中列出。不过,为便于维护,管理员将 5 放置在了 CRYPT_ALGORITHMS_ALLOW 列表中,将未使用的标识符放置在了 CRYPT_ALGORITHMS_DEPRECATE 列表中。CRYPT_ALGORITHMS_ALLOW=1,2a,5
#CRYPT_ALGORITHMS_DEPRECATE=__unix__,md5,6
CRYPT_DEFAULT=5
如何为 NIS 域指定新的口令算法
当 NIS 域中的用户更改其口令时,NIS 客户机会查阅 /etc/security/policy.conf 文件中的本地算法配置。NIS 客户机系统将对口令进行加密。
开始之前
您必须是 root 角色。在 NIS 客户机的 /etc/security/policy.conf 文件中指定口令加密算法。
将修改过的 /etc/security/policy.conf 文件复制到 NIS 域中的每个客户机系统。
为最大限度地减少混淆,将修改过的 /etc/security/policy.conf 文件复制到 NIS 根服务器和从服务器。
如何为 LDAP 域指定新的口令算法
正确配置 LDAP 客户机后,LDAP 客户机便可以使用新的口令算法。LDAP 客户机的行为与 NIS 客户机的行为相同。
开始之前
您必须是 root 角色。在 LDAP 客户机的 /etc/security/policy.conf 文件中指定口令加密算法。
将修改过的 policy.conf 文件复制到 LDAP 域中的每个客户机系统。
确保客户机的 /etc/pam.conf 文件不使用 pam_ldap 模块。
确保注释符号 (#) 位于包含 pam_ldap.so.1 的项的前面。另外,请勿将 server_policy 选项与 pam_authtok_store.so.1 模块一起使用。
客户机的 pam.conf 文件中的 PAM 项允许根据本地算法配置对口令进行加密。PAM 项还允许对口令进行验证。
当 LDAP 域中的用户更改其口令时,LDAP 客户机会查阅 /etc/security/policy.conf 文件中的本地算法配置。LDAP 客户机系统将对口令进行加密。然后,客户机将加密过的口令连同 {crypt} 标记一起发送到服务器。该标记告知服务器该口令已加密。该口令将按原样存储在服务器上。验证时,客户机先从服务器检索存储的口令。然后,客户机将存储的口令与其刚根据用户键入的口令生成的加密版本进行比较。