aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.EUC/handbook/kerberos.sgml
blob: e1ec7760cd8ce8177a2ecf3ce939ec0986077366 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
<!-- $Id: kerberos.sgml,v 1.5 1997-02-25 04:56:17 hanai Exp $ -->
<!-- The FreeBSD Japanese Documentation Project -->
<!-- Original revision: 1.10 -->

<sect><heading>Kerberos<label id="kerberos"></heading>

<p><em>原作: &a.markm; (&a.md; からの寄稿に基づいています).</em>

   <em>訳: &a.arimura;.</em>

    Kerberosは, サーバのサービスによってユーザが安全に認証を受けられる
    ようにするための, ネットワークの付加システム及びプロトコルです. 
    リモートログイン, リモートコピー, システム間での安全なファイルのコピ
    ーやその他のリスクの高い仕事がかなり安全に, そしてこれまでより制御
    できるようになります. 

    以下の文章は, FreeBSD用として配布されているKerberosをセットアップ
    する際のガイドとして読むことができます. 
    しかし, 完全な説明が必要な場合には, マニュアルページを読んだ方がよい
    でしょう. 

    FreeBSDのKerberosは, オリジナルの4.4BSD-Liteの配布に含まれている
    ものではなく, FreeBSD 1.1.5.1のときに移植されたeBonesです. 
    これはアメリカ/カナダの外で作成されており, これら以外の国の人々にも
    手に入れられるものです. 

    このソフトウェアを合法的な配布物として得るために, アメリカも
    しくはカナダのサイトから<em>持ってこないでください</em>.  
    でないと, そのサイトが<em>大変な</em>問題に巻き込まれます. 
    合法的な配布は, 南アフリカの<tt>skeleton.mikom.csir.co.za</tt>から
    入手することができます. 

 <sect1>
 <heading>初期データベースの作成</heading>

 <p>この作業はKerberosサーバだけでおこないます. まず, 古いKerberosの
    データベースが存在しないことを確認してください. 
    ディレクトリ<tt>/etc/kerberosIV</tt>に移って, 次のファイルだけが
    存在することをチェックします:

<tscreen><verb>
grunt# cd /etc/kerberosIV
grunt# ls
README          krb.conf        krb.realms
</verb></tscreen>

 <p>もし他のファイル (<tt>principal.*</tt><tt>master_key</tt>) が
    存在する場合には, <tt>kdb_destroy</tt>というコマンドで古い
    Kerberosデータベースを消してください. 
    Kerberosが走っていなければ, 単に<tt>rm</tt>で余計なファイルを消せ
    ばよいです. 

    まず, <tt>krb.conf</tt><tt>krb.realms</tt>を編集してKerberosの
    管理領域 (realm) を定義してください. ここでは管理領域が<it>GRONDAR.ZA</it>
    で, サーバ名が<it>grunt.grondar.za</it>であるとします. 
    <tt>krb.conf</tt>というファイルを次のように編集してください:

<tscreen><verb>
grunt# cat krb.conf
GRONDAR.ZA
GRONDAR.ZA grunt.grondar.za admin server
CS.BERKELEY.EDU okeeffe.berkeley.edu
ATHENA.MIT.EDU kerberos.mit.edu
ATHENA.MIT.EDU kerberos-1.mit.edu
ATHENA.MIT.EDU kerberos-2.mit.edu
ATHENA.MIT.EDU kerberos-3.mit.edu
LCS.MIT.EDU kerberos.lcs.mit.edu
TELECOM.MIT.EDU bitsy.mit.edu
ARC.NASA.GOV trident.arc.nasa.gov
</verb></tscreen>

 <p>この例にあるような他の管理領域は, 実際には必要ありません. 
    この例は複数の管理領域を認識する方法を示したものですので, 
    これらの行は含めなくても結構です. 

    1行目はこのシステムが動いている管理領域の名前です. 
    他の行は管理領域とホスト名のエントリです. 
    行の1つめの単語が管理領域で, 2つめがその管理領域の中で
    ``鍵配布センター''(Key Distribution Center) として働くホスト名です. 
    ホスト名の次に ``admin server'' と書いてある場合には, そのホストが
    ``管理データベースサーバ''(Administrative Database Server) も提供
    することを意味します. 
    これらの単語について詳しく知りたい場合にはKerberosのマニュアル
    ページをご覧ください. 

    ここで, <it>GRONDAR.ZA</it>という管理領域に<it>grunt.grondar.za</it>
    およびその他の<it>.grondar.za</it>ドメインのすべてのホストを追加し
    なければなりません. <tt>krb.realms</tt>は次のようになります: 

