monit、4つの資格情報タイプを使用したhttpアクセス(そのうちの1つはPAMを使用)

monit、4つの資格情報タイプを使用したhttpアクセス(そのうちの1つはPAMを使用)

モニタリング 5.25.2

以下は資格情報の設定です。

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

理由:

  • ローカルホスト〜できるようにするモニターの状態
  • ゲスト:ゲスト全員のネットワークアクセスを有効にする(読み取り専用)ゲスト
  • @ホイールローカルユーザーグループへのフルWebアクセスを有効にするホイール
  • プレーンテキストホストにないユーザーのペアに対して完全なWebアクセスを有効にします。

ドキュメントを読み、設定を「シャッフル」してみましたが(ため息)、一般的な問題を解決する方法がわかりません。次の2つの使用法のうちの1つだけが機能します。

  • コマンドラインからの状態の監視
  • クライアントコンピュータからのネットワークアクセス(IPアドレスはホスト自体ではありません)

修正する

私は2つの問題を偶然発見しました。

  • ローカルホストを許可

これがないと、すべてのクライアントコンピュータがアクセスできますが、モニターの状態動作しません。

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

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

おすすめ記事