422 lines
11 KiB
Groff
422 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.15 1998/03/23 08:31:07 charnier 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
|
|
は複数の 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
|
|
フォーマットであり、レコード数が多くとも高速に検索可能です。
|
|
.Bx Free
|
|
では、セキュリティのため、マップの読み書きは root のみ可能です。
|
|
技術的には、このような制限はパスワードマップにのみ必要ですが、
|
|
他のマップの内容は誰もが読める他のファイルに書いてありますので、
|
|
この様な制約は害ではなく、現実的であると考えられています。
|
|
.Pp
|
|
.Nm
|
|
は
|
|
.Pa /etc/rc.conf
|
|
にて有効にされている場合に
|
|
.Pa /etc/rc.network
|
|
から起動されます。
|
|
.Sh 特別な仕様
|
|
.Bx Free
|
|
のパスワードデータベースを
|
|
.Tn NIS
|
|
によって配布する場合にいくつかの問題があります。
|
|
.Bx Free
|
|
は通常、暗号化したパスワードを、root のみ読み書き可能な
|
|
.Pa /etc/master.passwd
|
|
にのみ格納します。
|
|
このファイルを
|
|
.Tn NIS
|
|
マップにすると、セキュリティが完全に破れてしまいます。
|
|
.Pp
|
|
これに対処するために、
|
|
.Bx Free
|
|
の
|
|
.Nm
|
|
は
|
|
.Pa master.passwd.byname
|
|
と
|
|
.Pa master.basswd.byuid
|
|
のマップを特別な方法で扱います。
|
|
サーバがこれら 2 つのマップへのアクセス要求を受け付けると、
|
|
要求元の TCP ポートをチェックし、ポート番号が 1023 より大きい場合には
|
|
エラーを返します。
|
|
スーパユーザのみ 1024 より小さい TCP ポートにバインドする事を許されているため、
|
|
サーバはこれを利用して特権ユーザからの要求か否かを判定できます。
|
|
非特権ユーザからの全ての要求は拒否されます。
|
|
.Pp
|
|
また、
|
|
.Bx Free
|
|
の標準 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
|
|
においても守られます。
|
|
.Pp
|
|
.Sh 注釈
|
|
.Ss 制限
|
|
.Tn NIS
|
|
環境にてシャドウパスワードを使用することに起因する問題が 2 つあります。
|
|
ユーザは次のことに気をつけねばなりません。
|
|
.Pp
|
|
.Bl -enum -offset indent
|
|
.It
|
|
.Sq TCP ポートが 1024 より小さい
|
|
というテストは非常に簡単であるため、
|
|
同一ネットワーク上の、無制限のアクセスが可能なマシンを持つユーザは
|
|
これを破る事が可能です
|
|
(UNIX ベースではないオペレーティングシステムを実行するマシンでも可能です)。
|
|
.It
|
|
.Bx Free
|
|
システムを、シャドウパスワードをサポートしない非
|
|
.Bx Free
|
|
クライアント
|
|
(ほとんどがそうです) に対するサーバにしようとしている場合には、
|
|
.Pa /var/yp/Makefile
|
|
の
|
|
.Em UNSECURE=True
|
|
エントリのコメントを外し、
|
|
シャドウパスワードを無効にする必要があります。
|
|
これにより、
|
|
.Pa passwd.byname
|
|
と
|
|
.Pa passwd.byuid
|
|
のマップに、非
|
|
.Bx Free
|
|
クライアントが
|
|
.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
|
|
パッケージは
|
|
.Bx Free
|
|
とともに配布されていないため、
|
|
デフォルトでは組み込まれていません。
|
|
しかし
|
|
.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 クライアントに対してある程度サービス可能です。
|
|
.Bx Free
|
|
の
|
|
.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
|
|
に依存していました。
|
|
.Bx Free
|
|
のリゾルバは DNS への問い合わせを直接行えますので、
|
|
.Bx Free
|
|
である
|
|
.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 ypbind 8 ,
|
|
.Xr yppasswdd 8 ,
|
|
.Xr yppush 8 ,
|
|
.Xr ypxfr 8
|
|
.Sh 作者
|
|
.An Bill Paul Aq wpaul@ctr.columbia.edu
|
|
.Sh 歴史
|
|
このバージョンの
|
|
.Nm
|
|
が最初に登場したのは
|
|
.Fx 2.2
|
|
です。
|