本节介绍了 Oracle Solaris 11.3 发行版中的安全软件问题。
从 Oracle Solaris 11.2 开始,T4 指令和 Intel 硬件加速已嵌入到非 FIPS-140 OpenSSL 的 OpenSSL 内部加密实现中。此项更改会影响 ssh 和 sshd 的性能,因为这些服务缺省情况下在 T4 系统及更高版本上使用 OpenSSL pkcs11 引擎。
解决方法:要获得最大性能,可禁用 OpenSSL pkcs11 引擎。
执行以下步骤可为 ssh 和 sshd 服务禁用 pkcs11 引擎:
向 /etc/ssh/ssh_config 和 /etc/ssh/sshd_config 文件中添加以下行:
UseOpenSSLEngine no
重新启动 ssh 服务。
# svcadm restart ssh
用于续订用户的 Kerberos 凭据以及警告凭据到期的 ktkt_warn 服务现在缺省被禁用。将显示以下错误消息:
kinit: no ktkt_warnd warning possible
解决方法:选择以下解决方法之一启用该服务:
如果系统已经配置了 Kerberos,可使用 svcadm 命令启用该服务。
# svcadm enable ktkt_warn
如果尚未配置 Kerberos,则可运行 kclient 实用程序配置 Kerberos,这将同时启用 ktkt_warn 服务。
有关 kclient 实用程序的更多信息,请参见 kclient(1M) 手册页。
内核级别的加密框架守护进程 kcfd 在运行 Oracle Solaris 10 的标记区域中会崩溃。当一个属于 16 或更多个 UNIX 组的用户成员利用应用程序调用 kcfd 守护进程时,会发生崩溃。
kcfd 守护进程的这种故障还可能会导致将 svc:/system/cryptosvc:default 服务切换为维护模式,这反过来会导致 libpkcs11 库停止运行。有关信息,请参见 libpkcs11(3LIB) 手册页。
这种崩溃还导致应用程序或命令(如 ssh 和 Java)无法使用加密操作的 SPARC 硬件加速,并导致其他应用程序或命令(例如 encrypt 和 decrypt)完全失败。
解决方法:要防止崩溃,请增加全局区域中每个用户的最大组数,使其超出可为用户分配的组数。例如,如果可以为一个用户分配 31 个组,请在全局区域中的 /etc/system 文件中添加以下行:
set ngroups_max = 32
可为 ngroups_max 分配的最大值为 1024。
如果对 LDAP 配置文件 /etc/openldap/ldap.conf 和 /etc/openldap/slapd.conf 进行了手动修改,则有关 TLS 加密套件的安全设置可能会不正确。
解决方法:如果您维护您自己的 LDAP 配置文件,请进行以下修改以维护一个安全系统:
在 /etc/openldap/ldap.conf 文件中,设置 TLS_PROTOCOL_MIN 和 TLS_CIPHER_SUITE 值,如下所示:
TLS_PROTOCOL_MIN 3.2 TLS_CIPHER_SUITE TLSv1.2:!aNULL:!eNULL:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:DHE-RSA-DES-CBC3-SHA:DHE-DSS-DES-CBC3-SHA:AES128-SHA:AES256-SHA:DES-CBC3-SHA
在 /etc/openldap/slapd.conf 中,设置 TLSProtocolMin 和 TLSCipherSuite 值,如下所示:
TLSProtocolMin 770 TLSCipherSuite TLSv1.2:!aNULL:!eNULL:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:DHE-RSA-DES-CBC3-SHA:DHE-DSS-DES-CBC3-SHA:AES128-SHA:AES256-SHA:DES-CBC3-SHA