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 ypservypservパッケージは、スレーブサーバがマスターサーバからマップを取得する際に必要となる。 -
NIS デフォルト設定ファイルの編集
/etc/default/nisファイルを編集し、NIS サーバの種類をスレーブとして設定する。sudo vi /etc/default/nis以下の行を追加または修正する。
NISSERVER=slave -
NIS ドメイン名およびマスターサーバの設定
NIS ドメイン名とマスターサーバを
/etc/yp.confファイルに設定する。sudo vi /etc/yp.confファイルに以下の行を追加または修正する。既に存在する場合はコメントアウトを解除する。
には実際のマスターサーバ情報を記載する。domainserver 例:
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」を入力して終了させる。