NIS スレーブサーバ
【概要】 NIS スレーブサーバを Ubuntu 24.04 LTS 上で動作させるための設定手順について述べる。 NISスレーブサーバのUbuntu 24.04 LTSでの設定手順。ypbind, yp-tools, ypservパッケージをインストールし、/etc/default/nisと/etc/yp.confでドメイン、マスターを指定。rpcbind, ypbindをsystemdで管理。ypinit -sで初期設定し、ファイアウォールを設定。マスター側Makefile修正とypinit -mでスレーブを登録する。NIS スレーブサーバは、LAN 内の問い合わせに応答し、LAN 外の問い合わせには応答しないように設定する。
事前に調べておく事項
以下の事項を事前に調べておく必要がある。また、関連するすべてのNISサーバのIPアドレスとホスト名を/etc/hosts
ファイルに正確に記載しておく必要がある。
- NIS ドメイン名
- NIS スレーブサーバの IP アドレス
(ip addr
コマンドで調べる) - NIS スレーブサーバのホスト名
(hostname
コマンドで調べる) - DNS サーバの IP アドレス
- DNS ドメイン名 (NIS ドメイン名とは異なるため、混同しないこと)
設定
本記事は、参照先の NIS サーバの Web ページ に記述した手順とほぼ同じであるため、ここでは繰り返して書かない。違いに加えて、Ubuntu 24.04 LTS 環境での設定に必要な手順を追記する。
-
必要なパッケージのインストール
NIS スレーブサーバとして動作させるために必要なパッケージをインストールする。
sudo apt update sudo apt install ypbind yp-tools ypserv
ypserv
パッケージは、スレーブサーバがマスターサーバからマップを取得する際に必要となる。 -
NIS デフォルト設定ファイルの編集
/etc/default/nis
ファイルを編集し、NIS サーバの種類をスレーブとして設定する。sudo vi /etc/default/nis
以下の行を追加または修正する。
NISSERVER=slave
-
NIS ドメイン名およびマスターサーバの設定
NIS ドメイン名とマスターサーバを
/etc/yp.conf
ファイルに設定する。sudo vi /etc/yp.conf
ファイルに以下の行を追加または修正する。既に存在する場合はコメントアウトを解除する。
には実際のマスターサーバ情報を記載する。domain
server 例:
domain mydb.is.kyushu-u.ac.jp server cent1.db.is.kyushu-u.ac.jp
/etc/defaultdomain
ファイルに NIS ドメイン名を設定することでも永続的なドメイン設定は可能であるが、/etc/yp.conf
での設定が一般的である。 -
NIS データの作成(マスターからの配送)
NIS サーバの Web ページ とは異なり、スレーブサーバでは NIS データの作成 (passwd, group, hosts の作成) を行わない。データは NIS マスタサーバから配送されてくるものを使用する。
-
rpcbind
サービスの起動と有効化NIS は RPC (Remote Procedure Call) を利用するため、RPC のポートマッパーである
rpcbind
サービスが動作している必要がある。サービスを起動し、システム起動時に自動実行されるように設定する。sudo systemctl enable rpcbind sudo systemctl start rpcbind
ステータスを確認する。
systemctl status rpcbind
-
ypbind
デーモンの起動と有効化NIS クライアント機能(
ypbind
)を起動し、システム起動時に自動実行されるように設定する。sudo systemctl enable ypbind sudo systemctl start ypbind
ステータスを確認する。
systemctl status ypbind
-
ypinit
の実行(スレーブ設定)NIS マスタサーバからマップを初期取得するため、
ypinit
を実行する。
には実際のマスターサーバのホスト名を記載する。cd /var/yp sudo /usr/lib/yp/ypinit -s
例:
sudo /usr/lib/yp/ypinit -s cent1.db.is.kyushu-u.ac.jp
指示に従い、設定を進める。
-
make
の実行は不要マスタサーバのように
/var/yp
ディレクトリでmake
コマンドを実行する必要はない。 -
ファイアウォール設定とアクセス制限
ファイアウォール (ufw など) を使用している場合は、NIS 通信に必要なポート (RPC/Portmapper, ypserv, ypxfrd など) を許可する必要がある。また、スレーブサーバでも
/etc/ypserv.securenets
ファイルを適切に設定し、アクセスを許可するネットワークを制限することでセキュリティを強化すべきである。
NIS マスタサーバ上での設定
ここからの設定は、NIS スレーブサーバではなく NIS マスタサーバ上で実行する必要がある手順である。
-
Makefile の書き換え
/var/yp/Makefile
を編集し、スレーブサーバへのマップデータの自動プッシュを有効にする。cd /var/yp vi Makefile
以下の行を探し、書き換える。
NOPUSH=true
この行を以下のように変更する。
NOPUSH=false
この変更により、マップデータが更新された際に
yppush
コマンドが自動的に実行されるようになる。スレーブサーバへのマップ更新が反映されない場合は、マスターサーバでcd /var/yp && make
コマンドを実行することで強制的に更新とプッシュを行うことができる。 -
ypinit
の実行(マスタ設定とスレーブ登録)NIS マスタサーバとして
ypinit -m
を実行する際に、スレーブサーバを登録する。ypinit
の場所がよく分からないときはlocate ypinit
コマンドで探すことができる。cd /var/yp sudo /usr/lib/yp/ypinit -m
次のように表示されるので確認する。
servers. cent1.db.is.kyushu-u.ac.jp is in the list of NIS server hosts. Please continue to add the names for the other hosts, one per line. When you are done with the list, type a
. next host to add: cent1.db.is.kyushu-u.ac.jp next host to add: ここで、プロンプトに対して NIS スレーブマシンのホスト名を正しく入力する必要がある。
設定が終ったら
Ctrl+D
で入力を終了させる。終了時に、登録された NIS サーバの一覧が表示されるので、リストに目的のスレーブサーバが含まれていることを確認し、「y」を入力して終了させる。