我一直在尝试研究强化 Nagios(如果有这样的事情......),但没有找到任何明确的信息来告诉人们该做什么,甚至没有找到指导人们该看什么。
我对 Nagios 的运行持谨慎态度,直到我了解更多有关其潜在安全漏洞以及如何最好地消除这些漏洞,或者至少加强它以减少潜在问题。
据我所知,我目前已禁用 Nagios,直到我能找到方法稍微强化它。没有 Nagios 进程正在运行,我已经运行了chkconfig nagios off
。
我的配置如下:
- CentOS 6.3 x64
- Nagios 核心 3.4.1
以下是我的问题:
我还需要检查什么来确保 Nagios 已被禁用?
在默认配置下运行 Nagios 可能存在哪些安全漏洞?
我可以采取哪些步骤来强化 Nagios?
答案1
我在Nagios 文档专门处理安全问题:
- 使用专用监控箱。
- 不要以 root 身份运行 Nagios。
- 锁定检查结果目录。
- 锁定外部命令文件。
- 要求在 CGI 中进行身份验证。
- 实施增强的 CGI 安全措施。
- 在命令定义中使用完整路径。
- 使用 $USERn$ 宏隐藏敏感信息。
- 从宏中删除危险字符。
- 安全访问远程代理。
- 安全的通信渠道。
答案2
我知道这是一个较旧的线程,但除了其他人发布的内容之外,我还在 Nagios 安装上做了一件事,即在每个目标主机上实施 IPtables 规则,以仅允许来自实际 Nagios 服务器的 Nagios/NRPE 流量(端口 5666)。nrpe.conf 中有一个指令,允许您指定可以连接到目标主机的“allowed_hosts”。即使如此,我仍然喜欢在 IPtables 中添加一个链,以仅允许来自实际 Nagios 服务器的 Nagios/NRPE 流量。
除此之外,其他人发布的内容确实会强化您的 Nagios 服务器。
答案3
除了Nagios 官方建议,您还应该始终更新到 Nagios Core 的最新版本。Nagios 最近进行了大量安全修复,请查看Nagios Core 4 变更日志更多信息。除了 Nagios,您还应该升级依赖组件,例如您的代理(nrpe-agent 或 NSClient++)以及使用的协议,例如 NSCA 和 NRPE。特别是 NRPE 最近进行了重大更新。查看更新日志这里。
答案4
Nagios 是分部分实现的;我们来分别看一下。
这是 Nagios 调度程序和插件实现。这实际上负责 Nagios 确定各种主机/服务的状态。这可以通过多种不同的方式完成。您可能特别想研究的一种方式是 SSH。Nagios 可以通过 SSH 连接到远程主机,例如检查磁盘利用率。此 SSH 帐户通常使用 Nagios 主机上的私钥和要监控的所有目标 Linux 机器上的公钥进行设置。
Nagios 还可能使用其他机制,具体取决于插件。这些方法包括 SNMP、直接连接和 NRPE(Nagios 远程插件执行器)。这只是对插件的介绍,插件是 Nagios 安全性的一个研究领域。
下一个要考虑的领域是 UI 本身。默认 UI 是用编译的 C CGI 脚本构建的。您需要在默认 CGI 之上配置一些身份验证/授权步骤。要了解有关 CGI 安全性的更多信息,请查看cgi.cfg
Nagios 配置目录下的内容(通常是)/etc/nagios
,和/或阅读 Nagios 文档CGI 身份验证。
回答您的具体问题:
ps -aux | grep -v grep | grep nagios
有关插件/Web UI 和审核的一般安全问题,请参阅上文Nagios 安全文档。
回顾以上内容,考虑您的网络布局以及需要向各种 Nagios 插件开放哪些端口/协议。考虑使用 iptables 或其他限制来保护 UI 以访问 UI。