ypserv(8) FreeBSD 一般コマンドマニュアル

ypserv

前のページ 上に戻る 次のページ

ypserv




解説

     NIS は複数の UNIX ベースのマシン間で共通の設定ファイルの集合を共有するた
     めの RPC ベースのサービスです。 NIS では、 /etc/hosts, /etc/passwd,
     /etc/group といった、ほとんどの環境で頻繁に更新されるファイルの複数のコピ
     ーをシステム管理者が更新する必要は無く、計算機のグループで一箇所で更新可
     能な 1 組のデータを共有することができます。

     ypserv は NIS ドメイン内のクライアントシステムに NIS データベースを配布す
     るサーバです。 NIS ドメイン内のクライアントは domainname(1) コマンドを使
     用し、 ypserv がサービスしているドメイン名を設定しなければなりません。ま
     た、単一 NIS ドメイン中に複数のサーバが存在しうるため、クライアントは、
     ypbind(8) を実行させ、特定のサーバに接続する必要もあります。

     ypserv によって配布されるデータベースは /var/yp/[domainname] に格納されま
     す。ここで domainname はサービスを受けるドメイン名です。この様なディレク
     トリは様々なドメイン名にて複数存在可能ですが、単一の ypserv デーモンにて
     全て処理可能です。

     データベース (もしくはしばしば マップと呼ばれます)は、様々なシステムファ
     イルをソースとして /var/yp/Makefile によって作成されます。データベース
     ファイルは db(3) フォーマットであり、レコード数が多くとも高速に検索可能で
     す。 FreeBSD では、セキュリティのため、マップの読み書きは root のみ可能で
     す。技術的には、このような制限はパスワードマップにのみ必要ですが、他の
     マップの内容は誰もが読める他のファイルに書いてありますので、この様な制約
     は害ではなく、現実的であると考えられています。

     ypserv/etc/rc.conf にて有効にされている場合に /etc/rc.network から起
     動されます。


特別な仕様

     FreeBSD のパスワードデータベースを NIS によって配布する場合にいくつかの問
     題があります。 FreeBSD は通常、暗号化したパスワードを、root のみ読み書き
     可能な /etc/master.passwd にのみ格納します。このファイルを NIS マップにす
     ると、セキュリティが完全に破れてしまいます。

     これに対処するために、 FreeBSD の ypservmaster.passwd.bynamemaster.passwd.byuid のマップを特別な方法で扱います。サーバがこれら 2 つの
     マップへのアクセス要求を受け付けると、要求元の TCP ポートをチェックし、ポ
     ート番号が 1023 より大きい場合にはエラーを返します。スーパユーザのみ 1024
     より小さい TCP ポートにバインドする事を許されているため、サーバはこれを利
     用して特権ユーザからの要求か否かを判定できます。非特権ユーザからの全ての
     要求は拒否されます。

     また、 FreeBSD の標準 C ライブラリ中の getpwent(3) ルーチンは、スーパユー
     ザが使用した場合には master.passwd.bynamemaster.passwd.byuid のマップ
     からデータを取得します。通常のユーザがこれらのルーチンをコールした場合に
     は、標準の passwd.bynamepasswd.byuid のマップにアクセスします。後者の
     2 つのマップは /var/yp/Makefile により、 master.passwd ファイルをパース
     し、パスワードフィールドを削除する事により作成されますので、非特権ユーザ
     に渡しても安全です。このように master.passwd データベースのシャドウパスワ
     ード機構は NIS においても守られます。

           2.   FreeBSD システムを、シャドウパスワードをサポートしない非
                FreeBSD クライアント (ほとんどがそうです) に対するサーバにしよ
                うとしている場合には、 /var/yp/MakefileUNSECURE=True エン
                トリのコメントを外し、シャドウパスワードを無効にする必要があり
                ます。これにより、 passwd.bynamepasswd.byuid のマップに、
                非 FreeBSD クライアントが NIS を通じてユーザ認証を行うために必
                要とする、有効な暗号化されたパスワードフィールドが含まれるよう
                になります。

   B>セB>キB>ュB>リB>テB>ィ
     一般的に、リモートユーザは、ドメイン名を知ってさえいれば、RPC を ypserv
     に発行し、 NIS マップの内容を取得可能です。このような権限の無いトランザク
     ションを防ぐために、 ypserv には securenets と呼ばれる、あるホストの集合
     にのみアクセスを制限する機能があります。起動時に、 ypserv は securenets
     情報をファイル /var/yp/securenets から読み込みます。 (後述するように、こ
     のパスは、 -p オプションによって指定するパスによって変化することに注意し
     て下さい。) このファイルは、空白によって区切られるネットワークとネットワ
     ークマスクからなるエントリを複数含みます。 ``#'' から始まる行はコメントと
     見なされます。 securenets ファイルの例を以下に示します:

           # 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

     ypserv がこれらのルールに適合するアドレスからの要求を受け取った場合には、
     通常通り要求を処理します。アドレスがルールに適合しない場合には、要求は無
     視され、警告がログされます。 /var/yp/securenets ファイルが存在しない場合
     には、 ypserv は全てのホストからの接続を許します。

     ypserv は、Wietse Venema の tcpwrapper パッケージをサポートしますが、
     tcpwrapper パッケージは FreeBSD とともに配布されていないため、デフォルト
     では組み込まれていません。しかし libwrap.atcpd.h があれば、容易に
     ypserv を再コンパイルすることができます。これにより、アクセス管理のため
     に、システム管理者は tcpwrapper の設定ファイル (/etc/hosts.allow/etc/hosts.deny) を /var/yp/securenets の代わりに使用できます。

     注: どちらのアクセス制御もそれなりのセキュリティを提供しますが、特権ポー
     トテストと同様に ``IP 詐称 (spoofing)'' 攻撃には無力であることに注意して
     下さい。

   NIS v1 B>互B>換B>性
     このバージョンの ypserv は NIS v1 クライアントに対してある程度サービス可
     能です。 FreeBSD の NIS 実装は NIS v2 プロトコルのみを使用しますが、他の
     実装では古いシステムとのバックワードコンパチビリティのために v1 プロトコ
     ルもサポートしています。そのようなシステムで提供されている ypbind(8) デー
     モンは、実際にはおそらく不要なのですが、 NIS v1 サーバにバインドしようと
     遅延は無視できず、サーバはまだ互いにバインドしようとしますので、障害は残
     ります。)

     特定のサーバに強制的にバインドさせるための詳細は ypbind(8) マニュアルペー
     ジを参照して下さい。


