この章では、ネットワークアプリケーションサーバー、NFS サーバー、および SEAM クライアントの構成手順を説明します。手順の多くは root アクセスを必要とするため、この作業はシステム管理者や上級ユーザーが行ってください。
表 22-1 は、Solaris 8 の SEAM に必要な管理作業を示したものです。これらの手順を行うには、KDC が admin サーバーにインストールされていなければなりません。
表 22-1 SEAM 管理作業マップ
作業 |
説明 |
使用する手順 |
---|---|---|
SEAM クライアントの構成 | SEAM クライアントを手動で構成する手順 | 「SEAM クライアントの構成」 |
NTP のインストール (省略可能) | SEAM が正しく動作するためには、レルムにあるすべてのシステムのクロックが同期していなければならない | 「KDC と SEAM クライアントのクロックの同期化」 |
SEAM NFS サーバーの構成 | Kerberos 認証を必要とするファイルシステムを共有するようにサーバーを設定する手順 | 「SEAM NFS サーバーの構成作業マップ」 |
SEAM クライアントは、SEAM サービスを使用する同じネットワーク上のすべてのホスト (KDC サーバーを除く) です。この節では、SEAM クライアントのインストール手順と、root 認証を使用して NFS ファイルシステムをマウントするための特定の方法を説明します。
SEAM クライアントを構成する手順は 2 つあります。「SEAM クライアントの構成を完成する方法」は、システムのインストール中に部分的に設定された SEAM クライアントを構成する情報です。「SEAM クライアントを構成する方法」は、Solaris 8 リリースのインストールで SEAM の構成を全く行わなかった場合の SEAM クライアントの構成手順です。
次の構成パラメータが使用されます。
レルム名 = ACME.COM
DNS ドメイン名 = acme.com
マスター KDC = kdc1.acme.com
スレーブ KDC = kdc2.acme.com
クライアント = client.acme.com
admin プリンシパル = kws/admin
ユーザープリンシパル = mre
SEAM クライアントを構成するための前提条件
admin サーバーの KDC がすでに構成され、動作していなければなりません。さらに、DNS がインストールされ、/etc/resolv.conf ファイルが正しく構成されている必要があります。
クライアント上でスーパーユーザーになります。
PAM 構成ファイル (pam.conf) を編集します。
最後の 8 行からコメント記号を削除して Kerberos PAM モジュールを有効にします。
client1 # tail -11 /etc/pam.conf # # Support for Kerberos V5 authentication (uncomment to use Kerberos) # rlogin auth optional /usr/lib/security/$ISA/pam_krb5.so.1 try_first_pass login auth optional /usr/lib/security/$ISA/pam_krb5.so.1 try_first_pass dtlogin auth optional /usr/lib/security/$ISA/pam_krb5.so.1 try_first_pass other auth optional /usr/lib/security/$ISA/pam_krb5.so.1 try_first_pass dtlogin account optional /usr/lib/security/$ISA/pam_krb5.so.1 other account optional /usr/lib/security/$ISA/pam_krb5.so.1 other session optional /usr/lib/security/$ISA/pam_krb5.so.1 other password optional /usr/lib/security/$ISA/pam_krb5.so.1 try_first_pass |
NFS セキュリティサービス構成ファイル (nfssec.conf) を編集します。
Kerberos サービスを記述する行からコメント記号を削除します。
client1 # cat /etc/nfssec.conf . . # # Uncomment the following lines to use Kerberos V5 with NFS # krb5 390003 kerberos_v5 default - # RPCSEC_GSS krb5i 390004 kerberos_v5 default integrity # RPCSEC_GSS default 1 - - - # default is AUTH_SYS |
Kerberos 構成ファイル (krb5.conf) を編集します。
デフォルトのファイルを変更する場合は、レルム名とサーバー名を変更する必要があります。
client1 # cat /etc/krb5/krb5.conf [libdefaults] default_realm = ACME.COM [realms] ACME.COM = { kdc = kdc1.acme.com kdc = kdc2.acme.com admin_server = kdc1.acme.com } [domain_realm] .acme.com = ACME.COM |
(省略可能) NTP または別のクロック同期化機構を使用して、マスター KDC のクロックと同期させます。
NTP については、「KDC と SEAM クライアントのクロックの同期化」を参照してください。
新しいプリンシパルを追加します。
KDC とともに提供される管理ツールを使用して、クライアントに対して新しいプリンシパルを追加します。
クライアントから Kerberos チケットの期限切れをユーザーに警告する場合は、/etc/krb5/warn.conf ファイルのエントリを構成します。
詳細は、warn.conf(4) のマニュアルページを参照してください。
クライアントをインストールするときに部分的にインストールされた SEAM クライアントを構成する場合は、「SEAM クライアントを構成する方法」の手順に従ってください。ただし、インストールはすでに開始されているため、pam.conf、nfssec.con、krb5.conf を編集しないでその内容を確認してください。
NFS サービスは UNIX UID を使用してユーザーを識別しますが、プリンシパルを直接使用することはできません。そのため、プリンシパルを UID に対応づけるために、ユーザープリンシパルを UNIX UID に対応させる資格テーブルを作成する必要があります。次の手順は、SEAM NFS サーバーの構成、資格テーブルの作成、NFS マウントするファイルシステムの Kerberos セキュリティモードの開始に必要な作業を中心とします。表 22-2 はこの節で行う作業の説明です。
表 22-2 SEAM NFS サーバーの構成作業マップ
作業 |
説明 |
使用する手順 |
---|---|---|
SEAM NFSサーバーの構成 | Kerberos 認証を必要とするファイルシステムを共有するようにサーバーを設定する手順 | 「SEAM NFS サーバーを構成する方法」 |
資格テーブルのバックエンド機構の変更 | gsscred によって使用されるバックエンド機構を定義する手順 | 「gsscred テーブルのバックエンド機構を変更する方法」 |
資格テーブルの作成 | 資格テーブルを作成する手順 | 「資格テーブルを作成する方法」 |
ユーザープリンシパルを UNIX UID に対応させる資格テーブルを変更する方法 | 資格テーブルの情報を更新する手順 | 「資格テーブルに 1 つのエントリを追加する方法」 |
Kerberos 認証を使用した、ファイルシステムの共有 | セキュリティモードを使用してファイルシステムを共有し、Kerberos 認証を必須にする手順 | 「複数の Kerberos セキュリティモード使用して安全な NFS 環境を設定する方法」 |
この手順を行う場合には、マスター KDC がすでに構成されていなければなりません。この手順のプロセスを完全にテストするには、いくつかのクライアントが必要です。この手順では、次の構成パラメタを使用します。
レルム名 = ACME.COM
DNS ドメイン名 = acme.com
NFS サーバー = denver.acme.com
admin プリンシパル = kws/admin
SEAM NFS サーバーを構成するための前提条件
SEAM クライアントソフトウェアがインストールされていなければなりません。
(省略可能) NTP クライアントまたは別のクロック同期化機構をインストールします。
NTP については、「KDC と SEAM クライアントのクロックの同期化」を参照してください。
新しいプリンシパルを追加します。
KDC とともに提供される管理ツールを使用して、NFS サーバーの新しいプリンシパルを追加します。
gsscred テーブルを作成します。
詳細は、「資格テーブルを作成する方法」を参照してください。
Kerberos セキュリティモードを使用して NFS ファイルシステムを共有します。
詳細は、「複数の Kerberos セキュリティモード使用して安全な NFS 環境を設定する方法」を参照してください。
各クライアントでユーザープリンシパルと root プリンシパルを認証します。
NFS サーバーでスーパーユーザーになります。
/etc/gss/gsscred.conf を編集してこの機構を変更します。
バックエンド機構には、files、xfn_files、xfn_nis、xfn_nisplus、xfn のどれか 1 つを使用できます。個々の機構の利点については、「gsscred テーブルの使用」で説明します。
gsscred 資格テーブルは、SEAM プリンシパルを UID に対応づけるために NFS サーバーによって使用されます。NFS クライアントが Kerberos 認証を使用して NFS サーバーのファイルシステムをマウントするには、このテーブルを作成するか使用可能にしなければなりません。
適切なサーバーでスーパーユーザーになります。
このコマンドをどのサーバーからどの ID を使用して実行するかは、この gsscred テーブルをサポートするバックエンド機構として何が選択されているかによって異なります。xfn_nisplus 以外の機構では、root になる必要があります。
使用するバックエンド機構 |
実行する場所 |
---|---|
files |
NFS サーバーで実行します。 |
xfn |
デフォルトの xfn ファイル設定にしたがってホストを選択します。 |
xfn_files |
NFS サーバーで実行します。 |
xfn_nis |
NIS マスターで実行します。 |
xfn_nisplus |
NIS+ データを変更する権限がある限りどこでも実行できます。 |
(省略可能) /var/fn が存在せず、かつ xfn オプションの 1 つを使用したい場合は、最初の XFN データベースを作成します。
# fnselect files # fncreate -t org -o org// |
gsscred を使用して資格テーブルを作成します。
次のコマンドは、/etc/nsswitch.conf に passwd エントリとともにリストされているすべてのソースから情報を収集します。資格テーブルにローカルのパスワードエントリを入れたくない場合は、files エントリを一時的に削除する必要があることがあります。詳細は、gsscred(1M) のマニュアルページを参照してください。
# gsscred -m kerberos_v5 -a |
この手順を行うには、gsscred テーブルが NFS サーバーにインストールされていなければなりません。
NFS サーバーでスーパーユーザーになります。
gsscred を使用してエントリをテーブルに追加します。
# gsscred -m [mech] -n [name] -u [uid] -a |
mech |
使用するセキュリティ機構 |
name |
KDC に定義されている、ユーザーのプリンシパル名 |
uid |
パスワードデータベースに定義されている、ユーザーの UID |
-a |
UID をプリンシパル名マッピングに追加します |
次の例では、sandy という名前のユーザーエントリを追加し、UID 3736 に対応させます。UID をコマンド行に指定しないと、パスワードファイルのものが使用されます。
# gsscred -m kerberos_v5 -n sandy -u 3736 -a |
NFS サーバーでスーパーユーザーになります。
/etc/dfs/dfstab ファイルを編集して、必要なセキュリティモードを sec= オプションに指定して適切なエントリに追加します。
# share -F nfs -o sec=mode filesystem |
mode |
共有するときに使用するセキュリティモード。複数のセキュリティモードを追加すると、デフォルトとしてリストの最初のモードが autofs によって使用される |
filesystem |
共有するファイルシステムへのパス |
指定されたファイルシステムのファイルにアクセスするすべてのクライアントは、Kerberos 認証が必要です。ファイルのアクセスを完了するには、NFS クライアント上のユーザープリンシパルと root プリンシパルが両方とも認証されなければなりません。
NFS サービスがサーバーで動作しているか確認します。
これが最初の share コマンドまたは最初の一連の share コマンドなら、NFS デーモンが動作していない可能性があります。次のコマンドを実行すると、デーモンが終了し、再起動します。
# /etc/init.d/nfs.server stop # /etc/init.d/nfs.server start |
(省略可能) autofs を使用する場合は、auto_master
データを編集してデフォルト以外のセキュリティモードを選択します。
ファイルシステムのアクセスに autofs を使用しない場合やセキュリティモードとしてデフォルトを使用する場合は、この手順を行う必要はありません。
/home auto_home -nosuid,sec=krbi |
(省略可能) 手動で mount コマンドを実行し、デフォルト以外のモードを使用してファイルシステムにアクセスします。
この代わりに、mount コマンドにセキュリティモードを指定できますが、手順のオートマウンタは利用できません
# mount -F nfs -o sec=krb5p /export/home |
次の例を実行すると、ファイルにアクセスする前に Kerberos 認証が必要になります。
# share -F nfs -o sec=krb5 /export/home |
次の例では、3 つの Kerberos セキュリティモードをすべて選択します。マウント要求でセキュリティモードが指定されていないと、NFS V3 のすべてのクライアントに対しリストの最初のモードが使用されます (この場合は krb5)。さらに、「share コマンドの変更」を参照してください。
# share -F nfs -o sec=krb5:krb5i:krb5p /export/home |
Kerberos 認証システムを利用するホストはすべて、それぞれの内部クロックが、指定された時間の範囲 (「クロックスキュー」) 内で相互に同期していなければなりません。クロックスキューは、もう 1 つの Kerberos セキュリティチェックとして使用されます。参加するホストの同期差がクロックスキューを超えていると、クライアント要求は拒否されます。
アプリケーションサーバーが再実行要求を認識し拒否する目的で、すべての Kerberos プロトコルメッセージをどのくらいの間追跡管理しなければならないかも、クロックスキューで決まります。そのため、クロックスキュー値が長いほど、アプリケーションサーバーはそれだけ多くの情報を収集しなければなりません。
最大クロックスキューのデフォルト値は 300 秒 (5 分) です。この値は、krb5.conf ファイルの libdefaults セクションで変更できます。
セキュリティ上の理由から、クロックスキュー値は 300 秒より大きくしないでください。
KDC と SEAM クライアントの間でクロックの同期を維持することは重要であるため同期の維持に Network Time Protocole (NTP) を使用することをお奨めします。University of Delaware が作成した NTP パブリックドメインソフトウェアが Solaris 2.6 以降の Solaris ソフトウェアに含まれています。
クロックを同期化するもう 1 つの方法では、cron ジョブで rdate コマンドを使用します。この方が NTP を使用するよりも簡単ですが、ここでは NTP を中心に説明します。ネットワークを使用してクロックを同期化する場合は、クロック同期化プロトコル自体も安全でなければなりません。
NTP を使用すると、正確な時間とネットワーククロック同期をネットワーク環境で管理できます。NTP は基本的にはクライアントサーバー実装の状態をとります。1 つのシステムをマスタークロック (NTP サーバー) として選択し、他のすべてのシステムをマスタークロックと同期するクライアントとして設定します (NTP クライアント)。同期化は xntpd デーモンによって行われます。このデーモンは、UNIX システムの時刻をインターネット標準時刻サーバーに合わせて設定および保守します。NTP のクライアントサーバー実装の例を図 22-1 で示します。
KDC と SEAM クライアントでクロックの同期を維持するためには、次の手順が必要です。
ネットワークに NTP サーバーを設定します。(NTP サーバーは、マスター KDC 以外であればどのシステムでもかまいません。) 「NTP サーバーを設定する方法」を参照してください。
ネットワークの KDC と SEAM クライアントを構成するときに、それらを NTP サーバーの NTP クライアントとして設定します。「NTP クライアントを設定する方法」を参照してください。
SEAM のすべてのエラーメッセージが、『Sun Enterprise Authentication Mechanism ガイド』の「SEAM のエラーメッセージと問題の解決」に記載されています。