事件记录IPAddress并不总是解析

时间:2009-11-14 15:55:01

标签: c# event-log system.diagnostics

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

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

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

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

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

如果您需要更多信息,请与我们联系。谢谢!

修改

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

2 个答案:

答案 0 :(得分:9)

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

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

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

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

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

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

如果这看起来完全不安全或者可能有更好的方法可以让我知道,但是这样可以在保留连接加密级别的同时正确计算并记录失败的尝试。

答案 1 :(得分:8)

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

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