aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man8/ypserv.8
blob: 8b37310309c2b7ecfb2f1d8a2e6af38696f36cc1 (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
.\" Copyright (c) 1995
.\"	Bill Paul <wpaul@ctr.columbia.edu>.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"	This product includes software developed by Bill Paul.
.\" 4. Neither the name of the author nor the names of any co-contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL Bill Paul OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/usr.sbin/ypserv/ypserv.8,v 1.22.2.6 2001/08/16 15:56:44 ru Exp %
.\"
.\" $FreeBSD: doc/ja_JP.eucJP/man/man8/ypserv.8,v 1.14 2001/08/10 02:12:55 horikawa Exp $
.\"
.Dd February 4, 1995
.Dt YPSERV 8
.Os
.Sh 名称
.Nm ypserv
.Nd NIS データベースサーバ
.Sh 書式
.Nm
.Op Fl n
.Op Fl d
.Op Fl p Ar path
.Sh 解説
.Tn NIS
は複数の UNIX ベースのマシン間で
共通の設定ファイルの集合を共有するための
RPC ベースのサービスです。
.Tn NIS
では、
.Pa /etc/hosts ,
.Pa /etc/passwd ,
.Pa /etc/group
といった、ほとんどの環境で頻繁に更新されるファイルの複数のコピーを
システム管理者が更新する必要は無く、
計算機のグループで一箇所で更新可能な 1 組のデータを共有することができます。
.Pp
.Nm
は
.Tn NIS
.Em ドメイン
内のクライアントシステムに
.Tn NIS
データベースを配布するサーバです。
.Tn NIS
ドメイン内のクライアントは
.Xr domainname 1
コマンドを使用し、
.Nm
がサービスしているドメイン名を設定しなければなりません。
また、単一
.Tn NIS
ドメイン中に複数のサーバが存在しうるため、
クライアントは、
.Xr ypbind 8
を実行させ、特定のサーバに接続する必要もあります。
.Pp
.Nm
によって配布されるデータベースは
.Pa /var/yp/[domainname]
に格納されます。
ここで
.Pa domainname
はサービスを受けるドメイン名です。
この様なディレクトリは様々なドメイン名にて複数存在可能ですが、
単一の
.Nm
デーモンにて全て処理可能です。
.Pp
データベース (もしくはしばしば
.Pa マップ
と呼ばれます)は、様々なシステムファイルをソースとして
.Pa /var/yp/Makefile
によって作成されます。
データベースファイルは
.Xr db 3
フォーマットであり、レコード数が多くとも高速に検索可能です。
.Fx
では、セキュリティのため、マップの読み書きは root のみ可能です。
技術的には、このような制限はパスワードマップにのみ必要ですが、
他のマップの内容は誰もが読める他のファイルに書いてありますので、
この様な制約は害ではなく、現実的であると考えられています。
.Pp
.Nm
は
.Pa /etc/rc.conf
にて有効にされている場合に
.Pa /etc/rc.network
から起動されます。
.Sh 特別な仕様
.Fx
のパスワードデータベースを
.Tn NIS
によって配布する場合にいくつかの問題があります。
.Fx
は通常、暗号化したパスワードを、root のみ読み書き可能な
.Pa /etc/master.passwd
にのみ格納します。
このファイルを
.Tn NIS
マップにすると、セキュリティが完全に破れてしまいます。
.Pp
これに対処するために、
.Fx
の
.Nm
は
.Pa master.passwd.byname
と
.Pa master.passwd.byuid
のマップを特別な方法で扱います。
サーバがこれら 2 つのマップへのアクセス要求を受け付けると、
要求元の TCP ポートをチェックし、ポート番号が 1023 より大きい場合には
エラーを返します。
スーパユーザのみ 1024 より小さい TCP ポートにバインドする事を許されているため、
サーバはこれを利用して特権ユーザからの要求か否かを判定できます。
非特権ユーザからの全ての要求は拒否されます。
.Pp
また、
.Fx
の標準 C ライブラリ中の
.Xr getpwent 3
ルーチンは、スーパユーザが使用した場合には
.Pa master.passwd.byname
と
.Pa master.passwd.byuid
のマップからデータを取得します。
通常のユーザがこれらのルーチンをコールした場合には、標準の
.Pa passwd.byname
と
.Pa passwd.byuid
のマップにアクセスします。後者の 2 つのマップは
.Pa /var/yp/Makefile
により、
.Pa master.passwd
ファイルをパースし、パスワードフィールドを削除する事により作成されますので、
非特権ユーザに渡しても安全です。
このように
.Pa master.passwd
データベースのシャドウパスワード機構は
.Tn NIS
においても守られます。
.Sh 注
.Ss マスタサーバとスレーブサーバの設定
.Xr ypinit 8
は便利なスクリプトであり、
.Tn NIS
のマスタサーバおよびスレーブサーバの設定の助けになります。
.Ss 制限
.Tn NIS
環境にてシャドウパスワードを使用することに起因する問題が 2 つあります。
ユーザは次のことに気をつけねばなりません。
.Pp
.Bl -enum -offset indent
.It
.Sq TCP ポートが 1024 より小さい
というテストは非常に簡単であるため、
同一ネットワーク上の、無制限のアクセスが可能なマシンを持つユーザは
これを破る事が可能です
(UNIX ベースではないオペレーティングシステムを実行するマシンでも可能です)。
.It
.Fx
システムを、シャドウパスワードをサポートしない非
.Fx
クライアント
(ほとんどがそうです) に対するサーバにしようとしている場合には、
.Pa /var/yp/Makefile
の
.Em UNSECURE=True
エントリのコメントを外し、
シャドウパスワードを無効にする必要があります。
これにより、
.Pa passwd.byname
と
.Pa passwd.byuid
のマップに、非
.Fx
クライアントが
.Tn NIS
を通じてユーザ認証を
行うために必要とする、
有効な暗号化されたパスワードフィールドが含まれるようになります。
.El
.Pp
.Ss セキュリティ
一般的に、リモートユーザは、ドメイン名を知ってさえいれば、RPC を
.Nm
に発行し、
.Tn NIS
マップの内容を取得可能です。
このような権限の無いトランザクションを防ぐために、
.Nm
には
.Pa securenets
と呼ばれる、あるホストの集合にのみアクセスを制限する機能があります。
起動時に、
.Nm
は securenets 情報をファイル
.Pa /var/yp/securenets
から読み込みます。
(後述するように、このパスは、
.Fl p
オプションによって指定するパスによって変化することに注意して下さい。)
このファイルは、空白によって区切られるネットワークとネットワークマスクからなる
エントリを複数含みます。
.Dq \&#
から始まる行はコメントと見なされます。
securenets ファイルの例を以下に示します:
.Bd -unfilled -offset indent
# allow connections from local host -- mandatory
127.0.0.1     255.255.255.255
# allow connections from any host
# on the 129.168.128.0 network
192.168.128.0 255.255.255.0
# allow connections from any host
# between 10.0.0.0 to 10.0.15.255
10.0.0.0      255.255.240.0
.Ed
.Pp
.Nm
がこれらのルールに適合するアドレスからの要求を受け取った場合には、
通常通り要求を処理します。
アドレスがルールに適合しない場合には、要求は無視され、警告がログされます。
.Pa /var/yp/securenets
ファイルが存在しない場合には、
.Nm
は全てのホストからの接続を許します。
.Pp
.Nm
は、Wietse Venema の
.Em tcpwrapper
パッケージをサポートしますが、
.Em tcpwrapper
パッケージは
.Fx
とともに配布されていないため、
デフォルトでは組み込まれていません。
しかし
.Pa libwrap.a
と
.Pa tcpd.h
があれば、容易に
.Nm
を再コンパイルすることができます。
これにより、アクセス管理のために、
システム管理者は tcpwrapper の設定ファイル
.Pa ( /etc/hosts.allow
と
.Pa /etc/hosts.deny )
を
.Pa /var/yp/securenets
の代わりに使用できます。
.Pp
注: どちらのアクセス制御もそれなりのセキュリティを提供しますが、
特権ポートテストと同様に
.Dq IP 詐称 (spoofing)
攻撃には無力であることに
注意して下さい。
.Pp
.Ss NIS v1 互換性
このバージョンの
.Nm
は
.Tn NIS
v1 クライアントに対してある程度サービス可能です。
.Fx
の
.Tn NIS
実装は
.Tn NIS
v2 プロトコルのみを使用しますが、
他の実装では古いシステムとのバックワードコンパチビリティのために
v1 プロトコルもサポートしています。
そのようなシステムで提供されている
.Xr ypbind 8
デーモンは、実際にはおそらく不要なのですが、
.Tn NIS
v1 サーバにバインドしようとします。
(そして、v2 サーバから返答を受け取ったとしてもサーバを探すために
ブロードキャストし続けます。)
このバージョンの
.Nm
では通常のクライアントの呼び出しはサポートされていますが、
v1 マップ転送要求は扱いません。
すなわち、古い
.Tn NIS
サーバとともに、マスタもしくはスレーブとして使用することはできません。
好運なことに、今日ではこの様なサーバは存在しないでしょう。
.Ss NIS クライアントでもある NIS サーバ
複数のサーバが存在するドメインにおいて、
サーバが
.Tn NIS
クライアントでもある場合には、
.Nm
の実行に注意を払う必要があります。
バインド要求をブロードキャストさせてサーバ間でバインドさせるのではなく、
サーバを自分自身にバインドすることは一般的には良い考えです。
あるサーバがダウンし、他のサーバがそのサーバに依存していた場合には、
奇妙な障害が生じ得ます。(結果として全てのクライアントがタイムアウトし、
他のサーバにバインドしようとしますが、遅延は無視できず、
サーバはまだ互いにバインドしようとしますので、障害は残ります。)
.Pp
特定のサーバに強制的にバインドさせるための詳細は
.Xr ypbind 8
マニュアルページを参照して下さい。
.Sh オプション
以下のオプションが
.Nm
にてサポートされています。
.Bl -tag -width flag
.It Fl n
このオプションは
.Nm
が
.Pa hosts.byname
と
.Pa hosts.byaddress
のマップに対する yp_match 要求を扱う方法を操作します。
デフォルトでは、
.Nm
が与えられたホストのエントリをホストマップ中に見付けられなかった場合には、
エラーを返しそれ以上の処理を行いません。
.Fl n
フラグを指定すると、
.Nm
はさらなる処理を行います。
すぐにあきらめずに、ホスト名もしくはアドレスを DNS ネームサーバに問い合わせて
解決しようとします。
問い合わせが成功すると、
.Nm
は偽のデータベースレコードを作成し、それをクライアントに返しますので、
クライアントの yp_match 要求は成功したように見えます。
.Pp
この仕様は SunOS 4.1.x との互換性のために用意されています。
そのシステムの標準 C ライブラリではリゾルバが腐っており、
ホスト名とアドレスの解決のために
.Tn NIS
に依存していました。
.Fx
のリゾルバは DNS への問い合わせを直接行えますので、
.Fx
である
.Tn NIS
クライアントに対してのみサービスする場合は、
このオプションを有効にする必要はありません。
.It Fl d
サーバをデバッグモードで実行します。
通常
.Nm
は異常時のエラー (アクセス違反、ファイルアクセス失敗) のみを
.Xr syslog 3
機能を使用して報告します。
デバッグモードでは、サーバは自身をバックグラウンドでは実行せず、
リクエストを受けるたびに、
状態を表す追加のメッセージを標準エラー出力に表示します。
また、デバッグモードで実行している間は、通常とは異なり、
yp_all 要求処理時や DNS 検索処理時に
.Nm ypserv
サブプロセスを生成しません。
(これらの処理は多くの場合完了までに時間がかかるために
サブプロセスにより処理され、
親であるサーバは別の要求を処理できるようになっています。)
これによりデバッグツールによるサーバのトレースが容易になります。
.It Fl p Ar path
通常
.Nm
は
.Tn NIS
マップは
.Pa /var/yp
以下にあるものと想定します。
.Fl p
フラグを使用し、別の
.Tn NIS
ルートパスを指定できますので、
システム管理者はファイルシステム中の別の場所にマップファイルを移動できます。
.El
.Sh 関連ファイル
.Bl -tag -width Pa -compact
.It Pa /var/yp/[domainname]/[maps]
.Tn NIS
マップ
.It Pa /etc/host.conf
リゾルバ設定ファイル
.It Pa /var/yp/securenets
ホストアクセス制御ファイル
.El
.Sh 関連項目
.Xr ypcat 1 ,
.Xr db 3 ,
.Xr yp 4 ,
.Xr rpc.yppasswdd 8 ,
.Xr ypbind 8 ,
.Xr ypinit 8 ,
.Xr yppush 8 ,
.Xr ypxfr 8
.Sh 作者
.An Bill Paul Aq wpaul@ctr.columbia.edu
.Sh 歴史
このバージョンの
.Nm
が最初に登場したのは
.Fx 2.2
です。