本章介绍 Oracle Java Web Console,该软件用来管理在系统上安装和注册的、基于 Web 的 Sun 系统管理应用程序。
以下列出本章所介绍的信息:
有关与使用 Oracle Java Web Console 相关的过程的信息,请参见Oracle Java Web Console 入门(任务图)和Oracle Java Web Console 软件故障排除(任务图)。
本节包含此 Oracle Solaris 发行版中的新增功能。有关新增功能的完整列表以及 Oracle Solaris 发行版的说明,请参见《Oracle Solaris 10 9/10 新增功能》。
Solaris 10 11/06:Oracle Java Web Console 服务器由服务管理工具 (Service Management Facility, SMF) 作为一项服务进行管理。有关 SMF 的更多信息,请参见第 18 章。
Solaris 10 6/06:Oracle Solaris ZFS 提供了基于 Web 的 Oracle Java Web Console 管理工具。使用此工具,可以执行许多可通过命令行界面 (command-line interface, CLI) 执行的管理任务。这些功能包括设置参数、查看各种池和文件系统,以及对它们进行更新。
下面举例说明可以用该工具执行的典型过程:
创建新存储池。
为现有池添加功能。
将存储池移动(导出)到另一个系统。
导入以前导出的存储池,使其可在另一个系统上使用。
查看有关存储池的信息表。
创建文件系统。
创建 zvol(虚拟卷)。
捕获文件系统或 zvol 卷的快照。
将文件系统回滚到以前的快照。
有关使用基于 Web 的 Oracle Solaris ZFS 管理工具的更多信息,请参见《Oracle Solaris ZFS 管理指南》。
Java Enterprise System 软件包括几个在 Oracle Java Web Console 中运行的管理应用程序。
Oracle Java Web Console 为用户访问基于 Web 的系统管理应用程序提供了一个公用位置。可以使用所支持的几种 Web 浏览器之一,通过安全的 https 端口登录来访问该 Web 控制台。由于该 Web 控制台提供单一的入口点,因此不必再记住多个应用程序的 URL。另外,对于在该 Web 控制台中注册的所有应用程序,均可通过单一的入口点对用户进行验证和授权。
所有基于 Web 控制台的应用程序都遵循相同的用户界面使用准则,这会使应用程序更易于使用。该 Web 控制台还为所有注册应用程序提供用户会话审计和日志记录服务。
Oracle Java Web Console 是一个 Web 页,您可在其中查找在系统上安装和注册的、基于 Web 的 Sun 系统管理应用程序。注册是在应用程序安装过程中自动进行的,因此无需管理员介入。
Oracle Java Web Console 具有如下特性:
单入口点登录以及启动基于浏览器的系统管理应用程序
该控制台提供一个集中位置,您只需从该位置单击应用程序的名称即可启动基于浏览器的管理应用程序。Oracle Java Web Console 和 Solaris Management Console 之间不存在兼容性。Oracle Java Web Console 是一个可通过浏览器访问的 Web 应用程序,而 Solaris Management Console 是一个可从命令行启动的 Java 应用程序。由于这两个控制台是完全独立的,因此您可以在同一个系统上同时运行这两个控制台。
此上下文中的单点登录,表示在向该 Web 控制台做自我验证之后,您无需再向每个管理应用程序做自我验证。针对每个控制台会话,只需输入一次用户名和口令。
动态组织和聚集的应用程序
应用程序按照最适用的管理任务类别安装,并按照此类别显示在控制台启动页上。
具体类别如下:
系统
存储
服务
桌面应用程序
其他
共同的外观
所有 Web 控制台应用程序都使用相同的用户界面 (user interface, UI) 组件且具有相同行为,从而使管理员学习起来更轻松。
可扩展的标准验证、授权和审计机制
Oracle Java Web Console 支持可插拔验证模块 (Pluggable Authentication Module, PAM)、基于角色的访问控制 (role-based access control, RBAC) 角色和基本安全模块 (Basic Security Module, BSM) 审计。
Oracle Java Web Console 包括以下管理命令:
wcadmin-从 Solaris 10 11/06 发行版开始,此命令可用来配置控制台,还可用来注册和部署控制台应用程序。有关更多信息,请参见 wcadmin(1M) 手册页。
smreg - 在 Oracle Solaris 10、Solaris 10 1/06 和 Solaris 10 6/06 OS 中,此命令可用来注册所有控制台应用程序。
从 Solaris 10 11/06 发行版开始,此命令只能用来注册为 Oracle Java Web Console 3.0 之前的控制台版本创建的传统应用程序。
这些命令可用来执行本章中描述的各项任务。
有关每个命令的更多信息,请参见 smcwebserver(1M)、wcadmin(1M) 和 smreg(1M) 手册页。
在运行 Oracle Solaris 时,Oracle Java Web Console 可以在下面的任一浏览器中使用:
Mozilla(至少为版本 1.4)
Netscape(至少为版本 6.2)
Firefox(至少为版本 1.0)
Oracle Java Web Console 的启动页上列出了您有权使用的已注册系统管理应用程序,以及每个应用程序的简要说明。可通过单击特定应用程序的名称(该名称链接到实际的应用程序)来与其进行连接。缺省情况下,选定应用程序会在 Web 控制台窗口中打开。可以通过单击“在新窗口中启动每个应用程序”复选框来选择在单独的浏览器窗口中打开应用程序。当您在单独的窗口中打开应用程序时,该 Web 控制台的启动页仍可用,因此,您可以返回到启动页并在单次登录中启动多个应用程序。
要访问控制台启动页,请在 Web 位置字段中键入以下格式的 URL:
https://hostname.domain:6789
其中:
https 指定安全套接字层 (Secure Socket Layer, SSL) 连接
hostname.domain 指定用来承载该控制台的服务器的名称和域
6789 是为该控制台指定的端口号
从特定系统首次访问 Oracle Java Web Console 时,必须接受服务器的证书,才会显示该 Web 控制台的启动页。
如果在系统上启用了 RBAC,且为某个角色指定了您的用户身份,则成功登录后系统会提示您输入角色口令。如果您承担某个角色,则系统会对承担的角色进行授权检查。您可以通过选择“无角色”来取消承担某个角色,然后系统会针对您的用户身份进行授权检查。授权检查成功后,将显示 Web 控制台启动页。
启动与 Oracle Java Web Console 兼容的 Web 浏览器(如 Mozilla 1.7 或 Firefox 1.0)。
有关支持的浏览器的列表,请参见支持的 Web 浏览器。
在 Web 浏览器的位置字段中键入控制台的 URL。
例如,如果管理服务器主机的名称为 sailfish,域为 sw,则 URL 为 https://sailfish.sw:6789。通过此 URL 将进入 Web 控制台登录页面。
接受服务器的证书。
对于服务器的证书,只需在每个浏览器会话中接受一次,而不需要在每次登录控制台或启动应用程序时都执行接受操作。
将显示登录页面,如下图中所示。
输入您的用户名和口令,还可以选择输入您的 RBAC 角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
控制台服务会检查您的凭证以便验证它们,并确保您有权使用控制台和注册应用程序。
如果您要在新窗口中运行该应用程序,单击“在新窗口中启动每个应用程序”复选框。
如果此选项处于未选中状态,则应用程序将在缺省窗口中运行,并取代启动页。
单击与要运行的应用程序相对应的链接。
还可以使用如下语法,绕过启动页而直接启动单个应用程序:
https://hostname.domain:6789/app-context-name |
其中,app-context-name 是在部署应用程序时使用的名称。
要查找应用程序上下文的名称,可以执行以下操作之一:
阅读应用程序的文档。
运行 wcadmin list -a 或 smreg list -a 命令,查看已部署的 Web 应用程序及其上下文名称的列表。
从 Web 控制台的启动页运行该应用程序,并记下地址位置字段中所显示的 URL。您可以在下次使用应用程序时直接键入该 URL。也可以为该位置制作书签并通过书签来访问相应的应用程序。
Solaris 10 11/06:Oracle Java Web Console 服务通过服务管理工具 (Service Management Facility, SMF) 进行管理。您可以使用 SMF 命令或者 smcwebserver 脚本来启动、停止、启用和禁用控制台服务。该控制台在 SMF 中使用的 FMRI(故障管理资源标识符)是 system/webconsole:console。
此过程可临时启动服务器。如果服务器以前禁止在系统引导时启动,则它将继续处于禁用状态。如果服务器以前处于启用状态,则它将继续处于启用状态。
从 Solaris 10 11/06 发行版开始,运行状态 enabled 显示为 true (temporary)(如果服务器在禁用状态下运行)。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
立即启动服务器,而不更改启用状态。
# smcwebserver start |
此过程使控制台服务能够在系统每次启动时运行。控制台不是在当前的会话中启动的。
从 Solaris 10 11/06 发行版开始,此过程会在 SMF 中将 general/enabled 属性设置为 true,以使服务器在系统引导时启动。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
使服务器能够在系统引导时启动。
# smcwebserver enable |
Solaris 10 11/06:或者,如果您要立即启动服务器,并使该服务器可以在系统引导时启动,请使用以下命令:
# svcadm enable system/webconsole:console |
如果您正在运行 Solaris 10 11/06 发行版,则不能使用 smcwebserver 命令来启用控制台,而必须使用 svcadm 命令。
此过程可临时停止服务器。如果服务器以前禁止在系统引导时启动,则它将继续处于禁用状态。如果服务器以前处于启用状态,则它将继续处于启用状态。
从 Solaris 10 11/06 发行版开始,运行状态 enabled 显示为 false (temporary)(如果服务器在启用状态下停止)。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
立即停止服务器,而不更改启用状态。
# smcwebserver stop |
处于禁用状态的控制台服务器不会在系统引导时启动。
从 Solaris 10 11/06 发行版开始,此过程会在 SMF 中将控制台的 general/enabled 属性设置为 false,以使控制台服务器在系统引导时不启动。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
禁止服务器在系统引导时启动。
# smcwebserver disable |
Solaris 10 11/06:或者,如果您要立即停止服务器,并禁止服务器在系统引导时启动,请使用以下命令:
# svcadm disable system/webconsole:console |
如果您正在运行 Solaris 10 11/06 发行版,则不能使用 smcwebserver 命令来禁用控制台,而必须使用 svcadm 命令。
Oracle Java Web Console 预先配置为在没有管理员干预的情况下运行。但是,您可以选择通过覆盖控制台的配置属性来更改 Web 控制台的某些缺省行为。
从 Solaris 10 11/06 OS 开始,必须使用 wcadmin 命令来更改这些属性,而在以前使用的是 smreg 命令。有关 wcadmin 命令的更多信息,请参见 wcadmin (1M) 手册页。
控制台配置文件中的属性对控制台的行为进行控制。要更改行为,需要定义新属性值来覆盖缺省值。除非对缺省值不提供的功能(如指定自己的登录服务)有特别需求,否则不能覆盖大多数属性的缺省值。
通常,可以考虑更改下面的属性值:
控制台会话超时
Web 控制台的会话超时时间由 session.timeout.value 属性控制。此属性控制会话超时之前 Web 控制台页保持无用户交互状态的时间。在超时后,用户必须重新登录。缺省值是 15 分钟。您可以根据自己的安全策略设置新值(以分钟为单位)。但是,请记住,此属性控制所有控制台用户和所有已注册应用程序的超时时间。
有关如何更改会话超时的示例,请参见示例 3–1。
日志级别
可以使用日志记录属性来配置日志记录服务。控制台日志文件在 /var/log/webconsole/console 目录中创建。logging.default.level 属性确定记录哪些消息。控制台日志为解决问题提供了宝贵的信息。
日志级别适用于任何通过日志记录服务写入的消息,缺省情况下该日志服务使用 Oracle Solaris 发行版中的系统日志。系统日志日志文件为 /var/adm/messages。文件 /var/log/webconsole/console/console_debug_log 包含启用调试服务后写入的日志消息。通过按照使用控制台调试跟踪日志中所述的方式设置 debug.trace.level 属性来完成此操作。尽管缺省日志记录和调试日志记录服务是彼此独立的,但系统日志的所有 Oracle Java Web Console 日志消息还会被写入 console_debug_log 以便为调试提供帮助。通常,应始终启用日志记录服务(使用 logging.default.level 进行设置),以便通过控制台应用程序进行日志记录。只有在调查问题时才应启用调试日志记录(使用 debug.trace.level 进行设置)。
logging.default.level 具有下列属性值:
all
info
off
severe
warning
有关说明如何更改日志级别的示例,请参见示例 3–2。
审计实现
审计是生成和记录与安全有关的管理事件的过程。事件表示特定用户已经更新系统的管理信息。审计实现由生成审计事件的服务和应用程序使用。
该 Web 控制台定义了以下审计事件:
登录
退出
承担角色
在发生审计事件时,会在审计日志中创建一个事件记录。审计日志的位置因所使用的审计实现而异。该 Web 控制台的审计服务使用由底层操作系统提供的审计实现。
Web 控制台支持三种审计实现: Solaris、Log 和 None。可以通过将这些关键字之一指定为 audit.default.type 配置属性的值来选择审计实现。一次只能有一个审计实现起作用。
支持的审计实现类型包括:
Solaris
Solaris 实现是缺省实现。此实现支持 BSM 审计机制。审计机制将审计记录写入 /var/audit 目录中的系统文件。
可以使用 praudit 命令来显示记录。为了捕获事件,必须在系统上启用 BSM 审计机制。另外,/etc/security/audit_control 文件中必须包含指示应当生成哪些事件的项。必须将 lo 事件设置为标志选项,才能查看每个用户的登录和退出事件。有关更多信息,请参见 praudit(1M) 和 bsmconv(1M) 手册页以及《系统管理指南:安全性服务》中的第 VII 部分, “Solaris 审计”。
Log
可以将此实现配置为写入系统的 syslog 服务。如果已在 info 级别启用了日志服务,审计消息将写入控制台日志。有关更多信息,请参见示例 3–2。
None
有关如何指定审计实现的示例,请参见示例 3–5。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
根据所运行的 Oracle Solaris 发行版,请按如下方式更改选定的属性值:
(可选的)将控制台属性重置为其缺省值。
# wcadmin add -p -a console session.timeout.value=5 |
以下示例说明如何将日志级别设置为 all。
# wcadmin add -p -a console logging.default.level=all |
以下示例说明如何将日志级别重置为缺省值。
# wcadmin remove -p -a console logging.default.level |
以下示例说明如何为该控制台设置 Java 版本。
# wcadmin add -p -a console java.home=/usr/java |
以下示例显示如何将审计实现设置为 None。
# wcadmin add -p -a console audit.default.type=None |
有效的审计类型为:
无审计
系统日志审计消息
BSM 审计消息
缺省情况下,Web 控制台在 noaccess 用户身份下运行。但是,某些系统配置会禁用 noaccess 用户,或者将 noaccess 用户的登录 shell 设置为无效项,使该用户身份不可用。
当 noaccess 用户不可用时,该 Web 控制台服务器将无法启动或配置,因此您必须指定一个备用的用户身份。最好仅更改一次用户身份,这可以在最初启动时配置控制台服务器之前进行。
控制台启动之前,您可以使用下面的任一命令,将 Web 控制台配置为在其他非超级用户身份下运行:
# smcwebserver start -u username |
此命令会在指定的用户身份下启动该 Web 控制台服务器。如果在 Web 控制台第一次启动之前发出此命令,则 Web 控制台服务器在每次后续启动后,都会在此身份下运行。
如果您所运行的版本不低于 Solaris 10 11/06 发行版,还可以使用以下命令:
# wcadmin add -p -a console com.sun.web.console.user= username |
从 Solaris 10 11/06 发行版开始,当系统初始启动时,控制台也会启动并自动配置为在 noaccess 下运行。因此,在您更改用户身份之前,用户身份将被设置为 noaccess。使用以下命令将控制台重置为其初始未配置状态。然后,在重新启动控制台时指定其他用户身份。
# smcwebserver stop # /usr/share/webconsole/private/bin/wcremove -i console # smcwebserver start -u new_user_identity |
对于 Oracle Solaris 10、Solaris 10 1/06 和 Solaris 10 6/06 发行版,请使用以下命令:
# smreg add -p -c com.sun.web.console.user=username |
此命令导致以后每次启动该 Web 控制台服务器时,该服务器都将在指定的用户身份下运行。
缺省情况下,控制台不记录调试消息。您可以打开调试日志记录以帮助解决控制台服务问题。
可以通过将 debug.trace.level 属性设置为 0 以外的值来打开调试日志记录。
可用的选项包括:
1-使用此设置可以记录可能很严重的错误。
2-使用此设置可以记录重要消息以及级别为 1 的错误消息。
3-使用此设置可以记录所有可能的消息以及全部细节。
缺省情况下,对于 Oracle Solaris 10、Solaris 10 1/06 和 Solaris 10 6/06 发行版,调试跟踪日志创建在 /var/log/webconsole 目录中。从 Solaris 10 11/06 发行版开始,该日志创建在 /var/log/webconsole/console 目录中。该日志文件名为 console_debug_log。历史记录日志(如 console_debug_log.1 和 console_debug_log.2)也可能存在于此目录中。在该目录中存储的历史记录日志数达到五个(缺省设置)后,会删除最早的日志并创建新日志。
可以使用以下命令将调试跟踪日志级别设置为 3。
对于 Solaris 10 11/06 发行版,请使用以下命令:
# wcadmin add -p -a console debug.trace.level=3 |
对于 Oracle Solaris 10、Solaris 10 1/06 和 Solaris 10 6/06 发行版,请使用以下命令:
# smreg add -p -c debug.trace.level=3 |
要检查 debug.trace.level 属性的状态,请使用 wcadmin list 或 smreg list 命令。
Solaris 10 11/06:
# wcadmin list -p | grep "debug.trace.level" |
对于 Oracle Solaris 10、Solaris 10 1/06 和 Solaris 10 6/06 发行版,请使用以下命令:
# smreg list -p | grep "debug.trace.level" |
任务 |
说明 |
参考 |
---|---|---|
检查并确定控制台是否正在运行且处于启用状态。 |
使用 smcwebserver、wcadmin 和 svcs 命令来检查控制台是否正在运行且处于启用状态。此信息对解决问题很有用。 | |
列出控制台资源和控制台属性。 |
为了进行故障排除,您可能需要收集有关控制台资源和控制台属性的信息。 | |
确定应用程序是否为传统应用程序。 |
当前的应用程序可以在控制台服务器正在运行时使用一条命令来注册和部署,传统应用程序则要求注册过程中控制台服务器应处于停止状态。如果您需要注册或注销应用程序,则必须首先确定该应用程序是否为传统应用程序。 | |
列出所有已注册的应用程序。 |
可以列出使用 Oracle Java Web Console 注册的所有应用程序。列出所有已注册的应用程序会为您提供有助于进行故障排除的信息。 | |
使用 Oracle Java Web Console 注册传统应用程序。 |
如果您需要使用传统应用程序,则必须首先使用 Oracle Java Web Console 注册该应用程序。 | |
从 Oracle Java Web Console 注销传统应用程序。 |
如果用 Oracle Java Web Console 注册的传统应用程序已不再需要,请按照相应的过程来将其注销。 | |
使用 Oracle Java Web Console 注册当前应用程序。 |
在使用新应用程序之前,需要使用 Oracle Java Web Console 注册该应用程序。 | |
从 Oracle Java Web Console 注销当前的应用程序。 |
在某些情况下,可能需要从 Oracle Java Web Console 注销当前的应用程序。 | |
启用对 Oracle Java Web Console 的远程访问。 |
您可以仅启用对该控制台的远程访问,同时保持其他访问限制。 | |
更改控制台的内部口令。 |
Oracle Java Web Console 使用内部口令。为了降低出现安全性破坏的可能性,可以更改这些口令。 |
下面提供的信息有助于解决在使用 Oracle Java Web Console 软件时可能遇到的任何问题。
可以使用 smcwebserver、wcadmin 和 svcs 命令来获取有关控制台的不同类型的信息,这些信息对解决问题很有用。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
检查服务器的状态。
# smcwebserver status Sun Java(TM) Web Console is running |
Solaris 10 11/06:检查控制台的 SMF 状态和启用状态。
# svcs -l system/webconsole:console |
如果您使用 smcwebserver 命令来启动和停止服务器,而不启用和禁用它,则 enabled 属性可能显示为 false (temporary) 或 true (temporary)。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
列出控制台资源和控制台属性。
如果您所运行的版本不低于 Solaris 10 11/06 发行版,请使用以下命令:
# wcadmin list Deployed web applications (application name, context name, status): console ROOT [running] console com_sun_web_ui [running] console console [running] console manager [running] legacy myapp [running] Registered jar files (application name, identifier, path): console audit_jar /usr/lib/audit/Audit.jar console console_jars /usr/share/webconsole/lib/*.jar console jato_jar /usr/share/lib/jato/jato.jar console javahelp_jar /usr/jdk/packages/javax.help-2.0/lib/*.jar console shared_jars /usr/share/webconsole/private/container/shared/lib/*.jar Registered login modules (application name, service name, identifier): console ConsoleLogin userlogin console ConsoleLogin rolelogin Shared service properties (name, value): ENABLE yes java.home /usr/jdk/jdk1.5.0_06 |
由于 SMF 使用自身的启用属性(如上一个过程中所示),此 ENABLE 属性将被忽略。ENABLE 属性用于旧式系统,该系统的控制台服务器不是由 SMF 管理。
对于 Oracle Solaris 10、Solaris 10 1/06 和 Solaris 10 6/06 发行版,请使用以下命令:
# smreg list The list of registered plugin applications: com.sun.web.console_2.2.4 /usr/share/webconsole/console com.sun.web.ui_2.2.4 /usr/share/webconsole/com_sun_web_ui com.sun.web.admin.example_2.2.4 /usr/share/webconsole/example The list of registered jar files: com_sun_management_services_api.jar scoped to ALL com_sun_management_services_impl.jar scoped to ALL com_sun_management_console_impl.jar scoped to ALL com_sun_management_cc.jar scoped to ALL com_sun_management_webcommon.jar scoped to ALL com_iplanet_jato_jato.jar scoped to ALL com_sun_management_solaris_impl.jar scoped to ALL com_sun_management_solaris_implx.jar scoped to ALL The list of registered login modules for service ConsoleLogin: com.sun.management.services.authentication.PamLoginModule optional use_first_pass="true" commandPath="/usr/lib/webconsole"; com.sun.management.services.authentication.RbacRoleLoginModule requisite force_role_check="true" commandPath="/usr/lib/webconsole"; The list of registered server configuration properties: session.timeout.value=15 authentication.login.cliservice=ConsoleLogin logging.default.handler=com.sun.management.services.logging.ConsoleSyslogHandler logging.default.level=info logging.default.resource=com.sun.management.services.logging.resources.Resources logging.default.filter=none logging.debug.level=off audit.default.type=None audit.None.class=com.sun.management.services.audit.LogAuditSession audit.Log.class=com.sun.management.services.audit.LogAuditSession audit.class.fail=none authorization.default.type=SolarisRbac authorization.SolarisRbac.class= com.sun.management.services.authorization.SolarisRbacAuthorizationService authorization.PrincipalType.class= com.sun.management.services.authorization.PrincipalTypeAuthorizationService debug.trace.level=0 . . . No environment properties have been registered. |
控制台访问问题可能表示控制台服务器尚未启用或者安全设置受到限制。有关更多信息,请参见检查控制台的状态和属性和Oracle Java Web Console 安全注意事项。
本节包含有关解决控制台应用程序可能会遇到的注册问题的信息。有关特定控制台应用程序的信息,应当参阅相应应用程序的文档。
控制台应用程序通常在安装过程中进行注册,因此,您通常不需要亲自注册应用程序。
从 Solaris 10 11/06 发行版开始,Web 控制台更改了应用程序的注册方法,但仍然支持为早期版本的控制台开发的应用程序。当前的应用程序可以在控制台服务器正在运行时使用一条命令来注册和部署,针对早期版本的控制台开发的应用程序称为传统应用程序,而且要求在注册过程中控制台服务器处于停止状态。如果您需要注册或注销应用程序,则必须首先确定该应用程序是否为传统应用程序,如下面的过程所述。
查看应用程序的 app.xml 文件。
app.xml 文件位于应用程序的 WEB-INF 目录中。
检查 app.xml 文件中的 registrationInfo 标记。
对于传统应用程序,registrationInfo 标记的版本为 2.x。例如,registrationInfo version="2.2.4"。
对于当前应用程序,registrationInfo 标记中的版本至少为 3.0。例如,registrationInfo version="3.0"。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
列出已部署的应用程序。
如果您所运行的版本不低于 Solaris 10 11/06 发行版,请使用以下命令:
# wcadmin list -a Deployed web applications (application name, context name, status): console ROOT [running] console com_sun_web_ui [running] console console [running] console manager [running] legacy myapp [running] |
该命令会列出所有已注册和已部署的应用程序。所列出的传统应用程序的名称中会显示 legacy。请参见如何确定应用程序是否为传统应用程序。列出的所有其他应用程序都是当前的应用程序,应当按照如何使用 Oracle Java Web Console 注册当前应用程序中的说明进行注册。
通常,显示的应用程序状态包含 running 或 stopped。如果状态为 running,则应用程序当前已装入并且可用。如果状态为 stopped,则应用程序当前未装入,从而不可用。有时应用程序会成功注册和部署,但由于应用程序中的问题而不会装入。如果这样,则应用程序的状态为 stopped。请检查 console_debug_log,以确定尝试装入应用程序时,从控制台的基础 Web 容器 Tomcat 追溯是否有错误。有关 console_debug_log 的更多信息,请参见使用控制台调试跟踪日志。
如果所有的应用程序都显示 stopped (包括控制台应用程序),则通常意味着控制台的 Web 容器没有运行。本例中的应用程序列表是从在 Web 容器中注册的静态 context.xml 文件中获取的。
对于 Oracle Solaris 10、Solaris 10 1/06 和 Solaris 10 6/06 发行版,请使用以下命令:
# smreg list -a The list of registered plugin applications: com.sun.web.console_2.2.4 /usr/share/webconsole/console com.sun.web.ui_2.2.4 /usr/share/webconsole/com_sun_web_ui com.sun.web.admin.yourapp_2.2.4 /usr/share/webconsole/yourapp |
此过程适用于 Oracle Solaris 10、Solaris 10 1/06 和 Solaris 10 6/06 发行版中的所有控制台应用程序。从 Solaris 10 11/06 发行版开始,此过程仅适用于那些标识为传统应用程序的应用程序。有关当前应用程序的注册过程,请参见如何使用 Oracle Java Web Console 注册当前应用程序。另请参见如何确定应用程序是否为传统应用程序。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
停止 Web 服务器。
# smcwebserver stop |
注册应用程序。
# smreg add -a /directory/containing/application-files |
smreg 命令管理 Oracle Java Web Console 注册表中的信息。此脚本还执行部署应用程序所需的一些其他工作。有关此命令的其他选项,请参见 smreg(1M) 手册页。
重新启动 Web 服务器。
# smcwebserver start |
以下示例说明如何注册其文件位于 /usr/share/webconsole/example 目录中的传统应用程序。请注意,对于传统应用程序,在注册应用程序之前必须停止控制台服务器,在注册应用程序之后必须启动控制台服务器。可忽略 smreg 发出的警告,因为该应用程序是传统的控制台应用程序。
# smcwebserver stop # smreg add -a /usr/share/webconsole/example Warning: smreg is obsolete and is preserved only for compatibility with legacy console applications. Use wcadmin instead. Type "man wcadmin" or "wcadmin --help" for more information. Registering com.sun.web.admin.example_version. # smcwebserver start |
此过程适用于 Oracle Solaris 10、Solaris 10 1/06 和 Solaris 10 6/06 发行版中的所有控制台应用程序。从 Solaris 10 11/06 发行版开始,此过程仅适用于那些标识为传统应用程序的应用程序。有关如何注销当前应用程序的过程,请参见如何从 Oracle Java Web Console 注销当前的应用程序。
如果不希望特定的传统应用程序显示在 Web 控制台的启动页中,但是又不想卸载该软件,则可以使用 smreg 命令来注销该应用程序。请参见如何确定应用程序是否为传统应用程序。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
注销应用程序。
# smreg remove -a app-name |
以下示例说明如何如何注销 app-name 为 com.sun.web.admin.example 的传统应用程序。
# smreg remove -a com.sun.web.admin.example Unregistering com.sun.web.admin.example_version. |
Solaris 10 11/06:此过程适用于无需停止和启动控制台服务器即可注册和部署的已更新的控制台应用程序。有关传统应用程序和 Oracle Solaris 10、Solaris 10 1/06、Solaris 10 6/06 发行版中的所有控制台应用程序的注册过程,请参见如何使用 Oracle Java Web Console 注册传统应用程序。另请参见如何确定应用程序是否为传统应用程序。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
注册和部署应用程序。
wcadmin deploy -a app-name -x app-context-name /full path/to/app-name |
以下示例说明如何注册和部署已经为当前的 Web 控制台开发或更新的应用程序。
# wcadmin deploy -a newexample_1.0 -x newexample /apps/webconsole/newexample |
Solaris 10 11/06:此过程适用于无需停止和启动控制台服务器即可注销和取消部署的已更新的控制台应用程序。有关传统应用程序和 Oracle Solaris 10、Solaris 10 1/06、Solaris 10 6/06 发行版中的所有控制台应用程序的注销过程,请参见如何从 Oracle Java Web Console 注销传统应用程序。请参见如何列出已部署的应用程序和如何确定应用程序是否为传统应用程序,确定应用程序是传统应用程序还是已更新的应用程序。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
取消部署和注销应用程序。
# wcadmin undeploy -a newexample_1.0 -x newexample |
本参考节包含以下主题:
使用 Oracle Java Web Console 中的应用程序时,要牢记几个安全注意事项。
这些安全注意事项包括:
对 Oracle Java Web Console 的访问权限-是否能够通过浏览器连接到该控制台。
对应用程序的访问权限-是否能够在 Oracle Java Web Console 的启动页中看到特定的应用程序。
应用程序权限-运行部分或全部应用程序所必需的权限级别。
对远程系统的应用程序访问权限—安全凭证如何处理远程系统。
用在控制台中的内部口令-从 Solaris 10 11/06 发行版开始,更改在控制台内部使用的缺省口令。
对于 Web 控制台启动应用程序的权限通常是开放的,以便任何有效用户都可以登录。但是,可以通过在 Web 控制台的 app.xml 文件(位于 /usr/share/webconsole/webapps/console/WEB-INF 目录中)的 authTypes 标记中指定权限来限制对控制台的访问。有关更多信息,请参见使用 authTypes 标记指定授权。
某些系统配置设置得非常安全,因此,如果有人企图从远程系统连接到控制台或已注册应用程序的 URL,这样的请求将被拒绝。如果您的系统配置为禁止远程访问,那么,当您尝试通过 https://hostname.domain:6789 访问控制台时,浏览器中将显示一条类似于以下内容的消息:
Connect to hostname.domain:6789 failed (Connection refused) |
系统中的 SMF 配置文件可能会限制访问。有关配置文件的更多信息,请参见SMF 配置文件。有关如何允许从远程系统访问控制台的过程,请参见启用对 Oracle Java Web Console 的远程访问。
成功登录 Web 控制台后,可能无法自动访问在该控制台中注册的所有应用程序。通常,必须安装应用程序,才能让所有的用户在控制台的启动页中看到它们。作为管理员,您可以授予和限制对应用程序的访问权限。
要限制对应用程序的访问权限,请在 authTypes 标记(位于应用程序的 app.xml 文件中)中指定权限。应用程序的 app.xml 文件可以在 installation-location/WEB-INF/ 子目录中找到。通常,此目录位于 /usr/share/webconsole/webapps/app-context-name/WEB-INF 中。
如果应用程序文件不在通常的位置,则可以使用以下命令找到这些文件:
wcadmin list --detail -a |
此命令可以列出每个已部署应用程序,同时显示其部署时间和指向应用程序的基目录的路径。app.xml 文件位于基目录的子目录 WEB-INF 中。
有关更多信息,请参见使用 authTypes 标记指定授权。
如果您可以在 Oracle Java Web Console 的启动页中看到某个应用程序的链接,则可以运行该应用程序。但是,应用程序可能会基于经过验证的用户或角色身份执行其他授权检查。这些检查不是由 authTypes 标记控制的,而是显式编码到应用程序中。例如,应用程序可以向所有经过验证的用户授予读取访问权限,但是会将更新访问权限限制在少数几个用户或少数几个角色。
具备所有适当的凭证并不能保证您可以使用某个应用程序来管理该应用程序的操作范围内的每个系统。使用 Oracle Java Web Console 应用程序来管理的每个系统都有各自的安全域。对于该 Web 控制台系统具有读写权限并不能保证这些凭证自动满足管理任何其他远程系统的需要。
通常,对远程系统的访问权限取决于如何在 Web 应用程序中实现安全。Web 应用程序通常会调用代表应用程序执行操作的代理。这些应用程序必须由代理基于如下内容来进行验证:应用程序的 Web 控制台凭证,以及代理系统用于对应用程序进行识别的凭证。根据代理验证的执行方式,还可以基于这个经过验证的身份对代理本身执行授权检查。
例如,在使用远程 WBEM 代理的 Web 应用程序中,验证通常使用最初向 Oracle Java Web Console 验证的用户或角色身份。如果此验证在该代理系统上失败,则会拒绝在这个 Web 应用程序中访问该系统。即使此验证在该代理系统上成功,但是如果该代理在进行访问控制检查之后拒绝了访问,则访问仍可能被拒绝。多数应用程序都按照如下方式编写:如果已经在 Web 控制台上成功验证而且承担了正确的角色,针对代理的验证和授权检查就决不会失败。
从 Solaris 10 11/06 发行版开始,Oracle Java Web Console 使用几个用口令保护的内部用户名,在底层 Web 服务器上执行管理任务,并对密钥库文件和信任库文件进行加密。将这些口令设置为初始值可允许安装控制台。为了降低出现安全性破坏的可能性,应当在安装之后更改这些口令。请参见更改 Oracle Java Web Console 的内部口令
尽管多数系统管理 Web 应用程序不需要管理员对 authTypes 标记的使用进行任何干预,但在某些情况下,您可能需要更改此标记的值。authTypes 标记包含一组描述信息,这些信息描述用户在 Oracle Java Web Console 中查看应用程序所必需的授权级别。该 Web 控制台基于特定应用程序 app.xml 文件中的授权要求来确定用户是否有权查看该应用程序。每个应用程序都能够确定用户是否必须具有正确的授权才能运行该应用程序,这可以在应用程序的安装过程中确定。或者,您可能需要根据自己的安全要求提供信息。应用程序的产品文档中应当包含确定是否需要指定特定权限所必需的信息。
可以在 authTypes 标记中嵌套几个 authType 标记。
authTypes 标记中必须至少包含一个提供如下必需信息的 authType 标记:
要执行的授权检查的类型
Permission 子类名
实例化 Permission 子类所必需的参数
在以下示例中,authType 标记有一个属性:name。name 属性是必需的,它是授权服务类型的名称。授权类型不同,classType 和 permissionParam 标记的值可能也需要有所不同。
<authTypes> <authType name="SolarisRbac"> <classType> com.sun.management.solaris.RbacPermission </classType> <permissionParam name="permission"> solaris.admin.serialmgr.read </permissionParam> </authType> </authTypes> |
下表显示了可嵌套在 authType 标记中的标记。
表 3–1 嵌套的 authType 标记
标记 |
属性 |
说明 |
---|---|---|
classType |
|
Permission 子类名。此标记是必需的。 |
permissionParam |
name |
创建 classType 所指定类型的类的实例所必需的参数。 |
authTypes 标记和嵌套的 authType 标记是 app.xml 文件中的必需元素。如果希望注册所有人都可使用的应用程序,请指定 authType 标记,但不要在其中包括任何内容,如以下示例所示。
<authTypes> <authType name=""> <classType></classType> <permissionParam name=""></permissionParam> </authType> </authTypes> |
如果只能通过先登录运行该控制台的系统再使用 URL https://localhost:6789 来连接到该控制台,则说明系统所使用的配置禁止进行远程访问。从 Solaris 10 11/06 发行版开始,可以仅启用对控制台的远程访问,同时保留其他访问限制,具体过程如下所示:
在正在运行该控制台的系统上成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
设置属性,以允许控制台服务器响应网络请求并重新启动控制台服务器。
# svccfg -s svc:/system/webconsole setprop options/tcp_listen = true # smcwebserver restart |
可以阻止用户从远程系统连接至控制台。从 Solaris 10 11/06 发行版开始,可以仅禁用对该控制台的远程访问,同时保留其他访问权限,具体过程如下所示:
在正在运行该控制台的系统上成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
设置属性,以阻止控制台服务器响应网络请求并重新启动控制台服务器。
# svccfg -s svc:/system/webconsole setprop options/tcp_listen = false # smcwebserver restart |
重新启动后,控制台现在仅对与控制台服务器进程位于同一系统上的浏览器作出响应。您无法在浏览器中使用代理,只能使用直接连接。您还可以使用 https://localhost:6789/ URL 来访问该控制台。
从 Solaris 10 11/06 发行版开始,控制台使用一些内部用户名和口令。该控制台的内部用户名和口令只能由控制台框架来使用,而决不能由用户或系统管理员直接使用。但是,在获知口令之后,恶意用户有可能会干扰控制台应用程序。为了降低出现类似安全性破坏的可能性,应当更改这些口令。您不需要记住这些新口令,因为软件会以不可见方式使用它们。
这些口令分为管理口令、密钥库口令和信任库口令。您可以在不知道缺省初始值的情况下更改这些口令。以下过程介绍如何使用相应的命令来更改这三种口令。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
更改管理口令。
# wcadmin password -a |
系统将提示您输入新口令两次。口令应当为 8 到 32 个字符。
更改密钥库口令。
# wcadmin password -k |
系统将提示您输入新口令两次。口令应当为 8 到 32 个字符。
更改信任库口令。
# wcadmin password -t |
系统将提示您输入新口令两次。口令应当为 8 到 32 个字符。