共计 1670 个字符,预计需要花费 5 分钟才能阅读完成。
在 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 防火墙 http://www.linuxidc.com/Linux/2015-05/117473.htm
Iptables 工作原理使用详解 http://www.linuxidc.com/Linux/2016-09/134945.htm
Ubuntu 14.04 配置 iptables 防火墙 http://www.linuxidc.com/Linux/2017-02/140556.htm
Linux 下编译安装 iptables http://www.linuxidc.com/Linux/2017-04/142615.htm
iptables 的备份、恢复及防火墙脚本的基本使用 http://www.linuxidc.com/Linux/2013-08/88535.htm
Iptables 工作原理使用详解 http://www.linuxidc.com/Linux/2016-09/134945.htm
CentOS7 下 iptables 配置过程 http://www.linuxidc.com/Linux/2017-01/139622.htm
Linux 下 iptables 防火墙设置 http://www.linuxidc.com/Linux/2015-10/123843.htm
Linux 防火墙 iptables 详解 http://www.linuxidc.com/Linux/2016-12/138474.htm
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-08/146255.htm