NIS スレーブサーバ

Index

はじめに

NIS (Network Information System) は、ユーザ名、パスワード、グループ、ホスト名などの情報を 集約して複数のマシンで共有する仕組みです。NIS は RPC を用いたクライアント/サーバ方式で動作し、 マスターサーバスレーブサーバクライアントから構成されます。

スレーブサーバは、マスターサーバの NIS マップの複製を保持します。これにより、 マスターサーバが停止した場合の冗長性が確保され、クライアントは最初に応答したサーバに バインドするため負荷の分散にもなります。ここではスレーブサーバの設定を行います。

FreeBSD が実装しているのは NIS プロトコルバージョン 2 です。 NIS の通信は暗号化されないため、アクセスできるホストを /var/yp/securenets で制限し、あわせて ipfw によるパケットフィルタリング で LAN 外からの要求を遮断します。

参考 Web ページ:FreeBSD ハンドブック「Network Servers」の NIS の節 https://docs.freebsd.org/en/books/handbook/network-servers/#network-nis

To Index

NIS クライアントとしての設定

スレーブサーバはマスターサーバから NIS マップを転送して動作します。 そのために、まず NIS クライアントとしての設定を行います。作業は root 権限で行います。

To Index

マスターサーバ側での登録

スレーブサーバは、マスターサーバの ypservers マップに登録されていなければ マップの更新通知 (yppush) を受け取れません。マスターサーバ側で次の作業を行います。

To Index

NIS スレーブサーバの設定

To Index

起動時の設定

起動時に自動的に NIS スレーブサーバが立ち上がるように /etc/rc.conf を設定します。 起動時に rpcbind, ypserv, ypbind が立ち上がります。

# vi /etc/rc.conf
-----
rpcbind_enable="YES"
nisdomainname="<NISドメイン名>"
nis_server_enable="YES"
nis_client_enable="YES"
nis_client_flags="-S <NISドメイン名>,<NISマスターサーバマシン名>"
-----

FreeBSD 5.0 以降、ポートマッパのコマンド名とサービス名は portmap から rpcbind に変更されています。古い解説にある portmap_enable ではなく rpcbind_enable を使用します。

To Index

マップの定期同期と動作確認

マスターサーバは変更のあったマップをスレーブサーバへ自動的に push しますが、 通知が届かなかった場合に備え、スレーブサーバ側でも定期的にマップを転送します。 /etc/crontab に次の行を追加します。

# vi /etc/crontab
-----
20      *       *       *       *       root   /usr/libexec/ypxfr passwd.byname
21      *       *       *       *       root   /usr/libexec/ypxfr passwd.byuid
-----

設定後、NIS のファイルが参照できるかを確認します。

# ypwhich
# ypcat passwd
# ypcat group
# ypcat hosts
To Index