monit,使用四种不同凭据类型的 http 访问,其中一种使用 PAM

monit,使用四种不同凭据类型的 http 访问,其中一种使用 PAM

监控 5.25.2

这些是我们的凭据设置:

set httpd port 2812
allow localhost
allow guest:guest read-only
allow @wheel
allow cleartext /opt/monit/htpasswd

理由:

  • 本地主机启用监控状态
  • 客人:客人为每个人启用网络访问(只读)客人
  • @车轮为本地用户组启用完整的 Web 访问车轮
  • 明文为不在主机上的一对用户启用完整的 Web 访问

我阅读了文档,并尝试“洗牌”设置(叹气),但我无法理解如何解决常见问题:这两种用法中只有一种有效:

  • 从命令行,监视状态
  • 从客户端电脑进行网络访问(IP 地址不是主机本身)

更新

我偶然发现了两个问题:

  • 允许本地主机

没有它,所有客户端电脑都可以访问,但是监控状态不起作用。

使用“允许本地主机”,它会阻止客户端,因此我们还必须指定:

允许 10.0.0.0/8

恕我直言,文档中并不清楚这一点。

  • 来自客户端电脑的测试...注意凭据

尝试从电脑访问监控,浏览器会缓存凭据......因此这些测试可能会产生误导。

更新

我发现了问题:

strace -s 512 -e connect,write /opt/monit/bin/monit status  2>&1 |more

connect(4, {sa_family=AF_INET, sin_port=htons(2812), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress)

write(4, "POST /_status HTTP/1.0\r\nContent-Type: application/x-www-form-urlencoded\r\nCookie: securitytoken=88521284dfbc7acea0521e16e11356d1\r\nContent-Length: 58\r\n\
r\nformat=text&securitytoken=88521284dfbc7acea0521e16e11356d1", 209) = 209

write(2, "You are not authorized to access monit..."

为什么它发送 Cookie: securitytoken= ?

在配置中我们定义了

允许访客:访客只读

如果我使用以下命令发出 HTTP 请求客人凭证,它的工作原理:

"GET /_status?format=text HTTP/1.0\r\nAuthorization:Basic Z3Vlc3Q6Z3Vlc3Q=\r\n\r\n"

答案1

我开了一张票,开发人员发现这是一个错误。

他们正在努力。

https://bitbucket.org/tildeslash/monit/issues/769/monit-status-doesnt-work

相关内容