以下各节介绍了启用或禁用服务的各个部分的过程。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
注册接口。
在 /etc/nca/nca.if 文件中键入每个物理接口的名称。有关更多信息,请参见 nca.if(4) 手册页。
# cat /etc/nca/nca.if hme0 hme1 |
每个接口都必须有一个附带的 hostname.interface-name 文件,并在 /etc/hosts 文件中具有一个表示 hostname.interface-name 内容的项。要在所有接口中都启动 NCA 功能,请在 nca.if 文件中放置一个星号 *。
启用 ncakmod 内核模块。
将 /etc/nca/ncakmod.conf 中的 status 项更改为 enabled。
# cat /etc/nca/ncakmod.conf # # NCA Kernel Module Configuration File # status=enabled httpd_door_path=/var/run/nca_httpd_1.door nca_active=disabled |
有关更多信息,请参见 ncakmod.conf(4) 手册页。
(可选的)启用 NCA 日志记录。
将 /etc/nca/ncalogd.conf 中的 status 项更改为 enabled。
# cat /etc/nca/ncalogd.conf # # NCA Logging Configuration File # status=enabled logd_path_name="/var/nca/log" logd_file_size=1000000 |
可通过更改 logd_path_name 项表示的路径来更改日志文件的位置。日志文件可以是原始设备或文件。有关 NCA 日志文件路径的样例,请参见以下示例。有关配置文件的更多信息,请参见 ncalogd.conf(4) 手册页。
(可选的)为多个实例支持定义端口。
在 /etc/nca/ncaport.conf 文件中添加端口号。此项将使 NCA 在所有已配置的 IP 地址中监视端口 80。
# cat /etc/nca/ncaport.conf # # NCA Kernel Module Port Configuration File # . . ncaport=*/80 |
仅适用于 x86:增加虚拟内存大小。
使用 eeprom 命令设置系统的 kernelbase。
# eeprom kernelbase=0x90000000 # eeprom kernelbase kernelbase=0x90000000 |
第二个命令用于验证已设置的参数。
通过设置 kernelbase,可将用户进程可以使用的虚拟内存量减小至 3 GB 以下。此限制意味着系统与 ABI 不兼容。引导系统时,控制台会显示一条警告消息,指明不兼容。大多数程序实际需要的虚拟地址空间都不到 3 GB。如果某一程序需要 3 GB 以上的虚拟地址空间,则需在未启用 NCA 的系统中运行该程序。
重新引导服务器。
ncalogd.conf 中的 logd_path_name 字符串可将原始设备定义为存储 NCA 日志文件的位置。使用原始设备的优点在于,访问原始设备的开销很小,因此服务可以运行得更快。
NCA 服务将测试文件中列出的所有原始设备,以确保没有使用任何文件系统。此测试可确保不会意外重写任何活动的文件系统。
为了防止此测试找到文件系统,请运行以下命令。此命令将销毁任何磁盘分区中已配置为文件系统的文件系统部分。在此示例中,/dev/rdsk/c0t0d0s7 是正在使用旧文件系统的原始设备。
# dd if=/dev/zero of=/dev/rdsk/c0t0d0s7 bs=1024 count=1 |
运行 dd 之后,便可将该原始设备添加到 ncalogd.conf 文件中。
# cat /etc/nca/ncalogd.conf # # NCA Logging Configuration File # status=enabled logd_path_name="/dev/rdsk/c0t0d0s7" logd_file_size=1000000 |
ncalogd.conf 中的 logd_path_name 字符串可将多个目标定义为存储 NCA 日志文件的位置。当第一个文件已满时,将使用第二个文件。以下示例显示如何选择先写入 /var/nca/log 文件然后再使用原始分区。
# cat /etc/nca/ncalogd.conf # # NCA Logging Configuration File # status=enabled logd_path_name="/var/nca/log /dev/rdsk/c0t0d0s7" logd_file_size=1000000 |
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
禁用 ncakmod 内核模块。
将 /etc/nca/ncakmod.conf 中的 status 项更改为 disabled。
# cat /etc/nca/ncakmod.conf # NCA Kernel Module Configuration File # status=disabled httpd_door_path=/var/run/nca_httpd_1.door nca_active=disabled |
有关更多信息,请参见 ncakmod.conf(4) 手册页。
禁用 NCA 日志记录。
将 /etc/nca/ncalogd.conf 中的 status 项更改为 disabled。
# cat /etc/nca/ncalogd.conf # # NCA Logging Configuration File # status=disabled logd_path_name="/var/nca/log" logd_file_size=1000000 |
有关更多信息,请参见 ncalogd.conf(4) 手册页。
重新引导服务器。
在启用 NCA 之后,可根据需要打开或关闭 NCA 日志记录。有关更多信息,请参见如何启用 Web 页的高速缓存。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
更改 NCA 日志记录。
要永久性地禁用日志记录,需要将 /etc/nca/ncalogd.conf 中的状态更改为 disabled 并重新引导系统。有关更多信息,请参见 ncalogd.conf(4) 手册页。
仅当您的 Web 服务器不提供对 AF_NCA 套接字的本机支持时,才应遵循此过程。
在 Web 服务器的启动脚本中,添加一个用于预装库的行。该行应与以下行类似:
LD_PRELOAD=/usr/lib/ncad_addr.so /usr/bin/httpd |
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
添加一个新端口。
向 /etc/nca/ncaport.conf 中添加一个新端口。此示例在 IP 地址 192.168.84.71 中添加端口 8888。有关更多信息,请参见 ncaport.conf(4)。
# cat /etc/nca/ncaport.conf # # NCA Kernel Module Port Configuration File # . . ncaport=*/80 ncaport=192.168.84.71/8888 |
启动一个新的 Web 实例。
地址需要位于包含 NCA 端口配置的文件中,Web 服务器才能将该地址用于 NCA。如果 Web 服务器正在运行,则定义新地址后必须将其重新启动。
应使用此过程来改善 Apache 2.0 Web 服务器上的 SSL 包进程的性能。
以下过程要求已安装并配置 Apache 2.0 Web 服务器。Solaris 10 发行版中包括 Apache 2.0 Web 服务器。
要使用 SSL 内核代理,服务器私钥和服务器证书需要位于一个文件中。如果只在 ssl.conf 文件中指定了 SSLCertificateFile 参数,则指定的文件可直接用于内核 SSL。如果还指定了 SSLCertificateKeyFile 参数,则需要合并证书文件和私钥文件。合并证书文件和私钥文件的一种方法是运行以下命令:
# cat cert.pem key.pem >cert_and key.pem |
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。�C有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。ksslcfg 命令包括在 Network Security 配置文件中。
停止 Web 服务器。
此命令将停止将服务器配置为使用 SMF 运行的系统中的 Web 服务器。
# svcadm disable svc:/network/http:apache2 |
如果服务尚未转换,请使用以下命令语法停止该服务: /usr/apache2/bin/apachectl stop
确定要用于 ksslcfg 命令的参数。
ksslcfg(1M) 手册页中列出了所有选项。必须了解的参数包括:
key_format-与 -f 选项一起定义证书和密钥格式。对于 SSL 内核代理,该值应为 pem 或 pkcs12
key_and_certificate_file-与 -i 选项一起设置存储服务器密钥和证书的文件位置。
password_file-与 -p 选项一起选择文件的位置,该文件中应包括用于加密私钥的口令。此口令用来允许无人参与的重新引导。对该文件的权限应为 0400。
proxy_port-与 -x 选项一起设置 SSL 代理端口。请选择标准端口 80 之外的其他端口。
ssl_port-选择服务器应用程序的端口。通常,将此参数设置为 443。
不能为 NCA 配置 ssl_port 和 proxy_port 值,因为 SSL 内核代理以独占方式使用这些端口。通常,端口 80 用于 NCA,端口 8080 用于 proxy_port,端口 443 用于 ssl_port。
创建服务实例。
使用 ksslcfg 命令指定 SSL 代理端口和相关参数。
ksslcfg create -f key_format -i key_and_certificate_file -p password_file -x proxy_port ssl_port |
验证是否已正确创建该实例。
以下命令报告的服务状态应为“online”。
# svcs svc:/network/ssl/proxy |
配置 Web 服务器以在 SSL 代理端口上侦听。
编辑 /etc/apache2/http.conf 文件并添加一行,以定义 SSL 代理端口。如果使用服务器 IP 地址,Web 服务器将只在该接口上侦听。该行应如下所示:
Listen 0.0.0.0:proxy_port |
为 Web 服务器设置 SMF 相关性。
Web 服务器只应在 SSL 内核代理实例之后启动。以下命令将建立该相关性。
# svccfg -s svc:/network/http:apache2 svc:/network/http:apache2> addpg kssl dependency svc:/network/http:apache2> setprop kssl/entities = fmri:svc:/network/ssl/proxy:kssl-INADDR_ANY-443 svc:/network/http:apache2> setprop kssl/grouping = astring: require_all svc:/network/http:apache2> setprop kssl/restart_on = astring: refresh svc:/network/http:apache2> setprop kssl/type = astring: service svc:/network/http:apache2> end |
启用 Web 服务器。
# svcadm enable svc:/network/http:apache2 |
如果未使用 SMF 启动该服务,请使用以下命令: /usr/apache2/bin/apachectl startssl
以下命令将使用 pem 密钥格式创建一个实例。
# ksslcfg create -f pem -i cert_and_key.pem -p file -x 8080 433 |
应使用此过程来改善 Sun Java System Web Server 上的 SSL 包进程的性能。有关此 Web 服务器的信息,请参见《Sun Java System Web Server 6.1 SP4 Administrator’s Guide》。
以下过程要求已安装并配置 Sun Java System Web Server。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。�C有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。ksslcfg 命令包括在 Network Security 配置文件中。
停止 Web 服务器。
使用管理员 Web 界面停止服务器。有关更多信息,请参见《Sun Java System Web Server 6.1 SP4 Administrator’s Guide》。
确定要用于 ksslcfg 命令的参数。
ksslcfg(1M) 手册页中列出了所有选项。必须了解的参数包括:
key_format-与 -f 选项一起定义证书和密钥格式。
token_label-与 -T 选项一起指定 PKCS#11 标记。
certificate_label-与 -C 选项一起选择 PKCS#11 标记的证书对象中的标签。
password_file-与 -p 选项一起选择文件的位置,该文件中应包括用于使用户登录到 Web 服务器所使用的 PKCS#11 标记的口令。此口令用来允许无人参与的重新引导。对该文件的权限应为 0400。
proxy_port-与 -x 选项一起设置 SSL 代理端口。请选择标准端口 80 之外的其他端口。
ssl_port-定义服务器应用程序的端口。此值在 server.xml 文件中设置。通常,将此值设置为 443。
不能为 NCA 配置 ssl_port 和 proxy_port 值,因为 SSL 内核代理以独占方式使用这些端口。通常,端口 80 用于 NCA,端口 8080 用于 proxy_port,端口 443 用于 ssl_port。
创建服务实例。
使用 ksslcfg 命令指定 SSL 代理端口和相关参数。
ksslcfg create -f key_format -T PKCS#11_token -C certificate_label -p password_file -x proxy_port ssl_port |
验证是否已正确创建该实例。
以下命令报告的服务状态应为“online”。
# svcs svc:/network/ssl/proxy |
配置 Web 服务器以在 SSL 代理端口上侦听。
有关更多信息,请参见《Sun Java System Web Server 6.1 SP4 Administrator’s Guide》。
启动 Web 服务器。
以下命令将使用 pkcs11 密钥格式创建一个实例。
# ksslcfg create -f pkcs11 -T "NSS Internal PKCS #11 Module" -C "Server-Cert" -p file -x 8080 443 |
SSL 内核代理在区域中工作时具有以下限制:
所有内核 SSL 管理都必须从全局区域中执行。全局区域管理员需要访问本地区域证书和密钥文件。使用 ksslcfg 命令在全局区域中配置服务实例后,便可以启动本地区域 Web 服务器。
通过运行 ksslcfg 命令来配置实例时,必须指定特定的主机名或 IP 地址。需要特别指出的是,该实例不能使用 INADDR_ANY。
在本地区域中,先停止 Web 服务器。在全局区域中,执行配置服务的所有步骤。要为名为 apache_zone 的本地区域创建实例,请使用以下命令:
# ksslcfg create -f pem -i /zone/apache_zone/root/keypair.pem -p /zone/apache_zone/root/pass \ -x 8080 apache_zone 443 |
在本地区域中,运行以下命令,以启用服务实例:
# svcadm enable svc:/network/http:apache2 |