<tscreen><verb>
 grunt# cat krb.realms
 grunt.grondar.za GRONDAR.ZA
 .grondar.za GRONDAR.ZA
 .berkeley.edu CS.BERKELEY.EDU
 .MIT.EDU ATHENA.MIT.EDU
 .mit.edu ATHENA.MIT.EDU
</verb></tscreen>

 <p>もう一度注意しますが, 他の管理領域を書く必要はありません. 
    これらは複数の管理領域を認識できるようにマシンを設定する方法を
    示した例ですので, これらの行は消して構いません. 

    1行目は名前をつけた管理領域に<it>特定の</it>システムを含めるための
    ものです. 残りの行は名前をつけた管理領域にサブドメインのデフォルトの
    システムを含めるためのものです. 

    これでデータベースを作成する準備ができました. この操作はKerberos
    サーバ (鍵配布センター) を起動するだけです. <tt>kdb_init</tt>コ
    マンドを次のように実行してください:

<tscreen><verb>
grunt# kdb_init
Realm name [default  ATHENA.MIT.EDU ]: GRONDAR.ZA
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.

Enter Kerberos master key: 
</verb></tscreen>

 <p>ここで鍵を保存して, ローカルのマシンにあるサーバが取り出せるように
    します. それには<tt>kstash</tt>コマンドを使用します. 

<tscreen><verb>
grunt# kstash

Enter Kerberos master key: 

Current Kerberos master key version is 1.

Master key entered.  BEWARE!
</verb></tscreen>

 <p>これで暗号化されたマスタパスワードが
    <tt>/etc/kerberosIV/master_key</tt>に保存されました. 

 <sect1>
  <heading>すべてが動くようにするための設定</heading>

 <p>Kerberosを導入する<it>それぞれの</it>システムのデータベースに, 2つ
    のprincipal (主体名) を追加する必要があります. その名前は
    <tt>kpasswd</tt><tt>rcmd</tt>です. これら2つのprincipalは, 個々
    のシステムにおいて, システム名と同じ名前のインスタンスと組にして作成
    されます. 

    これらの<tt>kpasswd</tt><tt>rcmd</tt>というデーモンによって, 他の
    システムからKerberosのパスワードを変更したり, <tt>rcp</tt><tt>rlogin</tt>, <tt>rsh</tt>といったコマンドを実行したりできるよ
    うになります. 

    それでは実際にこれらのエントリを追加しましょう:

<tscreen><verb>
grunt# kdb_edit
Opening database...

Enter Kerberos master key: 

Current Kerberos master key version is 1.

Master key entered.  BEWARE!
Previous or default values are in [brackets] ,
enter return to leave the same, or new value.

Principal name: passwd
Instance: grunt

<Not found>, Create [y] ? y

Principal: passwd, Instance: grunt, kdc_key_ver: 1
New Password:                    <---- ここは「RANDOM」と入力してください
Verifying password

New Password:                    <---- ここは「RANDOM」と入力してください

Random password [y] ? y

Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? 
Max ticket lifetime (*5 minutes) [ 255 ] ? 
Attributes [ 0 ] ? 
Edit O.K.
Principal name: rcmd
Instance: grunt

<Not found>, Create [y] ? 

Principal: rcmd, Instance: grunt, kdc_key_ver: 1
New Password:                    <---- ここは「RANDOM」と入力してください
Verifying password

New Password:                    <---- ここは「RANDOM」と入力してください

Random password [y] ? 

Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? 
Max ticket lifetime (*5 minutes) [ 255 ] ? 
Attributes [ 0 ] ? 
Edit O.K.
Principal name:                  <---- 何も入力しないと終了します
</verb></tscreen>

 <sect1>
  <heading>サーバファイルの作成</heading>

 <p>次に, 各マシンにおけるサービスを定義している, すべてのインスタンス
    を展開します. これには<tt>ext_srvtab</tt>というコマンドを使用しま
    す. このコマンドで作成されるファイルは, Kerberosの各クライアン 
    トの/etc/kerberosIVディレクトリに<it>安全な方法で</it>コピーまたは
    移動する必要があります. このファイルはそれぞれのサーバとクラ
    イアントに存在しなければならず, またKerberosの運用において重要なも
    のです. 

<tscreen><verb>
grunt# ext_srvtab grunt

Enter Kerberos master key: 

Current Kerberos master key version is 1.

