如何在本地或使用 组策略 设置事件日志安全性

可以在 Windows Server 2012 中自定义对其事件日志的安全访问权限。 可以在本地或通过组策略配置这些设置。 本文介绍如何使用这两种方法。

适用于:Windows Server 2012 Standard、Windows Server 2012 Datacenter
原始 KB 编号: 323076

摘要

可以向用户授予以下一个或多个对事件日志的访问权限:

  • 读取
  • 写入
  • Clear

重要

可以采用相同的方式配置安全日志。 但是,只能更改“读取”和“清除”访问权限。 对安全日志的写入访问权限仅保留给 Windows 本地安全机构 (LSA) 。

可以使用管理模板策略实现此目的。 例如,系统事件日志的路径为:

计算机配置\管理模板\Windows 组件\事件日志服务\系统

该设置 是配置日志访问 ,它采用与 SDDL) 字符串 (相同的安全描述符定义语言。

在Windows Server 2012后,Microsoft 建议改用此方法。

在本地配置事件日志安全性

重要

此部分(或称方法或任务)介绍了修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,请务必严格按照这些步骤操作。 为了加强保护,应先备份注册表,再进行修改。 如果出现问题,可以还原注册表。 有关如何备份和还原注册表的详细信息,请参阅如何备份和还原 Windows 中的注册表

每个日志的安全性通过注册表项 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Eventlog中的值在本地配置。

例如,通过以下注册表值配置应用程序日志安全描述符: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Eventlog\Application\CustomSD

系统日志安全描述符通过 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Eventlog\System\CustomSD配置。

每个日志的安全描述符是使用 SDDL 语法指定的。 有关 SDDL 语法的详细信息,请参阅平台 SDK,或参阅本文 参考 部分中所述的文章。

若要构造 SDDL 字符串,请注意,有三种与事件日志相关的不同权限:读取、写入和清除。 这些权限对应于 ACE 字符串的访问权限字段中的以下位:

  • 1= 读取
  • 2 = 写入
  • 4 = 清除

下面是一个示例 SDDL,其中显示了应用程序日志的默认 SDDL 字符串。 十六进制) 中的访问权限 (为粗体,用于说明:

O:BAG:SYD: (D;;0xf0007 ;;;A) (D;;0xf0007 ;;;BG) (A;;0xf0007 ;;;SY) (A;;0x5 ;;;BA) (A;;0x7 ;;;SO) (A;;0x3 ;;;IU) (A;;0x2 ;;;BA) (A;;0x2 ;;;LS) (A;;0x2 ;;;NS)

例如,第一个 ACE 拒绝匿名用户读取、写入和清除对日志的访问。 第六个 ACE 允许交互式用户读取和写入日志。

修改本地策略以允许自定义事件日志的安全性

  1. 将 %WinDir%\Inf\Sceregvl.inf 文件备份到已知位置。

  2. 在记事本中打开 %WinDir%\Inf\Sceregvl.inf。

  3. 滚动到文件的中间,然后将指针放在 [Strings] 前面。

  4. 插入以下行:

    MACHINE\System\CurrentControlSet\Services\Eventlog\Application\CustomSD,1,%AppLogSD%,2
    MACHINE\System\CurrentControlSet\Services\Eventlog\System\CustomSD,1,%SysLogSD%,2

  5. 滚动到文件的末尾,然后插入以下行:

    AppLogSD=“事件日志:在安全描述符定义语言 (SDDL) 语法中指定应用程序日志的安全性”
    SysLogSD=“事件日志:在安全描述符定义语言 (SDDL) 语法中指定系统日志的安全性”

  6. 保存该文件,然后关闭它。

  7. 选择“开始”,选择“运行”,在“打开”框中键入 regsvr32 scecli.dll,然后按 Enter。

  8. “dllRegisterServer in scecli.dll 成功 ”对话框中,选择“ 确定”。

使用计算机的本地组策略设置应用程序和系统日志安全性

  1. 依次选择“ 开始”、“ 运行”、“ gpedit.msc”和“ 确定”。
  2. 在组策略编辑器中,依次展开“Windows 设置”、“安全设置”、“本地策略”和“安全选项”。
  3. 双击“ 事件日志:应用程序日志 SDDL”,键入日志安全性所需的 SDDL 字符串,然后选择“ 确定”。
  4. 双击“ 事件日志:系统日志 SDDL”,键入日志安全性所需的 SDDL 字符串,然后选择“ 确定”。

使用组策略为 Active Directory 中的域、站点或组织单位设置应用程序和系统日志安全性

重要

若要在组策略编辑器中查看本文中所述的组策略设置,请先完成以下步骤,然后继续执行使用组策略设置应用程序和系统日志安全性部分:

  1. 使用文本编辑器(如记事本)打开 %Windir%\Inf 文件夹中的 Sceregvl.inf。

  2. 将以下行添加到 [注册注册表值] 部分:

    MACHINE\System\CurrentControlSet\Services\Eventlog\Application\CustomSD,1,%AppCustomSD%,2
    MACHINE\System\CurrentControlSet\Services\Eventlog\Security\CustomSD,1,%SecCustomSD%,2
    MACHINE\System\CurrentControlSet\Services\Eventlog\System\CustomSD,1,%SysCustomSD%,2
    MACHINE\System\CurrentControlSet\Services\Eventlog\Directory Service\CustomSD,1,%DSCustomSD%,2
    MACHINE\System\CurrentControlSet\Services\Eventlog\DNS Server\CustomSD,1,%DNSCustomSD%,2
    MACHINE\System\CurrentControlSet\Services\Eventlog\File Replication Service\CustomSD,1,%FRSCustomSD%,2

  3. 将以下行添加到 [字符串] 部分:

    AppCustomSD=“Eventlog:应用程序事件日志的安全描述符”
    SecCustomSD=“Eventlog:安全事件日志的安全描述符”
    SysCustomSD=“Eventlog:系统事件日志的安全描述符”
    DSCustomSD=“Eventlog:目录服务事件日志的安全描述符”
    DNSCustomSD=“Eventlog:DNS 服务器事件日志的安全描述符”
    FRSCustomSD=“Eventlog:文件复制服务事件日志的安全描述符”

  4. 保存对 Sceregvl.inf 文件所做的更改,然后运行 命令 regsvr32 scecli.dll

  5. 启动 Gpedit.msc,然后双击以下分支以展开它们:

    计算机配置
    Windows 设置
    安全设置
    本地策略
    安全选项

  6. 查看右侧面板以查找新的事件日志设置。

使用组策略设置应用程序和系统日志安全性

  1. 在 Active Directory 站点和服务管理单元或Active Directory 用户和计算机管理单元中,右键单击要为其设置策略的对象,然后选择“属性”。

  2. 选择“组策略”选项卡。

  3. 如果必须创建新策略,请选择“ 新建”,然后定义策略的名称。 否则,请转到步骤 5。

  4. 选择所需的策略,然后选择 “编辑”。

    将显示“本地组策略 MMC 管理单元。

  5. 依次展开“计算机配置”、“Windows 设置”、“安全设置”、“本地策略”,然后选择“安全选项”。

  6. 双击“ 事件日志:应用程序日志 SDDL”,键入日志安全性所需的 SDDL 字符串,然后选择“ 确定”。

  7. 双击“ 事件日志:系统日志 SDDL”,键入日志安全性所需的 SDDL 字符串,然后选择“ 确定”。

References

有关 SDDL 语法以及如何构造 SDDL 字符串的详细信息,请参阅 安全描述符字符串格式