第3章 相 关 设 置
本章包括对CGI页眉、页脚、安全认证的设置,以及Nagios配置文件校验、联系人待命设置。
3.1 CGI设置
通过设置CGI的页眉、页脚更好地向最终用户提供信息,使用Apache的摘要认证实现用户访问权限。
3.1.1 自定义CGI的页眉和页脚
如果为客户自定义安装Nagios,那么可能会对CGI的页眉、页脚进行自定义,以便在CGI输出中显示,这对于最终联系人来说非常有用。
需要说明的一点是,需要这些页眉、页脚文件是可执行的(这里的“可执行”指定的是可以被浏览器解释执行),自定义的页眉、页脚文件在显示到客户端之前不会经过预处理。在CGI中,包含在页眉、页脚中的内容文件将会被简单地读取并显示在CGI的输出中,这就意味着它们仅包含Web浏览器能够理解的语言(例如,HTML、JavaScript等)。
如果用户自定义页眉、页脚文件是可执行的,那么这些文件被CGI调用并在客户端浏览器被执行后,其输出将会被返回给用户,因此,它们应该输出为有效的HTML格式文件。
使用该功能,可以通过运行自己定义的CGI在Nagios中插入数据以便显示,这种方法已经被用于从rrdtool,通过使用ddraw命令,插入图像,或者是显示在Nagios面板的命令菜单上。可执行的自定义页眉、页脚文件在运行时与Nagios执行CGI使用的环境相同,因此自定义的CGI可以解析查询信息、用户认证信息等,以便于产生适当的输出内容。
自定义CGI的工作情况
在CGI的输出中可以包括自定义的CGI页眉、页脚,方法是在ssi/子目录(就是/usr/local/nagios-3.3.1/share/ssi)中添加某些适当的HTML文件。
在CGI输出中,自定义的页眉添加到<BODY>标签之后,而自定义的页脚添加到</BODY>标签之前。
有以下两个类型的自定义页眉和页脚。
l 全局的CGI页眉、页脚:这两个文件应该分别命名l 为common-header.ssi 和 common-footer.ssi。如果这些文件存在,l 那么它们将会被包含在所有的CGI输出中。
l 特定的CGI页眉、页脚:CGINAME-header.ssi 和CGINAME-footer.ssi,l 这里的 CGINAME 是原本相应CGI文件的文件名l 称,l 就是原来的CGI文件除去.cgi扩展名l 的部分,l 例如,l 警告摘要CGI(也就是summary.cgi),l 它的特定页眉、页脚将会各自被命名l 为 summary-header.ssi 和 summary-footer.ssi。
根据自己的需要来设置是否使用任何自定义的CGI页眉、页脚,也可以仅使用全局CGI页眉,而使用特定的CGI页脚,或者是仅使用全局的CGI页脚,而使用特定的CGI页眉,这些完全可以根据自己的需要进行设置。
3.1.2 增强CGI的安全和认证
下面要讨论的问题是CGI Web界面的安全问题。加固一个Web服务器实现强壮的用户验证和服务器安全非常必要。
有很多增强监控服务器(就是安装Nagios的服务器)和Nagios环境的方法。下面我来看一些能够增强安全的技术。
1.其他技术
借助其他技术可以实现CGI安全。
l 使用摘要身份验证。Apache提供了基本身份验证,l 在每一个http请求中,l 基本身份验证都将会用“明文”的方式发送用户名l 和密码。可以考虑使用比较安全的认证方法,l 例如,l 摘要身份验证,l 它是由用户名l 和密码创建的MD5哈希l 值,l 在每一个请求中都会发送该摘要。
l 对于Web方式强制使用TLS/SSL。Apache通过mod_ssl模块来实现TLS/SSL,l TLS/SSL在客户端和服l 务器端之间实现了一条安全的加密通道,l 这种技术是建立在强壮的公钥/私钥加密技术之上。
l 通过使用Apache提供的访问控制(Access Controls)。这种方式是通过锁定能够访问Nagios Web部分的IP地址来实现,l 通过该模块可以限制IP地址、IP地址段或者IP子网。如果在限制的IP地址之外想访问Nagios,l 那么可以使用VPN(有关VPN的安装和使用可以参考《构建虚拟专用通道——OpenVPN服l 务器详解与架设指l 南(基于Linux)》或者是SSH方法,l 这种方法既简单也很强壮地限制了对HTTP/HTTPS的访问。
2.使用摘要式身份验证
摘要式身份验证的实现非常简单,需要使用htdigest工具来创建新类型的密码,然后修改Apache的配置文件(相关的Nagios配置部分,通常是/etc/httpd/conf.d/nagios.conf,在具体的使用中要根据实际的安装情况来定)。
使用htdigest工具创建一个新密码,如果对htpasswd工具熟悉,那么需要了解它们的区别,htpasswd工具需要支持realm参数,这里的realm相当于Apache配置中的AuthName指令的值。
……