NIS(ネットワーク情報サービス)

この資料は、UNIX系システムの設定情報を一元管理する仕組みであるNISについて学び、最後にスレーブサーバを実際に構築して動作を確認する演習資料である。対象とする環境はFreeBSDであり、コマンドや設定ファイルの記述はFreeBSDの仕様に従う。

目次

NISとは

NIS(Network Information Service)は、特定の計算機(NISサーバ)が管理するファイルの内容を、他の計算機(NISクライアント)に配布する仕組みである。もともとYellow Pagesと呼ばれていたため、NISのコマンドはすべて「yp」で始まる。NISを使用することで、ユーザ情報やネットワーク設定を一元管理でき、複数の計算機に同じ設定を個別に行う手間を省くことができる。なおNISはRPC(Remote Procedure Call。ある計算機から別の計算機の手続きを呼び出して処理を依頼する通信方式)にもとづいて動作する。

以下はNISで管理できるファイルの例である。

NISによって個人のログイン名とパスワードを管理できる。これにより、NISドメイン内のすべてのマシンに同一のログイン名とパスワードでログインできる。各マシンに個別にユーザを登録する必要はない。

NISドメイン

NISによって一元管理されるファイルを利用するUNIX計算機の集まりをNISドメインと呼ぶ。NISドメインはドメイン名によって区別される。同じネットワーク上に複数のNISドメインが存在しても、クライアントが要求に含めるドメイン名によって、どのサーバが応答すべきかを区別できる。NISドメイン名はDNS(インターネット上のホスト名を管理する仕組み)のドメイン名とは別のものであり、必ずしも一致させる必要はない。

NISドメインのセキュリティ

NISはRPCによるブロードキャスト(同じネットワーク上のすべての相手へ一斉に送る通信)型のサービスであるため、同じドメイン内でypbindを動かしている計算機であれば、NISで管理している情報(パスワードハッシュを含む)を取得できてしまう。NISドメイン名が判明すると、その情報を第三者に取得される危険がある。以下の点に注意すること。

なお、FreeBSDのypserv(NISサーバプログラム)には、接続を許可するホストを制限する「securenets」という機能があり、/var/yp/securenetsに許可するネットワークを記述して使用する。

NISサーバ

NISを運用するためには、サーバとなるコンピュータが少なくとも1台必要である。これをNISサーバと呼び、NISドメインの情報を一括管理する役割を持つ。NISサーバは同一ドメイン内に複数台設置できる。

マスターサーバとスレーブサーバ

複数のNISサーバのうち1台はマスターサーバとして動作させ、残りはスレーブサーバとして動作させる。

マスターサーバは、NISクライアントが参照するオリジナルのファイルを保持・管理する。スレーブサーバは、マスターサーバが持つマップ(NISが配布用に変換したデータベース)のコピーを保持する。マップはdbm(database management。高速な検索を可能にするデータベース形式)で保持される。

マスターサーバはマップの変更をスレーブサーバに配布する。NISクライアントは、マスターサーバとスレーブサーバのうち、最初にレスポンスを返したサーバに接続する。スレーブサーバを設置することで、マスターサーバの負荷分散と、障害時の可用性向上が実現できる。

NIS関係のコマンド

NISのデータを更新するには

マスターサーバは、もとになる設定ファイルを/etc以下にテキスト形式で保持している。このデータを変更した場合は、配布用のマップ(dbm形式)への変換と、スレーブサーバへの再配布が必要となる。この変換と配布は、/var/yp/ディレクトリにあるMakefileによって行う。

例えば、新しいユーザを追加する場合は以下の手順で行う。

  1. NISマスターサーバmoonにログインする

  2. vipwコマンドで/etc/master.passwdにエントリを追加する(vipwはパスワードファイルをロックしながら編集するため、編集中の競合や不整合を防止できる)

  3. /var/yp/ディレクトリでmakeコマンドを実行する(マップへの変換とスレーブへの配布が自動で行われる)

クライアントの設定

以下の設定により、クライアントはNISサーバからユーザ情報やグループ情報を取得できるようになる。

本日の課題:スレーブサーバの構築と動作確認

NISのスレーブサーバを起動し、動作を確認する。本演習では、自分のマシンを一時的にスレーブサーバとして構築し、自分自身をそのサーバに接続させて情報が取得できることを確かめたのち、元の状態に戻す。

スレーブサーバの構築手順

動作確認手順

後片付け

注意すべき点

本来は以下の設定が必要だが、今回は演習のため実施しない。

これらを実施しない場合、マスターサーバでマップが更新されても、今回構築したスレーブサーバには新しいマップが配布されない。

参考文献

最新UNIXハンドブック、伊藤 和人著
フリーUNIXで作るネットワークサーバ構築ガイド、國安和広+秀和システム出版編集部編著
http://www.freebsd.org/ja/handbook/nis.html
http://www.kuis.kyoto-u.ac.jp/imel/tebiki/rvsettei/node2.html
作者:牧之内研 修士1年 兼子 譲,2002年7月4日
校閲を実施