コンソールサーバー NIS HOWTO, NISを使ったポートアクセス管理


最終更新:2006年11月22日


SCS NISを使ったポートアクセス管理

注記: NIS に対するポートアクセスの管理機能の拡張については,SCS本体の /usr/local/doc/nis に次の関連文書がおさめられています.
[admin@scs nis]$ ls Makefile.nis.portAccess lsi_port_access lsi_port_users lsi-nis-HOWTO lsi_port_awk yp_notes
以下は,lsi-nis-HOWTO Date: 2004/07/29 14:29:45 Revision: 1.3 に加筆したものです.


Logical Solutions (LSI)
Secure Console Server (SCS)
NIS HOWTO

NIS を使ったユーザー認証とポートアクセス管理の運用

0. nfs の運用

NISユーザーアカウントのホームディレクトリはNISサーバ上に置き,NFSクライエントの /home ディレクトリは NFSサーバーの /home にnfsマウントします. よって以下の手順で用意するNISサーバーのNFSサーバーを起動しておき, /etc/export を設定して NFSクライエントからマウントを受け付けるようにしておきます.

NFSサーバー側で
service portmap status
service nfs start
/etc/export を設定
exportfs -a
showmount -e localhost

NFSクライエント側で
service protmap status
service nfslock start
showmount -e NFSサーバー名またはIPアドレス


1. NISサーバの用意

NIS (以前は YP イエローページ) を設定します. 例として RedHat Linux 上にまず マスターNISサーバを設定します.NISの設定方法はOSにより多少異なりますから,それぞれのOSのマニュアルを合わせて参照ください.

1.1 NIS ドメイン名の設定

NISサーバーに NISドメイン名を設定します.セキュリティー上の理由から,NISドメイン名にはDNSドメインとは異なる名前をつけます.この例では NISドメイン名として “scsdomain” を設定します.

# nisdomain scsdomain

1.2 NISサーバの起動

portmap が実行されているか確認し,走っていなければ起動します.

[root@scs223 root]# service portmap status
portmap (pid 17412) を実行中...
[root@scs223 root]#

[root@scs root]# service portmap start

OS起動時に自動起動するように設定します.
[root@scs223 root]# chkconfig --list portmap
portmap         0:オフ  1:オフ  2:オフ  3:オフ  4:オフ  5:オフ  6:オフ
[root@scs223 root]# chkconfig --level 345 portmap on
[root@scs223 root]# chkconfig --list portmap
portmap         0:オフ  1:オフ  2:オフ  3:オン  4:オン  5:オン  6:オフ
[root@scs223 root]#

NISサーバーを起動するのにOSを再起動する必要はありません.

RedHat Linux では次のようにしてNISサーバを起動します.
[root@water root]# /sbin/service ypserv start
また NIS サーバはいつでも停止できます.
[root@water root]# /sbin/service ypserv stop
NIS サーバの再起動は.
[root@water root]# /sbin/service ypserv restart ypserv の起動を確認します.
[root@scs sysconfig]# rpcinfo -u localhost ypserv プログラム 100004 バージョン 1 の準備が完了し待機中です プログラム 100004 バージョン 2 の準備が完了し待機中です [root@scs sysconfig]#
次回のOS起動時に ypserv が自動的に起動するようにします.
[root@scs]# chkconfig --level 345 ypserv on [root@scs]# chkconfig --list ypserv ypserv 0:オフ 1:オフ 2:オフ 3:オン 4:オン 5:オン 6:オフ [root@scs]#

1.3 Makefile ファイルを編集します

/var/yp ディレクトリに移り,NISマップの Makefile ファイルを確認します. Makefileall: にリストされたマップが共有されます.この例では passwdshadowgroup をNISで共有します.

1.4 ypinit の実行

Makefile を準備したら, -m オプションをつけて ypinit コマンドを実行し, NIS (YP) を初期化します. -m オプションは,マスターNISサーバとしてシステムを立ち上げることを意味します.
[root@water root]# /usr/lib/yp/ypinit -m
このコマンドを実行するとシステムの応答が表示されます.セカンダリNISサーバーの入力を求められたら入力します.すべてのセカンダリNISサーバー名を入力したら CTRL-D を入力します. この入力は /var/yp/ypservers ファイルに保存されます.後ほどこのファイルを変更することもできます.

NISで共有するいずれかのファイル(たとえば /etc/passwd )を更新した場合は,次のコマンドを実行します.
[root@water root]# cd /var/yp; make

1.5 NISサーバーにNISクライエントのホスト名かIPアドレスを登録します

