缺省情况下,使用 crypt_unix 算法加密用户口令。通过更改缺省口令加密算法,可以使用更强大的加密算法,如 MD5 或 Blowfish。
在此过程中,BSD-Linux 版本的 MD5 算法是用户更改其口令时使用的缺省加密算法。此算法适合由运行 Solaris、BSD 和 Linux 版本的 UNIX 的计算机构成的混合网络。有关口令加密算法和算法标识符的列表,请参见表 2–1。
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。要创建角色并将角色指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
键入标识符作为 /etc/security/policy.conf 文件中的 CRYPT_DEFAULT 变量的值。
可能需要在文件中添加注释以对选择进行说明。
# cat /etc/security/policy.conf … CRYPT_ALGORITHMS_ALLOW=1,2a,md5 # # Use the version of MD5 that works with Linux and BSD systems. # Passwords previously encrypted with __unix__ will be encrypted with MD5 # when users change their passwords. # # CRYPT_DEFAULT=__unix__ CRYPT_DEFAULT=1 |
在此示例中,算法配置可确保不会使用功能最弱的算法 crypt_unix 加密口令。使用 crypt_unix 模块加密口令的用户将在更改其口令时获得使用 crypt_bsdmd5 加密的口令。
有关配置算法选择的更多信息,请参见 policy.conf(4) 手册页。
在此示例中,Blowfish 算法的标识符 2a 被指定为 policy.conf 文件中的 CRYPT_DEFAULT 变量的值:
CRYPT_ALGORITHMS_ALLOW=1,2a,md5 #CRYPT_ALGORITHMS_DEPRECATE=__unix__ CRYPT_DEFAULT=2a |
此配置与使用 Blowfish 算法的 BSD 系统兼容。
当 NIS 域中的用户更改其口令时,NIS 客户机会查看 /etc/security/policy.conf 文件中的本地算法配置。NIS 客户机将加密口令。
在 NIS 客户机的 /etc/security/policy.conf 文件中指定口令加密算法。
将修改过的 /etc/security/policy.conf 文件复制到 NIS 域中的每台客户机。
为尽可能减少混淆,将修改过的 /etc/security/policy.conf 文件复制到 NIS 根服务器和从服务器。
当 NIS+ 域中的用户更改其口令时,NIS+ 名称服务会查看 NIS+ 主服务器的 /etc/security/policy.conf 文件中的算法配置。运行 rpc.nispasswd 守护进程的 NIS+ 主服务器将创建加密口令。
在 NIS+ 主服务器的 /etc/security/policy.conf 文件中指定口令加密算法。
为尽可能减少混淆,将 NIS+ 主服务器的 /etc/security/policy.conf 文件复制到 NIS+ 域中的每台主机。
正确配置 LDAP 客户机后,LDAP 客户机便可以使用新的口令算法。LDAP 客户机的行为与 NIS 客户机的行为相同。
在 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} 标记一起发送到服务器。该标记告知服务器该口令已加密。该口令将按原样存储在服务器上。验证时,客户机先从服务器检索存储的口令。然后,将存储的口令与其从用户键入的口令生成的加密版本进行比较。
要利用 LDAP 服务器的口令策略控制,请将 server_policy 选项与 pam.conf 文件中的 pam_authtok_store 项一起使用。这样,将使用 Sun JavaTM System Directory Server 的加密机制在服务器上加密口令。有关过程,请参见《系统管理指南:名称和目录服务(DNS、NIS 和 LDAP)》中的第 11 章 “为使用 LDAP 客户机设置 Sun Java System Directory Server(任务)”。
第三方口令加密算法通常在软件包中作为模块提供。运行 pkgadd 命令时,供应商的脚本应修改 /etc/security/crypt.conf 文件。然后,您可修改 /etc/security/policy.conf 文件以包含新模块及其标识符。
有关如何添加软件的详细说明,请参见《系统管理指南:基本管理》中的“添加或删除软件包 (pkgadd)”。
确认是否已添加新模块及模块标识符。
读取 /etc/security/crypt.conf 文件中的加密算法列表。
例如,以下行说明已安装了用于实现 crypt_rot13 算法的模块:
# crypt.conf # md5 /usr/lib/security/$ISA/crypt_md5.so rot13 /usr/lib/security/$ISA/crypt_rot13.so # For *BSD - Linux compatibility # 1 is MD5, 2a is Blowfish 1 /usr/lib/security/$ISA/crypt_bsdmd5.so 2a /usr/lib/security/$ISA/crypt_bsdbf.so |
将新安装算法的标识符添加到 /etc/security/policy.conf 文件。
以下行显示了需要修改以添加 rot13 标识符的 policy.conf 文件的摘录:
# Copyright 1999-2002 Sun Microsystems, Inc. All rights reserved. # ... #ident "@(#)policy.conf 1.6 02/06/07 SMI" # ... # crypt(3c) Algorithms Configuration CRYPT_ALGORITHMS_ALLOW=1,2a,md5,rot13 #CRYPT_ALGORITHMS_DEPRECATE=__unix__ CRYPT_DEFAULT=md5 |
在此示例中,如果当前口令是使用 crypt_rot13 算法加密的,则使用 rot13 算法。新用户口令使用 crypt_sunmd5 算法进行加密。此算法配置适用于仅 Solaris 网络。