“日志记录服务”具有许多特殊功能,启用它们可以实现附加功能。其中包括“启用安全日志”、“命令行日志”和“远程日志”。
此可选功能可以将其他安全性添加到日志记录功能中。启用“安全日志”后,可以检测对安全日志进行的未授权更改或篡改。无需特殊编码即可使用此功能。“安全日志”是通过使用系统管理员配置的预注册证书来完成的。此“清单分析和证书”(Manifest Analysis and Certification, MAC) 是为每个日志记录生成和存储的。定期插入的特殊“签名”日志记录代表了写入该点的日志内容签名。两个记录的组合可以确保日志未被篡改。
创建一个名为 Logger 的证书,然后将其安装于运行 Access Manager 的部署容器内。有关详细信息,请参阅部署容器文档。
使用 Access Manager 控制台打开“日志记录服务”配置中的“安全日志”,然后保存更改。管理员也可修改“日志记录服务”中其他属性的默认值。
如果日志目录从默认值 (/var/opt/SUMWam/logs) 进行了更改,则确保将权限设置为 0700。日志记录服务将创建目录(如果不存在),但它会按设置权限为 0755 的情况来创建目录。
另外,如果指定了与默认目录不同的其他目录,则必须将 Web 容器的 server.policy 文件中的以下参数更改为新的目录:
permission java.io.FilePermission “/var/opt/SUNWam/logs/*”,”delete,write”
在包含证书数据库密码的 AccessManager-base/SUNWam/config 目录下创建一个文件,然后将其命名为 .wtpass。
可在 AMConfig.properties 文件中配置其文件名和路径。有关详细信息,请参阅附录 A,AMConfig.properties 文件中的“证书数据库”。
出于安全考虑,应确保部署容器用户是唯一拥有读取该文件权限的管理员。
重新启动服务器。
由于某些可导致误解的验证错误在安全日志启动时可能会被写入 /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 文件中有影响日志输出的属性:
该属性将启用或禁用日志。默认为 ACTIVE。
service 是服务的常规调试文件名。level 是 java.util.logging.Level 的值之一,表示日志中所记录的详细信息的级别。级别分为:SEVERE、WARNING、INFO、CONFIG、FINE、FINER 和 FINEST。大多数服务不记录详细信息级别高于 INFO 的日志。
Access Manager 支持远程日志。这样就允许客户机应用程序使用安装有 Access Manager SDK 的主机,在部署在远程计算机上的 Access Manager 实例中创建日志记录。采用以下任意方案均可启动远程日志:
当 Access Manager 实例的“命名服务”中的日志 URL 指向远程实例,并且在两者之间有已配置的信任关系时,日志将被写入远程 Access Manager 实例。
当根据远程 Access Manager 实例安装 Access Manager SDK,并且在 SDK 服务器上运行的客户机(或简单 Java 类)使用日志 API 时,日志将被写入远程 Access Manager 计算机。
当 Access Manager 代理使用日志 API 时。
如果您使用的是 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>
确保以下各参数是在位于 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
该值定义是否启用日志缓冲技术(和缓冲区清理程序线程)。默认情况下,此功能被关闭。
每当日志文件为空,安全日志记录便可能显示“验证失败。”这是由于创建的文件数量等于归档大小时,安全日志记录将从此组归档并重新启动。在大部分实例中,可忽略此错误。一旦记录数等于归档大小,将不显示此错误。