CGIの認証と許可

出典: Nagios 3翻訳プロジェクト Wiki

目次

はじめに

このドキュメントでは、Nagios CGIがどのように監視の表示と構成情報へのアクセスを管理し、WebインタフェースからNagiosデーモンへのコマンド発行を制限するかを示します。

定義

以下を読み進める前に、認証ユーザと認証通知先の違いについて理解しておいてください:

  • 認証ユーザとは、ユーザ名とパスワードによってWebサーバへ認証が可能なユーザで、Webサーバ上のCGIへアクセスを認められたユーザのことです。
  • 認証通知先とは、ユーザ名が通知先定義内のショートネームに一致する認証ユーザのことです。

認証ユーザの作成

クイックスタートガイドの記述に従ってWebサーバを構成している場合、Nagios CGIにアクセスする前には認証を義務付ける必要があります。 CGIにアクセスするためのアカウント(nagiosadmin)も必要です。

ホストやサービスの通知先を複数指定したい場合、それらがWebサーバ上のCGIへアクセスできるようにする必要があります。それには以下のコマンドを利用できます。<username>の部分には、追加したいユーザ名を入れてください。殆どの場合、ユーザ名は通知先のショートネームに一致する必要があります。

htpasswd /usr/local/nagios/etc/htpasswd.users <username>


CGIで認証/許可機能を有効にする

次に、CGIが認証/許可機能を利用するように設定します。これは、CGI設定ファイルuse_authenticationという項目の値を0以外にすることで可能となります。例えばこんな風に: use_authentication=1

さあ、これで基本的なCGIの認証/許可機能が設定されました。


CGI情報のデフォルトパーミッション

CGIの認証/許可機能が有効である時、各ユーザにはデフォルトでは以下のようなパーミッションが設定されています。

CGIデータ認証通知先 * それ以外の認証ユーザ *
ホストステータス情報不可
ホスト設定情報不可
ホスト履歴不可
ホスト通知不可
ホストコマンド不可
サービスステータス情報不可
サービス設定情報不可
サービス履歴不可
サービス通知不可
サービスコマンド不可
全ての設定情報不可不可
システム/プロセス情報不可不可
システム/プロセスコマンド不可不可


認証通知先 * には、サービス毎に以下の権限が与えられます(しかし通知先として設定されていないサービスには与えられません)...

  • サービスステータス情報を表示するための認証
  • サービス設定情報を表示するための認証
  • サービスの履歴と警告通知を表示するための認証
  • サービスコマンドを発行するための認証

認証通知先 * には、ホスト毎に以下の権限が与えられます(しかし通知先として設定されていないホストには与えられません)...

  • ホストステータス情報を表示するための認証
  • ホスト設定情報を表示するための認証
  • ホストの履歴と警告通知を表示するための認証
  • ホストコマンドを発行するための認証
  • ホスト上の全サービスのステータス情報を表示するための認証
  • ホスト上の全サービスの設定情報を表示するための認証
  • ホスト上の全サービスの履歴と警告通知を表示するための認証
  • ホスト上の全サービスにコマンドを発行するための認証

以下の事項においては、デフォルトではも認証を許可されないことに注意してください...

  • showlog CGIを通じての生ログの表示
  • extended information CGIを通じてのNagiosプロセス情報の表示
  • command CGIを通じてのNagiosプロセスコマンドの表示
  • configuration CGIを通じてのホストグループ、通知先、通知先グループ、時間帯、コマンド定義の表示

上記の情報へアクセスしたい場合は、次にあげる方法によって、あなた自身に(又は他のユーザにも)権限を追加する必要があります...

CGI情報に対する追加権限の付与

CGI設定ファイルの様々な追加認証変数を設定することで、認証通知先や認証ユーザへ権限を追加することができます。特定の権限については細かな設定ができないこともありますが、ないよりましです...

追加認証は、CGI設定ファイル内へ以下の変数を加えることで各ユーザに付与できます...


CGI認証の資格

もしCGI認証について分からないことがあれば、こちらに記述されている各CGIについての認証の資格の項目をお読みください。

セキュアWebサーバの認証

あなたのサーバがセキュアな環境にある場合(ファイアウォールの配下など)、もしくはSSLを利用している場合には、CGIへアクセスするためのデフォルトユーザ名を定義できます。CGI設定ファイルdefault_user_nameオプションに定義することで設定できます。デフォルトユーザ名を定義すると、そのユーザは認証なしにCGIへアクセスできるようになります。BASIC認証はパスワードをインターネット上にクリアテキストで送信するので、それを避けるためにこの機能を利用するのもよいかもしれません。


重要:サーバがセキュアな環境にあり、CGIへアクセスするユーザは全て何らかの形で認証されていることが確認できるまでは、デフォルトユーザ名を定義しないでください。確認が取れないまま定義すると、認証されていないユーザが、デフォルトユーザに対して与えられている全ての権限を受け継いでしまう可能性があります!

個人用ツール