オプション

     以下のオプションが ypserv にてサポートされています。

     -n    このオプションは ypservhosts.bynamehosts.byaddress のマップ
           に対する yp_match 要求を扱う方法を操作します。デフォルトでは、
           ypserv が与えられたホストのエントリをホストマップ中に見付けられな
           かった場合には、エラーを返しそれ以上の処理を行いません。 -n フラグ
           を指定すると、 ypserv はさらなる処理を行います。すぐにあきらめず
           に、ホスト名もしくはアドレスを DNS ネームサーバに問い合わせて解決し
           ようとします。問い合わせが成功すると、 ypserv は偽のデータベースレ
           コードを作成し、それをクライアントに返しますので、クライアントの
           yp_match 要求は成功したように見えます。

           この仕様は SunOS 4.1.x との互換性のために用意されています。そのシス
           テムの標準 C ライブラリではリゾルバが腐っており、ホスト名とアドレス
           の解決のために NIS に依存していました。 FreeBSD のリゾルバは DNS へ
           の問い合わせを直接行えますので、 FreeBSD である NIS クライアントに
           対してのみサービスする場合は、このオプションを有効にする必要はあり
           ません。

     -d    サーバをデバッグモードで実行します。通常 ypserv は異常時のエラー (
           アクセス違反、ファイルアクセス失敗) のみを syslog(3) 機能を使用して
           報告します。デバッグモードでは、サーバは自身をバックグラウンドでは
           実行せず、リクエストを受けるたびに、状態を表す追加のメッセージを標
           準エラー出力に表示します。また、デバッグモードで実行している間は、
           通常とは異なり、 yp_all 要求処理時や DNS 検索処理時に ypserv サブプ
           ロセスを生成しません。 (これらの処理は多くの場合完了までに時間がか
           かるためにサブプロセスにより処理され、親であるサーバは別の要求を処
           理できるようになっています。) これによりデバッグツールによるサーバ
           のトレースが容易になります。

     -p path
           通常 ypserv は NIS マップは /var/yp 以下にあるものと想定します。 -p
           フラグを使用し、別の NIS ルートパスを指定できますので、システム管理
           者はファイルシステム中の別の場所にマップファイルを移動できます。


関連ファイル

     /var/yp/[domainname]/[maps]       NIS マップ
     /etc/host.conf                    リゾルバ設定ファイル
     /var/yp/securenets                ホストアクセス制御ファイル


関連項目

     ypcat(1), db(3), yp(4), rpc.yppasswdd(8), ypbind(8), ypinit(8),
     yppush(8), ypxfr(8)


作者



ABELNET VPSサービス