Solaris で NIS サーバ
Solaris 上で NIS サーバを動かし, passwd, group, hosts の 3つのファイルを管理し ます。 LAN 内の問い合わせに応じて、これら3つのファイルを配布します. 動作確認まで行ないます。
LAN 内の問い合わせに応じるが, LAN 外の問い合わせには応じない. passwd, group, hosts は管理するが、これら3つのファイル以外は配布しない. ypserv, ypxfrd, yppasswdd を動かします.
事前に調べておく事項
- NIS ドメイン名
- NIS サーバの IP アドレス
ifconfig で調べる - NIS サーバのホスト名
hostname コマンドで調べる。 - DNS サーバ IP のアドレス
- DNS ドメイン名 (NIS ドメイン名とは別物なので勘違いしないこと)
NIS データの作成
NIS サーバで passwd, group, hosts の3つを管理します. ここでの手順では, passwd, group, hosts のごく簡単なサンプルを作る。
- NIS ファイル用のディレクトリ作成
# mkdir /var/yp/nis.inputs
- NIS 用 passwd 作成
# vi /var/yp/nis.inputs/passwd
passwd の文法は次のようになります.
----- <ユーザ名>:*:20001:800:<ユーザの説明>:/home/<ユーザ名>:/bin/tcsh -----
- NIS 用 hosts 作成
# vi /var/yp/nis.inputs/hosts
hosts には、次のように NIS サーバ自身についての情報を含めておきます
----- 127.0.0.1 localhost <NIS サーバの IP アドレス> <NIS サーバのホスト名>.<DNS ドメイン名> <NIS サーバのホスト名> -----
- NIS 用 group 作成
# vi /var/yp/nis.inputs/group
group の文法は次のようになります.
----- 8th:*:800: -----
NIS サーバ設定 (設定ファイルと ypinit -m の実行)
- 事前の確認
- NIS サーバ上の /etc/resolv.conf が正しく設定されていること(必須)
- NIS サーバ上の /etc/hosts の中身に間違いがないこと(必須)
次のような2行を含むこと. (NIS マスターサーバと NISスレーブサーバが有る 場合は、この2台について書いておく)
127.0.0.1 localhost <NIS サーバの IP アドレス> <NIS サーバのホスト名>.<DNS ドメイン名> <NIS サーバのホスト名>
-
/var/yp/Makefile を編集
DIR, PWDIR システムをデフォルト値から /var/yp/nis.inputs に変更 します. これは、NIS が管理するデータファイルの置場です。
さらに, all の行を変更して、passwd, group, hosts は管理するが、これら3つのファ イル以外は配布しないようにしています.
DNS 関係について。先頭部分の「B=-b」がコメントになっているのを外 し、「B=」はコメントにします。
vi /var/yp/Makefile # (1) DIR システムを変更 # DIR= /etc # ↓ # DIR= /var/yp/nis.inputs # (2) PWDIR システムを変更 # PWDIR= /etc # ↓ # PWDIR= /var/yp/nis.inputs # (3) all を変更 # all: passwd group ipnodes ... # ↓ # all: passwd group hosts # (4) DNS 関係 # #B=-b # B= # ↓ # B=-b # #B=
- domainname の確認 (domainname コマンド実行)
domainname # 正しい NIS ドメイン名が表示されることを確実に確認する
もし、NIS ドメイン名が正しくないときは、次のコマンドを実行して変更して おく
/usr/sbin/domainname <NISドメイン名>
- /usr/sbin/ypinit -m の実行
警告(Warning)メッセージが出てきたら、熟読し、適切に対処すること。
cd /var/yp /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 サーバが正しく表示されない場合に限り、「next host to add:」に対 # して、NIS サーバ名を入れる 設定が終ったら「ctrl+D」で終了させる
次のように表示されるので、NIS サーバ名が正しく表示されていることを確認 し、「y」で終了させる
The current list of NIS servers looks like this: sol1 Is this correct? [y/n: y] y
- (参考) yppasswdd について
yppasswd は /var/yp/nis.inputs のパスワードファイルを扱うように自動的 に設定がなされます (/etc/passwd と混同しないこと)。
- (オプション) /usr/bin/rpcinfo -p
ypserv が稼働中であることを確認.
- make の実行
設定ファイルのチェックを兼ねる。 (そのため make としないで、わざと make hosts, make passwd, make group のように3手順を踏む)。設定のミスがあったり, ypserv が稼働していないとエラーがでる.
cd /var/yp make hosts make passwd make group
make においてエラーが出たら、設定ファイルを見直して、 「11. ypserv, yppasswdd, ypxfrd の起動」及びそれ以降の全手順をやり直す.
(参考) 今後、/var/yp/nis.inputs 下のファイルを書き換えたら、そのたびに、 「cd /var/yp; make」を実行すること(サーバの再起動などを手動で行なう必 要は無い).
(参考情報) ypserv 等の手動での起動と終了
Solaris ならば、開始は、
/usr/lib/netsvc/yp/ypstart rpcstart
終了は、
/usr/lib/netsvc/yp/ypstop
で出来るので、この時点で、手動での終了と起動をしてみるとよいでしょう。 (なお、/etc/rc2.d/S71rpc で、OSの起動時に、自動的に ypserv 等の開始が行なわれるように設定されている)。
(オプション)パスワードの格納形式の確認
yppasswd コマンドを実行した時に、NIS サーバマシン上でのパスワード形式が、 DES または MD5 のどちらであるかを確 認しておく。
今のパスワードが、DES なのか MD5 なのかは、passwd 等のパスワー ドに $1$ が付いているかで判別します。MD5 なら付いている。
# yppasswd で hoge ユーザの 新しいパスワードを設定した後に、次のコマンドを実行 cat /var/yp/nis.inputs/passwd
NIS サーバにおけるアクセス制限の設定
- /etc/hosts.deny
portmap, ypserv の2行を次のように設定する. (portmap, ypserv の2行が無ければ、書き加える)
vi /etc/hosts.deny --- portmap: ALL ypserv: ALL ---
- /etc/hosts.allow
portmap, ypserv の2行を次のように設定する(portmap, ypserv の2行が無け れば、書き加える). (XXX,YYY,ZZZ の部分は LAN のネットワークアドレスを書く.
vi /etc/hosts.allow --- portmap: XXX.YYY.ZZZ. ypserv: 127.0.0.1 XXX.YYY.ZZZ. ---
- /var/yp/securenets
「XXX.YYY.ZZZ」 の部分は LAN のネットワークアドレス
# vi /var/yp/securenets ----- 255.255.255.255 127.0.0.1 255.255.255.0 XXX.YYY.ZZZ.0 -----
設定を間違うと、NIS サーバと接続できなくなる(接続できるかできないかは ypwhich, ypcat コマンドで確認できる)。
man -s 4 securenets
動作確認手順 (NISクライアント側)
- ypbind が稼働中か?
rpcinfo | grep ypbind # ypbind についての情報が表示される
- ypwhich コマンドを実行してみる
ypwhich
ここで設定した「NISサーバ」が表示されることを確認.
- ypcat passwd, ypcat group, ypcat hosts で動作確認
ypcat passwd ypcat group ypcat hosts
正しく表示されれば成功
- passwd, group, hosts 以外は配布していないことの確認
ypcat rpc ypcat services ypcat netid ypcat protocols ypcat mail
表示されないことを確認
- yppasswdd の動作確認手順
ps -e | grep yppasswd で、rpc.yppasswddが出るか?
クライアント側で
yppasswd <ユーザー名>
でパスワードが変更できるかどうかを確認
/var/yp/nis.inputs (実データ) の準備について
- 旧 NIS サーバから持ってくる
- Solaris マシンから Solaris マシンへの移動なら簡単(passwd, shadow の両方を移動することを忘れないこと) 。FreeBSD から Solaris は shadow ファイルを作るという操作が必要。
- passwd ファイルについて: 必ず root の行は外す。 その他、「システム管理用に作るユーザ (例えば adm, ssh, apache 等)」 は NIS で管理しない方が良い。