高效的Windows事件收集器设置与配置

事件日志管理是在所有 Windows 环境中学习的关键技能。每秒都有活动记录到 Windows 事件日志中,它不仅充当安全工具,还是重要的故障排除辅助工具。通过名为 Windows 事件转发(WEF) 的功能,Windows 可以将事件从远程计算机发送到 Windows 事件收集器。

Windows 事件日志转发概述

WEF 是一项服务,允许您从多个 Windows 服务器转发事件并将其集中到一个位置。该服务有两个主要组件;转发器和收集器。收集器是在运行 Windows 服务器上的一个服务,它收集从事件日志转发器发送到它的所有事件。

转发服务器和收集器之间的“链接”被称为订阅。

收集器充当订阅管理器,接受事件并允许您指定从终端节点收集哪些事件日志警报。

WEF 项目概述

这是一个项目文章,我们将在其中介绍如何构建项目或实施解决方案。之后的每个部分都将是逐步累积的步骤,建立在之前的基础上。

对于这个项目,你将学习如何设置基本的WEF实现。你将学会如何设置收集器以及如何通过订阅将事件转发到收集器。

你将学会如何:

  1. 在Windows Server实例上设置和配置事件日志收集器。这将是所有事件日志转发器发送事件的Windows Server。
  2. 创建一个GPO,在应用时,将适用的Windows Server实例指向收集器以发送事件。
  3. 配置要发送到收集器的事件类型。

你将学会如何在本文的其余部分中逐步完成每个步骤。

环境和知识要求

在你进行得太远之前,让我们首先确保我的环境与你的相同。在开始之前,请确保你已经准备好以下物品:

  • (2)Windows Server实例 – 你可以使用任何2012 R2或更高版本的Windows Server实例。在本文中,我将使用Windows Server 2016。
  • Active Directory
  • GPO – 需要熟悉组策略对象。
  • WinRM- WinRM需要在所有客户端上运行。不需要配置,只需运行。

配置Windows事件收集器

执行的第一个任务是将您的一个Windows服务器实例配置为收集器。请记住,收集器是接收来自转发器的事件日志的实例。

启用Windows事件收集器上的WinRM

将事件转发到收集器的Windows服务器实例使用PowerShell Remoting或WinRM进行转发。您首先需要确保收集器上可用WinRM。如果收集器运行的是Windows Server 2012 R2及以上版本,则WinRM默认已启用,但Windows防火墙可能会干扰。

在收集器上以没有参数的方式运行Enable-PSRemoting PowerShell命令。即使PowerShell Remoting已经启用,它也会跳过必要的步骤。

为了确保,您还可以从远程计算机上运行Invoke-Command -ComputerName <COLLECTORHOSTNAME> -ScriptBlock {1}。如果没有收到错误消息,则表示PowerShell Remoting正常工作。

启动订阅收集器服务

既然已启用并监听PowerShell Remoting,现在可以启动订阅收集器服务了。订阅收集器服务还需要在Windows Server启动时自动启动。

在收集器上,打开事件查看器,点击订阅。第一次打开订阅选项时,Windows会询问是否要启动Windows事件日志收集器服务并配置为自动启动。点击以接受。

您可以在下面看到消息示例。

Windows Event Collector Service

恭喜!您现在已经配置了一个收集器。现在是设置GPO的时候了,该GPO将指示Windows Server实例将事件转发到收集器。

设置转发GPO

下一步是配置一个或多个Windows服务器开始将事件日志转发到收集器。最简单的方法是创建一个GPO。然后,可以将此GPO应用于包含要从中发送事件的服务器的一个或多个OU。

您将在本项目文章中了解设置GPO中必要设置的基础知识。但是,如果您想要了解所有可用选项的完整情况,请查看Microsoft文档

允许网络服务读取事件日志

WEF使用网络服务账户来读取并将事件从转发器发送到收集器。默认情况下,网络服务账户无权执行此操作。您首先需要设置此ACL以允许其执行。

注意:Windows Server中的许多事件日志已经为网络服务帐户提供对常见事件日志(如应用程序和系统日志)的访问权限。但是,该帐户没有被授予访问安全事件日志和其他自定义事件日志的权限。

