跳过导航链接 | |
退出打印视图 | |
系统管理指南:安全性服务 Oracle Solaris 10 8/11 Information Library (简体中文) |
缺省情况下,使用 crypt_unix 算法对用户口令进行加密。通过更改缺省口令加密算法,可以使用更强大的加密算法,如 MD5 或 Blowfish。
在此过程中,BSD-Linux 版本的 MD5 算法是用户更改其口令时使用的缺省加密算法。此算法适合由运行 Oracle Solaris、BSD 和 Linux 版本的 UNIX 的计算机构成的混合网络。有关口令加密算法和算法标识符的列表,请参见表 2-1。
Primary Administrator(主管理员)角色拥有 Primary Administrator(主管理员)配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 "使用 Solaris Management Console(任务)"。
键入该标识符作为 /etc/security/policy.conf 文件中 CRYPT_DEFAULT 变量的值。
可能需要在文件中添加注释以对选择进行说明。
# cat /etc/security/policy.conf … CRYPT_ALGORITHMS_ALLOW=1,2a,md5,5,6 # # 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) 手册页。
示例 3-6 使用 Blowfish 算法进行口令加密
在此示例中,将 Blowfish 算法的标识符 2a 指定为 policy.conf 文件中 CRYPT_DEFAULT 变量的值:
CRYPT_ALGORITHMS_ALLOW=1,2a,md5,5,6 #CRYPT_ALGORITHMS_DEPRECATE=__unix__ CRYPT_DEFAULT=2a
此配置与使用 Blowfish 算法的 BSD 系统兼容。
当 NIS 域中的用户更改其口令时,NIS 客户机会查阅 /etc/security/policy.conf 文件中的本地算法配置。NIS 客户机将对口令进行加密。
当 NIS+ 域中的用户更改其口令时,NIS+ 命名服务会查阅 NIS+ 主服务器的 /etc/security/policy.conf 文件中的算法配置。运行 rpc.nispasswd 守护进程的 NIS+ 主服务器将创建加密口令。
正确配置 LDAP 客户机后,LDAP 客户机便可以使用新的口令算法。LDAP 客户机的行为与 NIS 客户机的行为相同。
确保注释符号 (#) 位于包含 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 Java 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
以下行显示了需要修改以添加 rot13 标识符的 policy.conf 文件的摘录。
# Copyright 1999-2002 Sun Microsystems, Inc. All rights reserved. # ... #ident "@(#)policy.conf 1.12 08/05/14 SMI" # ... # crypt(3c) Algorithms Configuration CRYPT_ALGORITHMS_ALLOW=1,2a,md5,5,6,,rot13 #CRYPT_ALGORITHMS_DEPRECATE=__unix__ CRYPT_DEFAULT=md5
在此示例中,如果当前口令是使用 crypt_rot13 算法加密的,则使用 rot13 算法。新用户口令使用 crypt_sunmd5 算法进行加密。此算法配置适用于纯 Solaris 网络。