YPSERV
Section: Maintenance Commands (8)
索引
jman
BSD mandoc
索引
名称
ypserv
- NIS データベースサーバ
索引
書式
[-n
]
[-d
]
[-p path
]
索引
解説
NIS
は複数の UNIX ベースのマシン間で
共通の設定ファイルの集合を共有するための
RPC ベースのサービスです。
NIS
では、
/etc/hosts
/etc/passwd
/etc/group
といった、ほとんどの環境で頻繁に更新されるファイルの複数のコピーを
システム管理者が更新する必要は無く、
計算機のグループで一箇所で更新可能な 1 組のデータを共有することができます。
ユーティリティは
NIS
ドメイン
内のクライアントシステムに
NIS
データベースを配布するサーバです。
NIS
ドメイン内のクライアントは
domainname(1)
コマンドを使用し、
がサービスしているドメイン名を設定しなければなりません。
また、単一
NIS
ドメイン中に複数のサーバが存在しうるため、
クライアントは、
ypbind(8)
を実行させ、特定のサーバに接続する必要もあります。
によって配布されるデータベースは
/var/yp/[domainname]
に格納されます。
ここで
domainname
はサービスを受けるドメイン名です。
この様なディレクトリは様々なドメイン名にて複数存在可能ですが、
単一の
デーモンにて全て処理可能です。
データベース (もしくはしばしば
マップ
と呼ばれます)は、様々なシステムファイルをソースとして
/var/yp/Makefile
によって作成されます。
データベースファイルは
db(3)
フォーマットであり、レコード数が多くとも高速に検索可能です。
Fx では、セキュリティのため、マップの読み書きは root のみ可能です。
技術的には、このような制限はパスワードマップにのみ必要ですが、
他のマップの内容は誰もが読める他のファイルに書いてありますので、
この様な制約は害ではなく、現実的であると考えられています。
ユーティリティは
/etc/rc.conf
にて有効にされている場合に
/etc/rc.d/ypserv
から起動されます。
索引
特別な仕様
Fx のパスワードデータベースを
NIS
によって配布する場合にいくつかの問題があります。
Fx は通常、暗号化したパスワードを、root のみ読み書き可能な
/etc/master.passwd
にのみ格納します。
このファイルを
NIS
マップにすると、セキュリティが完全に破れてしまいます。
これに対処するために、
Fx の
は
master.passwd.byname
と
master.passwd.byuid
のマップを特別な方法で扱います。
サーバがこれら 2 つのマップへのアクセス要求を受け付けると、
要求元の TCP ポートをチェックし、ポート番号が 1023 より大きい場合には
エラーを返します。
スーパユーザのみ 1024 より小さい TCP ポートにバインドする事を許されているため、
サーバはこれを利用して特権ユーザからの要求か否かを判定できます。
非特権ユーザからの全ての要求は拒否されます。
また、
Fx の標準 C ライブラリ中の
getpwent(3)
ルーチンは、スーパユーザが使用した場合には
master.passwd.byname
と
master.passwd.byuid
のマップからデータを取得します。
通常のユーザがこれらのルーチンをコールした場合には、標準の
passwd.byname
と
passwd.byuid
のマップにアクセスします。後者の 2 つのマップは
/var/yp/Makefile
により、
master.passwd
ファイルをパースし、パスワードフィールドを削除する事により作成されますので、
非特権ユーザに渡しても安全です。
このように
master.passwd
データベースのシャドウパスワード機構は
NIS
においても守られます。
索引
注
マスタサーバとスレーブサーバの設定
ypinit(8)
は便利なスクリプトであり、
NIS
のマスタサーバおよびスレーブサーバの設定の助けになります。
制限
NIS
環境にてシャドウパスワードを使用することに起因する問題が 2 つあります。
ユーザは次のことに気をつけねばなりません。
-
`TCP ポートが 1024 より小さい'
というテストは非常に簡単であるため、
同一ネットワーク上の、無制限のアクセスが可能なマシンを持つユーザは
これを破る事が可能です
(UNIX ベースではないオペレーティングシステムを実行するマシンでも可能です)。
-
Fx システムを、シャドウパスワードをサポートしない非
Fx クライアント
(ほとんどがそうです) に対するサーバにしようとしている場合には、
/var/yp/Makefile
の
UNSECURE=True
エントリのコメントを外し、
シャドウパスワードを無効にする必要があります。
これにより、
passwd.byname
と
passwd.byuid
のマップに、非
Fx クライアントが
NIS
を通じてユーザ認証を
行うために必要とする、
有効な暗号化されたパスワードフィールドが含まれるようになります。
セキュリティ
一般的に、リモートユーザは、ドメイン名を知ってさえいれば、RPC を
に発行し、
NIS
マップの内容を取得可能です。
このような権限の無いトランザクションを防ぐために、
には
securenets
と呼ばれる、あるホストの集合にのみアクセスを制限する機能があります。
起動時に、
は 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
がこれらのルールに適合するアドレスからの要求を受け取った場合には、
通常通り要求を処理します。
アドレスがルールに適合しない場合には、要求は無視され、警告がログされます。
/var/yp/securenets
ファイルが存在しない場合には、
は全てのホストからの接続を許します。
ユーティリティは、Wietse Venema の
tcpwrapper
パッケージをサポートします。
これにより、アクセス管理のために、
システム管理者は tcpwrapper の設定ファイル
( /etc/hosts.allow
と
/etc/hosts.deny
を
/var/yp/securenets
の代わりに使用できます。
注: どちらのアクセス制御もそれなりのセキュリティを提供しますが、
特権ポートテストと同様に
``IP 詐称 (spoofing)''
攻撃には無力であることに
注意して下さい。
NIS v1 互換性
このバージョンの
は
NIS
v1 クライアントに対してある程度サービス可能です。
Fx の
NIS
実装は
NIS
v2 プロトコルのみを使用しますが、
他の実装では古いシステムとのバックワードコンパチビリティのために
v1 プロトコルもサポートしています。
そのようなシステムで提供されている
ypbind(8)
デーモンは、実際にはおそらく不要なのですが、
NIS
v1 サーバにバインドしようとします
(そして、v2 サーバから返答を受け取ったとしてもサーバを探すために
ブロードキャストし続けます)。
このバージョンの
では通常のクライアントの呼び出しはサポートされていますが、
v1 マップ転送要求は扱いません。
すなわち、古い
NIS
サーバとともに、マスタもしくはスレーブとして使用することはできません。
好運なことに、今日ではこの様なサーバは存在しないでしょう。
NIS クライアントでもある NIS サーバ
複数のサーバが存在するドメインにおいて、
サーバが
NIS
クライアントでもある場合には、
の実行に注意を払う必要があります。
バインド要求をブロードキャストさせてサーバ間でバインドさせるのではなく、
サーバを自分自身にバインドすることは一般的には良い考えです。
あるサーバがダウンし、他のサーバがそのサーバに依存していた場合には、
奇妙な障害が生じ得ます (結果として全てのクライアントがタイムアウトし、
他のサーバにバインドしようとしますが、遅延は無視できず、
サーバはまだ互いにバインドしようとしますので、障害は残ります)。
特定のサーバに強制的にバインドさせるための詳細は
ypbind(8)
マニュアルページを参照して下さい。
索引
オプション
以下のオプションが
にてサポートされています。
- -n
-
このオプションは
が
hosts.byname
と
hosts.byaddress
のマップに対する yp_match 要求を扱う方法を操作します。
デフォルトでは、
が与えられたホストのエントリをホストマップ中に見付けられなかった場合には、
エラーを返しそれ以上の処理を行いません。
-n
フラグを指定すると、
はさらなる処理を行います。
すぐにあきらめずに、ホスト名もしくはアドレスを DNS ネームサーバに問い合わせて
解決しようとします。
問い合わせが成功すると、
は偽のデータベースレコードを作成し、それをクライアントに返しますので、
クライアントの yp_match 要求は成功したように見えます。
この仕様は SunOS 4.1.x との互換性のために用意されています。
そのシステムの標準 C ライブラリではリゾルバが腐っており、
ホスト名とアドレスの解決のために
NIS
に依存していました。
Fx のリゾルバは DNS への問い合わせを直接行えますので、
Fx である
NIS
クライアントに対してのみサービスする場合は、
このオプションを有効にする必要はありません。
- -d
-
サーバをデバッグモードで実行します。
通常
は異常時のエラー (アクセス違反、ファイルアクセス失敗) のみを
syslog(3)
機能を使用して報告します。
デバッグモードでは、サーバは自身をバックグラウンドでは実行せず、
リクエストを受けるたびに、
状態を表す追加のメッセージを標準エラー出力に表示します。
また、デバッグモードで実行している間は、通常とは異なり、
yp_all 要求処理時や DNS 検索処理時に
ypserv
サブプロセスを生成しません
(これらの処理は多くの場合完了までに時間がかかるために
サブプロセスにより処理され、
親であるサーバは別の要求を処理できるようになっています)。
これによりデバッグツールによるサーバのトレースが容易になります。
- -p path
-
通常
は
NIS
マップは
/var/yp
以下にあるものと想定します。
-p
フラグを使用し、別の
NIS
ルートパスを指定できますので、
システム管理者はファイルシステム中の別の場所にマップファイルを移動できます。
索引
関連ファイル
- /var/yp/[domainname]/[maps]
-
NIS
マップ
- /etc/nsswitch.conf
-
名前切り替え設定ファイル
- /var/yp/securenets
-
ホストアクセス制御ファイル
索引
関連項目
ypcat(1),
db(3),
hosts_access5,
rpc.yppasswdd8,
yp(8),
ypbind(8),
ypinit(8),
yppush(8),
ypxfr(8)
索引
作者
An Bill Paul Aq wpaul@ctr.columbia.edu
索引
歴史
このバージョンの
が最初に登場したのは
Fx 2.2
です。
索引
Index
- 名称
-
- 書式
-
- 解説
-
- 特別な仕様
-
- 注
-
- マスタサーバとスレーブサーバの設定
-
- 制限
-
- セキュリティ
-
- NIS v1 互換性
-
- NIS クライアントでもある NIS サーバ
-
- オプション
-
- 関連ファイル
-
- 関連項目
-
- 作者
-
- 歴史
-
Time: 07:07:47 GMT, January 12, 2009