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 サーバの Web ページ に記述した手順とほぼ同じであるため、ここでは繰り返して書かない。違いに加えて、Ubuntu 24.04 LTS 環境での設定に必要な手順を追記する。

  1. 必要なパッケージのインストール

    NIS スレーブサーバとして動作させるために必要なパッケージをインストールする。

    sudo apt update
    sudo apt install ypbind yp-tools ypserv

    ypserv パッケージは、スレーブサーバがマスターサーバからマップを取得する際に必要となる。

  2. NIS デフォルト設定ファイルの編集

    /etc/default/nis ファイルを編集し、NIS サーバの種類をスレーブとして設定する。

    sudo vi /etc/default/nis

    以下の行を追加または修正する。

    NISSERVER=slave
  3. 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 での設定が一般的である。

  4. NIS データの作成(マスターからの配送)

    NIS サーバの Web ページ とは異なり、スレーブサーバでは NIS データの作成 (passwd, group, hosts の作成) を行わない。データは NIS マスタサーバから配送されてくるものを使用する。

  5. rpcbind サービスの起動と有効化

    NIS は RPC (Remote Procedure Call) を利用するため、RPC のポートマッパーである rpcbind サービスが動作している必要がある。サービスを起動し、システム起動時に自動実行されるように設定する。

    sudo systemctl enable rpcbind
    sudo systemctl start rpcbind

    ステータスを確認する。

    systemctl status rpcbind
  6. ypbind デーモンの起動と有効化

    NIS クライアント機能(ypbind)を起動し、システム起動時に自動実行されるように設定する。

    sudo systemctl enable ypbind
    sudo systemctl start ypbind

    ステータスを確認する。

    systemctl status ypbind
  7. 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

    指示に従い、設定を進める。

  8. make の実行は不要

    マスタサーバのように /var/yp ディレクトリで make コマンドを実行する必要はない。

  9. ファイアウォール設定とアクセス制限

    ファイアウォール (ufw など) を使用している場合は、NIS 通信に必要なポート (RPC/Portmapper, ypserv, ypxfrd など) を許可する必要がある。また、スレーブサーバでも /etc/ypserv.securenets ファイルを適切に設定し、アクセスを許可するネットワークを制限することでセキュリティを強化すべきである。

NIS マスタサーバ上での設定

ここからの設定は、NIS スレーブサーバではなく NIS マスタサーバ上で実行する必要がある手順である。

  1. Makefile の書き換え

    /var/yp/Makefile を編集し、スレーブサーバへのマップデータの自動プッシュを有効にする。

    cd /var/yp
    vi Makefile

    以下の行を探し、書き換える。

    NOPUSH=true

    この行を以下のように変更する。

    NOPUSH=false

    この変更により、マップデータが更新された際に yppush コマンドが自動的に実行されるようになる。スレーブサーバへのマップ更新が反映されない場合は、マスターサーバで cd /var/yp && make コマンドを実行することで強制的に更新とプッシュを行うことができる。

  2. 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」を入力して終了させる。