Sun Enterprise Authentication Mechanism 1.0.1 ガイド

SEAM コマンド

Kerberos V5 はシングルサインオンシステムです。つまり、Kerberos は既存の各ネットワークプログラムに組み込まれているため、ユーザーはパスワードを 1 回入力するだけで、Kerberos V5 プログラムがユーザーの代わりに認証 (および、オプションで暗号化) を行います。Kerberos V5 アプリケーションは、既存の UNIX ネットワークプログラムに Kerberos 機能を追加したものです。

たとえば、Kerberos 化されたプログラムを使用してリモートホストと接続すると、プログラム、KDC、およびリモートホストは迅速にネゴシエーションを実行します。これらのネゴシエーションが完了すると、ユーザーのプログラムがユーザーの代わりにユーザーの識別情報をリモートホストに立証して、リモートホストがユーザーにアクセスを許可します。

Kerberos 化されたコマンドは最初に Kerberos で認証しようとします。Kerberos 認証が失敗すると、コマンドに指定したオプションによって、エラーが発生するか、UNIX 認証が行われます。詳細は、Kerberos コマンドのマニュアルページにある「Kerberos Security」節を参照してください。

Kerberos 化されたコマンドの概要

Kerberos 化されたネットワークサービスとは、インターネット上の別のマシンに接続するプログラムのことです。これらのプログラムは /usr/krb5/bin にあります。このパスが Kerberos 化されていないバージョンよりも先に来るように PATH 変数を設定してください。次に、Kerberos 化されたコマンドを示します。

これらのプログラムは、対応する Kerberos 化されていないコマンドの元の機能をすべて持っています。また、認証 (および、オプションで暗号化) をリモートホストとネゴシエーションするための Kerberos チケットに使用する機能も持っています。ほとんどの場合、Kerberos がユーザーの代わりにユーザーの識別情報を立証するため、Kerberos 化されたコマンドを実行するときにパスワードを入力する必要はありません。

Kerberos V5 ネットワークプログラムを使用すると、次のようなオプションも実行できます。


注 -

この節では、ユーザーがすでにこれらのコマンドの Kerberos 化されていないバージョンに関する知識があると仮定し、Kerberos V5 パッケージで追加された Kerberos 機能だけに注目します。ここで説明されているコマンドについての詳細は、それぞれのマニュアルページを参照してください。


次に、ftprcprloginrsh、および telnet に追加された Kerberos オプションを示します。

-a

ユーザーの既存のチケットを使用して自動ログインしようとする。getlogin() で戻されるユーザー名が現在のユーザー ID と同じ場合に限り、このユーザー名を使用する。詳細は、telnet(1) のマニュアルページを参照

-f

再転送可能でないチケットをリモートホストに転送する。このオプションは -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 (上記を参照) と似ているが、-f よりもさらに別の (4 番目または 5 番目の) マシンにアクセスできる。したがって、-F オプションは -f オプションのスーパーセットと考えられる。-F オプションは -f オプションと相互に排他的である。つまり、同じコマンド内では一緒に使用できない

チケットの転送についての詳細は、「-f と -F によるチケットの転送」を参照

-k realm

krb5.conf ファイルでレルム自身を決定するのではなく、指定した realm 内にあるリモートホストのチケットを要求する。

-K

ユーザーのチケットをリモートホストに認証させるが、自動的にはログインしない

-m mechanism

使用する GSS-API セキュリティ機構を指定する (/etc/gss/mech ファイルに列挙されている)。デフォルトは kerberos_v5

-x

このセッションを暗号化する

-X auth_type

認証の auth_type タイプを無効にする

表 6-1 に、Kerberos 化された各コマンドが持つオプションを示します。X は、そのコマンドがそのオプションを持つことを示します。

表 6-1 Kネットワークコマンドの Kerberos オプション

 

ftp

rcp

rlogin

rsh

telnet

-a

 

 

 

 

-f

 

-F

 

 

-k

 

-K

 

 

 

 

-m

 

 

 

 

-x

 

-X

 

 

 

 

さらに、ftp はセッションに保護レベルをプロンプトで設定できます。

clear

保護レベルを「clear」(保護なし) に設定 (デフォルト)

private

保護レベルを「private」に設定する。データ転送の機密性と完全性は暗号化によって保護される。しかし、プライバシサービスは一部の SEAM ユーザーしか利用できない

safe

保護レベルを「safe」に設定する。データ転送の完全性は暗号化チェックサムによって保護される

また、ftp のプロンプトでも保護レベルを設定できます。つまり、protect と入力して、その後に上記の保護レベル (clearprivate、または safe) を入力します。

-f と -F によるチケットの転送

「Kerberos 化されたコマンドの概要」で説明されているとおり、一部のコマンドでは -f または -F のオプションでチケットを転送できます。チケットを転送すると、ネットワークトランザクションを「連鎖」させることができます。たとえば、あるマシンに rlogin を実行して、次に、そのマシンからさらに別のマシンに rlogin を実行できます。-f オプションではチケットを転送できますが、-F オプションでは転送したチケットをさらに転送 (再転送) できます。

図 6-2 では、ユーザー davidkinit で転送可能でないチケット許可チケット (TGT) を取得しています (-f オプションを指定していないため、このチケットは転送可能ではありません)。1 の場合では、david はマシン B に rlogin を実行できますが、それ以上のマシンには rlogin できません。2 の場合では、転送可能でないチケットを転送しようとしているため、rlogin -f コマンドは失敗します。

図 6-2 転送可能でないチケットの使い方

Graphic

実際には、SEAM 構成ファイルはデフォルトで、kinit が転送可能チケットを取得するように設定されています。しかし、この構成は変更できます。ここでは説明のため、kinit -f で呼び出さなければ、kinit が転送可能 TGT を取得できないと仮定しています。またここでは、kinit には -F オプションはありません。したがって、TGT は転送可能であるか、あるいは転送可能でないかのいずれかです。

図 6-3 では、davidkinit -f で転送可能 TGT を取得しています。3 の場合では、davidrlogin で転送可能チケットを使用しているため、マシン C にログインできます。4 の場合では、チケットは再転送可能ではないため、2 番目の rlogin は失敗します。5 の場合では、-f オプションではなく -F オプションを使用しているため、2 番目の rlogin が成功し、チケットはマシン D に再転送できます。

図 6-3 転送可能チケットの使い方

Graphic

例 - Kerberos 化されたコマンドを使用する

次の例では、Kerberos 化されたコマンドのオプションの動作の概念を示します。

例 - telnet-a-f、および -x オプションを使用する

次の例では、ユーザー david はすでにログインしていて、マシン denver.acme.comtelnet を実行しようとしています。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 を使用して daviddenver.acme.com に認証させ、自動的に daviddavid 自身としてログインを許可していることに注目してください。david は暗号化されたセッション (すでに david を認証しているチケットのコピー) を持っているため、パスワードを入力する必要はありません。Kerberos 化されていないバージョンの telnet を使用した場合はパスワードを入力しなければならず、さらに、そのパスワードは暗号化されずにネットワークに送信されます。この時点で第三者がネットワークを監視していれば、david のパスワードが知られてしまいます。

Kerberos チケットを転送する場合、Kerberos 化されたコマンド (ここで説明する telnet などのコマンド) は終了時にチケットを破棄します。

例 - -F オプションを指定して rlogin を実行する

次の例では、ユーザー 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 
%

例 - ftp で保護レベルを設定する

次の例では、joeftp を使用して、マシン 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 に設定しています。