今天网吧内网遭到外挂病毒***。。突然想到了做个监控***的脚本。。

研究了几个小时。。发现美中不足。。

发这个帖子只是抛砖引玉。。希望有兴趣及有能力之士加我一起研究。。

言归正传。。先说一下思路。。

 

我们一般遇到***都会登陆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