doc/ja/man/man8/ypserv.8
Hiroyuki Hanai 8384f4bcfc Import Japanese Online Manuals.
The Japanese Manual team(man-jp@jp.FreeBSD.ORG) has translated
and keeps maintaining them.
Submitted by: Kazuo Horikawa <horikawa@isrd.hitachi.co.jp>
1998-02-25 04:54:20 +00:00

364 lines
11 KiB
Groff

.\" 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.
.\"
.\" %Id: ypserv.8,v 1.8.2.2 1997/04/15 08:12:11 jmg Exp %
.\" jpman %Id: ypserv.8,v 1.3 1997/05/19 17:11:16 horikawa Stab %
.\"
.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
は RPC ベースのサービスであり、多くの UNIX ベースのマシン間で
共通のコンフィギュレーションファイルの集合を共有する事ができます。
NIS では、
.Pa /etc/hosts ,
.Pa /etc/passwd ,
.Pa /etc/group
といった、ほとんどの環境で頻繁に更新されるファイルの複数のコピーを
システム管理者が更新する必要は無く、
一箇所で更新可能な 1 組のデータを計算機の集合が共有する事を許します。
.Pp
.Nm
は NIS
.Em ドメイン
内のクライアントシステムに NIS データベースを配布するサーバです。
NIS ドメイン内のクライアントは
.Xr domainname 1
コマンドを使用し、
.Nm
がサービスしているドメイン名を設定しなければなりません。
単一 NIS ドメイン中に複数のサーバが存在しうるため、
クライアントは、
.Xr ypbind 8
を実行させ、特定のサーバに接続する必要もあります。
.Pp
.Nm
によって配布されるデータベースは
.Pa /var/yp/[domainname]
に格納されます。
ここで
.Pa domainname
はサービスを受けるドメイン名です。
この様なディレクトリは様々なドメイン名にて複数存在可能ですが、
単一の
.Nm
デーモンにて全て処理可能です。
.Pp
データベース、(もしくはしばしば
.Pa マップ
と呼ばれます)は、様々なシステムファイルを元に
.Pa /var/yp/Makefile
から作成されます。
データベースファイルは
.Xr db 3
フォーマットであり、レコード数が多くとも高速に検索可能です。
FreeBSD では、セキュリティのため、マップの読み書きは root のみ可能です。
技術的には、パスワードマップのみこの様な制限が必要です。
他のマップの内容は誰もが読める他のファイルに書いてありますので、
この様な制約は害ではなく、現実的だと考えられています。
.Pp
.Nm
.Pa /etc/sysconfig
にて有効にされている場合に
.Pa /etc/rc
から起動されます。
.Sh 特別な仕様
FreeBSD のパスワードデータベースを NIS にて配布する場合には問題があります:
FreeBSD は通常、暗号化したパスワードを、root のみ読み書き可能な
.Pa /etc/master.passwd
に格納します。
このファイルを NIS マップにすると、セキュリティが完全に破れてしまいます。
.Pp
これに対処するために、FreeBSD の
.Nm
.Pa master.passwd.byname
.Pa master.basswd.byuid
のマップを特別な方法で扱います。
サーバがこれら 2 つのマップへのアクセス要求を受け付けると、
要求元の TCP ポートをチェックし、ポート番号が 1023 より大きい場合には
エラーを返します。
スーパユーザのみ 1024 より小さい TCP ポートにバインドする事を許されているため、
サーバはこれを利用して特権ユーザからの要求か否かを判定できます。
非特権ユーザからの全ての要求は拒否されます。
.Pp
また、FreeBSD の標準 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
データベースのシャドウパスワード機構は NIS においても守られます。
.Pp
.Sh 注釈
.Ss 制限
NIS 環境にてシャドウパスワードを使用する事に起因する問題が 2 つあります。
ユーザは次の事に気を付けねばなりません:
.Bl -enum -offset indent
.It
.Sq TCP ポートが 1024 より小さい
というテストは非常に簡単であるため、
同一ネットワーク上の、無制限のアクセスが可能なマシンを持つユーザは
これを破る事が可能です
(UNIX ベースではないオペレーティングシステムを実行するマシンでも可能です)。
.It
FreeBSD システムを、シャドウパスワードをサポートしない非 FreeBSD クライアント
(ほとんどがそうです)に対するサーバにしようとしている場合には、
.Pa /var/yp/Makefile
.Em UNSECURE=True
エントリのコメントを外し、
シャドウパスワードを無効にする必要があります。
.Pa passwd.byname
.Pa passwd.byuid
のマップに、非 FreeBSD クライアントが NIS を通じてユーザ認証を
行うために必要とする、
有効な暗号化されたパスワードフィールドが含まれるようになります。
.El
.Pp
.Ss セキュリティ
一般的に、リモートユーザは、ドメイン名を知ってさえいれば、RPC を
.Nm
に発行し、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
パッケージは FreeBSD とともに配布されていないため、
デフォルトでは組み込まれていません。
.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
は NIS v1 クライアントに対してある程度サービス可能です。
FreeBSD の NIS 実装は NIS v2 プロトコルのみを使用しますが、
他の実装は古いシステムとのバックワードコンパチビリティのために
v1 プロトコルのサポートを含みます。
このようなシステムに提供されている
.Xr ypbind 8
デーモンは、実際にはそうする事が不要であっても、
NIS v1 サーバにバインドしようとします。
(そして、v2 サーバから返答を受け取ったとしてもサーバを探すために
ブロードキャストし続けます)。
通常のクライアントの呼び出しがサポートされていますが、
このバージョンの
.Nm
は v1 マップ転送要求を扱いません;
すなわち、古い NIS サーバとともに、マスタとしてもしくはスレーブとして
使用する事は出来ません。
好運なことに、今日ではこの様なサーバは存在しない事でしょう。
.Ss NIS クライアントでもある NIS サーバ
複数のサーバが存在するドメインにおいて、
サーバが 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 ライブラリではリゾルバが腐っており、
ホスト名とアドレスの解決のために NIS に依存していました。
FreeBSD のリゾルバは DNS への問い合わせを直接行えますので、
FreeBSD である NIS クライアントに対してのみサービスする場合は、
このオプションを有効にする必要はありません。
.It Fl d
サーバをデバッグモードで実行します。
通常
.Nm
は異常時のエラー(アクセス違反、ファイルアクセス失敗)のみを
.Xr syslog 3
機能を使用して報告します。
デバッグモードでは、サーバは自身をバックグラウンドでは実行せず、
リクエストを受けるたびに、
状態を表す追加のメッセージを標準エラー出力に表示します。
また、デバッグモードで実行している間は、通常とは異なり、
yp_all 要求処理時や DNS 検索処理時に
.Nm ypserv
サブプロセスを生成しません。
(これらの処理は多くの場合完了までに時間がかかるために
サブプロセスにより処理され、
親であるサーバは別の要求を処理できるようになっています。)
これによりデバッグツールによるサーバのトレースが容易になります。
.It Fl p Ar path
通常
.Nm
は NIS マップは
.Pa /var/yp
以下にあるものと期待します。
.Fl p
フラグを使用し、別の NIS ルートパスを指定できますので、
システム管理者はファイルシステム中の別の場所にマップファイルを移動できます。
.El
.Sh 関連ファイル
.Bl -tag -width Pa -compact
.It Pa /var/yp/[domainname]/[maps]
NIS マップ。
.It Pa /etc/host.conf
リゾルバ構成ファイル。
.It Pa /var/yp/securenets
ホストアクセス制御ファイル。
.El
.Sh 関連項目
.Xr ypcat 1 ,
.Xr db 3 ,
.Xr yp 4 ,
.Xr ypbind 8 ,
.Xr yppasswdd 8 ,
.Xr yppush 8 ,
.Xr ypxfr 8
.Sh 作者
Bill Paul <wpaul@ctr.columbia.edu>
.Sh 歴史
このバージョンの
.Nm
が最初に登場したのは
.Fx 2.2
です。