NIS / OpenLDAP Tips

RedHat Enterprise Linux (RHEL) でのNISスレーブサーバ構築

NISサービスは古くから利用されており、その歴史的背景から同一セグメント内での利用に限定されていました。その理由として、NISサーバを参照する場 合、ネットワークブロードキャストを利用していたことが挙げられます。
最近のネットワークはより複雑化しており、小規模ネットワークにおいても同一セグメント内で完結するネットワークは少なくなってきています。NISサーバ の動作も日々進歩しており、RHELで利用できるNISサービスはクライアント側の設定により、セグメントを超えたNISサービス利用が可能であり、また 複数のNISドメインサーバを指定することができます。
ただし、ここでは小規模の同一セグメント内NISサービス構築を説明するにとどめます。また、サービスの冗長性を確保するためにNISスレーブサーバを導 入することを想定します。したがいまして、対象とするネットワークは以下のような構成になります。

NISサーバからユーザ情報を参照し、各サーバ(アプリケーションサーバ、ファイルサーバ・・・)のアカウントを管理します。さらに、統合認証システムを構築する際にはファイルサーバ上でNFSサービスを提供することが期待されますが、ここでは割愛します。

NISスレーブサーバ構築


NISスレーブサーバはNISマスターサーバが何らかの原因で機能停止になった場合に認証サービスをマスターサーバの代わりに提供するサービスです。NISマスターサーバが停止する原因として、
  1. ネットワーク障害
  2. ハードウェア障害
  3. 攻撃による停止
  4. 人為的操作ミス
などが考えられますが、いずれにせよシステム規模が大きくなるに従って負荷分散などの効果もありますのでNISサーバ構築をお勧めします。

NISサービスプログラムのインストール


up2dateコマンド、yumコマンドなどを利用してNISサービスをインストールします。
# up2date install ypserv
# up2date install yp-tools
# up2date install ypbind
つぎに、NISサービス提供用の設定ファイル編集並びに設定を行います。

NISドメインの設定


NISサービスは認証単位をドメインで管理します。したがいまして同一NISドメインに所属するコンピュータのみがNIS認証を利用できます。NISドメインの設定はypdomainnameコマンドで行います。
# ypdomainname NISDOMAIN
NISDOMAINの箇所は適宜決定してください。設定されたNISドメイン名はypdomainnameコマンドで確認できます。
# ypdomainname
NISDOMAIN
これだけの設定であればOS再起動時にNISドメインが設定されませんので、システム起動時にNISドメイン設定が行われるように以下の設定ファイルを修正します。
/etc/sysconfig/networkに下記一行を追記します。
NISDOMAIN=NISDOMAIN

NIS利用範囲(ネットワーク)の設定


NISを利用する範囲を限定することで、不要なNISサーバへのアクセスを防ぐことができます。この設定は、設定ファイル
/var/yp/securenetsに下記一行を追加することで実現します。
255.255.255.0 192.168.0.0
ネットワーク範囲は適切に設定してください。

NISサーバ設定ファイルの変更


小規模ネットワークでNISサーバを構築する場合、その高速性に比べてその利便性を向上するため、キャッシュ設定を停止することをお勧めします。これにより、ユーザアカウントの追加・削除時の動作不具合、パスワード変更反映の即時実行が期待されます。
設定は、/etc/ypserv.confの下記行を変更します。
files: 0
#files: 30
また、同ファイルに対してNISマスターサーバのIPアドレスを以下のように追記します。
trusted_master: 192.168.0.1
これにより、NISサーバからのデータベースアップデートを受け付けることができます。

NISサービスの起動


NISサーバ機能を提供するために、rpcgssd、rpcidmapd、ypservサービスを起動します。また、自身がNIS情報を参照できるようにypbindサービスを起動します。
# /sbin/chkconfig rpcgssd on
# /sbin/chkconfig rpcidmapd on
# /sbin/chkconfig ypserv on
# /sbin/chkconfig ypbind on
# /sbin/service rpcgssd start
# /sbin/service prcidmapd start
# /sbin/service ypserv start
# /sbin/service ypbind start

NISデータベースの初期化


ypinitコマンドを利用し、初期NISデータベースを構築します。
/usr/lib/yp/ypinit -s hpcgwi
We will need a few minutes to copy the data from nismaster.
Transferring services.byservicename...
Trying ypxfrd ... success

Transferring hosts.byname...
Trying ypxfrd ... success

Transferring group.byname...
Trying ypxfrd ... success

Transferring passwd.byname...
Trying ypxfrd ... success

Transferring passwd.byuid...
Trying ypxfrd ... success

Transferring mail.aliases...
Trying ypxfrd ... success

Transferring services.byname...
Trying ypxfrd ... success

Transferring hosts.byaddr...
Trying ypxfrd ... success

Transferring netid.byname...
Trying ypxfrd ... success

Transferring group.bygid...
Trying ypxfrd ... success


nisslave's NIS data base has been set up.
If there were warnings, please figure out what went wrong, and fix it.

At this point, make sure that /etc/passwd and /etc/group have
been edited so that when the NIS is activated, the data bases you
have just created will be used, instead of the /etc ASCII files.
以上でNISスレーブサーバの設定は完了です。ここで、NISマスターサーバ、NISスレーブサーバのホスト名はそれぞれnismaster、nisslaveとしました。

NISマスターサーバ設定変更


NISスレーブサーバを構築した場合、NISマスターサーバ上でNISユーザが追加・削除されたことをNISスレーブサーバに通知する必要があります。この動作を設定するため、NISマスターサーバの設定を一部変更します。

設定変更は、NISマスターサーバの/var/yp/Makefile中の下記一行を修正するのみです。
NOPUSH=false
#NOPUSH=true