我在虚拟机上新安装了 Windows Server 2012,我打算使用 Wail2ban (https://github.com/glasnt/wail2ban) 尝试阻止有人攻击服务器。
我已经成功添加了 Wail2ban,现在它已经可以正常工作了,但这肯定不是一帆风顺的。我需要在 gpedit.msc 中更改一些设置,以便让攻击主机的 IP 真正显示在事件查看器中。最初事件中没有显示任何源地址。
通过更改大约三个设置,我现在可以正常工作,但我现在无法访问服务器上的共享文件。
我必须更改的一个设置是 gpedit.msc->计算机配置->Windows 设置->安全设置->本地策略->安全选项->网络安全:限制 NTLM:传入 NTLM 流量我已将其设置为“拒绝所有帐户”,我确实在事件查看器中获得了攻击者 IP,但我无法访问共享文件。使用其他设置“允许所有”/“拒绝所有域”,我无法在事件查看器中获取 IP,但我可以访问共享文件。
有人知道我怎样才能让两者一起工作,或者这只是行不通的?
答案1
现在我已经对其进行了一些修改。
我已将 NTLM 设置改回默认设置,除非您按照其他文章并更改了这些设置,否则无需执行此操作。
一位评论者指出事件 ID 4625 不含源 IP。似乎在扩展日志中记录了 IP,只是没有在事件 4625 中记录。
我关注了以下文章访问扩展日志并添加了注册表项Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational
然后我更改了文件中的一行wail2ban.ps1
以允许使用这些日志
$EventTypes = "Application,Security,System,Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational" #Event logs we allow to be processed
我还必须更改 wail2ban_config 以添加日志文件并引用事件类型 ID
# Wail2ban Configuration
[Events]
#[Security]
#4625=RDP Logins
#[Application]
#18456=MSSQL Logins
[Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational]
140=RDP Logins
[Whitelist]
# Add your whitelist here, in the format `IP = Comment`
# Supports plain IPs , e.g. `12.34.56.78 = My Machine`
# Also, ranges, e.g. `11.22.33.0/24 = My Company Range`
添加[Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational]
部分是此处的重要内容。
一旦我重新启动,注册表更改就会生效,wail2ban 就会开始按预期工作。
我发现wbemtest
(运行)在这里很有用,因为您可以查询日志并检查是否Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational
是其中的一部分Win32_NTLogEvent
虽然我现在已经可以完成这项工作,但我会研究@moteus 提出的解决方案,因为这看起来是一个有趣的解决方案,可以轻松移动和安装。
答案2
我认为如果不更改源代码,就不可能使用 Wail2Ban。这是我解决这个问题的方法日志和我的间谍日志服务。1.我从Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational
事件 140 重定向。此事件有 IP 地址。我在此找到此事件回答
<Input eventlog>
Module im_msvistalog
SavePos TRUE
ReadFromLast TRUE
Channel "Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational"
<QueryXML>
<QueryList>
<Query Id="0" Path="Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational">
<Select Path="Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational">*[System[(EventID=140)]]</Select>
</Query>
</QueryList>
</QueryXML>
</Input>
<Output spylog>
Module om_udp
Host 127.0.0.1
Port 614
Exec $raw_event = "EventID: " + $EventID + "; " + $Message;
</Output>
<Route 1>
Path eventlog => spylog
</Route>
- 在 SpyLog 中我添加了新的过滤器,例如
FILTER{ "nxlog-rdp"; enabled = true; source = "net:udp://127.0.0.1:614"; exclude = WHITE_IP; hint = "EventID: 140"; failregex = { "^EventID: 140; A connection from the client computer with an IP address of ([%d%.:]+)"; -- UTF8 "^EventID: 140; Не удалось подключить клиентский компьютер с IP%-адресом ([%d%.:]+)"; }; };