Solstice AutoClient ソフトウェアを使用する際には、セキュリティ機能について理解し、管理データーを保護するためのセキュリティ方針を設定することが重要です。
この章では、次の事項について説明します。
Solstice AutoClient は、ネットワークを介して管理作業を行う際に、分散型のシステム管理デーモン (sadmind) を使用して、セキュリティ処理を行います。sadmind デーモンは、クライアントの要求をサーバー上で実行し、Solstice AutoClient を使用できるユーザーを制御します。
セキュリティの管理には、ユーザーの認証とアクセス権の承認があります。
認証とは、sadmind デーモンが要求を出したユーザーを確認することを意味します。
承認とは、「認証」されたユーザーが、サーバー上の Solstice AutoClient の実行権を持っていることを sadmind デーモンが確認することを意味します。sadmind デーモンは、ユーザーを確認して得たユーザーの情報を使用して「承認」を行います。
Solstice AutoClient の実行権を持っている場合でも、NIS+ マップを変更するには、作成権、削除権、変更権が必要です。NIS+ セキュリティについての詳細は、日本語 Solaris 2.5 システム管理 AnswerBook の『NIS+ と DNS の設定と構成』を参照してください。
承認では、ユーザーおよびグループの識別情報は次のように確認されます。
スーパーユーザーには、ローカルシステム上のデーターのみのアクセス権および変更権があります。サーバーがローカルシステムの場合 (つまり、一般のユーザーがサーバーにスーパーユーザーとしてログインした場合) 、一般のユーザーはスーパーユーザーとして Solstice AutoClient 機能を実行することができます。
sysadmin グループ (group 14) のメンバーであるユーザー
Solstice AutoClient のアクセス権は、sysadmin グループのメンバーであるユーザーに与えられます。つまり、管理データーを変更するには、変更を行うシステム上で sysadmin グループのメンバーになる必要があります。
管理データーを変更する要求には、ユーザー ID とユーザーが所属するグループ ID などの資格情報が含まれています。サーバーはこれらの資格情報を使用して、ユーザーとアクセス権を確認します。
認証セキュリティには、表 4-1 に示す 3 つのレベルがあります。
表 4-1 Solstice AutoClient のセキュリティレベル
レベル |
レベル名 |
説明 |
---|---|---|
0 |
NONE |
サーバーはユーザー識別情報をチェックしません。すべてのユーザー ID は nobody に設定されます。このレベルは主にテストで使用されます。 |
1 |
SYS |
サーバーは、クライアントシステムから元のユーザーおよびグループの識別情報を受け取り、それを確認して承認を行います。クライアントのユーザー ID がサーバー上の同じユーザーを示すかどうかは確認しません。つまり、管理者がネットワーク上のすべてのシステムにおいて、ユーザー ID とグループ ID の整合性を保つことを前提としています。このレベルでは、ユーザーが要求の実行権を持っているかどうかについて確認します。 |
2 |
DES |
DES 認証を使用して資格を確認し、ユーザーが要求の実行権を持っているかどうかを確認します。ユーザーの DES ネットワーク識別情報を、ローカルのユーザー ID およびグループ ID に割り当てることによって、ユーザーおよびグループの識別情報をサーバー上のファイルから取得します。サーバーで選択されるネームサービスによって、どのファイルが使用されるかが決まります。このレベルは、最も安全に管理作業を行うことができる環境を提供します。また、sadmind デーモンを実行しているすべてのサーバー、およびツールにアクセスするすべてのユーザーに対して、publickey エントリが必要です。 |
sadmind は、デフォルトではセキュリティレベルは 1 を使用します。
各システムの /etc/inetd.conf ファイルを編集し、sadmind エントリに -S 2 オプションを追加すると、セキュリティレベルを 1 から 2 へ変更することができます。この場合、ドメイン上のサーバーが DES セキュリティを使用するように設定されていることを確認してください。
ネットワーク上のすべてのシステムについて同じセキュリティレベルを設定しておく必要はありません。たとえば、ファイルサーバーなど厳密なセキュリティを必要とするシステムではセキュリティレベルを 2 とし、その他のシステムについてはデフォルトのセキュリティレベルを 1 にすることもできます。
NIS+ のセキュリティの設定方法については、日本語 Solaris 2.5 システム管理 AnswerBook の『NIS+ と FNS の管理』を参照してください。
sadmind デーモンは、ネームサービスが保持している情報を使用します。次の 3 つの情報源があります。
各システムの /etc/nsswitch.conf ファイルには、管理用のファイルと、情報を検索するために使用されるネームサービスを表わすキーワードが記述されています。複数のキーワードが記述されている場合、記述されている順にネームサービスが使用されます。
たとえば以下のようなエントリの場合、セキュリティ機能は、まずローカルの /etc/group ファイルでエントリを探します。
group: files nisplus
エントリが見つかるとそのエントリ中の情報を使用し、エントリが見つからない場合は NIS+ の group ファイルを検索します。
Solaris 2.4 以降の OS を使用するシステムには、ローカル /etc/group ファイルに sysadmin グループのエントリがデフォルトで記述されています。ネットワーク全体の情報を使用できるようにシステムを設定するには、ローカルシステム上で sysadmin グループにメンバーを追加するのではなく、ネームサービスのグループテーブルにある sysadmin グループのエントリを変更してください。
セキュリティレベル 2 の場合、セキュリティ機能は公開鍵および非公開鍵の情報を使用します。publickey のエントリの後に nis または nisplus (使用しているネームサービス) のいずれかが記述されていることを確認してから、files を削除します。nsswitch.conf ファイルについての詳細は、日本語 Solaris 2.5 システム管理 AnswerBook の『NIS+ と FNS の管理』を参照してください。
ネームサービス環境で Solstice AutoClient ソフトウェアを使用するためのセキュリティ方針を作成する場合は、次の点に注意してください。
どの程度の信頼性が必要かを決定する
ネットワークが安全で、認証セキュリティを使用する必要がない場合は、デフォルトのレベル 1 のセキュリティで Solstice AutoClient ソフトウェアを使用することができます。
セキュリティのレベルを高くしたい場合は、sadmind のセキュリティレベルをレベル 2 に設定することができます。
使用するネームサービスを決定する
使用するネームサービスによって、ユーザーおよびグループの識別情報をセキュリティ機能が取得する場所が決まります。ネームサービスは、/etc/nsswitchoconf ファイルに指定します。詳細は、「/etc/nsswitch.conf ファイル」および 「ネームサービス情報」を参照してください。
Solstice AutoClient ソフトウェアにアクセスするユーザーを決定する
Solstice AutoClient ソフトウェアを使用してネットワーク上で管理作業を行うユーザーを決め、そのユーザーをサーバーによってアクセスされる sysadmin グループのメンバーとして記述します。sysadmin グループは、Solstice AutoClient ソフトウェアによって管理データーが更新される各システムからアクセス可能でなければなりません。管理者が決定する方針に応じて、sysadmin グループは、各システムにローカルに設定したり、ネームサービスドメイン全体で使用できるように設定することができます。
グローバルの方針 (ネームサービスドメイン全体の方針) は、ネットワーク内のすべてのホストに影響を与えます。たとえば、NIS および NIS+ の group ファイルに、sysadmin グループのメンバーを追加することができます。sysadmin グループのメンバーは、ネームサービスを一次情報源としているすべてのサーバー上で、管理作業を行うことができます。ネームサービスは、/etc/nsswitchoconf ファイルに記述されています。nsswitch.conf ファイルについての詳細は、「/etc/nsswitch.conf ファイル」および 「ネームサービス情報」を参照してください。
ユーザーは、ローカルの /etc/group ファイルに sysadmin グループを作成して、ローカルシステムへのアクセス権を持つユーザーを記述することによって、グローバルの方針とは異なる、ローカルの方針を設定することができます。このグループのメンバーは、そのローカルシステム上で Solstice AutoClient ソフトウェアを実行して操作することができます。
ローカルの方針を設定してもグローバルの方針は有効です。ネームサービスのアクセス権は、nsswitch.conf ファイルによって決まります。
Solstice AutoClient ソフトウェアを使用して NIS+ ファイルを変更または更新する場合は、適切なアクセス権が必要です。また、NIS+ セキュリティ機能に対するアクセス権も必要です。NIS+ セキュリティ機能についての詳細は、日本語 Solaris 2.5 システム管理 AnswerBook の『NIS+ と FNS の管理』を参照してください。
NIS マスターサーバーで Solaris 1.x が稼働している場合、ユーザーが NIS ファイルを変更するためには NIS マスターサーバー上に .rhosts のエントリが必要です。NIS マスターサーバーで Solaris 2.x およびネームサービス移行キット 1.2 が稼働している場合、AdminSuite がすでにインストールされていればエントリは必要ありません。NIS の変更は、標準の sysadmin グループの機能によって承認されます。
DES セキュリティシステム (レベル 2) を作成する手順は、使用しているシステムの構成によって異なります。以下に、NIS または NIS+ のネームサービスを使用しているシステム、およびネームサービスなしのシステムに、レベル 2 の DES セキュリティを設定する手順について説明します。
sadmind デーモンを実行している各システムで、/etc/inetd.conf ファイルを編集します。
以下のような行を、
100232/10 tli rpc/udp wait root /usr/sbin/sadmind sadmind |
次のように変更します。
100232/10 tli rpc/udp wait root /usr/sbin/sadmind sadmind --S 2 |
sadmind デーモンを実行している各システムで、/etc/nsswitch.conf ファイルの publickey エントリを files に変更します。
以下のような行を、
publickey: nis [NOTFOUND=return] files |
次のように変更します。
publickey: files |
sysadmin グループのメンバー全員と、sadmind -S 2 を実行するすべてのシステムに対して、資格を作成します。
sadmind -S 2 を実行するシステムのうちの 1 台に、スーパーユーザーとしてログインします。
admintool を実行する各ユーザーに対して、次のコマンドを実行します。
# newkey -u username |
sysadmin グループのメンバーでないユーザーに対しても、上記のコマンドを実行する必要があります。sysadmin グループのメンバーでなく、資格も持っていない場合、sadmind デーモンにはユーザーとして認識されないので、処理を何も実行することができません。また、スーパーユーザーになる必要がない処理も実行することができません。この場合、newkey プログラムの実行時に、ユーザーのパスワードを入力する必要があります。
sadmind デーモンを実行できるように設定したすべてのホストに対して、次のコマンドを実行します。
# newkey -h hostname |
各ホストに対して、スーパーユーザーのパスワードを入力する必要があります。
現在ログインしているシステムの /etc/publickey ファイルを、各ホストへコピー (上書き) します。
このファイルには、各ユーザーおよびホスト用の資格が記述されています。
すべてのシステムでは newkey を実行しないでください。すべてのシステム上で実行すると、異なる公開鍵と非公開鍵の組み合わせが作成され、ネットワーク上の公開鍵が無効になります。/etc/publickey ファイルは 1 台のシステム上のみに作成し、それをその他のシステムにコピーしてください。
各システムにスーパーユーザーとしてログインし、次のコマンドを実行してルートの非公開鍵を /etc/.rootkey に置きます。
# keylogin -r |
この手順によって、システムのブート時に自動的にルートの keylogin が作成されるので、admintool を実行するシステムごとに、毎回スーパーユーザーとして keylogin を実行する必要がなくなります。
各システムの各ユーザーについて /etc/netid ファイルを作成し、すべてのシステム上に置きます。
publickey ファイル中に記述されているすべてのユーザーについて、/etc/netid ファイル中に次のようなエントリを作成します。
unix.uid@domainname uid: uid: gid,gid, ... |
このユーザーがメンバーとして登録されているすべてのグループを表示します。sysadmin グループのメンバーを確認するには、/etc/group ではなく、sadmind -S 2 や netid に依存しているファイルを利用します。
publickey ファイルに記述されている各ホストで、/etc/netid ファイル中に次のようなエントリを追加します。
unix.hostname@domainname 0:hostname |
/etc/netid ファイル内に記述されているすべてのシステムに、/etc/netid ファイルをコピーします。
すべてのシステムをリブートします。
アプリケーションを実行する各システムにログインし、keylogin を実行します (sysadmin グループのメンバーである必要があります)。
keylogin を実行すると安全にログアウトすることができます。明示的に keylogout を実行したりシステムをリブートするまで、鍵は keyserv デーモン中に保存されます。
sadmind デーモンを実行している各システムで、/etc/inetd.conf ファイルを編集します。
以下のような行を、
100232/10 tli rpc/udp wait root /usr/sbin/sadmind sadmind |
次のように変更します。
100232/10 tli rpc/udp wait root /usr/sbin/sadmind sadmind -S 2 |
sadmind デーモンを実行している各システムで、/etc/nsswitch.conf ファイルの publickey エントリを nis に変更します。
以下のような行を、
publickey: nis [NOTFOUND=return] files |
次のように変更します。
publickey: nis |
sysadmin グループのメンバー全員と、sadmind -S 2 を実行するすべてのシステムに対して、資格を作成します。
NIS サーバーに、スーパーユーザーとしてログインします。
admintool を実行する各ユーザーに対して、次のコマンドを実行します。
# newkey -u username -s files |
sysadmin グループのメンバーでないユーザーに対しても、上記のコマンドを実行する必要があります。sysadmin グループのメンバーでなく資格も持っていない場合、sadmind デーモンにはユーザーとして認識されないので、処理を何も実行することができません。また、スーパーユーザーになる必要がない処理も実行することができません。この場合、newkey プログラムの実行時に、ユーザーのパスワードを入力する必要があります。
sadmind デーモンを実行できるように設定したすべてのホストに対して、次のコマンドを実行します。
# newkey -h hostname |
各ホストに対して、スーパーユーザーのパスワードを入力する必要があります。
現在ログインしている NIS サーバー上の /etc/publickey ファイルを、/var/yp/Makefile ファイル中に指定されているソースファイルにコピーします。nis マップを作成し直してプッシュします。
# cd /var/yp; make |
nis の group マップを参照して、sysadmin グループのメンバーになっていることを確認します。
スーパーユーザーとしてログインします。
/var/yp/Makefile ファイル中に指定されているソースファイルのあるディレクトリに移動します。
/etc/group ファイルを編集した場合と同様に、グループファイルを編集して自分自身を sysadmin グループのメンバーに追加します。
/var/yp ディレクトリに移動し、make を実行します。
# cd /var/yp; make |
group マップがプッシュされると、メッセージが表示されます。
セキュリティシステムは、NIS マップを参照して sysadmin グループのメンバーを確認します。/etc/nsswitch.conf ファイルに nis グループファイルがあるかどうかに関係なく、NIS マップに sysadmin グループのメンバーとして指定していない場合は、セキュリティシステムのエラーとなります。
sadmind デーモンが -S 2 モードで実行されている場合は、publickey のエントリによって、ユーザーの資格を調べるのにどのネームサービスを参照するかが決まります。/etc/nsswitch.conf ファイル内のエントリが nis になっている場合、sadmind デーモンは nis グループマップを参照して、ユーザーが sysadmin グループのメンバーであることを確認します。
各システムにスーパーユーザーとしてログインし、ルートの公開鍵を /etc/.rootkey に置きます。
# keylogin -r |
この手順によって、システムのブート時に自動的にルートの keylogin が作成されるので、admintool を実行するシステムごとに、毎回スーパーユーザーとして keylogin を実行する必要がなくなります。
すべてのシステムをリブートし、nscd をフラッシュし (内部バッファに蓄積されたデーターをファイルに書き込み) ます。
アプリケーションを実行する各システムにログインし、keylogin を実行します (sysadmin グループのメンバーである必要があります)。
keylogin を実行すると安全にログアウトすることができます。明示的に keylogout を実行したりシステムをリブートするまで、鍵は keyserv デーモン中に保存されます。
sadmind デーモンを実行している各システムで、/etc/inetd.conf ファイルを編集します。
以下のような行を、
100232/10 tli rpc/udp wait root /usr/sbin/sadmind sadmind |
次のように変更します。
100232/10 tli rpc/udp wait root /usr/sbin/sadmind sadmind -S 2 |
sadmind デーモンを実行している各システムで、/etc/nsswitch.conf ファイルの publickey エントリを、nisplus に設定します。
以下のような行を、
publickey: nisplus [NOTFOUND=return] files |
次のように変更します。
publickey: nisplus |
NIS+ マスターサーバーにスーパーユーザーとしてログインし、sysadmin グループのメンバー全員と、sadmind -S 2 を実行するすべてのシステムに対して、資格を作成します。
NIS+ マスターサーバーにスーパーユーザーとしてログインし、AdminSuite を使用するすべてのユーザーを NIS+ の sysadmin グループに追加します。
# nistbladm -m members=username, username...[name-sysadmin], group.org_dir |
現在の sysadmin グループのメンバーは、この手順で入力したメンバーに変更されます。このため、新しく追加するメンバーだけを指定するのではなく、sysadmin グループのすべてのメンバーを指定してください。
AdminSuite を使用するすべてのユーザーを、NIS+ admin グループに追加します。
# nisgrpadm -a admin username |
NIS_GROUP 環境変数が admin に設定されていることを確認してください。
admintool を使用するすべてのシステムで、以下のコマンドを実行します。
# keylogin -r |
すべてのシステムをリブートし、nscd をフラッシュし (内部バッファに蓄積されたデーターをファイルに書き込み) ます。
アプリケーションを実行する各システムにログインし、keylogin を実行します (sysadmin グループのメンバーである必要があります)。
keylogin を実行すると安全にログアウトすることができます。明示的に keylogout を実行したりシステムをリブートするまで、鍵は keyserv デーモン中に保存されます。