今天网吧内网遭到外挂病毒***。。突然想到了做个监控***的脚本。。
研究了几个小时。。发现美中不足。。
发这个帖子只是抛砖引玉。。希望有兴趣及有能力之士加我一起研究。。
言归正传。。先说一下思路。。
我们一般遇到***都会登陆winbox再利用winbox自带的工具torch来查看局域网内哪个IP发的数据比较大或包比较多来判断。。
这个我就不多说了。。论坛里有N多这方面的教程。。我这里只发一个图。。
有时由于***太过于猛烈。。winbox登陆不了。。啥办?
在ROS本机登陆查看呀。。
在ROS本机登陆后再利用命令来查看。。相关命令如下:
/tool torch lan dst-address=0.0.0.0/0
上面说的是我们最常用的临时解决方案。。
那么如果要根治又要怎么办呢?
思路:既然是***。。无非就是流量比较大。。而且一般都是定向***(针对某个IP)。。
试想。。如果能让ROS检测到某个IP的流量大。。就将该IP列到黑名单。。把这黑名单的IP数据全给DORP掉。。
在路由承受能力及网络结构承受能力OK的情况下。。可以保证不影响网络。。
动手:
第一时间想从TORCH这个工具入手。。一翻研究后发现无法获得IP列表里每个IP的流量。。失败。。
第二想到了ROS系统本身的accounting(IP流量统计功能)。。基本测试成功!
缺点:并不是所有的IP他都统计。。唉。。唯一美中不足之处。。在此把脚本贴出来。。希望能与有能力的朋友一起研究。。
脚本如下:
先开启accounting服务。。脚本如下:
ip accounting set enabled=yes
将下面的脚本加入计划任务。。
不懂计划任务的看这个链接。。
http://bbs.szwblm.com/dispbbs.asp?boardid=20&Id=15140
/ip accounting snapshot take
:foreach szwm in=[/ip accounting snapshot find bytes>4000000] do={/ip firewall address-list add address=[/ip accounting snapshot get $szwm src-address] list=DorpIP}
/ip firewall filter add src-address=192.168.0.0/24 dst-address-list=DorpIP action=drop chain=forward comment="DorpIP"
解释一下脚本:
/ip accounting snapshot take 每次自动重新获取列表
bytes>4000000 4000000=5M 意思是大于5M的。。就列入黑名单。。这个按你自己的需求修改。。
src-address=192.168.0.0/24 这个不用多解释吧?地球人都知道是内网网段。。自己改。。
/ip firewall filter add src-address=192.168.0.0/24 dst-address-list=DorpIP action=drop chain=forward comment="DorpIP" 就是将黑名单的IP数据给封了。。
如果成功后效果。。就发一个图。。
原帖地址:http://bbs.szwblm.com/dispbbs.asp?boardid=20&ID=30253&replyID=30253
转载于:https://blog.51cto.com/xfenoo/287921