次のページ 前のページ 目次へ

7. NIS+ の設定には何が必要か?

7.1 ソフトウェア

Linux の NIS+ クライアントコードは GNU C ライブラリのバージョン 2 用に 開発されてきました。これを libc5 へ移植したものもあります。 商用アプリケーションのほとんどは libc5 にリンクされていますし、 これらアプリケーションを glibc 向けに再コンパイルすることはできませんから。 ただし libc5 と NIS+ を同時に使う際には問題があります。 スタティックなプログラムは libc5 にリンクすることはできませんし、 このライブラリでコンパイルしたプログラムは 他のバージョンの libc5 では動作しません。

GNU C Library 2.1 を手に入れ、コンパイルする必要があります。 64bit プラットフォームなら GNU C Library 2.1.1 です。 ベースのシステムとして、 glibc ベースの配布パッケージも 必要になります。 Debian 2.x, RedHat 5.x, SuSE Linux 6.x などです。

どのディストリビューションでも、 gcc/g++ コンパイラ、 libstdc++, ncurses を再コンパイルしなければなりません。 Redhat では PAM の設定を大幅に変更しなければなりません。 SuSE Linux 6.0 では shadow パッケージを再コンパイルしなければ なりません。

NIS+ クライアントのソフトウェアは以下から入手できます。

glibc ベースの配布パッケージは以下から入手できます。

GNU C ライブラリのコンパイルは、ソフトウェアに付属の説明に従って下さい。 NYS や glibc のソースをベースにした libc5 へのパッチも存在します。 以下に場所を示します。これらは標準 libc5 をちょっと置き換えてみる 場合などに適しています。

http://www.suse.de/~kukuk/linux/nisplus.html には、より詳細な情報と最新のソースがあります。

7.2 NIS+ クライアントのセットアップ

重要: NIS+ クライアントをセットアップする前に、 Solaris の NIS+ ドキュ メントを読んでサーバ側で必要な作業を行って下さい。この文書ではクライア ント側でどうすればよいかについてしか述べていません!

新しい libc と nis-tools をインストールしたら、NIS+ サーバ上でこの 新たなクライアント用の信任証 (credential) を作成します。 portmap が動作していることを確認するようにして下さい。 次にクライアントにする Linux PC の時刻が NIS+ サーバと一致しているか チェックして下さい。 secure RPC の場合は、信任証の有効期間は 3 分しかありません。すべてのホストで xntpd を走らせるのが良いでしょう。 これらが確認できたら以下を実行します。

domainname nisplus.domain.
nisinit -c -H <NIS+ server>

を実行して cold スタートファイルを初期化します。他のオプションについて は nisinit のマニュアルページを読んで下さい。ドメインネームはリブート のたびに設定されるようにしておいて下さい。あなたのネットワークの NIS+ ドメインネームがわからない場合は、システムかネットワークの管理者に尋ね て下さい。

次に /etc/nsswitch.conf ファイルを変更します。 publickey に書けるサービスは nisplus だけ ("publickey: nisplus") で、他のものは書いてはならないことに注意して下さい。

次に keyserv を起動して下さい。これはブート時に 必ず portmap の直後に起動されるようにしておいて下さい。

keylogin -r
とすればシステムの root の秘密鍵が保管されます (もうこの新しいホストの 公開鍵は NIS+ のサーバに追加しましたよね?)。

"niscat passwd.org_dir" とすれば、 passwd データベースのす べてのエントリを見ることができるはずです。

7.3 NIS+, keylogin, login および PAM

ログインしたときに、ユーザは自分の秘密鍵を keyserv にセットする必要が あります。これは keylogin を呼び出すことによって行われます。 glibc 2.1 とコンパイルされた場合には、 shadow パッケージの login はこれをユーザの代わりに実行してくれます。 PAM を認識する login を用意するには、 pam_keylogin-1.2.tar.gz をインストールし、 /etc/pam.d/login ファイルを変更して pwdb の代わりに pam_unix_auth を使うようにする必要があります (pwdb は NIS+ をサポートしません)。例を示します。

#%PAM-1.0
auth       required     /lib/security/pam_securetty.so
auth       required     /lib/security/pam_keylogin.so
auth       required     /lib/security/pam_unix_auth.so
auth       required     /lib/security/pam_nologin.so
account    required     /lib/security/pam_unix_acct.so
password   required     /lib/security/pam_unix_passwd.so
session    required     /lib/security/pam_unix_session.so

7.4 nsswitch.conf ファイル

ネットワークサービススイッチのファイル /etc/nsswitch.conf は 情報へのアクセス要求が来たときに行う検索の順番を決定するものです。ホス ト名の検索で用いられる /etc/host.conf ファイルと似ています。 例えばこのファイルにおいて

    hosts: files nisplus dns

と指定すれば、ホスト名の検索機能はまずローカルの /etc/hosts ファイルを探し、次に NIS+、そしてドメインネームサービス (/etc/resolv.confnamed) と言う順番で検索を行います。 最後までマッチするものがなければエラーが返されることになります。

NIS+ 用の /etc/nsswitch.conf ファイルは、 以下のようなものにしておけば良いでしょう。


#
# /etc/nsswitch.conf
#
# An example Name Service Switch config file. This file should be
# sorted with the most-used services at the beginning.
#
# The entry '[NOTFOUND=return]' means that the search for an
# entry should stop if the search in the previous entry turned
# up nothing. Note that if the search failed due to some other reason
# (like no NIS server responding) then the search continues with the
# next entry.
#
# Legal entries are:
#
#       nisplus                 Use NIS+ (NIS version 3)
#       nis                     Use NIS (NIS version 2), also called YP
#       dns                     Use DNS (Domain Name Service)
#       files                   Use the local files
#       db                      Use the /var/db databases
#       [NOTFOUND=return]       Stop searching if not found so far
#

passwd:     compat
# for libc5: passwd: files nisplus
group:      compat
# for libc5: group: files nisplus
shadow:     compat
# for libc5: shadow: files nisplus

passwd_compat: nisplus
group_compat:  nisplus
shadow_compat: nisplus

hosts:      nisplus files dns

services:   nisplus [NOTFOUND=return] files
networks:   nisplus [NOTFOUND=return] files
protocols:  nisplus [NOTFOUND=return] files
rpc:        nisplus [NOTFOUND=return] files
ethers:     nisplus [NOTFOUND=return] files
netmasks:   nisplus [NOTFOUND=return] files
netgroup:   nisplus
bootparams: nisplus [NOTFOUND=return] files
publickey:  nisplus
automount:  files
aliases:    nisplus [NOTFOUND=return] files


次のページ 前のページ 目次へ