通过nagios实现MD5实时监控iptables状态

本文发布时间: 2019-Mar-21
【功能】:nagios 实现通过MD5实时监控 iptables 状态,实时监控Iptables,防止人为关闭后,忘了开启,或者监控规则是否有增删。【说明】:实现方式是:通过获取iptables状态的MD5值,校验比对判断iptables是否被修改。实现流程是:首先获取被监控服务器的iptables状态MD5值,保存到nagios服务端配置文件中,服务端通过远程获取被监控端iptables状态MD5值进行比对,如果不一致则发出报警。很久以前发表过通过监控iptables规则条数《nagios 实时监控 iptables 状态》,来达到监控目的,本文也是几年前做的了,此法比前一种更严谨,当时说要公开,今天没事把几年前的东西发出来,也算是兑现承诺,方法算不上好,但是提供一种思路。【实现】首先在nrpe被监控端#编辑nrpe.cfg文件,定义检测命令。command[check_iptables]=echo $(/usr/bin/sudo iptables -L -n | md5sum | awk '{print $1}')#获取被监控服务器的iptables状态 md5值备用,这个命令是实时的,如果不修改iptables规则,则不会变。echo $(/usr/bin/sudo iptables -L -n | md5sum | awk '{print $1}')-----------------------------------------------------------------------------------在nagios监控端#定义检测命令check_iptablesdefine command{ command_name check_iptables command_line $USER1$/check_iptables.sh $HOSTADDRESS$ $ARG1$}#定义服务,这里的check_command 里面的那串字符就是前面获取的MD5值,这里写死到nagios服务器端,这种方法有优点也有缺点,缺点就是不适合批量和大量服务器,每次发现iptables变化都要重新获取值新的MD5值并修改这个值,否则就一直报警,但是安全,这只是一种思路,之前是对游戏服务器充值服务器做监控数量较少,当然也可以把MD5值放到被监控服务器上,比对2次值是否一致,不一致就报警,但是这样只能报一次。define service { use web-service host_name xx-xx-xx service_description iptables_status check_command check_iptables!a7b1e263a467008dade82c873dcc0db8 #对应主机iptablesMD5}#脚本check_iptables.sh (这个脚本放到nagios服务器的插件目录并给执行权限,默认是/usr/local/nagios/libexec)#!/bin/bashprefix=/usr/local/nagios/libexec;check_iptab_md5=$($prefix/check_nrpe -H $1 -p port -c check_iptables); iptab_md5="$2"if [ $check_iptab_md5 == $iptab_md5 ];then echo "OK - Iptables are OK" exit 0else echo " CRITICAL - Iptables are CRITICAL" exit 2fi


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2019-May-25 12:55pm
栏目列表