17.3. 在 CS.cfg 文件中配置日志
在安装过程中,您可以通过直接编辑实例的 CS.cfg
来配置日志记录。
停止子系统实例。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl stop pki-tomcatd-nuxwdog@instance_name.service
# systemctl stop pki-tomcatd-nuxwdog@instance_name.service
-
打开
/var/lib/pki/<instance_name>/<subsystem_type>/conf
目录中的CS.cfg
文件。 -
要创建新日志,请为系统或事务日志复制所有条目。这些是以
log.instance.Transactions
或log.instance.System
开头的参数。粘贴日志记录部分底部的所有条目,并通过将每个参数中的单词Transactions
或System
更改为新名称来更改此实例的名称。 要配置日志实例,请修改与该日志关联的参数。这些参数以
log.instance
开头。表 17.3. 日志条目参数 参数 描述 type
日志文件的类型。系统 创建错误和系统日志; 事务 记录审计日志。
enable
设置日志是否活跃。仅启用的日志实际上记录事件。
level
在文本字段中设置日志级别。必须在字段中手动输入该级别;没有选择菜单。日志级别设置是一个数字值,如 第 17.1.2 节 “日志级别(消息类别)” 中列出的。
fileName
日志文件的完整路径,包括文件名。子系统用户应具有文件的读取/写入权限。
bufferSize
日志的缓冲大小(KB)。当缓冲区达到这个大小后,缓冲区的内容将清除并复制到日志文件中。默认大小为 512 KB。有关缓冲的日志的更多信息,请参阅 第 17.1.3 节 “buffered 和 unbuffered 日志记录”。
flushInterval
缓冲区内容被清除并添加到日志文件中的时间(以秒为单位)。默认间隔为 5 秒。
maxFileSize
日志文件的大小(KB)在轮转前可能会成为它。达到这个大小后,文件会被复制到轮转的文件中,日志文件将启动新文件。有关日志文件轮转的详情,请参考 第 17.1.4 节 “日志文件轮转”。默认大小为 2000 KB。
rolloverInterval
服务器轮转活跃日志文件的频率。可用的选项有每小时、每天、每周、每月和每年。默认选择是 monthly。如需更多信息,请参阅 第 17.1.4 节 “日志文件轮转”。
register
如果此变量设为
false
(默认值),则 self-test 消息将仅记录到selftests.container.logger.fileName
指定的日志文件。如果此变量设为true
,则 self-test 消息将写入selftests.container.logger.fileName
指定的日志文件,并写入 log.instance.Transactions.fileName 指定的日志文件。logSigning
启用签名的日志记录。启用此参数后,为 signedAuditCertNickname 参数提供一个值。这个选项意味着只能由审核员查看日志。该值可以是
true
或false
。signedAuditCertNickname
用于为审计日志签名的证书的别名。此证书的私钥必须可供子系统访问,才能为日志签名。
events
指定将哪些事件记录到审计日志。日志事件用逗号分开,没有空格。
- 保存该文件。
启动子系统实例。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl start pki-tomcatd@instance_name.service
systemctl start pki-tomcatd@instance_name.service
OR (如果使用
nuxwdog watchdog
)Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl start pki-tomcatd-nuxwdog@instance_name.service
# systemctl start pki-tomcatd-nuxwdog@instance_name.service
17.3.1. 启用和配置签名的审计日志
17.3.1.1. 启用签名的审计日志记录
默认情况下,在安装时会启用审计日志记录。但是,需要在安装后手动启用日志签名。
显示当前审计日志记录配置:
pki-server subsystem-audit-config-show
# pki-server subsystem-audit-config-show
Enabled: True
Log File: audit_signing_log_file
Buffer Size (bytes): 512
Flush Interval (seconds): 5
Max File Size (bytes): 2000
Rollover Interval (seconds): 2592000
Expiration Time (seconds): 0
Log Signing: False
Signing Certificate: audit_signing_certificate
启用签名的审计日志记录:
使用
pki-server
实用程序将-- logSigning 选项设置为true
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki-server subsystem-audit-config-mod --logSigning True
# pki-server subsystem-audit-config-mod --logSigning True ... Log Signing: True ...
重启实例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl restart pki-tomcatd@instance_name.service
# systemctl restart pki-tomcatd@instance_name.service
OR (如果使用
nuxwdog watchdog
)Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl start pki-tomcatd-nuxwdog@instance_name.service
# systemctl start pki-tomcatd-nuxwdog@instance_name.service
17.3.1.2. 配置审计事件
17.3.1.2.1. 启用和禁用审计事件
有关启用和禁用审计事件的详情,请参考 Red Hat Certificate System Administration Guide 中的 Console 中的 Configuring a Signed Audit log 部分。
此外,可以将审计事件过滤器设置为精细的选择。请参阅 第 17.3.1.2.2 节 “过滤审计事件”。
有关证书系统中可审计事件的完整列表,请参见《 红帽认证系统管理指南 》中的 审计事件 附录。
17.3.1.2.2. 过滤审计事件
在证书系统管理员中,可以设置过滤器来配置根据事件属性将哪些审计事件记录在审计文件中。
过滤器的格式与 LDAP 过滤器的格式相同。但是,证书系统只支持以下过滤器:
类型 | 格式 | 示例 |
---|---|---|
存在 | (attribute=*) | (ReqID=*) |
ç›¸ç‰ | (属性=值) | (outcome=Failure) |
子字符串 | (属性=initial*any*…anyfinal) | (SubjectID=admin) |
| (&(filter_1)(filter_2)…(filter_n)) | (& (SubjectID=admin) (Outcome=Failure)) |
| (|(filter_1)(filter_2)…(filter_n)) | (|(SubjectID=admin)(Outcome=Failure)) |
| (! (filter)) | (!(SubjectID=admin)) |
有关 LDAP 过滤器的详情,请参阅 Red Hat Directory Server Administration Guide 中的 Using Compound Search Filters 部分。
例 17.2. 过滤审计事件
显示配置集证书请求和处理的证书的当前设置:
pki-server ca-audit-event-show PROFILE_CERT_REQUEST pki-server ca-audit-event-show CERT_REQUEST_PROCESSED
$ pki-server ca-audit-event-show PROFILE_CERT_REQUEST
Event Name: PROFILE_CERT_REQUEST
Enabled: True
Filter: None
$ pki-server ca-audit-event-show CERT_REQUEST_PROCESSED
Event Name: CERT_REQUEST_PROCESSED
Enabled: True
Filter: None
要只记录失败的事件,用于处理的证书请求和事件,该请求将 InfoName
字段设置为 rejectReason
或 cancelReason
:
执行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki-server ca-audit-event-update PROFILE_CERT_REQUEST --filter "(Outcome=Failure)" pki-server ca-audit-event-update CERT_REQUEST_PROCESSED --filter "(|(InfoName=rejectReason)(InfoName=cancelReason))"
$ pki-server ca-audit-event-update PROFILE_CERT_REQUEST --filter "(Outcome=Failure)" ... Filter: (Outcome=Failure) $ pki-server ca-audit-event-update CERT_REQUEST_PROCESSED --filter "(|(InfoName=rejectReason)(InfoName=cancelReason))" ... Filter: (|(InfoName=rejectReason)(InfoName=cancelReason))
重启证书系统:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl restart pki-tomcatd@instance_name.service
# systemctl restart pki-tomcatd@instance_name.service
OR (如果使用
nuxwdog watchdog
)Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl start pki-tomcatd-nuxwdog@instance_name.service
# systemctl start pki-tomcatd-nuxwdog@instance_name.service
17.3.2. 配置自测试
self-tests 功能和单独的 self-tests 在 CS.cfg
文件中注册和配置。如果启用了自我测试,则会为按需或启动列出该自测试,并且为空或设置为 critical
。
Critical 自我测试在自测试的名称后面有一个冒号,并且单词 critical
。否则,在这个位置都没有。当需要自我测试期间的关键自测试失败时,服务器将关闭;在启动关键自我测试期间,服务器不会启动。
安装实例时,实施的自测试会自动注册和配置。注册和配置的自我测试是与子系统类型关联的自我测试。
通过更改 CS.cfg
文件中的相应设置来更改自我测试的关键性。
17.3.2.1. 默认在启动时自助测试
以下 self-tests 在启动时默认启用。
对于 CA 子系统,启动时默认启用以下自测试:
-
caPresence
- 用于验证 CA 子系统是否存在。 -
CAValidity
- 用于确定 CA 子系统当前是否有效且未过期。这包括检查 CA 证书的过期时间。 SystemCertsVerification
- 用于确定系统证书当前是否有效,且尚未过期或已被撤销。对于 CA 子系统,只有每个证书的有效性测试才会进行,保留证书验证测试,这可能会导致 OCSP 请求。此行为可使用以下配置参数覆盖:Copy to Clipboard Copied! Toggle word wrap Toggle overflow selftests.plugin.SystemCertsVerification.FullCAandOCSPVerify=true
selftests.plugin.SystemCertsVerification.FullCAandOCSPVerify=true
默认情况下,如果所有存在,则此配置参数被视为
false
。
对于 KRA 子系统,启用了以下self-tests:
-
KRAPresence
- 用于验证 KRA 子系统是否存在。 -
KRAValidity
- 用于确定 KRA 子系统当前有效且未过期。这包括检查 KRA 证书的过期时间。 -
SystemCertsVerification
- 用于确定系统证书当前是否有效,且尚未过期或已被撤销。
对于 OCSP 子系统,启用了以下自测试:
-
OCSPPresence
- 用于验证 OCSP 子系统是否存在。 -
OCSPValidity
- 用于确定 OCSP 子系统当前是否有效且未过期。这包括检查 OCSP 证书的过期。 SystemCertsVerification
- 用于确定系统证书当前是否有效,且尚未过期或已被撤销。对于 OCSP 子系统,只有每个证书的有效性测试才会进行,省略证书验证测试,这可能会导致 OCSP 请求。此行为可使用以下配置参数覆盖:Copy to Clipboard Copied! Toggle word wrap Toggle overflow selftests.plugin.SystemCertsVerification.FullCAandOCSPVerify=true
selftests.plugin.SystemCertsVerification.FullCAandOCSPVerify=true
默认情况下,如果所有存在,则此配置参数被视为
false
。
对于 TKS 子系统,启用了以下self-tests:
-
TKSKnownSessionKey
- 用于验证 TKS 子系统的已知会话密钥。这会验证 TKS 能够代表 TPS 和支持的智能卡正确创建密钥。 -
SystemCertsVerification
- 用于确定系统证书当前是否有效,且尚未过期或已被撤销。
对于 TPS 子系统,启用了以下self-tests:
-
TPSPresence
- 用于验证 TPS 子系统是否存在。 -
TPSValidity
- 用于确定 TPS 子系统当前有效且未过期。这包括检查 TPS 证书的过期时间。 -
SystemCertsVerification
- 用于确定系统证书当前是否有效,且尚未过期或已被撤销。
17.3.2.2. 修改自我测试的配置
默认情况下,self-test 配置兼容。但是,某些设置可以更改自测试日志记录的可见性或提高性能。修改 self-tests 的配置设置:
- 停止子系统实例。
-
打开位于实例的
conf/
目录中的CS.cfg
文件。 要编辑 self-test 日志的设置,请编辑以
selftests.container.logger
开头的条目。除非另有指定,否则这些参数不会影响合规性。这些参数包括以下参数:- bufferSize- 指定日志的缓冲大小(KB)。默认大小为 512 KB。当缓冲区达到这个大小后,缓冲区的内容将清除并复制到日志文件中。
-
enable- 指定要启用的
true
。仅启用的日志实际上记录事件。必须启用 这个值才能合规。 -
filename - 指定要写入消息的文件的完整路径,包括文件名。服务器必须具有文件的读/写权限。默认情况下,self-test 日志文件为
/selftest.log
-
FlushInterval- 指定将缓冲区刷新到文件的间隔(以秒为单位)。默认间隔为 5 秒。
flushInterval
是缓冲区刷新并添加到日志文件中的时间。 - level- 默认选择为 1;此日志不会针对 1 以外的任何级别设置。
-
maxFileSize- 为错误日志指定以 KB 为单位的文件大小。默认大小为 100 KB。
maxFileSize
决定在轮转日志文件前如何成为日志文件的大小。达到此大小后,文件将复制到轮转的文件,并启动新的日志文件。 -
register- 如果此变量设置为
false
(默认值),则 self-test 消息将仅记录到selftests.container.logger.fileName
指定的日志文件。如果此变量设为true
,则 self-test 消息将写入selftests.container.logger.fileName
指定的日志文件,以及log.instance.Transactions.fileName
指定的日志文件。 - rolloverInterval- 指定服务器轮转活跃错误日志文件的频率。选择是每小时、每天、每周、每月和年份。默认选择是 monthly。
-
type- set to
transaction
; 不要更改它。
要编辑运行自测试的顺序,请通过列出任何 self-test 作为用逗号分开的以下参数值来指定顺序。
要标记 self-test critical,请将冒号和单词 critical 添加到列表中自助测试的名称。
要禁用自我测试,请将其删除为
selftests.container.order.onDemand
或selftests.container.order.startup
参数的值。- 保存该文件。
- 启动子系统。
17.3.3. 调试日志的其他配置
17.3.3.1. 启用和禁用调试日志
默认情况下,在证书系统中启用调试日志记录。然而,在某些情况下,管理员希望禁用或重新启用此功能:
编辑
/CS.cfg
文件并设置debug.enabled
参数:要禁用调试日志记录,请设置:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow debug.enabled=false
debug.enabled=false
注意调试日志 不是 审计日志的一部分。当试图在证书系统或失败时调试特定故障时,调试日志非常有用。
默认情况下启用调试日志。如果不需要,管理员可以安全地禁用调试日志记录来关闭详细程度。
要启用调试日志记录,请设置:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow debug.enabled=true
debug.enabled=true
重启证书系统实例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl restart pki-tomcatd@instance-name.service
# systemctl restart pki-tomcatd@instance-name.service
OR (如果使用
nuxwdog watchdog
)Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl restart pki-tomcatd-nuxwdog@instance-name.service
# systemctl restart pki-tomcatd-nuxwdog@instance-name.service
17.3.3.2. 设置调试日志文件轮转
证书系统无法轮转调试日志。默认启用调试日志记录,这些日志会增加,直到文件系统已满为止。使用一个外部实用程序(如 logrotate
)轮转日志。
例 17.3. 使用 logrotate
轮转调试日志
使用以下内容创建配置文件,如 /etc/logrotate.d/rhcs_debug
:
/var/log/pki/ instance_name/subsystem/debug { copytruncate weekly rotate 5 notifempty missingok }
/var/log/pki/ instance_name/subsystem/debug {
copytruncate
weekly
rotate 5
notifempty
missingok
}
要在一个配置文件中轮转多个子系统的调试日志,请在打开大括号前列出日志的路径(以空格分开)。例如:
/var/log/pki/ instance_name/ca/debug /var/log/pki/ instance_name/kra/debug { ... }
/var/log/pki/ instance_name/ca/debug /var/log/pki/ instance_name/kra/debug {
...
}
有关 logrotate
和示例中使用的参数的详情,请查看 logrotate (8)
手册页。