Master key entered.  BEWARE!
Generating 'grunt-new-srvtab'....
</verb></tscreen>

 <p>このコマンドは一時的なファイルを作成するだけです. ファイル名をすべ
    てのサーバが読めるような<tt>srvtab</tt>という名前に変更しな
    ければなりません. <tt>mv</tt>コマンドを用いてシステムの場所に移動
    してください. 

<tscreen><verb>
grunt# mv grunt-new-srvtab srvtab
</verb></tscreen>

 <p>そのファイルがクライアントに配るためのもので, ネットワークが安全で
    はないと思われる場合には, <tt>&lt;client&gt;-new-srvtab</tt>を移動
    可能なメディアにコピーして物理的に安全な方法で運んでください. クラ
    イアントの<tt>/etc/kerberosIV</tt>ディレクトリで, 名前を
    <tt>srvtab</tt>に変更し, modeを600にするのを忘れないでください:

<tscreen><verb>
grumble# mv grumble-new-srvtab srvtab
grumble# chmod 600 srvtab
</verb></tscreen>

 <sect1>
  <heading>データベースへのユーザの追加</heading>

 <p>ここで, ユーザのエントリをデータベースに追加する必要があります. 
    始めに, ユーザ<it>jane</it>のエントリを作成してみましょう. 
    <tt>kdb_edit</tt>を用いて次のように作成してください:

<tscreen><verb>
grunt# kdb_edit
Opening database...

Enter Kerberos master key: 

Current Kerberos master key version is 1.

Master key entered.  BEWARE!
Previous or default values are in [brackets] ,
enter return to leave the same, or new value.

Principal name: jane
Instance:

<Not found>, Create [y] ? y

Principal: jane, Instance: , kdc_key_ver: 1
New Password:                    <---- 安全なパスワードを入れてください
Verifying password

New Password:                    <---- もう一度パスワードを入れてください

Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? 
Max ticket lifetime (*5 minutes) [ 255 ] ? 
Attributes [ 0 ] ? 
Edit O.K.
Principal name:                  <---- 何も入力しないと終了します
</verb></tscreen>

 <sect1>
  <heading>すべてのテスト</heading>

 <p>まず始めにKerberosデーモンを起動する必要があります. 
    <tt>/etc/sysconfig</tt>ファイルを正しく編集してあれば, マシンを再
    起動することでに自動的にデーモンが起動します. これはKerberosサー
    バでのみ必要です. Kerberosクライアントは<tt>/etc/kerberosIV</tt>か
    ら必要なものを自動的に入手します. 

<tscreen><verb>
grunt# kerberos &
grunt# Kerberos server starting
        Sleep forever on error
        Log file is /var/log/kerberos.log
Current Kerberos master key version is 1.

Master key entered.  BEWARE!

Current Kerberos master key version is 1
Local realm: GRONDAR.ZA
grunt# kadmind -n &
grunt# KADM Server KADM0.0A initializing
Please do not use 'kill -9' to kill this job, use a
regular kill instead

Current Kerberos master key version is 1.

Master key entered.  BEWARE!
</verb></tscreen>

 <p>さあ, これで上で作成した<it>jane</it>というIDのチケットを
    <tt>kinit</tt>コマンドで得ることができます:

<tscreen><verb>
grunt$ kinit jane
MIT Project Athena (grunt.grondar.za)
Kerberos Initialization for "jane"
Password: 
</verb></tscreen>

 <p><tt>klist</tt>コマンドを用いてトークンを見て, きちんとチケットを持って
    いるかどうか確認してください: 

<tscreen><verb>
grunt$ klist
Ticket file:    /tmp/tkt245
Principal:    jane@GRONDAR.ZA

  Issued           Expires          Principal
Apr 30 11:23:22  Apr 30 19:23:22  krbtgt.GRONDAR.ZA@GRONDAR.ZA
</verb></tscreen>

 <p><tt>passwd</tt>コマンドを用いてパスワードを変更して, kpasswdデーモ
    ンがKerberosデータベースに対して認証されるかどうかチェックして
    ください: 


<tscreen><verb>
grunt$ passwd
realm GRONDAR.ZA
Old password for jane:
New Password for jane:
Verifying password
New Password for jane:
Password changed.
</verb></tscreen>

 <sect1>
  <heading><tt>su</tt>特権の追加</heading>

 <p>root権限が必要なユーザは<it>誰でも</it>, <tt>su</tt>コマンドのパス
    ワードをユーザ毎に<it>別のもの</it>として持つことができます. 
    <it>root</it><tt>su</tt>できる権利を与えられたidを追加します. 
    これは, principalに付いている<it>root</it>というインスタンスに
    よって制御されています. <tt>kdb_edit</tt>を用いて
    <it>jane.root</it>というエントリをKerberosデータベースに作成します:

