Sun Enterprise Authentication Mechanism 1.0.1 ガイド

パスワードの管理

SEAM をインストールすると、ユーザーは 2 つのパスワードを持ちます。通常の Solaris パスワードと Kerberos パスワードです。この 2 つのパスワードは同じにすることも別にすることもできます。

Kerberos 化されていないコマンド (login など) は通常、PAM を通じて Kerberos と UNIX の両方で認証されるように設定されています。両方のパスワードが異なる場合、適切な認証でログインするには、両方のパスワードを入力する必要があります。しかし、両方のパスワードが同じ場合、最初に UNIX 用に入力したパスワードが Kerberos でも受け入れられます。

残念ながら、両方のパスワードを同じにした場合、セキュリティが保護されない可能性があります。つまり、誰かが Kerberos パスワードを知った場合、その UNIX パスワードはもはやパスワードとしての機能を果たせなくなります。しかし、UNIX と Kerberos で同じパスワードを使用しても、Kerberos 環境のパスワードはネットワークに送信されないため、Kerberos を使用しないサイトよりはまだセキュリティが保護されます。通常、ユーザーが選択できるようになっています。

Kerberos パスワードは、Kerberos がユーザーの識別情報を確認する唯一の方法です。ユーザーの Kerberos パスワードを他のユーザーが知った場合、Kerberos のセキュリティは保護されなくなり、そのユーザーになりすますことができます。そして、そのユーザーとして電子メールを送信したり、ファイルの読み取り、編集、削除をしたり、他のホストにログインしたりできます。そして、誰もそれを見破ることはできません。このため、適切な予想されにくいパスワードを選択して、それを秘密にしておくことが大切です。自分のアカウントへのアクセス権を他のユーザーに許可する必要がある場合、Kerberos を使用すれば、パスワードを教える必要はありません (「自分のアカウントへのアクセス権を許可する」を参照)。パスワードはシステム管理者にでも誰にも教えるべきではありません。さらに、パスワードは頻繁に変更する必要があります。特に、誰かに知られたと思われる場合にはすぐに変更してください。

推奨されるパスワード

パスワードには、入力できる任意の文字を使用できます (Control キーと Return キーを除く)。パスワードは、覚えやすく、他人には推測できないパスワードにする必要があります。次のようなパスワードは使用すべきではありません。

パスワードには少なくとも 8 文字を使用してください。さらに、大文字、小文字、数字、句読文字などを混在させます。次に、パスワードとして適している例を示します。ただし、このマニュアルで使用するものをそのまま使用しないてください。


注意 - 注意 -

これらの例を使用しないでください。マニュアルで使用しているパスワードは、最初にパスワードとして試されます。


パスワードの変更

Kerberos パスワードを変更する方法は 2 つあります。

パスワードを変更した後、システム全体に変化を伝達するには多少の時間がかかります (特に、大きなネットワークでは)。システムの構成によって、数分から数時間にまで及ぶこともあります。パスワードの変更後、すぐに新しい Kerberos チケットを取得する必要がある場合は、まず、新しいパスワードを試してみます。新しいパスワードが動作しない場合は、古いパスワードでもう一度試してみます。

Kerberos V5 を使用すると、システム管理者はユーザーごとに許可できるパスワードについての基準を設定できます。このような基準を定義するには、ユーザーごとにポリシーを設定します。あるいは、デフォルトのポリシーを使用します。ポリシーについての詳細は、「ポリシーの管理」を参照してください。たとえば、jennifer のポリシー (jenpol と呼ぶ) では、パスワードが少なくとも 8 文字あり、少なくとも 2 種類の文字を混在させることが必要であるとします。したがって、「sloth」というパスワードを使用しようとすると、kpasswd はこれを拒否します。


% kpasswd
kpasswd: Changing password for jennifer@ENG.ACME.COM.
Old password:   <jennifer は自分の既存のパスワードを入力する>
kpasswd: jennifer@ENG.ACME.COM's password is controlled by
the policy jenpol
which requires a minimum of 8 characters from at least 2 classes 
(the five classes are lowercase, uppercase, numbers, punctuation,
and all other characters).
New password: <jennifer は「sloth」と入力する>
New password (again):  <jennifer はもう 1 度「sloth」と入力する>
kpasswd: New password is too short.
Please choose a password which is at least 4 characters long. 

次に、jennifer は「slothrop49」というパスワードを使用します。「slothrop49」は 8 文字以上あり、2 種類の文字 (数字と小文字) を使用しているため、基準に適合します。


