この章は、すでに SEAM がインストールされているシステムを使用するユーザーを対象としています。この章では、SEAM が提供する「Kerberos 化」されたコマンド (ftp、rcp、rlogin、rsh、および telnet) を使用する方法を説明します。この章を読む前に、(Kerberos 化されていないバージョンの) これらのコマンドについて知っておく必要があります。Kerberos 化されたバージョンと Kerberos 化されていないバージョンは本質的に同じです。ほとんどの場合、Kerberos 化されたコマンドを使用するときは、Kerberos 化されていることを意識する必要はありません。これらのバージョン間の違いは、Kerberos を利用する機能を使用するかどうかです (たとえば、rlogin を実行するときにチケットを転送するなど)。
この章は一般のユーザーを対象としているため、チケットに関する情報 (チケットを取得、表示、および破棄する方法) も説明します。また、Kerberos パスワードを選択または変更する方法も説明します。
SEAM の概要については、第 1 章「SEAM の概要」を参照してください。
次に、この章で取り上げる内容のリストを示します。
この節では、チケットを取得、表示、および破棄する方法を説明します。チケットの概要については、「SEAM はどのように動作するのか」を参照してください。
SEAM をインストールすると Kerberos は login コマンドに組み込まれるため、ユーザーはログイン時にチケットを自動的に取得します。Kerberos 化されたコマンド rsh、rcp、telnet、および rlogin は、通常チケットを他のマシンに転送するように設定されているため、ユーザーはこれらのマシンへのアクセスを取得するためのチケットを明示的に要求する必要はありません。この動作はデフォルトです。チケットを自動的に転送しないように SEAM を構成することもできます。チケットの転送についての詳細は、「Kerberos 化されたコマンドの概要」と 「-f と -F によるチケットの転送」を参照してください。
ほとんどの Kerberos 化されたコマンドは、終了時にチケットを自動的に破棄します。しかし、使用後に Kerberos チケットを確実に破棄したい場合は、kdestroy で破棄することができます。kdestroy についての詳細は、「チケットを破棄するには」を参照してください。 チケットの有効期間については、「チケットの有効期間」を参照してください。
通常、チケットはユーザーのログイン時に自動的に作成されるため、チケットを取得するために特に何かをする必要はありません。しかし、次のような場合では、チケットを作成する必要があります。
チケットの有効期限が切れたとき
デフォルト以外のプリンシパルを使用する必要があるとき (たとえば、rlogin -l で他のユーザーとしてマシンにログインする場合など)
チケットを作成するには、kinit コマンドを使用します。
% /usr/bin/kinit |
kinit を使用するにはユーザーのパスワードが必要です。kinit コマンドの完全な構文については、kinit(1) のマニュアルページを参照してください。
次の例では、ユーザー jennifer が自分のシステム上でチケットを作成しています。
% kinit Password for jennifer@ENG.ACME.COM: <パスワードを入力する> |
次の例では、ユーザー david が -l オプションで 3 時間だけ有効なチケットを作成しています。
% kinit -l 3h david@ACME.ORG Password for david@ACME.ORG: <パスワードを入力する> |
次の例では、-f オプションを指定して david が自分用の転送可能チケットを作成しています。転送可能チケットを使用すると、たとえば、david は 2 番目のシステムにログインして、3 番目のシステムに対し telnet を実行できます。
% kinit -f david@ACME.ORG Password for david@ACME.ORG: <パスワードを入力する> |
転送可能チケットの動作についての詳細は、「-f と -F によるチケットの転送」と 「チケットの種類」を参照してください。
すべてのチケットが同じであるというわけではありません。たとえば、あるチケットは転送可能で、別のチケットは遅延可能で、また別のチケットは両方とも可能であるような場合もあります。自分が持っているチケットやその属性を調べるには、klist コマンドに -f オプションを指定して実行します。
% /usr/bin/klist -f |
次の記号は、klist で表示される、各チケットに関連する属性を示しています。
F |
転送可能 |
f |
転送 |
P |
代理可能 |
p |
代理 (プロクシ) |
D |
遅延可能 |
d |
遅延 |
R |
更新可能 |
I |
初期 |
i |
無効 |
チケットのさまざまな属性については、「チケットの種類」を参照してください。
次の例は、ユーザー jennifer の初期チケットが転送可能であり (F)、遅延されたものだが (d)、まだ有効でない (i) ことを示しています。
% /usr/bin/klist -f Ticket cache: /tmp/krb5cc_74287 Default principal: jenniferm@ENG.ACME.COM Valid starting Expires Service principal 09 Mar 99 15:09:51 09 Mar 99 21:09:51 nfs/ACME.SUN.COM@ACME.SUN.COM renew until 10 Mar 99 15:12:51, Flags: Fdi |
次の例は、ユーザー david の 2 つのチケットが別のホストから自分のホストに転送された (f) こと、さらに転送可能である (F) ことを示してます。
% klist -f Ticket cache: /tmp/krb5cc_74287 Default principal: david@ACME.SUN.COM Valid starting Expires Service principal 07 Mar 99 06:09:51 09 Mar 99 23:33:51 host/ACME.COM@ACME.COM renew until 10 Mar 99 17:09:51, Flags: fF Valid starting Expires Service principal 08 Mar 99 08:09:51 09 Mar 99 12:54:51 nfs/ACME.COM@ACME.COM renew until 10 Mar 99 15:22:51, Flags: fF |
チケットは通常、そのチケットを作成したコマンドが終了すると自動的に破棄されます。しかし、チケットを使用し終えたときに確実に破棄したい場合は、明示的に Kerberos チケットを削除することもできます。チケットは無断で使用され、そのチケットは有効期限がくるまで使用される可能性があります (ただし、そのチケットを使用するには、暗号を復号化しなければなりません)。
チケットを削除するには、kdestroy コマンドを使用します。
% /usr/bin/kdestroy |
kdestroy は、ユーザー本人のすべてのチケットを破棄します。特定のチケットだけを選択して破棄することはできません。
システムから離れるときに自分のアクセス権が使用される心配がある場合は、kdestroy を使用するか、スクリーンセーバーで画面をロックします。
必ずチケットが破棄されるようにするには、ホームディレクトリにある .logout ファイルに kdestroy コマンドを追加します。
PAM モジュールが構成されている場合 (デフォルトであり、通常デフォルトのまま使用)、チケットはログアウト時に自動的に破棄されます。したがって、kdestroy の呼び出しを .logout ファイルに追加する必要はありません。しかし、PAM モジュールが構成されていない場合、あるいは、PAM モジュールが構成されているかどうかが分からない場合は、.login ファイルに kdestroy を追加して、システム終了時に必ずチケットが破棄されるようにしてください。
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 キーを除く)。パスワードは、覚えやすく、他人には推測できないパスワードにする必要があります。次のようなパスワードは使用すべきではありません。
辞書の中にある単語
一般的な名前
有名な人またはキャラクタの名前
本人の名前またはユーザー名 (順番を変えたものも不可。たとえば、逆に並べたものや 2 回繰り返したものなど)
配偶者、子供、またはペットの名前
本人または身内の誕生日
社会保険番号、運転免許証番号、パスポート番号などの ID 番号
このマニュアルなどで使用したサンプルのパスワード
パスワードには少なくとも 8 文字を使用してください。さらに、大文字、小文字、数字、句読文字などを混在させます。次に、パスワードとして適している例を示します。ただし、このマニュアルで使用するものをそのまま使用しないてください。
頭字語 (「I2LMHinSF (I too left my heart in San Francisco)」など)
発音しやすいが意味のない単語 (「WumpaBun」や「WangDangdoodle!」など)
わざとスペルを間違えた熟語 (「6o'cluck」や「RrriotGrrrlsRrrule!」など)
これらの例を使用しないでください。マニュアルで使用しているパスワードは、最初にパスワードとして試されます。
Kerberos パスワードを変更する方法は 2 つあります。
通常の UNIX の passwd コマンドを使用する方法
SEAM をインストールすると、Solaris の passwd コマンドは自動的に新しい Kerberos パスワードも入力するようにメッセージが表示されます。
kpasswd ではなく passwd を使用する利点は、両方 (UNIX と Kerberos) のパスワードを同時に設定できることです。しかし、passwd を使用しても、両方のパスワードを変更する必要はありません。ほとんどの場合、UNIX パスワードだけを変更して、Kerberos パスワードはそのままにしたり、あるいはその逆にします。
passwd の動作は、PAM モジュールの構成によって異なります。構成によっては、両方のパスワードを変更するように要求されることもあります。サイトによっては、UNIX パスワードを変更しなければならないことも、Kerberos パスワードを変更しなければならないこともあります。
kpasswd コマンドを使用する方法
kpasswd は passwd と非常に似ています。両者の違いとして、kpasswd は Kerberos パスワードだけを変更します。UNIX パスワードを変更する場合は、passwd を使用します。
もう 1 つの違いとして、kpasswd は UNIX ユーザーには無効な Kerberos プリンシパルのパスワードを変更できます。たとえば、david/admin は Kerberos プリンシパルですが、実際の UNIX ユーザーではない場合、passwd ではなく kpasswd を使用します。
パスワードを変更した後、システム全体に変化を伝達するには多少の時間がかかります (特に、大きなネットワークでは)。システムの構成によって、数分から数時間にまで及ぶこともあります。パスワードの変更後、すぐに新しい 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. |
次の例では、david が passwd で自分の 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 を使用する必要があります。
次の例では、david が kpasswd で自分の 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 |
このファイルによって、ユーザー jennifer と joe は david の識別情報を利用できます。ただし、彼らがすでに Kerberos チケットを各自のレルムに持っていることを条件とします。たとえば、jennifer は、david のパスワードを指定せずに、david のマシン (boston) に david として rlogin を実行できます。
david のホームディレクトリが別の (3 番目の) マシンから Kerberos V5 プロトコルで NFS マウントされている場合、jennifer は david のホームディレクトリにアクセスするためには転送可能チケットが必要です。転送可能チケットの使い方の例については、「チケットを作成するには」を参照してください。
ネットワークを通じて他のマシンにログインする場合、(ログインしたい) 各マシン上の .k5login ファイルに自分独自の Kerberos プリンシパルを入れておくこともできます。
.k5login ファイルを使用する方法は、パスワードを公表するよりもセキュリティ上安全です。
アクセスを禁止するには、.k5login ファイルからプリンシパルを削除するだけです。
ユーザー本人のホームディレクトリにある .k5login ファイルに指定された他のユーザーは、そのマシン (あるいは、NFS などで .k5login ファイルを共有している場合は、複数のマシン) 上でユーザー本人のアカウントへの完全なアクセス権を許可されますが、ネットワーク特権は継承しません。つまり、Kerberos 化されたサービスは、ユーザー本人ではなく、.k5login ファイルに指定された他のユーザーの識別情報によりアクセス権を認証します。したがって、jennifer は joe のマシンにログインしてさまざまな作業を行うことができますが、Kerberos 化されたプログラム (ftp や rlogin など) を使用するときは、jennifer 自身として行います。
Kerberos はチケットを取得する人のログを記録します。したがって、システム管理者は、必要であれば、ユーザー本人のユーザー識別情報を特定の時間に使用できる他のユーザーを調べることができます。
.k5login ファイルの最も一般的な使い方では、.k5login ファイルを root のホームディレクトリに置くことによって、そのマシンへの root アクセス権を .k5login ファイルに指定された Kerberos プリンシパルに許可します。これによって、システム管理者は root のパスワードを指定しなくても (すなわち、ネットワークに root パスワードを入力しなくても)、ローカルで root になる (つまり、リモートから root としてログインする) ことができます。
jennifer がマシン boston.acme.com に root としてログインすると仮定します。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]% |
Kerberos V5 はシングルサインオンシステムです。つまり、Kerberos は既存の各ネットワークプログラムに組み込まれているため、ユーザーはパスワードを 1 回入力するだけで、Kerberos V5 プログラムがユーザーの代わりに認証 (および、オプションで暗号化) を行います。Kerberos V5 アプリケーションは、既存の UNIX ネットワークプログラムに Kerberos 機能を追加したものです。
たとえば、Kerberos 化されたプログラムを使用してリモートホストと接続すると、プログラム、KDC、およびリモートホストは迅速にネゴシエーションを実行します。これらのネゴシエーションが完了すると、ユーザーのプログラムがユーザーの代わりにユーザーの識別情報をリモートホストに立証して、リモートホストがユーザーにアクセスを許可します。
Kerberos 化されたコマンドは最初に Kerberos で認証しようとします。Kerberos 認証が失敗すると、コマンドに指定したオプションによって、エラーが発生するか、UNIX 認証が行われます。詳細は、Kerberos コマンドのマニュアルページにある「Kerberos Security」節を参照してください。
Kerberos 化されたネットワークサービスとは、インターネット上の別のマシンに接続するプログラムのことです。これらのプログラムは /usr/krb5/bin にあります。このパスが Kerberos 化されていないバージョンよりも先に来るように PATH 変数を設定してください。次に、Kerberos 化されたコマンドを示します。
ftp
rcp
rlogin
rsh
telnet
これらのプログラムは、対応する Kerberos 化されていないコマンドの元の機能をすべて持っています。また、認証 (および、オプションで暗号化) をリモートホストとネゴシエーションするための Kerberos チケットに使用する機能も持っています。ほとんどの場合、Kerberos がユーザーの代わりにユーザーの識別情報を立証するため、Kerberos 化されたコマンドを実行するときにパスワードを入力する必要はありません。
Kerberos V5 ネットワークプログラムを使用すると、次のようなオプションも実行できます。
別のホストへのチケットの転送 (初めに転送可能チケットを取得していた場合)
ユーザーとリモートホスト間で転送されるデータの暗号化
この節では、ユーザーがすでにこれらのコマンドの Kerberos 化されていないバージョンに関する知識があると仮定し、Kerberos V5 パッケージで追加された Kerberos 機能だけに注目します。ここで説明されているコマンドについての詳細は、それぞれのマニュアルページを参照してください。
次に、ftp、rcp、rlogin、rsh、および telnet に追加された Kerberos オプションを示します。
ユーザーの既存のチケットを使用して自動ログインしようとする。getlogin() で戻されるユーザー名が現在のユーザー ID と同じ場合に限り、このユーザー名を使用する。詳細は、telnet(1) のマニュアルページを参照
再転送可能でないチケットをリモートホストに転送する。このオプションは -F (下記を参照) と相互に排他的である。つまり、同じコマンド内では一緒に使用できない
チケットを転送したい場合とは、3 番目のホスト上にある他の Kerberos ベースのサービスにユーザー自身を認証させる必要がある場合、たとえば、別のマシンに rlogin を実行して、そのマシンからさらに別の (3 番目の) マシンに rlogin を実行する場合など
リモートホスト上にあるユーザーのホームディレクトリが Kerberos V5 で NFS マウントされている場合、明示的に転送可能チケットを使用しなければならない。そうしなければ、ユーザーのホームディレクトリにアクセスできない。たとえば、最初に System 1 にログインし、次に System 1 からユーザーのホームマシン System 2 に rlogin を実行すると仮定する。このとき、System 2 は System 3 上にあるユーザーのホームディレクトリをマウントしていると仮定する。この場合、rlogin に -f または -F のオプションを使用しなければ、System 3 にチケットを転送できないため、ユーザーのホームディレクトリにアクセスできない
デフォルトでは、kinit は転送可能チケット許可チケット (TGT) を取得する。しかし、この設定は SEAM 構成で変更できる
チケットの転送についての詳細は、「-f と -F によるチケットの転送」を参照
ユーザーのチケット許可チケットの再転送可能なコピーをリモートシステムに転送する。-f (上記を参照) と似ているが、-f よりもさらに別の (4 番目または 5 番目の) マシンにアクセスできる。したがって、-F オプションは -f オプションのスーパーセットと考えられる。-F オプションは -f オプションと相互に排他的である。つまり、同じコマンド内では一緒に使用できない
チケットの転送についての詳細は、「-f と -F によるチケットの転送」を参照
krb5.conf ファイルでレルム自身を決定するのではなく、指定した realm 内にあるリモートホストのチケットを要求する。
ユーザーのチケットをリモートホストに認証させるが、自動的にはログインしない
使用する GSS-API セキュリティ機構を指定する (/etc/gss/mech ファイルに列挙されている)。デフォルトは kerberos_v5
このセッションを暗号化する
認証の auth_type タイプを無効にする
表 6-1 に、Kerberos 化された各コマンドが持つオプションを示します。X は、そのコマンドがそのオプションを持つことを示します。
表 6-1 Kネットワークコマンドの Kerberos オプション
|
ftp |
rcp |
rlogin |
rsh |
telnet |
---|---|---|---|---|---|
-a |
|
|
|
|
X |
-f |
X |
|
X |
X |
X |
-F |
|
|
X |
X |
X |
-k |
|
X |
X |
X |
X |
-K |
|
|
|
|
X |
-m |
X |
|
|
|
|
-x |
|
X |
X |
X |
X |
-X |
|
|
|
|
X |
さらに、ftp はセッションに保護レベルをプロンプトで設定できます。
保護レベルを「clear」(保護なし) に設定 (デフォルト)
保護レベルを「private」に設定する。データ転送の機密性と完全性は暗号化によって保護される。しかし、プライバシサービスは一部の SEAM ユーザーしか利用できない
保護レベルを「safe」に設定する。データ転送の完全性は暗号化チェックサムによって保護される
また、ftp のプロンプトでも保護レベルを設定できます。つまり、protect と入力して、その後に上記の保護レベル (clear、private、または safe) を入力します。
「Kerberos 化されたコマンドの概要」で説明されているとおり、一部のコマンドでは -f または -F のオプションでチケットを転送できます。チケットを転送すると、ネットワークトランザクションを「連鎖」させることができます。たとえば、あるマシンに rlogin を実行して、次に、そのマシンからさらに別のマシンに rlogin を実行できます。-f オプションではチケットを転送できますが、-F オプションでは転送したチケットをさらに転送 (再転送) できます。
図 6-2 では、ユーザー david が kinit で転送可能でないチケット許可チケット (TGT) を取得しています (-f オプションを指定していないため、このチケットは転送可能ではありません)。1 の場合では、david はマシン B に rlogin を実行できますが、それ以上のマシンには rlogin できません。2 の場合では、転送可能でないチケットを転送しようとしているため、rlogin -f コマンドは失敗します。
実際には、SEAM 構成ファイルはデフォルトで、kinit が転送可能チケットを取得するように設定されています。しかし、この構成は変更できます。ここでは説明のため、kinit -f で呼び出さなければ、kinit が転送可能 TGT を取得できないと仮定しています。またここでは、kinit には -F オプションはありません。したがって、TGT は転送可能であるか、あるいは転送可能でないかのいずれかです。
図 6-3 では、david が kinit -f で転送可能 TGT を取得しています。3 の場合では、david は rlogin で転送可能チケットを使用しているため、マシン C にログインできます。4 の場合では、チケットは再転送可能ではないため、2 番目の rlogin は失敗します。5 の場合では、-f オプションではなく -F オプションを使用しているため、2 番目の rlogin が成功し、チケットはマシン D に再転送できます。
次の例では、Kerberos 化されたコマンドのオプションの動作の概念を示します。
次の例では、ユーザー david はすでにログインしていて、マシン denver.acme.com に telnet を実行しようとしています。david は -f オプションで既存のチケットを転送し、-x オプションでセッションを暗号化し、さらに -a オプションで自動的にログインしようとしています。3 番目のホストのサービスを使用する予定はないため、david は -F ではなく -f を使用しています。
% telnet -a -f -x denver.acme.com Trying 128.0.0.5... Connected to denver.acme.com. Escape character is '^]'. [ Kerberos V5 accepts you as "david@eng.acme.com" ] [ Kerberos V5 accepted forwarded credentials ] SunOS 5.7: Tue May 21 00:31:42 EDT 1998 Welcome to SunOS % |
david のマシンが Kerberos を使用して david を denver.acme.com に認証させ、自動的に david を david 自身としてログインを許可していることに注目してください。david は暗号化されたセッション (すでに david を認証しているチケットのコピー) を持っているため、パスワードを入力する必要はありません。Kerberos 化されていないバージョンの telnet を使用した場合はパスワードを入力しなければならず、さらに、そのパスワードは暗号化されずにネットワークに送信されます。この時点で第三者がネットワークを監視していれば、david のパスワードが知られてしまいます。
Kerberos チケットを転送する場合、Kerberos 化されたコマンド (ここで説明する telnet などのコマンド) は終了時にチケットを破棄します。
次の例では、ユーザー jennifer が自分のマシン boston.acme.com にログインしようとしています。jennifer は、-F オプションで既存のチケットを転送し、-x でセッションを暗号化しています。jennifer が -f ではなく -F を使用した理由は、boston にログインした後、再転送可能なチケットを必要とするネットワークトランザクションを実行する予定があるためです。また、jennifer は既存のチケットを転送しているため、パスワードを入力する必要はありません。
% rlogin boston.acme.com -F -x This rlogin session is using DES encryption for all transmissions. Last login Mon May 19 15:19:49 from daffodil SunOS Release 5.7 (GENERIC) #2 Tue Nov 14 18:09:3 EST 1998 % |
次の例では、joe が ftp を使用して、マシン denver.acme.com 上にあるディレクトリ ‾joe/MAIL から自分のメールを取得しようとしています。さらに、このセッションを暗号化しています。実際の操作は次のようになります。
% ftp -f denver.acme.com Connected to denver.acme.com 220 denver.acme.org FTP server (Version 6.0) ready. 334 Using authentication type GSSAPI; ADAT must follow GSSAPI accepted as authentication type GSSAPI authentication succeeded Name (daffodil.acme.org:joe) 232 GSSAPI user joe@MELPOMENE.ACME.COM is authorized as joe 230 User joe logged in. Remote system type is UNIX. Using BINARY mode to transfer files. ftp> protect private 200 Protection level set to Private ftp> cd ‾joe/MAIL 250 CWD command successful. ftp> get RMAIL 227 Entering Passive Mode (128,0,0,5,16,49) 150 Opening BINARY mode data connection for RMAIL (158336 bytes). 226 Transfer complete. 158336 bytes received in 1.9 seconds (1.4e+02 Kbytes/s) ftp> quit % |
セッションを暗号化するため、joe は保護レベルを private に設定しています。