0x02 CGI的认证和授权

  • A+
所属分类:linux技术
摘要

简单说下cgi,cgi就是common gateway interface吧,大多数的http服务器支持cgi,cgi其实就是一个在http服务器上的一个可执行程序,只要程序执行后向标准输出输出点字符,如print打印,这些输出都会作为http响应的内容,但是核心是利用cgi的可执行特点,来做后台操作。
CGI的认证和授权,决定了谁可以访问监控视图,和配置信息,谁可以提交命令给nagios daemon通过网络接口


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中。也就是通过其它手段信任的用户。