内容简介:之前有介绍方法:由于iptables防火墙会记录被drop的数量,同时可以记录防火墙的日志;所以我们可以通过获取被阻止包的数量统计来粗略的知道是否有被拒绝的请求,并查看日志,来确定是否是误伤或是***,加强处理;
概述
之前有介绍 通过saltstack统一管理线上防火墙规则 ,并且是在默认规则为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 $1"|grep "DROP"
如图所示,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/bash check(){ 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
脚本执行效果如下:
2、zabbix监控项
有了脚本获取数据,同时要有监控项;
cat /usr/local/zabbix-3.4.4/zabbix_agentd.conf.d/iptables.conf # iptables Drop status UserParameter=iptables.droped[*],/bin/bash /usr/local/zabbix-3.4.4/scripts/iptables_droped_status.sh $1
这里的监控项是iptables.droped,web上添加监控项,触发器时需要;先记住;
3、zabbix web配置
由于之前的文章已经反复有记录添加监控项和触发器的示例,这里只简单的描述下
配置-->模板--> 找到之前的某一个基础监控的模板,如下:
其他的添加类似;
效果如图:
添加触发器:
({Ickey Basic Status:iptables.droped[INPUT].last()}>0) and ({Ickey Basic Status:iptables.droped[INPUT].count(60)}>100)
最后值大于0(即有被阻止的请求)同时满足一分钟内阻止大于100说明有业务一直被阻止,再大点可能就是***类,因此需要查看日志分析分析啦!
到这里添加完成!
效果如下:
查看主机的最新数据:
报警信息如下:
以上是基于生产中对防火墙安全方面的规则订制和监控;以最快确认问题,分析问题~如有不当之处欢迎留言,另外如果你觉得对你有用,记得点个赞哈~
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 丢弃掉那些 BeanUtils 工具类吧,MapStruct 真香
- Martian-cloud 4.0.2,丢弃心跳机制,解决网络压力问题
- Chrome 72 丢弃 HPKP,不再支持TLS1.0和TLS1.1!
- CentOS 6/7 防火墙设置 | 开启/关闭防火墙和端口
- Linux 下的防火墙
- CentOS 7 防火墙操作
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
RGB转16进制工具
RGB HEX 互转工具
正则表达式在线测试
正则表达式在线测试