NIS(Network Infomation Server)サーバーの設定

Red Hat Linuxのページトップへ

コンピュータの情報を共有して、パスワードファイルを一括で管理したり、 groupファイルやaliasesファイル、hostsファイルの共有をしたりできる
ypserv
ypbind
yp-tools
portmapper(portmap)
が必要

関連ファイル
/etc/ypserv.confNISサーバの設定
/etc/yp.confNISクライアントの設定
/etc/rpcportmapの設定ファイル
/proc/sys/kernel/domainameNISのドメイン名
/var/yp/securenetNISを利用するネットワークの範囲
/var/yp/MakefileNISのデータベースの設定をする
/usr/lib/yp/ypinitypのデータベースを作成するプログラム
/var/yp/domainnameデータベースが作成されるディレクトリ
/etc/host.conf名前を解決するための設定をするファイル
/var/yp/nicknamesNISのニックネーム変換ファイル
メインメニュー → システム設定 → 認証 または authconfig-gtk NISサーバの設定 まずファイアウォールを開放しないとダメ ○portmapの起動 portmapを起動する 設定は特に必要ない # /etc/rc.d/init.d/portmap start portmapperを起動中: [ OK ] 起動されているかrpcinfoで確認する # rpcinfo -p プログラム バージョン プロトコル ポート 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper portmapperと表示されていればOK。 これが、他のプログラムとのportのbindを行なってくれる。 rpcinfoは他のマシンからも参照できる。 もし、他のマシンから確認できない場合は、ポートが塞がれている可能性がある。 iptablesを使ってsunrpcのポートを開けてあげるようにする。 sunrpcのポート番号は110である。 ○NISのドメイン名の設定 NISのドメイン名を設定する。 NISドメイン名は、ネットワークのドメイン名とは違うので適当に決める。 # ypdomainname [ドメイン名] # ypdomainname [ドメイン名] /etc/sysconfig/networkにNISDOMAIN=""という項目があると思うので そこにNISドメイン名を書いておけば、起動時に自動的にドメイン名を 設定することができる。 ちなみに、現在の、ドメイン名は/proc/sys/kernel/domainname に格納されて保存されていて、上記コマンドで上書きされる。 # gedit /etc/sysconfig/network ○セキュリティの強化 いろいろな情報いろいろなところに流してしまうのは非常に危険なので NISを利用できる範囲を限定する。また、iptables(やTCP_WRAPPER)などを使って、 portmapが利用できる範囲を限定した方がよい。 NISの範囲を限定するには、/var/yp/securenets(/usr/share/doc/ypserv-2.8/securenets)ファイルを編集する。 # cp /usr/share/doc/ypserv-2.8/securenets /var/yp/securenets # gedit /var/yp/securenets
#
# 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!
255.255.255.0   192.168.1.0
192.168.1.5 のようにIPだけでも可 /var/yp/securenetsが空か存在しない場合 (デフォルトインストールの場合は該当します)、NIS はすべてのネットワークをリッスンします。 上記のようにローカルネットワーク範囲内に限定する。 NISで流すサービスを限定するには/var/yp/Makefileの中の # gedit /var/yp/Makefile 109行目
# If you don't want some of these maps built, feel free to comment
# them out from this list.

all:  passwd group hosts rpc services netid protocols mail \
        # netgrp shadow publickey networks ethers bootparams printcap \
        # amd.home auto.master auto.home auto.local passwd.adjunct \
