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

이유:

  • 로컬 호스트~할 수 있게 하다모니터 상태
  • 손님: 손님모든 사람의 네트워크 액세스 활성화(읽기 전용)손님
  • @바퀴로컬 사용자 그룹에 대한 전체 웹 액세스 활성화바퀴
  • 일반 텍스트호스트에 없는 사용자 쌍에 대해 전체 웹 액세스를 활성화합니다.

문서를 읽고 설정을 "셔플링"해 보았지만(한숨) 일반적인 문제를 해결하는 방법을 이해할 수 없습니다. 다음 두 가지 사용법 중 하나만 작동합니다.

  • 명령줄에서 상태 모니터링
  • 클라이언트 컴퓨터에서 네트워크 액세스(IP 주소는 호스트 자체가 아님)

고쳐 쓰다

나는 두 가지 문제를 우연히 발견했습니다.

  • 로컬호스트 허용

이것이 없으면 모든 클라이언트 컴퓨터가 액세스할 수 있지만모니터 상태작동하지 않습니다.

"Allow localhost"를 사용하면 클라이언트가 차단되므로 다음 사항도 지정해야 합니다.

10.0.0.0/8 허용

IMHO 이것은 문서에서 명확하지 않습니다.

  • 클라이언트 컴퓨터에서 테스트 중... 자격 증명을 기록해 두세요.

컴퓨터에서 모니터링에 액세스하면 브라우저가 자격 증명을 캐시하므로 이러한 테스트는 오해의 소지가 있습니다.

고쳐 쓰다

문제를 발견했습니다.

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..."

쿠키를 보내는 이유는 무엇입니까: 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

관련 정보