総合手引 | セクション 8 | English | オプション |
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.d/ypserv から起動されます。
これに対処するために、 FreeBSD の ypserv は master.passwd.byname と master.passwd.byuid のマップを特別な方法で扱います。 サーバがこれら 2 つのマップへのアクセス要求を受け付けると、 要求元の TCP ポートをチェックし、ポート番号が 1023 より大きい場合には エラーを返します。 スーパユーザのみ 1024 より小さい TCP ポートにバインドする事を許されているため、 サーバはこれを利用して特権ユーザからの要求か否かを判定できます。 非特権ユーザからの全ての要求は拒否されます。
また、 FreeBSD の標準 C ライブラリ中の getpwent(3) ルーチンは、スーパユーザが使用した場合には master.passwd.byname と master.passwd.byuid のマップからデータを取得します。 通常のユーザがこれらのルーチンをコールした場合には、標準の passwd.byname と passwd.byuid のマップにアクセスします。後者の 2 つのマップは /var/yp/Makefile により、 master.passwd ファイルをパースし、パスワードフィールドを削除する事により作成されますので、 非特権ユーザに渡しても安全です。 このように master.passwd データベースのシャドウパスワード機構は NIS においても守られます。
# 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 の設定ファイル ( /etc/hosts.allow と /etc/hosts.deny) を /var/yp/securenets の代わりに使用できます。
注: どちらのアクセス制御もそれなりのセキュリティを提供しますが、 特権ポートテストと同様に "IP 詐称 (spoofing)" 攻撃には無力であることに 注意して下さい。
特定のサーバに強制的にバインドさせるための詳細は ypbind(8) マニュアルページを参照して下さい。
| |
このオプションは
ypserv
が
hosts.byname
と
hosts.byaddress
のマップに対する yp_match 要求を扱う方法を操作します。
デフォルトでは、
ypserv
が与えられたホストのエントリをホストマップ中に見付けられなかった場合には、
エラーを返しそれ以上の処理を行いません。
この仕様は SunOS 4.1.x との互換性のために用意されています。 そのシステムの標準 C ライブラリではリゾルバが腐っており、 ホスト名とアドレスの解決のために NIS に依存していました。 FreeBSD のリゾルバは DNS への問い合わせを直接行えますので、 FreeBSD である NIS クライアントに対してのみサービスする場合は、 このオプションを有効にする必要はありません。 | |
| |
サーバをデバッグモードで実行します。 通常 ypserv は異常時のエラー (アクセス違反、ファイルアクセス失敗) のみを syslog(3) 機能を使用して報告します。 デバッグモードでは、サーバは自身をバックグラウンドでは実行せず、 リクエストを受けるたびに、 状態を表す追加のメッセージを標準エラー出力に表示します。 また、デバッグモードで実行している間は、通常とは異なり、 yp_all 要求処理時や DNS 検索処理時に ypserv サブプロセスを生成しません (これらの処理は多くの場合完了までに時間がかかるために サブプロセスにより処理され、 親であるサーバは別の要求を処理できるようになっています)。 これによりデバッグツールによるサーバのトレースが容易になります。 | |
| |
通常
ypserv
は
NIS
マップは
/var/yp
以下にあるものと想定します。
| |
/var/yp/[domainname]/[maps] | |
NIS マップ | |
/etc/nsswitch.conf | |
名前切り替え設定ファイル | |
/var/yp/securenets | |
ホストアクセス制御ファイル | |
YPSERV (8) | February 4, 1995 |
総合手引 | セクション 8 | English | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
“ | The most important thing in the programming language is the name. A language will not succeed without a good name. I have recently invented a very good name and now I am looking for a suitable language. | ” |
— Donald Knuth |