事件记录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。 如果被阻止(按照上面的说明会这样做),你最终会得到“无法联系到本地安全机构”。
- ViewModel为特定属性订阅Model的PropertyChanged事件
- 如何将sql union转换为linq
- 使用ClientBuildManager.CompileFile进行就地编译
- Application.ThreadException与AppDomain.UnhandledException
- NewThreadScheduler.Default计划在同一个线程上的所有工作
- 向Web引用添加授权标头
- 你如何从Web服务中捕获抛出的SOAPexception?
- 从.NET中的MS Access数据库读取OLE映像时出现ArgumentException
- 如何映射回来获取除MVC中的模型之外的实际sql表列名?