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

幽映每白日,清辉照衣裳。这篇文章主要讲述au3+zabbix打造轻量级计算机安全告警系统(序)相关的知识,希望能为你提供帮助。
针对windows系统,最近准备整合一下用au3(autoit)自制的一些小工具,可以用于日常监控windows系统的安全情况,同时也可利用zabbix,部署基于zabbix的的轻量级计算机安全告警系统(告警内容可通过邮件或企业微信等发送)。本篇作为序章,简单介绍。
主要功能包括:
ping监控:监控远程ip是否正常
端口监控:监控远程ip端口是否关闭
连接数记录:监控本地端口的网络连接数
外网ip监控:监控外网ip是否变动
远程访问监控:监控并记录访问本地远程桌面的ip
防火墙监控:监控本地防火墙开关情况以及设置是否变动
文件同步:定时同步文件(利用FreeFileSync)
文件监控:监控文件是否存在或改动
USB接入监控:监控USB口是否接入设备
USB保护:禁止使用USB设备
网卡接入监控:监控是否有网卡设备接入使用或禁用无线网卡
本地ip监控:监控本地ip是否被改动
特点:
可用于企业日常安全管理

界面简洁,自动升级、部署简单,双击即可
对异常情况发邮件或企业微信提醒
可利用zabbix模板 批量监控
界面(主要功能为主,平民界面):

usb监控日志记录:

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

Func getfirewallcfg()

$iReturn1 = Run(@ComSpec & " /cnetsh 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打造轻量级计算机安全告警系统(序)】抛砖引玉,如有其他需求功能可留言,欢迎讨论交流!


    推荐阅读