博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
zabbix监控iptables防火墙状态之是否有丢弃的包(攻-击)
阅读量:5888 次
发布时间:2019-06-19

本文共 2658 字,大约阅读时间需要 8 分钟。

概述

之前有介绍,并且是在默认规则为DROP策略下,即意味着,如果没有明确允许开放或允许出去访问,则防火墙会拒绝请求;特别是在线上防火墙改造时,可能由于历史原因不知道开放了那些服务,也不知道机器上的服务是否有出去请求的情况下,此时需要记录防火墙访问日志,并查看是否有合法的请求被阻止了,这样会影响业务的,你懂滴,另外如果我们的机器被扫描,被攻~击时,也会有大量的拒绝,因此不管出于什么目的,我们需要对防火墙是否有被阻止的请求做监控;做到有的放矢;有问题报警;做到心中有数;不是吗?

方法:

由于iptables防火墙会记录被drop的数量,同时可以记录防火墙的日志;所以我们可以通过获取被阻止包的数量统计来粗略的知道是否有被拒绝的请求,并查看日志,来确定是否是误伤或是被攻~击了,加强处理;

示例:

先在防火墙头的INPUT OUPUT中添加记录日志:

/etc/sysconfig/iptables文件中添加如下两条(放在对应规则最下方):-A INPUT -j LOG --log-prefix "iptables-IN-DROP:"-A OUTPUT -j LOG --log-prefix "iptables-OUT-DROP:"

这样防火墙就会记录被阻止的日志(/var/log/message);

查看防火墙状态,是否有被阻止的请求:

$ sudo iptables -vnL |grep "Chain"|grep "DROP"
zabbix监控iptables防火墙状态之是否有丢弃的包(攻-击)
如图所示,INPUT OUTPUT规则中有被DROP

查看被阻止的日志

为了查清楚,我先清除防火墙日志

$ sudo iptables -Z$ telnet 115.182.6.91 60122

由于我没有允许出去访问115.182.6.91 这台机器的60122端口;

因此查看防火墙日志如下:

Oct 21 10:15:48 app-backend-29 kernel: iptables-out-DROP:IN= OUT=eth0 SRC=10.8.51.29 DST=115.182.6.91 LEN=52 TOS=0x10 PREC=0x00 TTL=64 ID=13822 DF PROTO=TCP SPT=4020 DPT=60122 WINDOW=14600 RES=0x00 SYN URGP=0 Oct 21 10:15:49 app-backend-29 kernel: iptables-out-DROP:IN= OUT=eth0 SRC=10.8.51.29 DST=115.182.6.91 LEN=52 TOS=0x10 PREC=0x00 TTL=64 ID=13823 DF PROTO=TCP SPT=4020 DPT=60122 WINDOW=14600 RES=0x00 SYN URGP=0 Oct 21 10:15:49 app-backend-29 san: [euid=san]:san pts/1 2018-10-21 10:09 (172.188.103.253):[/usr/local/zabbix-3.4.4/scripts]2018-10-21 10:15:48 san telnet 115.182.6.91 60122

基于以上基础我们来添加zabbix监控;

zabbix监控防火墙状态之DROP

实现的方法上面已经描述过了,思路就是脚本监控防火墙状态上有没有被阻止的包,有就输出,没有就是0;

触发器报警条件就是大于0时并且一分钟内多于100时触发报警(这个阀值可按业务自行调);一般重点关注OUTPUT
上;因为业务可能会调用外面的接口,当然也有可能有不明程序出去请求;而INPUPT上多时,可能是有开放的服务被防火墙阻止或有非法请求(被攻~击)?;总之得分析处理啦!

1、zabbix脚本

[app-backend-29 scripts]$ cat iptables_droped_status.sh #!/bin/bashcheck(){  sudo iptables -vnL |grep "Chain $1"|grep "DROP"|awk '{print $2,":",$5}'|awk -F":" '{if($2>0) {print $2} else {print "0"}}'}case $1 in      INPUT)     check $1     ;;     OUTPUT)     check $1     ;;     FORWARD)     check $1     ;;     *)     check     ;;esac

脚本执行效果如下:

zabbix监控iptables防火墙状态之是否有丢弃的包(攻-击)

2、zabbix监控项

有了脚本获取数据,同时要有监控项;

cat /usr/local/zabbix-3.4.4/zabbix_agentd.conf.d/iptables.conf# iptables Drop statusUserParameter=iptables.droped[*],/bin/bash /usr/local/zabbix-3.4.4/scripts/iptables_droped_status.sh $1

这里的监控项是iptables.droped,web上添加监控项,触发器时需要;先记住;

3、zabbix web配置

由于之前的文章已经反复有记录添加监控项和触发器的示例,这里只简单的描述下
配置-->模板--> 找到之前的某一个基础监控的模板,如下:
zabbix监控iptables防火墙状态之是否有丢弃的包(攻-击)
其他的添加类似;
效果如图:
zabbix监控iptables防火墙状态之是否有丢弃的包(攻-击)

添加触发器:

({Ickey Basic Status:iptables.droped[INPUT].last()}>0) and  ({Ickey Basic Status:iptables.droped[INPUT].count(60)}>100)

最后值大于0(即有被阻止的请求)同时满足一分钟内阻止大于100说明有业务一直被阻止,再大点可能就是被攻~击之类非法访问!,因此需要查看日志分析分析啦!

zabbix监控iptables防火墙状态之是否有丢弃的包(攻-击)

到这里添加完成!

效果如下:

查看主机的最新数据:
zabbix监控iptables防火墙状态之是否有丢弃的包(攻-击)
报警信息如下:
zabbix监控iptables防火墙状态之是否有丢弃的包(攻-击)

以上是基于生产中对防火墙安全方面的规则订制和监控;以最快确认问题,分析问题~如有不当之处欢迎留言,另外如果你觉得对你有用,记得点个赞哈~

转载于:https://blog.51cto.com/dyc2005/2306969

你可能感兴趣的文章
添加cordova-plugin-file-opener2后,打包出错
查看>>
python 重载方法有哪些特点 - 老王python - 博客园
查看>>
在Fedora8上安装MySQL5.0.45的过程
查看>>
TCP长连接与短连接的区别
查看>>
设计模式之命令模式
查看>>
android 测试 mondey
查看>>
Spring AOP项目应用——方法入参校验 & 日志横切
查看>>
TestNG 六 测试结果
查看>>
用Fiddler或Charles进行mock数据搭建测试环境
查看>>
使用REST-Assured对API接口进行自动化测试
查看>>
GitHub发布史上最大更新,年度报告出炉!
查看>>
王潮歌跨界指导HUAWEI P20系列发布会 颠覆传统 眼界大开!
查看>>
王高飞:微博已收购一直播 明年一季度重点是功能与流量打通
查看>>
趣头条发行区间7至9美元 预计9月14日美国上市
查看>>
新北市长侯友宜:两岸交流应从隔壁最亲近的人开始
查看>>
全面屏的Nokia X即将上线,不到2000元的信仰你要充值吗?
查看>>
多么痛的领悟,只有程序员才知道的12个人艰不拆的真相
查看>>
10个JavaScript难点
查看>>
js 计算两个时间的时间差
查看>>
Xcode9 自动签名更新设备列表
查看>>