「CGIの認証と許可」の版間の差分
(初版) |
(相違点なし)
|
2010年8月4日 (水) 01:25時点における版
目次
はじめに
このドキュメントでは、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設定ファイル内へ以下の変数を加えることで各ユーザに付与できます...
- authorized_for_system_information
- authorized_for_system_commands
- authorized_for_configuration_information
- authorized_for_all_hosts
- authorized_for_all_host_commands
- authorized_for_all_services
- authorized_for_all_service_commands
CGI認証の資格
もしCGI認証について分からないことがあれば、こちらに記述されている各CGIについての認証の資格の項目をお読みください。
セキュアWebサーバの認証
あなたのサーバがセキュアな環境にある場合(ファイアウォールの配下など)、もしくはSSLを利用している場合には、CGIへアクセスするためのデフォルトユーザ名を定義できます。CGI設定ファイルのdefault_user_nameオプションに定義することで設定できます。デフォルトユーザ名を定義すると、そのユーザは認証なしにCGIへアクセスできるようになります。BASIC認証はパスワードをインターネット上にクリアテキストで送信するので、それを避けるためにこの機能を利用するのもよいかもしれません。
重要:サーバがセキュアな環境にあり、CGIへアクセスするユーザは全て何らかの形で認証されていることが確認できるまでは、デフォルトユーザ名を定義しないでください。確認が取れないまま定義すると、認証されていないユーザが、デフォルトユーザに対して与えられている全ての権限を受け継いでしまう可能性があります!