Sun Java System Access Manager 7 2005Q4 管理指南

日志记录功能

“日志记录服务”具有许多特殊功能,启用它们可以实现附加功能。其中包括“启用安全日志”、“命令行日志”和“远程日志”。

安全日志

此可选功能可以将其他安全性添加到日志记录功能中。启用“安全日志”后,可以检测对安全日志进行的未授权更改或篡改。无需特殊编码即可使用此功能。“安全日志”是通过使用系统管理员配置的预注册证书来完成的。此“清单分析和证书”(Manifest Analysis and Certification, MAC) 是为每个日志记录生成和存储的。定期插入的特殊“签名”日志记录代表了写入该点的日志内容签名。两个记录的组合可以确保日志未被篡改。

Procedure启用安全日志

步骤
  1. 创建一个名为 Logger 的证书,然后将其安装于运行 Access Manager 的部署容器内。有关详细信息,请参阅部署容器文档。

  2. 使用 Access Manager 控制台打开“日志记录服务”配置中的“安全日志”,然后保存更改。管理员也可修改“日志记录服务”中其他属性的默认值。

    如果日志目录从默认值 (/var/opt/SUMWam/logs) 进行了更改,则确保将权限设置为 0700。日志记录服务将创建目录(如果不存在),但它会按设置权限为 0755 的情况来创建目录。

    另外,如果指定了与默认目录不同的其他目录,则必须将 Web 容器的 server.policy 文件中的以下参数更改为新的目录:

    permission java.io.FilePermission “/var/opt/SUNWam/logs/*”,”delete,write”

  3. 在包含证书数据库密码的 AccessManager-base/SUNWam/config 目录下创建一个文件,然后将其命名为 .wtpass


    注 –

    可在 AMConfig.properties 文件中配置其文件名和路径。有关详细信息,请参阅附录 A,AMConfig.properties 文件中的“证书数据库”。

    出于安全考虑,应确保部署容器用户是唯一拥有读取该文件权限的管理员。


  4. 重新启动服务器。

    由于某些可导致误解的验证错误在安全日志启动时可能会被写入 /var/opt/SUNWam/debug/amLog 文件,因此应清空安全日志目录。

    要检测未授权的更改或安全日志篡改,请查找由验证操作写入 /var/opt/SUNWam/debug/amLog 的错误信息。要手动检查篡改,请运行 VerifyArchive 实用程序。有关详细信息,请参阅第 19 章,VerifyArchive 命令行工具

命令行日志

amadmin 命令行工具能够在 Directory Server 中创建、修改或删除身份对象(例如,组织、用户和角色)。该工具也可加载、创建和注册服务模板。“日志记录服务”可通过调用 -t 选项来记录这些操作。如果 AMConfig.properties 中的 com.iplanet.am.logstatus 属性被启用 (ACTIVE),将创建日志记录。(默认情况下将启用该属性。)命令行日志的前缀为 amAdmin。有关详细信息,请参阅第 14 章,amadmin 命令行工具

日志属性

AMConfig.properties 文件中有影响日志输出的属性:

com.iplanet.am.logstatus=ACTIVE

该属性将启用或禁用日志。默认为 ACTIVE。

iplanet-am-logging.service.level= level

service 是服务的常规调试文件名。leveljava.util.logging.Level 的值之一,表示日志中所记录的详细信息的级别。级别分为:SEVERE、WARNING、INFO、CONFIG、FINE、FINER 和 FINEST。大多数服务不记录详细信息级别高于 INFO 的日志。

远程日志

Access Manager 支持远程日志。这样就允许客户机应用程序使用安装有 Access Manager SDK 的主机,在部署在远程计算机上的 Access Manager 实例中创建日志记录。采用以下任意方案均可启动远程日志:

  1. 当 Access Manager 实例的“命名服务”中的日志 URL 指向远程实例,并且在两者之间有已配置的信任关系时,日志将被写入远程 Access Manager 实例。

  2. 当根据远程 Access Manager 实例安装 Access Manager SDK,并且在 SDK 服务器上运行的客户机(或简单 Java 类)使用日志 API 时,日志将被写入远程 Access Manager 计算机。

  3. 当 Access Manager 代理使用日志 API 时。

Procedure启用远程日志

步骤
  1. 如果您使用的是 Sun Java System Web Server,则需要在 server.xml 配置文件中设置以下环境变量:

    • java.util.logging.manager=com.sun.identity.log.LogManager

    • java.util.logging.config.file=/ AccessManager-base /SUNwam/lib/LogConfig.properties

    • 如果正在使用的 Java™ 2 Platform, Standard Edition 为 1.4 或更高版本,此操作需要通过调用以下命令行来完成:

      java -cp /AccessManager-base /SUNWam/lib/am_logging.jar:/ AccessManager-base /SUNWam/lib/xercesImpl.jar:/ AccessManager-base /SUNWam/lib/xmlParserAPIs.jar:/ AccessManager-base /SUNWam/lib/jaas.jar:/ AccessManager-base /SUNWam/lib/xmlParserAPIs.jar:/ AccessManager-base /SUNWam/lib/servlet.jar:/ AccessManager-base /SUNWam/locale:/ AccessManager-base/SUNWam/lib/am_services.jar:/ AccessManager-base/SUNWam/lib/am_sdk.jar:/ AccessManager-base/SUNWam/lib/jss311.jar:/ AccessManager-base/SUNWam/lib:.

      -Djava.util.logging.manager=com.sun.identity.log.LogManager

      -Djava.util.logging.config.file=/ AccessManager-base /SUNwam/lib/LogConfig.properties <logTestClass>

    • 如果正在使用的 Java 2 Platform, Standard Edition 的版本低于 1.4,此操作需要通过调用以下命令行来完成:

      java -Xbootclasspath/a:/AccessManager-base /SUNWam/lib/jdk_logging.jar -cp / AccessManager-base /SUNWam/lib/am_logging.jar:/ AccessManager-base /SUNWam/lib/xercesImpl.jar:/ AccessManager-base /SUNWam/lib/xmlParserAPIs.jar:/ AccessManager-base /SUNWam/lib/jaas.jar:/ AccessManager-base /SUNWam/lib/xmlParserAPIs.jar:/ AccessManager-base /SUNWam/lib/servlet.jar:/ AccessManager-base /SUNWam/locale:/ AccessManager-base/SUNWam/lib/am_services.jar:/ AccessManager-base/SUNWam/lib/am_sdk.jar:/ AccessManager-base/SUNWam/lib/jss311.jar:/ AccessManager-base/SUNWam/lib:.

      -Djava.util.logging.manager=com.sun.identity.log.LogManager

      -Djava.util.logging.config.file=/ AccessManager-base /SUNwam/lib/LogConfig.properties <logTestClass>

  2. 确保以下各参数是在位于 AccessManager-base/SUNWam/lib 中的 LogConfig.properties 内配置的:

    • iplanet-am-logging-remote-handler=com.sun.identity.

      log.handlers.RemoteHandler

    • iplanet-am-logging-remote-formatter=com.sun.

      identity.log.handlers.RemoteFormatter

    • iplanet-am-logging-remote-buffer-size=1

      远程日志以日志记录数目为基础支持缓冲技术。该值根据记录数目定义日志缓冲区的大小。 缓冲区满后,将刷新所有已缓冲的记录到服务器。

    • iplanet-am-logging-buffer-time-in-seconds=3600

      该值定义超时期限,可在其中调用日志缓冲区清理程序线程。

    • iplanet-am-logging-time-buffering-status=OFF

      该值定义是否启用日志缓冲技术(和缓冲区清理程序线程)。默认情况下,此功能被关闭。


    注 –

    每当日志文件为空,安全日志记录便可能显示“验证失败。”这是由于创建的文件数量等于归档大小时,安全日志记录将从此组归档并重新启动。在大部分实例中,可忽略此错误。一旦记录数等于归档大小,将不显示此错误。