Eu abro um ticket e os desenvolvedores descobriram que é um bug.
Eles estão trabalhando nisso.
monit 5.25.2
Estas são as nossas configurações de credenciais:
set httpd port 2812
allow localhost
allow guest:guest read-only
allow @wheel
allow cleartext /opt/monit/htpasswd
Fundamentação:
Eu leio os documentos e tento "embaralhar" as configurações (suspiro), mas não consigo entender como consertar o problema usual: apenas um desses dois usos está funcionando:
UPDATE
Eu me deparei com duas questões:
Sem ele, todos os clientes que o pc pode acessar, mas monit status não funciona.
Usando 'allow localhost', ele bloqueia os clientes, então temos que especificar também:
allow 10.0.0.0/8
IMHO isso não está claro nos documentos.
Tentando acessar o monit do PC, o navegador armazena as credenciais em cache ... para que esses testes possam ser enganosos.
UPDATE
Eu encontrei o problema:
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..."
Por que ele envia o cookie: securitytoken =?
Na configuração que definimos
allow guest:guest read-only
Se eu fizer a solicitação HTTP com as credenciais guest , funcionará:
"GET /_status?format=text HTTP/1.0\r\nAuthorization:Basic Z3Vlc3Q6Z3Vlc3Q=\r\n\r\n"
Tags monit access-control