Hatena::Grouplinux2

server_setting_memo このページをアンテナに追加 RSSフィード

2006-12-17 (Sunday)NISサーバ

[][][]NISサーバ立てました 14:48 NISサーバ立てました - server_setting_memo を含むブックマーク はてなブックマーク - NISサーバ立てました - server_setting_memo NISサーバ立てました - server_setting_memo のブックマークコメント

[環境]

  • サーバ
    • distribute : FC5
    • ypserv : (ypserv) 2.19

当方、サーバ用のPCクライアント用のPCの2台しか所有してないのでスレーブサーバについては載せてません。あしからず

[][][]NISサーバの設定 14:48 NISサーバの設定 - server_setting_memo を含むブックマーク はてなブックマーク - NISサーバの設定 - server_setting_memo NISサーバの設定 - server_setting_memo のブックマークコメント

○ portmapの起動

# /etc/rc.d/init.d/portmap start

○ portmapの確認

# rpcinfo -p

ポート111を使ったportmapperが存在すればOK。

他のプログラムとのportのbindを行ってくれる。

または

# ps aux | grep portmap

NISドメインの設定

# ypdomainname nisdomain

NISドメインの確認

# ypdomainname

これで"nisdomain"が設定されていればOK。

起動時ドメインネームの設定

# /etc/sysconfig/network

NISDOMAIN="nisdomain"

を追加。

ちなみに現在ドメイン名は

/proc/sys/kenel/domainname

に格納されているが上記コマンドで上書きされる。


セキュリティの強化

# vi /var/yp/securenets

localhostに対して

127.0.0.0 127.0.0.0

ホスト1台に対しては

255.255.255.255 123.45.67.89

ネットワークに対しては

255.255.255.0 123.45.67.0

を設定。


# vi /var/yp/Makefile

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 \

# timezone locale netmasks

の行(蛇足だがエスケープがあるので一行です。)でNISで流すサービスを限定する。

基本的にはこの設定のままでいいのではないかと。

ちなみにこの項目は下記のNISマップの作成と内容が絡んでくるのでそちらも併せて見てください。

さらに、

YPSRCDIR = /etc

YPPWDDIR = /etc

YPBINDIR = /usr/lib/yp

YPSBINDIR = /usr/sbin

YPDIR = /var/yp

YPMAPDIR = $(YPDIR)/$(DOMAIN)

を次のように編集

YPSRCDIR = /var/yp/etc

YPPWDDIR = /var/yp/etc

YPBINDIR = /usr/lib/yp

YPSBINDIR = /usr/sbin

YPDIR = /var/yp

YPMAPDIR = $(YPDIR)/$(DOMAIN)

勘違いしてたみたい。


NISマップ

NIS共有するファイルを指定します。

まず

# mkdir -p /var/yp/etc

オプションpは環境により適宜外してください。

# cp /etc/passwd /var/yp/etc/
# cp /etc/shadow /var/yp/etc/
# cp /etc/auto_* /var/yp/etc/
# cp /etc/group /var/yp/etc/
# cp /etc/hosts /var/yp/etc/

この後、コピーした/var/yp/etc/passwd, /var/yp/etc/shadow, /var/yp/etc/group内のシステムユーザシステムグループの行を削除しましょう。


その他環境により/etc/yp/Makefileのall項目と同じものを用意しましょう。

必要な情報を共有する場合は/etcからコピーしてくる。

共有しない場合はtouchコマンドで空ファイルのみ作っておきましょう。

passwd group hosts rpc services netid protocols mail

# touch /var/yp/etc/rpc

# touch /var/yp/etc/hosts

# touch /var/yp/etc/netmasks

# touch /var/yp/etc/services

など


○ ypservの起動

# /etc/rc.d/init/ypserv start

○ ypserv起動の確認

# /usr/sbin/rpcinfo -u localhost ypserv

program 100004 version 1 ready and waiting

program 100004 version 2 ready and waiting

と表示されればOK。


NISデータベースの作成

# /usr/lib/yp/ypinit -m

NISサーバ名を聞いてくるので、スレーブNISサーバがあれば入力

なければCtrl-d。

その後表示されたNISサーバでよいかを聞いてくるのでよければy。

成功すれば

hostname has been set up as a NIS master server.

の表示。

"hostname"の部分

$ hostname

で確認できる文字列。つまり短いPC名。(FQDNでない)

これでNISのマスターサーバとして設定されました。


あと、とりあえず

ypinitを実行したときのログも確認しておきましょう。

今回は

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...

と出ました。


○ yppasswddの起動

NISを経由してpasswdを有効にするためにyppasswdデーモンであるyppasswddを立ち上げる必要がある。

NISを経由したpasswd, chfn, chshを有効にするためにyppasswd, ypchfn, ypchshが用意されている。

# /usr/sbin/rpc.yppasswd -e chfn -e chsh

またはデーモンなので

# /etc/rc.d/init.d/yppasswdd start

でも起動可能。

ただし、これはyppasswdしか起動していないのでchkconfigの自動起動には

# vi /etc/sysconfig/network

