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サービス提供用の設定ファイル編集並びに設定を行います。# up2date install yp-tools
# up2date install ypbind
NISドメインの設定
NISサービスは認証単位をドメインで管理します。したがいまして同一NISドメインに所属するコンピュータのみがNIS認証を利用できます。NISドメインの設定はypdomainnameコマンドで行います。
# ypdomainname NISDOMAIN
NISDOMAINの箇所は適宜決定してください。設定されたNISドメイン名はypdomainnameコマンドで確認できます。
# ypdomainname
NISDOMAIN
これだけの設定であればOS再起動時にNISドメインが設定されませんので、システム起動時にNISドメイン設定が行われるように以下の設定ファイルを修正します。NISDOMAIN
/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アドレスを以下のように追記します。#files: 30
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
# /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としました。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マスターサーバ上でNISユーザが追加・削除されたことをNISスレーブサーバに通知する必要があります。この動作を設定するため、NISマスターサーバの設定を一部変更します。設定変更は、NISマスターサーバの/var/yp/Makefile中の下記一行を修正するのみです。
NOPUSH=false
#NOPUSH=true
#NOPUSH=true
NIS構築関連メニュー
- NISマスターサーバ構築
- NISシステムの主要サーバであるマスターサーバ(ypserv、yppasswddサービス提供)構築手順を紹介しています。
- NISスレーブサーバ構築
- NISサービスの安定化を行うため、冗長サーバとしてNISスレーブサーバを構築する手順を紹介しています。
- NISクライアント設定
- NISによる認証を行うためのクライアント設定手順を紹介しています。