事件记录IPAddress并不总是解析

我正在使用System.Diagnostics.Eventing.Reader.EventLogWatcher类挂钩安全事件日志,我正在观察2008服务器盒上的事件ID 4625,以查看传入的失败登录(特别是RDP)。

日志捕获工作正常,我将结果转储到队列中以进行相关的后续处理。 但是,有时捕获的日志会填充(解析)IPAddress数据字段,有时则不会。

我在观看服务器的同时运行windump,尝试从不同的服务器和操作系统风格进行常规的RDP登录,我可以得出的唯一结论是版本差异问题,而且编码也不错。 虽然我错了,LOL。

问题在于事件日志本身与这些连接有关。 记录所有失败的RDP登录,并正确处理,但某些日志根本不记录失败连接的源IP地址。

一些较新的mstsc风格会不会导致远程事件日志不记录源IP地址? 对于我对这个挂钩服务器运行的任何其他2008服务器来说,这似乎都是正确的。 到目前为止我尝试过的任何2003或XP机器都已正确记录。

如果您需要更多信息,请告诉我们。 谢谢!

编辑

我是否需要做一些疯狂的事情 – 比如实施sharpPcap并将IP与事件日志相关联? = /。 也许可以查询lsass(这不是通常写入安全日志的唯一内容)吗?

我终于得到了这个工作。 发生这种情况是因为有两种身份validation方法用于RDP连接:NTLM和User32。 我更改了GPO设置以终止外部NTLM连接。

这些是我设置的魔术设置。 请注意,这是Server 2008 R2框。

需要
计算机配置\ Windows设置\安全设置\安全选项

网络安全:LAN Manager身份validation级别 – 仅发送NTLMv2响应。 拒绝LM和NTLM
网络安全:限制NTLM:审核传入的NTLM流量 – 启用所有帐户的审核
网络安全:限制NTLM:传入的NTLM流量 – 拒绝所有帐户

推荐的
不允许保存密码 – 已启用
提示客户端计算机上的凭据 – 已启用

我也更改了其他一些与安全相关的密钥,但这些密钥应该是核心密钥。 强制传入网络流量远离使用NTLM允许每个单独的4625事件包含故障计算机的IP地址,因为它们强制使用User32登录。

让我知道这似乎是完全不安全或者可能有更好的方法来做到这一点,但这允许正确计数和记录失败的尝试,同时保持连接的加密级别。

小行星的答案有效,但您必须启用“允许来自运行任何版本的远程桌面的计算机的连接(安全性较低)”而不是“仅允许来自运行具有网络级别身份validation的远程桌面的计算机的连接(更安全)”。

NLA不使用User32,但使用依赖于LM响应的NtLmSsp。 如果被阻止(按照上面的说明会这样做),你最终会得到“无法联系到本地安全机构”。