YPPASSWDD_ARGS="-e chfn -e chsh"

を追加する必要がある。

引数については

# man rpc.yppasswdd

で参照可能。


[][][]NISクライアントの設定 12:16 NISクライアントの設定 - server_setting_memo を含むブックマーク はてなブックマーク - NISクライアントの設定 - server_setting_memo NISクライアントの設定 - server_setting_memo のブックマークコメント

NISサーバ同様にportmapperを立ち上げる。


NISサーバ同様にdomainnameを変更する。

サーバと同じdomainnameにすること。


NISサーバIPアドレス設定

# vi /etc/yp.conf

ypserver 123.45.67.8

つまりサーバIPを追加


ホスト名の解決

# vi /etc/host.conf

必要があれば編集。このファイルについてはここでは明記しない。


○ ypbindの起動

# /etc/rc.d/init.d/ypbind start

これで起動している様子でなかったら

# /etc/rc.d/init.d/ypbind restart

してみる。これでSELinuxによって邪魔されているようなら

# getenforced

Enforcing

となってるはず。

# setenforced 0

Permissive

となればSELinuxを無効化したことになる。この後にypbindを起動させればよい。

起動時にPermissive設定にしておくには

# vi /etc/sysconfig/selinux

SELINUX=enforcing

の項を

SELINUX=disabled

にする。


○ ypbindの起動を確認

# rpcinfo -p localhost

100007 2 udp 637 ypbind

100007 2 tcp 639 ypbind

このような表示が出るはず。

さらに、

# rpcinfo -u localhost ypbind

を実行すると

program 100007 version 1 ready and waiting

program 100007 version 2 ready and waiting

の表示が出るはず。

名前解決がうまくいかない場合は/etc/hostsを参照のこと。


NISサーバの名前を確認

# /usr/sbin/ypwhich
hostname.nisdomain

NISドメイン名が正しく表示されていればOK


NISマップの確認

# /usr/sbin/ypcat passwd

パスワードが表示されればOK。


上記が間違っている場合は、

ypbindをkillしてから、NISサーバの/var/yp/bindingをディレクトリごと削除して、ypbindを再起動してみる。


パスワードグループファイルの設定

# vipw
+::::::

を追加する。ユーザ認証にNISを用いるという意味

ちなみに「:」は6つ。


# vigr
+:::

を追加する。ユーザ認証にNISを用いるという意味

「:」は3つ。


etc/pam.d/login の編集

login 時にも NIS 認証をするために、/etc/pam.d/login を編集します。

#auth required /lib/security/pam_pwdb.so shadow nullok

auth required /lib/security/pam_unix_auth.so


#account required /lib/security/pam_pwdb.so

account required /lib/security/pam_unix_acct.so


#password required /lib/security/pam_pwdb.so shadow nullok use_authtok

password required /lib/security/pam_unix_passwd.so


#session required /lib/security/pam_pwdb.so

session required /lib/security/pam_unix_session.so

それぞれ変更。

# /etc/nsswitch.conf
の編集

省略



参考URL:

[NISサーバ]

http://www.geocities.co.jp/SiliconValley-Cupertino/9120/nis.html

http://yang.amp.i.kyoto-u.ac.jp/~yyama/Linux/NIS.html

http://www.syns.net/14/index.html

http://www.linux.or.jp/JF/JFdocs/NIS-HOWTO/ypserv.html

http://cellcw.ist.hokudai.ac.jp/nis.html


[NISクライアント]

http://yang.amp.i.kyoto-u.ac.jp/~yyama/Linux/NIS.html

http://www.geocities.co.jp/SiliconValley-Cupertino/9120/nis.html

http://www.linux.or.jp/JF/JFdocs/NIS-HOWTO/verification.html

http://www.linux.or.jp/JF/JFdocs/NIS-HOWTO/setting-client.html

http://cellcw.ist.hokudai.ac.jp/nis.html


[SELinuxを無効にする]

http://fedorasrv.com/fedora6-init.shtml


[Authentication manipulation error]

http://www.google.co.jp/search?hl=ja&client=firefox&rls=org.mozilla:ja:official&hs=6zR&sa=X&oi=spell&resnum=0&ct=result&cd=1&q=passwd+Authentication+manipulation+error&spell=1

http://www.atmarkit.co.jp/flinux/rensai/linuxtips/428errpasswdcmd.html


お世話になりましたm(_ _)m

今までやったサーバの設定の中でも難しい部類に入ると思う。

とりあえず動いてますが、何故か起動時にエラーが出てる。。。

近いうちにエラーの内容とその改善策を載せると思います。


それにしても/etcファイル移行する時に間違ってshadowファイルシステムユーザを全部消したときは焦った。

一般ユーザログインできんのにrootになれなかったからなー。

ミスタイプしてるのかと、何度タイプしなおしたか。

ちなみに/etc/shadow.OLDというバックアップファイルが残っていたのでそれを使って復旧しました。

よかったよかった。


はー疲れたー

8時間程設定と、説明書きに時間を使ってしまったー

ゲスト



トラックバック - http://linux2.g.hatena.ne.jp/pneumaster/20061217