% kpasswd
kpasswd: Changing password for jennifer@ENG.ACME.COM.
Old password:  <jennifer は自分の既存のパスワードを入力する>
kpasswd: jennifer@ENG.ACME.COM's password is controlled by
the policy jenpol
which requires a minimum of 8 characters from at least 2 classes 
(the five classes are lowercase, uppercase, numbers, punctuation,
and all other characters).
New password:  <jennifer は「slothrop49」と入力する>
New password (again):  <jennifer はもう一度「slothrop49」と入力する>
Kerberos password changed.

例 - パスワードを変更する

次の例では、davidpasswd で自分の UNIX と Kerberos の両方のパスワードを変更しています。


% passwd
	passwd:  Changing password for david
	Enter login (NIS+) password:         <現在の UNIX パスワードを入力する>
	New password:                        <新しい UNIX パスワードを入力する>
	Re-enter password:                   <新しい UNIX パスワードを確認する>
	Old KRB5 password:                   <現在の Kerberos パスワードを入力する>
	New KRB5 password:                   <新しい Kerberos パスワードを入力する>
	Re-enter new KRB5 password:          <新しい Kerberos パスワードを確認する>
 

上記の例では、passwd が UNIX と Kerberos の両方のパスワードの入力を求めています。しかし、PAM モジュールで try_first_pass が設定されている場合、Kerberos パスワードは自動的に UNIX パスワードと同じに設定されます。これはデフォルトの構成です。このような構成では、david が自分の Kerberos パスワードを別に設定したい場合、次のように kpasswd を使用する必要があります。

次の例では、davidkpasswd で自分の Kerberos パスワードだけを変更しています。


% kpasswd
kpasswd: Changing password for david@ENG.ACME.COM.
Old password:           <現在の Kerberos パスワードを入力する>
New password:           <新しい Kerberos パスワードを入力する>
New password (again):   <新しい Kerberos パスワードを確認する>
Kerberos password changed.
 

次の例では、david が Kerberos プリンシパル david/admin (有効な UNIX ユーザーでない) 用のパスワードを変更しています。これを行うには、kpasswd を使用します。


% kpasswd david/admin
kpasswd:  Changing password for david/admin.
Old password:		   	     <現在の Kerberos パスワードを入力する>
New password:			       <新しい Kerberos パスワードを入力する>
New password (again):	   <新しい Kerberos パスワードを確認する>
Kerberos password changed. 
 

自分のアカウントへのアクセス権を許可する

自分のユーザー名で他のユーザーにログインを許可する必要がある場合、Kerberos を使用すれば、パスワードを教える必要はありません。つまり、.k5login ファイルを自分のホームディレクトリに置きます。.k5login ファイルは、アクセス権を許可するユーザーに対応する 1 つまたは複数の Kerberos プリンシパルのリストです。1 行に 1 つのプリンシパルを指定します。

ユーザー david が次のような .k5login ファイルを自分のホームディレクトリに置いていると仮定します。


jennifer@ENG.ACME.COM
joe@ACME.ORG  

このファイルによって、ユーザー jenniferjoedavid の識別情報を利用できます。ただし、彼らがすでに Kerberos チケットを各自のレルムに持っていることを条件とします。たとえば、jennifer は、david のパスワードを指定せずに、david のマシン (boston) に david として rlogin を実行できます。

図 6-1 .k5login ファイルの使い方

Graphic

david のホームディレクトリが別の (3 番目の) マシンから Kerberos V5 プロトコルで NFS マウントされている場合、jenniferdavid のホームディレクトリにアクセスするためには転送可能チケットが必要です。転送可能チケットの使い方の例については、「チケットを作成するには」を参照してください。

ネットワークを通じて他のマシンにログインする場合、(ログインしたい) 各マシン上の .k5login ファイルに自分独自の Kerberos プリンシパルを入れておくこともできます。

.k5login ファイルを使用する方法は、パスワードを公表するよりもセキュリティ上安全です。

.k5login ファイルの最も一般的な使い方では、.k5login ファイルを root のホームディレクトリに置くことによって、そのマシンへの root アクセス権を .k5login ファイルに指定された Kerberos プリンシパルに許可します。これによって、システム管理者は root のパスワードを指定しなくても (すなわち、ネットワークに root パスワードを入力しなくても)、ローカルで root になる (つまり、リモートから root としてログインする) ことができます。

例 - .k5login ファイルを使用する

jennifer がマシン boston.acme.comroot としてログインすると仮定します。boston.acme.com 上の root のホームディレクトリにある .k5login ファイルには jennifer のエントリがあるため、jennifer はもう一度自分のパスワードを入力する必要がありません。


% rlogin boston.acme.com -l root -x
This rlogin session is using DES encryption for all data transmissions.  
Last login: Thu Jun 20 16:20:50 from daffodil  
SunOS Release 5.7 (GENERIC) #2: Tue Nov 14 18:09:31 EST 1998  
boston[root]%