上記部分をコメントしたり外したりするとよい。 ○ypservの立ち上げ NISサーバを起動する。 # /etc/rc.d/init.d/ypserv start YPサーバサービスを起動中: [ OK ] ○NISのデータベースの作成 ypinitを使ってデータベースを作成する。 このときypservが立ち上がってないと作成できないので、 立ち上がっているかどうか確認する。 # /usr/lib/yp/ypinit -m At this point, we have to construct a list of the hosts which will run NIS servers. yari.bigforest.hn.org 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: [マスターサーバのホスト名] next host to add: <control-D>を押す。 The current list of NIS servers looks like this: [マスターサーバのホスト名] Is this correct? [y/n: y] y We need some minutes to build the databases... Building /var/yp/[ドメイン名]/ypservers... Running /var/yp/Makefile... gmake[1]: 入ります ディレクトリ `/var/yp/[ドメイン名]' Updating passwd.byname... Updating passwd.byuid... Updating group.byname... Updating group.bygid... Updating hosts.byname... Updating hosts.byaddr... Updating rpc.byname... Updating rpc.bynumber... Updating services.byname... Updating services.byservicename... Updating netid.byname... Updating protocols.bynumber... Updating protocols.byname... Updating mail.aliases... gmake[1]: 出ます ディレクトリ `/var/yp/[ドメイン名]' こうして、/var/yp/[ドメイン名]にデータベースが作成される。 ここで[マスターサーバのホスト名]部分が『localhost.localdomain』となっている場合は /etc/hostsの設定を変更する このままではクライアントでのyppasswdコマンドが使えない # gedit /etc/hosts 127.0.0.1 localhost.localdomain localhost [マスターサーバのホスト名] ↓ 127.0.0.1 [マスターサーバのホスト名] localhost.localdomain localhost 上のように修正して、もう一度ypinitを実行する ○NISのユーザ追加 NISのユーザ追加は、サーバ側にまずユーザを追加して、それを NISに反映させる。ユーザの追加方法は、 こちらで簡単に説明していますので 参照ください。 ユーザ追加したあとNISに登録するには、/var/yp/に移動して、makeするだけである。 # cd /var/yp # make gmake[1]: 入ります ディレクトリ `/var/yp/[ドメイン名]' Updating passwd.byname... Updating passwd.byuid... Updating group.byname... Updating group.bygid... Updating netid.byname... gmake[1]: 出ます ディレクトリ `/var/yp/[ドメイン名]' ○yppasswdの起動 NISを経由してpasswardの更新をできるようにするには、 yppasswdを立ち上げなければならない。passwdとchsh,chfnの 情報を変更するためにyppasswd,ypchsh,ypchfnが用意されており、 サーバが立ち上がっていれば、 クライアントでこれを使って情報を変更できる。 # /etc/rc.d/init.d/yppasswdd start YPパスワードサービスを起動中: [ OK ] このままでは、passwdしか有効ではないので、 chsh chfnを有効にする。 それには、/etc/sysconfig/networkに以下を加える。 YPPASSWDD_ARGS="-e chsh -e chfn" chfn はフルネームを変えるコマンド、chsh はシェルを変えるコマンドで、 NIS ではそれぞれ ypchfn, ypchsh となります 引数の説明は、 man rpc.yppasswddで参照して欲しい。 # chkconfig --add ypserv # chkconfig ypserv on # chkconfig --add yppasswdd # chkconfig yppasswdd on 実行するには、次のラインを/etc/sysconfig/networkに追加して下さい。: YPSERV_ARGS="-p 834" YPXFRD_ARGS="-p 835" 次のIPTablesルールを実行することにより、 ポートに対してサーバーがリッスンする ネットワークを特定することができます。 iptables -A INPUT -p ALL -s! 192.168.0.0/24 --dport 834 -j DROP iptables -A INPUT -p ALL -s! 192.168.0.0/24 --dport 835 -j DROP NISクライアントの設定 まずファイアウォールを開放しないとダメ NISクライアントの設定をする。クライアントでもportmapperを立ち上げておく。 ○NISドメイン名の設定 これはNISサーバの設定と同じである。 # ypdomainname [接続するドメイン名] # ypdomainname [接続するドメイン名] これも/etc/sysconfig/networkに書いておけば、起動時に設定が行なわれる。 # gedit /etc/sysconfig/network ○NISサーバのIPアドレス設定 NISサーバのIPアドレスを設定する。NISサーバが決まっている場合は、 そのIPアドレスを設定しておくとよい。 /etc/yp.confで設定する。 # gedit /etc/yp.conf
# /etc/yp.conf - ypbind configuration file
# Valid entries are
#
#domain NISDOMAIN server HOSTNAME
#	Use server HOSTNAME for the domain NISDOMAIN.
#
#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.
#
ypserver 192.168.1.1
もしサーバのアドレスを設定しなかった場合は、 ブロードキャストで問い合わせを送って 返答があったところから情報をもらう。 ○ホスト名の解決 /etc/host.confでホスト名の解決順番を決めることができる。 order で順番を決める 。 order hosts, bind,nis それぞれの意味は以下のとおり。 hosts /etc/hostsで名前を解決する。 bind NAMEサーバで名前を解決する。 nis NISサーバで名前を解決する。 nisで名前を解決の必要がない場合は、指定しなくてもよい。 # gedit /etc/hosts 192.168.1.1 [マスターサーバのホスト名] 上を追記する これをしないとyppasswdが使えない ○ypbindのスタート 全ての設定が終了したら、ypbindを立ち上げて、 クライアントでNISを利用できるようにする。 # /etc/rc.d/init.d/ypbind start NISドメインにバインド中: [ OK ] NISドメインサーバを検索中 ○NISの動作確認 ypcatを使って動作を確認することができる。/var/yp/nicknamesに 参照できるNISマップのニックネームがあるのでそれを指定すると 参照ができる。 # ypcat passwd ・・・ moke:!!:506:507::/home/moke:/bin/bash Test:!!:502:502::/home/Test:/bin/bash ・・・ passwdおよびgroupファイル  次に必要なものが,/etc/passwd と /etc/group ファイルの編集です. 両方のファイルの最後に,以下のを挿入します. # vipw /etc/passwd +:::::: # vi /etc/group nsswitch.confファイル  ネットワークスイッチファイル(/etc/nsswitch.conf)は情報へのアクセス要求が来たときに行う検索の順番を決定するものです.このファイルを以下部分を以下に示すように編集します. # gedit /etc/nsswitch.conf 33行目 passwd: nis files group: nis files shadow: nis files hosts: dns nis files 初めは上の三つがcompatになっているがそれでは正常に動かないため上に示すように設定しないといけません. passwd: compat group: compat # For libc5, you must use shadow: files nis shadow: compat passwd_compat: nis group_compat: nis shadow_compat: nis 以上の設定を行えばNISは起動できるようになります.  マシンブート時に自動的にデーモンを立ち上げるために、以下のように/etc/rc.confを設定します。 nisdomainname="hoge-net" nis_client_enable="YES" nis_client_flags=""  これで、全て終了です。 スタートアップスクリプトへの登録 # chkconfig --add ypbind # chkconfig ypbind on ホストの確認 # ypwhich 192.168.1.1 # ypwhich -m [マスターサーバのホスト名]

ぺんたん.info
あかいひ.com
IPくん.com
8枠.com - 競馬情報
galhime.com

PC Q&A||古い記事|雑学|ラーメン