通过模拟登录的方式,从H3C交换机中获取ACL的撞包数量变化,并实现报警
** 本项目已经停止维护,感兴趣的同学可以继续研究 **
-
本程序目的在于检测交换机的ACL撞包情况。配置文件中有设备ip,acl号,rule号,描述,初始数值(目前没什么用),mail,tel ,工作过程和NPM非常类似,每次取的最新数值和上一次的数值进行差值,超过阀值的触发报警。每次最新的取值会写入tmp文件,注意只保留最新的取值,tmp每次程序启动都会删除并重新生成。 如需查看历史数据需要在mylog中查询。
-
程序采用多线程,如果对一台设备进行的有多个取值,注意降低并发数量, 以免对设备造成压力。
-
配置文件举例 192.168.1.2 3002 5001 deny-udp 10 [email protected] 13521161889
解释:对192.168.1.2设备的3002号acl取rule 5001 的匹配次数,初始值为10 。相当于执行 dis acl 3002 | i rule 5001 。 然后取括弧中的匹配次数。
-
特别注意: 交换机acl需要开启计数器功能 hardware-count enable
-
参数有acl号 和rule号, 过滤特征为左括弧和'times'中间的内容。 <H3C_5500>dis acl 3002 | i rule 5001 rule 5001 deny udp (12828284 times matched)
-
程序引用的有发邮件和发短信函数。详见messagemodule仓库。
-
阀值需要和检测频率配合设置, 例如五分钟装包1000次算正常。 那么检测频率为10分钟的话阀值就需要设置为2000次。
-
误差:遇到计数器清零的时候 上次数值-当前数值=负数。 不会触发报警。 但是在紧接着下一次就会报警正常。 but,这种遇到大规模攻击的同时又赶上计数器清零,几率很小。
-
验证设备为:H3C H3C S5500-52C-EI
-
计划任务 */7 * * * * python /root/getAclCounter/getAclCounter.py
python 2.7.5
yihongfei QQ:413999317 MAIL:[email protected]
CCIE 38649
为网络自动化运维尽绵薄之力