系统管理指南:基本管理

Oracle Java Web Console 参考信息

本参考节包含以下主题:

Oracle Java Web Console 安全注意事项

使用 Oracle Java Web Console 中的应用程序时,要牢记几个安全注意事项。

这些安全注意事项包括:

对 Oracle Java Web Console 的访问权限

对于 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 的远程访问

对 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 的内部口令

使用 authTypes 标记指定授权

尽管多数系统管理 Web 应用程序不需要管理员对 authTypes 标记的使用进行任何干预,但在某些情况下,您可能需要更改此标记的值。authTypes 标记包含一组描述信息,这些信息描述用户在 Oracle Java Web Console 中查看应用程序所必需的授权级别。该 Web 控制台基于特定应用程序 app.xml 文件中的授权要求来确定用户是否有权查看该应用程序。每个应用程序都能够确定用户是否必须具有正确的授权才能运行该应用程序,这可以在应用程序的安装过程中确定。或者,您可能需要根据自己的安全要求提供信息。应用程序的产品文档中应当包含确定是否需要指定特定权限所必需的信息。

可以在 authTypes 标记中嵌套几个 authType 标记。

authTypes 标记中必须至少包含一个提供如下必需信息的 authType 标记:

在以下示例中,authType 标记有一个属性:namename 属性是必需的,它是授权服务类型的名称。授权类型不同,classTypepermissionParam 标记的值可能也需要有所不同。


<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>

启用对 Oracle Java Web Console 的远程访问

如果只能通过先登录运行该控制台的系统再使用 URL https://localhost:6789 来连接到该控制台,则说明系统所使用的配置禁止进行远程访问。从 Solaris 10 11/06 发行版开始,可以仅启用对控制台的远程访问,同时保留其他访问限制,具体过程如下所示:

Procedure如何启用对 Oracle Java Web Console 的远程访问

  1. 在正在运行该控制台的系统上成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 设置属性,以允许控制台服务器响应网络请求并重新启动控制台服务器。


    # svccfg -s svc:/system/webconsole setprop options/tcp_listen = true
    
    # smcwebserver restart
    

禁用对 Oracle Java Web Console 的远程访问

可以阻止用户从远程系统连接至控制台。从 Solaris 10 11/06 发行版开始,可以仅禁用对该控制台的远程访问,同时保留其他访问权限,具体过程如下所示:

Procedure如何禁用对 Oracle Java Web Console 的远程访问

  1. 在正在运行该控制台的系统上成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 设置属性,以阻止控制台服务器响应网络请求并重新启动控制台服务器。


    # svccfg -s svc:/system/webconsole setprop options/tcp_listen = false
    
    # smcwebserver restart
    

    重新启动后,控制台现在仅对与控制台服务器进程位于同一系统上的浏览器作出响应。您无法在浏览器中使用代理,只能使用直接连接。您还可以使用 https://localhost:6789/ URL 来访问该控制台。

更改 Oracle Java Web Console 的内部口令

从 Solaris 10 11/06 发行版开始,控制台使用一些内部用户名和口令。该控制台的内部用户名和口令只能由控制台框架来使用,而决不能由用户或系统管理员直接使用。但是,在获知口令之后,恶意用户有可能会干扰控制台应用程序。为了降低出现类似安全性破坏的可能性,应当更改这些口令。您不需要记住这些新口令,因为软件会以不可见方式使用它们。

Procedure如何更改控制台的内部口令

这些口令分为管理口令、密钥库口令和信任库口令。您可以在不知道缺省初始值的情况下更改这些口令。以下过程介绍如何使用相应的命令来更改这三种口令。

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 更改管理口令。


    # wcadmin password -a
    

    系统将提示您输入新口令两次。口令应当为 8 到 32 个字符。

  3. 更改密钥库口令。


    # wcadmin password -k
    

    系统将提示您输入新口令两次。口令应当为 8 到 32 个字符。

  4. 更改信任库口令。


    # wcadmin password -t
    

    系统将提示您输入新口令两次。口令应当为 8 到 32 个字符。