- A+
CGI的认证和授权
简单说下cgi,cgi就是common gateway interface吧,大多数的http服务器支持cgi,cgi其实就是一个在http服务器上的一个可执行程序,只要程序执行后向标准输出输出点字符,如print打印,这些输出都会作为http响应的内容,但是核心是利用cgi的可执行特点,来做后台操作。
CGI的认证和授权,决定了谁可以访问监控视图,和配置信息,谁可以提交命令给nagios daemon通过网络接口
区分authenticate user与authenticate contact
- authenticated user 是一个已经通过web server的认证(默认是apache httpd),使用其username和password,并获取到访问web interface的权限。
- authenticated contact 是一个被认证的用户,这个用户的username 匹配上contact definition的short name
设置authenticated users
如果要创建其它用户(非安装时的管理员),最好用户的用户名需要定义了对应的contact objects,并匹配上对象中的short name。
创建用户的命令:
htpasswd /usr/local/nagios/etc/htpasswd.users
同时确保cgi config的use_authentication=1开始了认证
用户权限对哪些资源有权限
资源就是我们所说的hosts services这些
一般我们host和service是会指定contact,那么这些指定的contact用户就可以得到这些资源某些权限,如,查看资源的状态,配置资源的信息,查看资源的history和notification,还有issue资源的命令。
额外授权用户其它权限
通过在配置文件中将用户添加到一下配置指令值中,已授予指定用户对应特殊权限。一下指令:
authorized_for_system_information
authorized_for_system_commands
authorized_for_configuration_information
authorized_for_all_hosts
authorized_for_all_host_commands
authorized_for_all_services
authorized_for_all_service_commands
在其它安全的条件下认证
如果能确保,web server 是在一个安全的域环境中,也就是用户必须是域中用户或域中的客户端访问cgi,那么可以设置已给默认用户在cgi配置文件default_user_name。如果用户使用ssl,也可以定义到default中。也就是通过其它手段信任的用户。