gpt4 book ai didi

Nagios:为经过身份验证的用户创建自定义菜单

转载 作者:行者123 更新时间:2023-12-01 03:51:33 27 4
gpt4 key购买 nike

是否有任何“简单”的方法可以为 Nagios 认证用户创建定制的 web gui(例如,菜单、默认主页等)?我为客户创建了一个用户,该用户只能访问某些主机组。但是登录后,用户显然可以看到默认菜单,这是为内部使用而定制的。我怎样才能防止这种情况?

最佳答案

有多种方法可以限制用户在标准 gui 中看到的内容,请查看 manual pages .基本上,用户只会看到那些拥有包含该用户的联系人列表的主机和服务。您可以在 etc/cgiauth.cfg 文件中对特殊情况进行更多配置。

如果您想限制用户访问很少的预定义页面,您可以通过 Web 服务器配置中的一些技巧来实现。您应该对 apache 配置文件如何为此工作有一些了解,并且假设您可以使用他们的 IP 地址将您的客户与您的公司员工区分开来。如果不能,您可以使用组和 AuthGroupFiles,但那样会有点困难。

基本思想是:

  • 允许每个人访问静态页面、图像、css 等内容。
  • 仅允许从贵公司使用的 IP 访问 CGI
  • 为“隐藏”真实 CGI 的客户创建特殊 URL

  • 这需要 mod_authz、mod_rewrite 和 mod_proxy 与 mod_proy_http 一起工作。

    您的 Web 服务器目录中应该有一个 nagios.conf;它的确切位置和内容取决于发行版以及您是使用 RPM 还是自己编译的 nagios,因此您的目录路径可能会有所不同。

    在 CGI 脚本的配置中,我们将
    <Directory /usr/local/nagios/sbin>
    Order deny, allow
    Deny from all
    Allow from 127.0.0.1
    Allow from 1.2.3.4 # <-- this should be the address of the webserver
    Allow from 192.168.1.0/24 # <-- this should be the addresses your company use
    require valid-user
    </Directory>

    这将拒绝除您之外的所有人访问 CGI。

    然后,我们定义了一些被重写为 CGI 脚本的网页:
    <Location />
    RewriteEngine On
    RewriteRule customer.html$ http://127.0.0.1/nagios/cgi-bin/status.cgi?host=customerhost [P]
    </Location>

    所以当有人访问 customer.html ,服务器将获取 http://127.0.0.1/nagios/cgi-bin/status.cgi?host=customerhost使用其内部代理;这将创建一个似乎来自 127.0.0.1 的 CGI 新请求,因此匹配“允许来自 127.0.0.1”规则。

    mod_proxy 还需要来配置:
    ProxyRequests On
    <Proxy *>
    AddDefaultCharset off
    Order deny,allow
    Deny from all
    Allow from 1.2.3.4 # <--- again, use your server IP
    Allow from 127.0.0.1
    </Proxy>

    这将代理限制为内部 apache 使用,并防止互联网上的其他人将您的代理用于其他任何用途。

    当然,执行的仍然是原始 CGI,但是您的客户不能直接使用它们,他只能访问您在 RewriteRules 中提供的那些。链接和操作下拉菜单仍然存在,但访问它们会导致错误消息。

    如果您仍然想要更多,请使用您选择的编程语言(我已经使用 perl 完成了此操作,但是 php、phyton、ruby ……应该也能正常工作),解析 objects.cache 和 status.dat 文件,并创建您自己的用户界面。一旦您编写了一些库函数来解析这些文件(这应该不会太难,它们的语法很简单),创建自己的 GUI 就像编写任何其他类型的 Web UI 一样困难或容易。

    关于Nagios:为经过身份验证的用户创建自定义菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22145532/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com