au3+zabbix打造轻量级计算机安全告警系统(序)

Posted 寒诺枫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了au3+zabbix打造轻量级计算机安全告警系统(序)相关的知识,希望对你有一定的参考价值。

针对windows系统,最近准备整合一下用au3(autoit)自制的一些小工具,可以用于日常监控windows系统的安全情况,同时也可利用zabbix,部署基于zabbix的的轻量级计算机安全告警系统(告警内容可通过邮件或企业微信等发送)。本篇作为序章,简单介绍。


主要功能包括:

ping监控:监控远程ip是否正常

端口监控:监控远程ip端口是否关闭

连接数记录:监控本地端口的网络连接数

外网ip监控:监控外网ip是否变动

远程访问监控:监控并记录访问本地远程桌面的ip

防火墙监控:监控本地防火墙开关情况以及设置是否变动

文件同步:定时同步文件(利用FreeFileSync)

文件监控:监控文件是否存在或改动

USB接入监控:监控USB口是否接入设备

USB保护:禁止使用USB设备

网卡接入监控:监控是否有网卡设备接入使用或禁用无线网卡

本地ip监控:监控本地ip是否被改动


特点:

可用于企业日常安全管理

界面简洁,自动升级、部署简单,双击即可

对异常情况发邮件或企业微信提醒

可利用zabbix模板 批量监控


界面(主要功能为主,平民界面):

au3+zabbix打造轻量级计算机安全告警系统(序)_au3


usb监控日志记录:

au3+zabbix打造轻量级计算机安全告警系统(序)_advfirewall_02


防火墙监控模块有命令对比、文件对比、注册表对比,以下是利用命令对比的au3源码:

Func getfirewallcfg()

$iReturn1 = Run(@ComSpec & " /c netsh advfirewall firewall show rule all",@ScriptDir, @SW_HIDE, BitOR($STDERR_CHILD, $STDOUT_CHILD));
ProcessWaitClose($iReturn1)
sleep(1000)
$iReturn2 = Run(@ComSpec & " /c netsh advfirewall show allprofile",@ScriptDir, @SW_HIDE, BitOR($STDERR_CHILD, $STDOUT_CHILD));
ProcessWaitClose($iReturn2)
$iOutput1 = StdoutRead($iReturn1);获取数据
sleep(1000)
$iOutput2 = StringInStr(StdoutRead($iReturn2),"状态 关闭")
EndFunc ;==>getfirewallcfg

Func getfirewallfile()
$hFileOpen1 = FileOpen(@ScriptDir & \\NfeitrSeOTa.txt, 256)
If $hFileOpen1 = -1 Then
MsgBox($MB_SYSTEMMODAL, "", "读取文件时出现错误.")
Return False
EndIf
$sRecord1 = FileRead($hFileOpen1)
sleep(1000)
FileClose($hFileOpen1)
EndFunc ;==>getfirewallfile

Func writefirewallfile()
if FileExists(@ScriptDir & \\NfeitrSeOTa.txt) Then
;MsgBox($MB_SYSTEMMODAL, "信息", "NfeitrSeOTa.txt 文件存在")
FileDelete(@ScriptDir & \\NfeitrSeOTa.txt)
sleep(1000)
$iReturn3 = Run(@ComSpec & " /c netsh advfirewall firewall show rule all",@ScriptDir, @SW_HIDE, BitOR($STDERR_CHILD, $STDOUT_CHILD));
ProcessWaitClose($iReturn3)
$aaa =StdoutRead($iReturn3)
$iOutput0 = $aaa
;MsgBox($MB_SYSTEMMODAL, "", $aaa)
$hFiles1 = FileOpen(@ScriptDir & \\NfeitrSeOTa.txt, 256+2)
sleep(1000)
FileWrite($hFiles1, $aaa)
sleep(1000)
FileClose($hFiles1)

Else
$iReturn3 = Run(@ComSpec & " /c netsh advfirewall firewall show rule all",@ScriptDir, @SW_HIDE, BitOR($STDERR_CHILD, $STDOUT_CHILD));
ProcessWaitClose($iReturn3)
$aaa =StdoutRead($iReturn3)
;MsgBox($MB_SYSTEMMODAL, "", $aaa)
$hFiles1 = FileOpen(@ScriptDir & \\NfeitrSeOTa.txt, 256+2)
sleep(1000)
FileWrite($hFiles1, $aaa)
sleep(1000)
FileClose($hFiles1)
endif
;RunWait(@ComSpec & /c netsh advfirewall show allprofile > & @ScriptDir & \\NfeitrSeOTb.txt, "", @SW_HIDE)
EndFunc ;==>writefirewallfile

扩展:关于windows防火墙命令行常用命令

1.导出防火墙配置到文件

  netsh advfirewall export aaa.wfw

2.导入防火墙配置文件到系统中

  netsh advfirewall import aaa.wfw

3.防火墙恢复默认设置

  Netsh advfirewall reset

4.关闭防火墙

 netsh advfirewall set allprofiles state off

5.开启防火墙

 netsh advfirewall set allprofiles state on

6.在所有配置文件中设置默认阻挡入站并允许出站通信:

 netsh advfirewall set allprofiles firewallpolicy blockinbound,allowoutbound

7.删除名为 allow80 的规则:

  netsh advfirewall firewall delete rule name=allow80

8.删除本地端口 80 的所有入则:

  netsh advfirewall firewall delete rule name=all protocol=tcp localport=80

9.添加远程桌面入站规则允许端口1319

  netsh advfirewall firewall add rule name=远程桌面(TCP-In-1319) protocol=TCP dir=in localport=1319 action=allow


抛砖引玉,如有其他需求功能可留言,欢迎讨论交流!

以上是关于au3+zabbix打造轻量级计算机安全告警系统(序)的主要内容,如果未能解决你的问题,请参考以下文章

Zabbix+Grafana打造高逼格监控系统

Zabbix+Grafana打造高逼格监控系统

Zabbix 配置Python邮件告警

Zabbix 配置钉钉脚本告警

借助LogAnalyzer打造轻量级数据库审计日志平台

zabbix告警系统--文末彩蛋