一、 问题
但是,总觉得某些地方用着不舒服,主要是以下几个问题
- 查看 Windows 登录事件很繁琐,描述了太多内容,而我只关注登录IP
- 远程桌面登录失败事件 (4625)不包含 IP,所以,Failed 监控几乎没有意义
抄录一下:
使用TLS / SSL作为RDP协议的加密,Windows不会记录尝试登录的用户的IP地址.
当您将服务器配置为使用(旧版)RDP加密对协议进行加密时,它会将IP地址写入安全事件日志.
你将不得不做出权衡.要么您的协议加密安全性较低,要么您永远不会知道潜在攻击的来源.拥有正确的入侵检测系统(可以免费下载),系统将在定义数量的无效登录后自动锁定潜在的攻击者. - 登录失败事件没有多大的价值,登录成功,但是不是我们预想的 IP ,这才是危险所在,虽然是亡羊补牢!
- Windows 服务器基本上都是 RDP 远程登录,所以,我希望关注的是谁在什么时候登录了,什么时候logout了!
- 登录事件触发器会自动变成 “已解决”,然后消失!这不是我希望的!
二、记录远程登录日志
- 前提
Windows 远程桌面组策略和登录注销策略设置
- logon 和 logoff脚本
假设 log 文件在 c:/test/3389.log
logon 登录脚本 login_3389.bat
logoff 注销脚本 logout_3389.bat
用于采集数据的关键字: Wellcome 和 Bye
login_3389.bat
@echo off
set port=3389
set logFile=c:/test/3389.log
echo "Wellcome Logon!...",%DATE%%TIME%,"..." >> %logFile%
netstat -an |findstr %port% | findstr "ESTABLISHED" >> %logFile%
logout_3389.bat
@echo off
set port=3389
set logFile=c:/test/3389.log
echo "Bye! login off ... ",%DATE%%TIME% >> %logFile%
netstat -an |findstr %port% | findstr "ESTABLISHED" >> %logFile%
三、新建 Zabbix 模版
- 配置模版和应用集
- 配置监控项
图中特意列出了 Windows Login Error 和 Windows Login Success
完全参照别人编写
重点是 Windows 3389 log
键值 : log[c:/test/3389.log]
- 配置触发器
Windows Login Error-2 和 Windows Login Success-2 和别人一样
表达式
({Template Windows Login Event by wzh:log[c:/test/3389.log].str(Wellcome)}=1 or {Template Windows Login Event by wzh:log[c:/test/3389.log].str(Bye)}=1)
- 配置主机
将需要监控的 Windows 服务器加上以上模版链接即可! - 确认监控项和触发器
触发器
四、为什么去掉 nodata 条件
- 起初触发器表达式
({Template Windows Login Event by wzh:log[c:/test/3389.log].str(Wellcome)}=1 or {Template Windows Login Event by wzh:log[c:/test/3389.log].str(Bye)}=1) and {Template Windows Login Event by wzh:log[c:/test/3389.log].nodata(60)}=0
- 后来,我去掉了 nodata(60) 这一个条件!
包括 Windows Login Success 的触发器,也去掉了 nodata(60) 这一个条件 - 因为实际监控我没有发送邮件或者短信通知,所以,我希望发生的问题一直存在,直到我从 WEB 控制台手工处理之后,才让他变成 “已解决”
- 否则,意料之外的登录事件自动变成“已解决”,然后消失
就会出现很多漏网之鱼!因为,你都没有看到“问题”! - 所以,现在情况是这样子的
红牌警告的 “问题”会一直存在!除非我手动处理后,关闭这个问题!
五、列举一下监控项和触发器表达式
监控 key
log[c:/test/3389.log]
触发器表达式
({Template Windows Login Event by wzh:log[c:/test/3389.log].str(Wellcome)}=1 or {Template Windows Login Event by wzh:log[c:/test/3389.log].str(Bye)}=1)
六、遇到的问题
- 开始的时候,我在 zabbix-agent 端服务器上,配置了一个 conf 文件
C:\zabbix\zabbix_agentd.conf.d/login_3389.conf
UserParameter=login_check_3389,c:/test/login_3389_log.bat
结果,始终提示 Unsupported item key
测试 $ zabbix_get -s 192.168.0.123 -k log[c:/test/3389.log]
ZBX_NOTSUPPORTED: Accessible only as active check.
- 修改 zabbix_agent.conf
修改 UnsafeUserParameters 内容为:“UnsafeUserParameters=1”
修改了 Timeout=20 ,让他慢慢的去 get !哈哈哈!
结果是枉然!啊啊啊~~~ - 回去阅读文档,才发现:
监控 log 文件 属于 zabbix缺省自带的一个项目,所以,无需再配置 zabbix-agent 端