<tscreen><verb>
grunt# kdb_edit
Opening database...

Enter Kerberos master key: 

Current Kerberos master key version is 1.

Master key entered.  BEWARE!
Previous or default values are in [brackets] ,
enter return to leave the same, or new value.

Principal name: jane
Instance: root

<Not found>, Create [y] ? y

Principal: jane, Instance: root, kdc_key_ver: 1
New Password:                    <---- 安全なパスワードを入れます
Verifying password

New Password:                    <---- もう一回パスワードを入れます

Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? 
Max ticket lifetime (*5 minutes) [ 255 ] ? 12 <--- ここは短くしてください
Attributes [ 0 ] ? 
Edit O.K.
Principal name:                  <---- 何も入力しないと終了します
</verb></tscreen>

 <p>実際にトークンをもらって, ちゃんと働いているかどうか確認しましょう:

<tscreen><verb>
grunt# kinit jane.root
MIT Project Athena (grunt.grondar.za)
Kerberos Initialization for "jane.root"
Password: 
 </verb></tscreen>

 <p>ここでrootユーザの<tt>.klogin</tt>ファイルにユーザを追加する必要が
    あります. 

<tscreen><verb>
grunt# cat /root/.klogin
jane.root@GRONDAR.ZA
</verb></tscreen>

 <p><tt>su</tt>してみましょう:

<tscreen><verb>
[jane@grunt 10407] su
Password: 
grunt#
</verb></tscreen>

    どのトークンを持っているか見てみましょう:

<tscreen><verb>
grunt# klist
Ticket file:	/tmp/tkt_root_245
Principal:	jane.root@GRONDAR.ZA

  Issued           Expires          Principal
May  2 20:43:12  May  3 04:43:12  krbtgt.GRONDAR.ZA@GRONDAR.ZA
</verb></tscreen>

 <sect1>
  <heading>他のコマンドの使用</heading>

 <p>ここまでの例では, <tt>jane</tt>というprincipalを<tt>root</tt>とい
    うインスタンス付きで作成しました. これはユーザと同じ名前をprincipalと
    しており, Kerberosのデフォルトの値です;
    <em>&lt;username&gt;.</em><tt>root</tt>という形式の
    <em>&lt;principal&gt;.&lt;instance&gt;</em>で, 必要なエント
    リが<tt>root</tt>のホームディレクトリの<tt>.klogin</tt>ファイルに
    あれば, <em>&lt;username&gt;</em>がrootに<tt>su</tt>することができま
    す. 

<tscreen><verb>
grunt# cat /root/.klogin
jane.root@GRONDAR.ZA
</verb></tscreen>

 <p>同様に, ユーザのホームディレクトリの<tt>.klogin</tt>ファイルに次の
    ような行がある場合には: 

<tscreen><verb>
[jane@grunt 10543] cat ~/.klogin
jane@GRONDAR.ZA
jack@GRONDAR.ZA
</verb></tscreen>

 <p><em>jane</em>または<em>jack</em>という名前で (前述の<tt>kinit</tt>
    によって) 認証されている<em>GRONDAR.ZA</em>という管理領域のユーザ
    なら誰でも<tt>rlogin</tt><tt>rsh</tt>, <tt>rcp</tt>等によってこ
    のシステム (<em>grunt</em>) の<em>jane</em>のアカウントまたはファ
    イルにアクセスできます. 

    例えば, Janeが他のシステムにKerberosを用いてloginします:

<tscreen><verb>
[jane@grumble 573] kinit
MIT Project Athena (grunt.grondar.za)
Password: 
[jane@grumble 574] rlogin grunt
Last login: Mon May  1 21:14:47 from grumble
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
	The Regents of the University of California.   All rights reserved.

FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995

[jane@grunt 10567]
</verb></tscreen>

 <p>次の例では, Jackが同じマシンのJaneのアカウントにloginします. Janeは
    <tt>.klogin</tt>ファイルを前述のように設定しており, 
    Kerberosでは<em>jack</em>というprincipalをインスタンスなしで設定してあ
    ります. 

<tscreen><verb>
[jack@grumble 573] kinit
[jack@grumble 574] rlogin grunt -l jane
MIT Project Athena (grunt.grondar.za)
Password: 
Last login: Mon May  1 21:16:55 from grumble
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
	The Regents of the University of California.   All rights reserved.

FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995

[jane@grunt 10578]
</verb></tscreen>