Nagios中官方iptables监控脚本调整

在Nagios的官方网站上有提供一个用于监控iptables的状态的脚本,但是官方提供的脚本直接是不能使用的需要修改才能使用,在这里就大致说一下,因为Nagios的中命令机制是使用Nagios用户运行的,所以在官网上提供的脚本没有做出调整前是无法正常使用的,官网提供的iptables监控脚本很简单,是使用iptables的指令统计出INPUT上实时的条数的有多少,如果条数-1等于0就告警。但是在普通用户是无法正常使用iptables的命令,如果没有做出调整在Nagios中会出现NRPE:Unable to read output的错误,所以就需要在系统中调整一下,需要给Nagios添加一条使用iptables命令的sudo免密的sudo权限:

[root@localhost ~]# visudo
…略…
nagios          ALL=(ALL)      NOPASSWD:/sbin/iptables
…略…

在这里要注意一下,在之前部署安装Nagios的时候一定要注意创建Nagios的用户为不可登录的useradd -s的参数,这样添加完sudo权限就不会有安全风险,最后在修改下官方的脚本就可以了:
#!/bin/bash
#You must add Nagios permission to iptables in / etc / sudoers
STATE_OK=0
STATE_WARNING=1
STATE_CRITICALLL=2
STATE_UNKNOWN=3
 
CHAINS=$(sudo iptables -nvL | grep 'Chain' | awk '{ print $2 }')
 
for CHAIN in $CHAINS ; do
    if [ "$CHAIN" != 'FORWARD' ] && [ "$CHAIN" != 'OUTPUT' ] && [ $(expr substr $CHAIN 1 4) != "LOG_" ] ; then
        CNT=$(expr $(sudo iptables -S $CHAIN | wc -l) '-' 1)
        if [ $CNT -eq 0 ] ; then
            echo "ERROR $CHAIN $CNT rules!"
            exit $STATE_CRITICALL
        else
            echo "OK $CHAIN $CNT rules"
            exit $STATE_OK
        fi
    fi
done

更多iptables相关教程见以下内容

CentOS 7.0关闭默认防火墙启用iptables防火墙 

Iptables工作原理使用详解

Ubuntu 14.04 配置iptables防火墙

Linux下编译安装iptables 

iptables的备份、恢复及防火墙脚本的基本使用

Iptables工作原理使用详解 

CentOS7下iptables配置过程

Linux下iptables防火墙设置

Linux防火墙iptables详解 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/72263eb38263eb1ffef4bc6e48474f28.html