この章は、SEAM がインストールされているシステムのユーザーを対象としています。この節では、チケットの取得、表示、および破棄について説明します。また、Kerberos パスワードの選択または変更についても説明します。
この章で説明する情報は次のとおりです。
SEAM の概要については、第 6 章「SEAM について」を参照してください。
この節では、チケットの取得、表示、および破棄を行う方法を説明します。チケットの概要については、「SEAM の動作」を参照してください。
SEAM 1.0 または SEAM 1.0.1 がインストールされている場合、Kerberos は login コマンドに組み込まれており、チケットの取得はログイン時に自動的に行われます。
また、ほとんどの Kerberos コマンドは、終了時にチケットを自動的に破棄します。ただし、念のために、コマンドが終了したときに Kerberos チケットを明示的に破棄したい場合は、kdestroy を使用します。kdestroy の詳細は、「チケットを破棄する方法」 を参照してください。
チケットの有効期限については、「チケットの有効期限」を参照してください。
通常は、ログインするとチケットが自動的に作成されるため、チケットを取得するために特別な作業をする必要はありません。ただし、チケットが期限切れになった場合は、チケットを作成する必要があります。
チケットを作成するには、kinit コマンドを使用します。
% /usr/bin/kinit |
kinit からはパスワードの入力を求めるプロンプトが表示されます。kinit コマンドの詳細な構文については、kinit(1) のマニュアルページを参照してください。
この例では、ユーザー jennifer が自分のシステムにチケットを作成します。
% kinit Password for jennifer@ENG.EXAMPLE.COM: <パスワードを入力する> |
次の例では、ユーザー david が -l オプションを使用して 3 時間有効なチケットを作成します。
% kinit -l 3h david@EXAMPLE.ORG Password for david@EXAMPLE.ORG: <パスワードを入力する> |
次の例では、ユーザー david は、 -f を使用して転送可能チケットを作成します。たとえば、この転送可能チケットを使用して、2 つ目のシステムにログインできます。
% kinit -f david@EXAMPLE.ORG Password for david@EXAMPLE.ORG: <パスワードを入力する> |
転送可能チケットをどのように使用するかについては、「チケットの種類」を参照してください。
すべてのチケットが同じ属性を持つわけではありません。チケットの属性には、「転送可能 (Forwardable)」、「遅延 (Postdated)」などがあります。また、1 つのチケットに「転送可能」と「遅延」の両方が指定されていることもあります。現在のチケットが何で、どのような属性を持つかを知るには、klist コマンドで -f オプションを使用します。
% /usr/bin/klist -f |
次の記号はチケットに関連付けられる属性です。klist によって表示されます。
F |
転送可能 (Forwardable) |
f |
転送済み (Forwarded) |
P |
プロキシ可能 (Proxiable) |
p |
プロキシ (Proxy) |
D |
遅延可能 (Postdateable) |
d |
遅延 (Postdated) |
R |
更新可能 (Renewable) |
I |
初期 (Initial) |
i |
無効 (Invalid) |
チケットに指定できる属性については、「チケットの種類」を参照してください。
次の例は、ユーザー jennifer の初期チケットが転送可能 (F) と遅延 (d) のプロパティを持っていて、まだ検証されていないこと (i) を示します。
% /usr/bin/klist -f Ticket cache: /tmp/krb5cc_74287 Default principal: jenniferm@ENG.EXAMPLE.COM Valid starting Expires Service principal 09 Mar 99 15:09:51 09 Mar 99 21:09:51 nfs/EXAMPLE.SUN.COM@EXAMPLE.SUN.COM renew until 10 Mar 99 15:12:51, Flags: Fdi |
次の例は、ユーザー david が別のホストから自分のホストに転送済み (f) チケットを 2 つ持っていることを示します。これらのチケットは転送可能 (F) です。
% klist -f Ticket cache: /tmp/krb5cc_74287 Default principal: david@EXAMPLE.SUN.COM Valid starting Expires Service principal 07 Mar 99 06:09:51 09 Mar 99 23:33:51 host/EXAMPLE.COM@EXAMPLE.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/EXAMPLE.COM@EXAMPLE.COM renew until 10 Mar 99 15:22:51, Flags: fF |
チケットは通常、チケットを作成したコマンドが終了すると自動的に破棄されます。ただし、念のために、コマンドが終了したときに Kerberos チケットを明示的に破棄したい場合があります。チケットは盗まれることもあります。盗まれたチケットが復号化されると、期限切れになるまで使用される可能性があります。
チケットを破棄するには、kdestroy コマンドを使用します。
% /usr/bin/kdestroy |
kdestroy はそのユーザーのすべてのチケットを破棄します。このコマンドを使用して、特定のチケットを選択して破棄することはできません。
システムを離れるときに侵入者が権限を使用する危険がある場合は、kdestroy を使用してチケットを破棄するか、スクリーンセーバーを使って画面をロックする必要があります。
チケットを確実に破棄する 1 つの方法は、ホームディレクトリの .logout ファイルに kdestroy コマンドを追加することです。
通常はデフォルトで PAM モジュールが構成されているため、チケットはログアウト時に自動的に破棄されます。よって、.login ファイルに kdestroy への呼び出しを追加する必要はありません。ただし、PAM モジュールが構成されていない場合や、構成されているかどうかわからない場合は、システムを終了するときにチケットを確実に破棄するために、kdestroy を .login ファイルに追加します。
SEAM をインストールすると、2 つのパスワードを持つことになります。通常の Solaris パスワードと Kerberos パスワードです。これらのパスワードは同じでも、異なっていてもかまいません。
通常、Kerberos 以外のコマンド (login など) は、PAM を使用して Kerberos と UNIX の両方で認証するように設定できます。2 つのパスワードが異なっている場合は、ログインで適切な認証を得るために両方のパスワードを入力する必要があります。2 つのパスワードが同じ場合は、UNIX 用に入力した最初のパスワードが Kerberos で使用されます。
ただし、UNIX と Kerberos に同じパスワードを使用すると、セキュリティを損うおそれがあります。つまり、他人が Kerberos パスワードを入手した場合、UNIX パスワードも安全ではありません。しかし、UNIX と Kerberos に同じパスワードを使用したとしても、Kerberos 環境ではパスワードがネットワークを超えて送信されることはないため、Kerberos 認証のないサイトに比べて安全です。通常、どの方法を選ぶかは、サイトごとの方針に従います。
Kerberos では、Kerberos パスワードだけを使用して、ユーザーの識別を検証します。Kerberos では、パスワードの所有者以外のユーザーに Kerberos パスワードを知られた場合、 セキュリティが保証されなくなります。そのユーザーが所有者になることができるためです。そのユーザーは、パスワードの所有者として電子メールを送信したり、所有者のファイルの読み込み、編集、または削除を行ったり、所有者として別のホストにログインしたりできます。この場合、正しいユーザーを識別することは不可能です。したがって、適切なパスワードを選択し、その秘密を保持することは極めて重要です。パスワードは、システム管理者を含め誰にも教えてはいけません。また、パスワードは頻繁に変更してください。他人に知られた可能性のある場合は特に変更が必要です。
パスワードには、キーボードから入力できるほとんどの文字を使用できます。ただし、Ctrl キーと Return キーは使用できません。良いパスワードとは、覚えやすく、しかも他人が簡単に推定できないパスワードです。悪いパスワードの例を次に示します。
辞書に出てくる言葉
よく見られるありふれた名前
有名な人やキャラクタの名前
ユーザーの氏名またはユーザー名 (たとえば、名前を逆に綴る、2 度繰り返す)
配偶者の名前、子供の名前、ペットの名前
自分の誕生日や親戚の誕生日
社会保険番号、運転免許書番号、パスポート番号、またはこれに類した身分証明書番号
このマニュアルやほかのマニュアルに出てくるサンプルパスワード
良いパスワードとは 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 と Kerbeors 両方のパスワードを同時に設定できることです。ただし、一般的には passwd コマンドで両方のパスワードを同時に変更する必要はありません。UNIX パスワードだけを変更して Kerberos パスワードは変更しなかったり、その逆であっても構いません。
passwd コマンドの動作は、PAM モジュールの構成方法によって異なります。構成によっては、両方のパスワードを変更しなければならない場合があります。あるサイトでは UNIX パスワードの変更が必須であり、別のサイトでは Kerberos パスワードの変更が必須であるという場合があります。
kpasswd パスワードコマンド。kpasswd コマンドは、passwd コマンドと似ています。ただし、kpasswd コマンドでは、Kerberos パスワード以外は変更できません。UNIX パスワードを変更する場合は、passwd コマンドを使用する必要があります。
もう 1 つの違いは、kpasswd コマンドでは、有効な UNIX ユーザーではない Kerberos 主体のパスワードを変更できる点です。たとえば、david/admin は Kerberos 主体ですが、実際の UNIX ユーザーではありません。したがって、この場合は、passwd コマンドの代わりに kpasswd コマンドを使用する必要があります。
パスワードを変更しても、変更がシステム全体に伝播されるまでには、ある程度の時間が必要です (特に大規模なネットワークでは)。システムの設定方法によりますが、この時間は数分から 1 時間以上になることがあります。パスワードを変更したあとすぐに新しい Kerberos チケットを取得する場合は、新しいパスワードをまず試してください。新しいパスワードが有効でない場合は、以前のパスワードを使用して再度試してください。
Kerberos V5 では、システム管理者が有効なパスワードの基準をユーザーごとに設定できます。この基準は、ユーザーごとのポリシーに定義できます。デフォルトのポリシーを使用することもできます。ポリシーの詳細は、「ポリシーの管理」 を参照してください。
たとえば、ユーザー jennifer の jenpol ポリシーでは、パスワードは 8 文字以上で、2 種類以上の文字が混在すると定義されているとします。その場合、パスワードとして「sloth」を入力すると、kpasswd によって拒否されます。
% kpasswd kpasswd: Changing password for jennifer@ENG.EXAMPLE.COM. Old password: <jennifer が既存のパスワードを入力する> kpasswd: jennifer@ENG.EXAMPLE.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 が再び「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.EXAMPLE.COM. Old password: <jennifer が既存のパスワードを入力する> kpasswd: jennifer@ENG.EXAMPLE.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 は kpasswd を使用して、次の例で示すように Kerberos パスワードを変更する必要があります。
次の例では、ユーザー david が kpasswd を使用して、Kerberos パスワードだけを変更します。
% kpasswd kpasswd: Changing password for david@ENG.EXAMPLE.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. |