NIS+ のセキュリティは NIS+ の名前空間全体にかかわっています。セキュリティと名前空間を別に設定することはできません。このため、セキュリティの設定方法は名前空間の各構成要素を設定する手順と密接に関係することになります。一度 NIS+ のセキュリティ環境を設定すると、その後はユーザーの追加および削除、アクセス権の変更、グループメンバーの再割当やネットワーク展開を管理するために必要なその他すべての管理ルーチンタスクを実行できます。
NIS+ のセキュリティ機能は名前空間内の情報と、名前空間そのものの構造を不正アクセスから保護するものです。このセキュリティ機能がなければ、どんな NIS+ クライアントであっても名前空間に保存された情報を獲得することも変更することもできないだけでなく、ダメージを与える可能性があります。
NIS+ セキュリティには次の 2 つの機能があります。
「認証 (authentication)」
認証は NIS+ 主体を識別するのに使われます。主体 (ユーザーまたはマシン) が NIS+ オブジェクトにアクセスしようとするときはいつも、ユーザー ID と SECURE RPC パスワードが確認されチェックされます。
「承認 (authorization)」
承認はアクセス権を識別するのに使われます。NIS+ 主体が NIS+ オブジェクトにアクセスしようとするときはいつも、所有者、グループ、その他、未認証の 4 つのクラスの 1 つに位置付けられています。NIS+ セキュリティシステムは NIS+ 管理機能により、各クラスに NIS+ オブジェクトに対する読み取り、変更、作成、削除の各権限を指定します。たとえば、あるクラスは passwd テーブルの特定列を変更できるが、その列を読み取ることはできないとか、別のクラスはいくつかのエントリを読み取ることはできるが、それ以外はできないというように設定できます。
NIS+ のセキュリティ機能は 2 段階のプロセスを用意しています。
「認証 (authentication)」
「承認 (authorization)」
承認プロセスがユーザー ID を確認すると、NIS+ はクラスを判定します。NIS+ オブジェクトまたはサービスに対して何が行えるのかは、ユーザーがどのクラスに属しているかに依存します。これは UNIX の標準的なファイルおよびディレクトリのアクセス権システムと同様の考え方に基づいています (クラスの詳細は、「承認クラス」を参照)。
このプロセスは、マシン A のルート権限により su コマンドを使って、第 2 の NIS+ アクセス権で NIS+ オブジェクトにアクセスすることを防ぐものです。
しかしながら NIS+ は、他人のユーザーログインパスワードを知っている者が、そのユーザーになりすましてユーザー ID と NIS+ アクセス権を使用することを妨げることはできません。またルート権限を持つユーザーが同一マシンからログインしている別のユーザーになりすますのを防ぐこともできません。
図 6-2 に、このプロセスの詳細を示します。
NIS+ の主体とは、NIS+ サービス要求を依頼するエンティティ (クライアント) です。NIS 主体には、クライアントマシンに一般ユーザーとしてログインしたユーザー、スーパーユーザーとしてログインしたユーザー、NIS+ クライアントマシンにおいてスーパーユーザー特権で動作しているプロセスを含みます。つまり NIS+ の主体はクライアントユーザーの場合もクライアントワークステーションの場合もあります。
NIS+ の主体は、NIS+ サーバーから NIS+ サービスを提供する主体を指すこともあります。すべての NIS+ サーバーは NIS+ クライアントにもなるので、サーバーが NIS+ の主体となる場合もあります。
NIS+ サーバーは 2 つのセキュリティレベルの 1 つで動作できます。これらのレベルが、主体がその要求の認証を受ける際に提示しなければならない資格種類を判定します。NIS+ は最も高度のセキュリティレベル (レベル 2) で動作するように設計されています。レベル 0 はテスト、設定、デバッグ用です。セキュリティレベルについては表 6-1 にまとめてあります。
表 6-1 NIS+ セキュリティレベル
セキュリティレベル |
説明 |
---|---|
0 |
セキュリティレベル 0 は、NIS+ 名前空間の初期テストと初期設定を行うレベル。セキュリティレベル 0 で動作している NIS+ サーバーは、ドメイン内の全 NIS+ オブジェクトに対する完全なアクセス権をどの NIS+ 主体にも与える。レベル 0 はシステム管理者だけが設定管理のためにだけ使用する。レギュラーユーザーはネットワークにおける通常のオペレーションに使用できない |
1 |
セキュリティレベル 1 は AUTH_SYS セキュリティを利用する。このレベルは NIS+ のサポートを受けられないため、利用すべきではない |
2 |
セキュリティレベル 2 はデフォルトで、NIS+ が現在提供している最高レベルのセキュリティ。これは DES 資格を持たない要求には未認証クラスが与えられ、未認証クラスに割り当てられたアクセス権が与えられる。無効な DES 資格を使用する要求だけを認証する。資格を使用する要求は再試行される。有効な DES 資格獲得に繰り返し失敗すると、無効資格を持った要求として承認エラーになる。 (主体が原因となって資格が無効になる場合、その原因として要求をした主体に対してそのマシンで keylogin が実行されていなかったり、クロックの同期がとれていなかったり、鍵が不一致であるなどの様々な原因が考えられる) |
Solaris リリース 2.0 から 2.4 の環境では、 nispasswd を使用してパスワードを変更します。ただし、資格がなければ、nispasswd は機能しません 。より上位のレベルでの資格があった場合を除き、セキュリティレベル 0 以下では機能しません。 Solaris リリース 2.5 以降の場合は、セキュリティレベルや資格ステータスにかかわらず、passwd コマンドを使ってパスワードを変更できます。