要允许网络服务帐户读取事件日志转发器上的事件日志,请使用组策略对象(GPO)。在本文中,您将了解如何允许网络服务帐户访问安全事件日志。其他事件日志将按照相同的流程进行。

1. 首先打开命令提示符并运行 wevtutil gl security。这将提供有关安全事件日志的各种信息。但要注意的是 channelAccessSDDL

您可以在下面看到一个示例,其中包含了用于安全事件日志的SDDL。下面突出显示的 channelAccess 行表示对事件日志设置的权限。复制下面突出显示的SDDL,并将其保存在稍后添加到GPO的某个位置。

channelAccess SDDL

2. 通过组策略管理控制台创建一个GPO。在GPO内,导航至 计算机配置策略管理模板Windows 组件事件转发配置目标订阅管理器

3. 将目标订阅管理器的值设置为收集器上的WinRM端点。您将设置服务器的格式为:

Server=http://<收集器的FQDN>:5985/wsman/SubscriptionManager/WEC,Refresh=60

请注意收集器端点末尾的刷新间隔。刷新间隔表示客户端应多久检查一次是否有新的订阅可用。

4. 接下来,找到您之前从运行wevtutil gl security获取的SDDL,并将其粘贴到设置计算机配置策略管理模板Windows组件事件日志服务安全配置日志访问

请注意,此SDDL将优先于为事件日志配置的所有其他权限。

您可以看到下面是安全事件日志的GPO示例。

Configure log access GPO setting

5. 创建GPO后,您将链接此GPO到包含要从中发送事件日志的Windows服务器的现有OU,或创建一个新的OU并链接GPO。您添加到此OU的任何AD计算机帐户现在将建立与收集器的订阅。

设置订阅

尽管配置WEF以收集Active Directory域中所有Windows服务器的所有事件似乎是个好主意,但事实并非如此。您必须有选择地仅转发对您重要的事件。从重要事项中过滤出噪音正是WEF展示其真正价值的地方。

让我们一起来设置安全事件日志的订阅。

由于您已经创建了GPO并将其链接到包含您希望从中发送事件的Windows服务器的Active Directory OU,因此事件源已经设置好

  1. 在收集器上,打开Windows事件查看器,右键单击订阅,然后创建订阅
Creating an event log subscription

2. 如下所示,选择源计算机发起选项,然后单击选择计算机组。在这里,您将选择要转发事件的计算机。

Setting an event log source

专业提示:选择AD组。例如:“域控制器”将自动填充组中的任何计算机。每次添加新服务器时都无需选择单个计算机。

3. 接下来,选择要转发的事件。如下图所示,打开查询过滤器,选择安全性以从安全事件日志转发事件到收集器。

Selecting Windows events to forward

4. 选择安全日志后,您可以通过输入事件ID、关键字、用户和计算机来进一步过滤,如下所示。

Filtering Windows events

5. 单击确定以退出查询过滤器

6. 在订阅属性窗口中单击高级。现在选择最小化延迟。此设置将确保收集器尽快接收事件,并在需要时帮助其赶上进度。

Setting Minimize Latency

验证WEF配置

设置WEF后,您现在应该检查转发器是否实际上已经签入,方法是在主订阅页面上检查源计算机列。

Event Log subscriptions

您还可以检查客户端上的“应用程序和服务”下的事件转发插件操作日志,以确保一切正常运行。如果Kerberos或防火墙出现问题,您将在此处看到描述性错误。

EventLog-ForwardingPlugin event

现在只需找到一个低价值客户端,清除安全日志,然后查看是否收到警报。

您的收获

在这个项目中,您学会了如何设置基本的WEF订阅。您:

  • 设置了一个事件收集器
  • 创建了一个GPO以在各种Windows Server转发器上创建订阅
  • 配置了一个WEF订阅,只发送特定事件
  • 确保WEF订阅尽可能快地发送事件

WEF在初始配置时有点棘手,但一旦开始运行,您应该很少遇到问题,并且维护工作量也很小。

Source:
https://adamtheautomator.com/windows-event-collector/