次に NIS ドメインに加わることを許すクライエントを登録します. /var/yp/securenets ファイルを編集して,参加を許可するホストを,"host" 行としてリストに加えます.以下に設定例を示します.詳しくは man ypserv を参照してください.

# # securenets This file defines the access rights to your NIS server # for NIS clients. This file contains netmask/network # pairs. A clients IP address needs to match with at least # one of those. # # One can use the word "host" instead of a netmask of # 255.255.255.255. Only IP addresses are allowed in this # file, not hostnames. # # Always allow access for localhost 255.0.0.0 127.0.0.0 # This line gives access to everybody. PLEASE ADJUST! host 192.168.0.231 host 192.168.0.232


2. NIS クライエントの設定


2.1 NIS ドメインの設定


クライエントに NISサーバーに設定した NISドメイン名を設定します.この例ではNISサーバーにNISドメイン名 “scsdomain” を設定していますので,クライエントにも同じNISドメイン名を設定します.

# nisdomain scsdomain

2.1 NIS サーバーの指定


クライエントの /etc/yp.conf ファイルに参照する NIS サーバーを指定します. 次の書式の行をこのファイルに追記します.

domain your_domain_name server your_NIS_server_name

ここで, your_domain_name は,NIS サーバーに登録した NISドメイン名, your_NIS_server が NIS サーバーのホスト名ないしIPアドレスです. 2つの記述方法がありますので, /etc/yp.conf ファイルを参照してください.
# /etc/yp.conf - ypbind configuration file # Valid entries are # #domain NISDOMAIN server HOSTNAME # Use server HOSTNAME for the domain NISDOMAIN. domain scsdomain server nismaster.mydomain.co.jp # #domain NISDOMAIN broadcast # Use broadcast on the local net for domain NISDOMAIN # #ypserver HOSTNAME # Use server HOSTNAME for the local domain. The # IP-address of server must be listed in /etc/hosts. #


2.2 NIS クライエントデーモンを起動します

portmap が実行されているか確認し,走っていなければ起動します.

[root@scs223 root]# service portmap status
portmap (pid 17412) を実行中...
[root@scs223 root]#

[root@scs root]# service portmap start

OS起動時に自動起動するように設定します.
[root@scs223 root]# chkconfig --list portmap
portmap         0:オフ  1:オフ  2:オフ  3:オフ  4:オフ  5:オフ  6:オフ
[root@scs223 root]# chkconfig --level 345 portmap on
[root@scs223 root]# chkconfig --list portmap
portmap         0:オフ  1:オフ  2:オフ  3:オン  4:オン  5:オン  6:オフ
[root@scs223 root]#

NIS クライエントは ypbind という名前のデーモンであり,これが NIS サーバーと通信します. NIS クライエントデーモンはいつでも起動できます.

[root@walleye root]# /sbin/service ypbind start
停止するには次のコマンドを使います.
[root@walleye root]# /sbin/service ypbind stop
ypbind の起動に失敗した場合は,NISドメイン名が正しく設定されているか,また/etc/yp.conf ファイルの設定に誤りがないか確認します. クライエント側に間違いがないと思われる場合は,NISサーバー側の設定,特に /var/yp/securenets ファイルをもう一度見直します.

OS起動時にypbindが自動起動するように設定します.
[root@scs223 root]# chkconfig --add ypbind
[root@scs223 root]# chkconfig --level 345 ypbind on
[root@scs223 root]# chkconfig --list ypbind
ypbind          0:オフ  1:オフ  2:オフ  3:オン  4:オン  5:オン  6:オフ
[root@scs223 root]#

2.3 /etc/nsswitch.conf ファイルの編集

/etc/nsswitch.conf ファイルに 'nis' を追加することで,クライエントはNIS を使うようになります. この Network Services Switch ファイル /etc/nsswitch.conf が参照する順番を決定します. 例えば,次の行がホスト名の検索の順番を決めます.
hosts:    files nis dns
以下に例を示します.
passwd: nis files shadow: nis files group: nis files

2.4 NIS クライエントの設定を試験する

これで NIS クライエントの動作を試験することができます. 次のコマンドで, NIS サーバが管理している passwd 情報を見ることができます.

[root@walleye root]# ypcat passwd.byname

画面にマップが表示されなかった場合は,クライエントとサーバーの設定をもう一度確かめてください.あるいは次のメッセージが表示されるかもしれません.
YPBINDPROC_DOMAIN: domain not bound
このような場合,ファイアウォールがNISの通信を阻止しているかもしれません.ファイアウォールの設定を確かめてください.