金子邦彦研究室インストールSolarisSolaris で NIS サーバ

Solaris で NIS サーバ

Solaris 上で NIS サーバを動かし, passwd, group, hosts の 3つのファイルを管理し ます。 LAN 内の問い合わせに応じて、これら3つのファイルを配布します. 動作確認まで行ないます。

LAN 内の問い合わせに応じるが, LAN 外の問い合わせには応じない. passwd, group, hosts は管理するが、これら3つのファイル以外は配布しない. ypserv, ypxfrd, yppasswdd を動かします.

事前に調べておく事項

NIS データの作成

NIS サーバで passwd, group, hosts の3つを管理します. ここでの手順では, passwd, group, hosts のごく簡単なサンプルを作る。

  1. NIS ファイル用のディレクトリ作成
    # mkdir /var/yp/nis.inputs
    
  2. NIS 用 passwd 作成
    # vi /var/yp/nis.inputs/passwd
    

    passwd の文法は次のようになります.

    -----
    <ユーザ名>:*:20001:800:<ユーザの説明>:/home/<ユーザ名>:/bin/tcsh
    -----
    
  3. NIS 用 hosts 作成
    # vi /var/yp/nis.inputs/hosts
    

    hosts には、次のように NIS サーバ自身についての情報を含めておきます

    -----
    127.0.0.1 localhost
    <NIS サーバの IP アドレス> <NIS サーバのホスト名>.<DNS ドメイン名> <NIS サーバのホスト名>
    -----
    
  4. NIS 用 group 作成
    # vi /var/yp/nis.inputs/group
    

    group の文法は次のようになります.

    -----
    8th:*:800:
    -----
    

NIS サーバ設定 (設定ファイルと ypinit -m の実行)

  1. 事前の確認
  2. /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=
    
  3. domainname の確認 (domainname コマンド実行)
    domainname
     # 正しい NIS ドメイン名が表示されることを確実に確認する
    

    もし、NIS ドメイン名が正しくないときは、次のコマンドを実行して変更して おく

    /usr/sbin/domainname <NISドメイン名>
    
  4. /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
    
  5. (参考) yppasswdd について

    yppasswd は /var/yp/nis.inputs のパスワードファイルを扱うように自動的 に設定がなされます (/etc/passwd と混同しないこと)。

  6. (オプション) /usr/bin/rpcinfo -p

    ypserv が稼働中であることを確認.

  7. 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 サーバにおけるアクセス制限の設定

  1. /etc/hosts.deny

    portmap, ypserv の2行を次のように設定する. (portmap, ypserv の2行が無ければ、書き加える)

    vi /etc/hosts.deny
    ---
    portmap: ALL
    ypserv: ALL
    ---
    
  2. /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.
    ---
    
  3. /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クライアント側)

  1. ypbind が稼働中か?
    rpcinfo | grep ypbind
     # ypbind についての情報が表示される
    
  2. ypwhich コマンドを実行してみる
    ypwhich
    

    ここで設定した「NISサーバ」が表示されることを確認.

  3. ypcat passwd, ypcat group, ypcat hosts で動作確認
    ypcat passwd
    ypcat group
    ypcat hosts
    

    正しく表示されれば成功

  4. passwd, group, hosts 以外は配布していないことの確認
    ypcat rpc
    ypcat services
    ypcat netid
    ypcat protocols
    ypcat mail
    

    表示されないことを確認

  5. yppasswdd の動作確認手順
    ps -e | grep yppasswd で、rpc.yppasswddが出るか?
    

    クライアント側で

    yppasswd <ユーザー名>
    

    でパスワードが変更できるかどうかを確認

/var/yp/nis.inputs (実データ) の準備について