■さて、NISでアカウントを管理するために、いろいろあるらしいが、今回はYPSERVとYPBINDを用いて管理するよ。だって簡単そうだし、安定しているし。ここじゃサーバ側の設定のみ挙げる。もしクライアント側のYPBIND設定も知りたいって時は、クライアント設定を見てくれや。
■まず、YPSERVをインストール。簡単だぜ〜。次のコマンドでやれ。ちなみにGentooでサーバ組むならWheelユーザーに追加しないとsuコマンドではなれないぜ。その方法は他であたってくれや。
|
$ su になる #なんらかの方法で
# emerge -pv ypserv #依存関係やUSEフラグの確認
# emerge ypserv #入れろ
|
これだけや。本当に簡単だろ?このYPSERV、portmapperが必要なんだがGentooではデフォルトで入っていねぇ。だがな、入っていなくても自動的にそれを同時に入れてくれるのが本当にGentooのいいところだ。おぉっとあせんなって。これからの作業をする前に、portmapperを起動しておけよ。あ〜でも、ypservの起動スクリプトにportmapperが要求されているから、大丈夫か。まぁ以下のコマンドはNFSでも必要だから打っとけ。間違いない。
|
$ su になる #なんらかの方法で
# rc-update add portmap default #起動スクリプトをデフォルトランレベルに追加
|
■念のためにアクセス制限をかける。"/etc/hosts.deny"と"/etc/hosts.allow"を以下のように設定。
#/etc/hosts.deny |
|
portmap: ALL |
ypserv: ALL |
#/etc/hosts.allow |
|
portmap: 192.168.*. |
ypserv: 127.0.0.1 192.168.*. |
その他何かサービスがあれば、ここにそれぞれ記述する。
■NISでは、NISドメイン内にデータを流す。Gentooの場合、そのドメイン名は"/etc/conf.d/ypserv"内に次のように指定する。
#/etc/conf.d/ypserv |
|
# そこそこ分かりにくい名前にする |
|
YP_DOMAIN=NISDOMAINNAME |
|
誰にでも見ることができるが、特に誰もみねーだろ。って、誰にも見られないからって変な名前を付けるなよ。
■続けてYPSERVの設定ファイルの設定。"/etc/ypserv.conf"を見てみそ。次のようなもの。
#/etc/ypserv.conf |
|
# 変えるべきところのみ |
|
# ポート制限(1024以下のみ)をかけypcatしても見れなくする(shadowを使う時は注意!) |
Host : Domain : Map : Security |
192.168.*.0/24 : * : passwd.byname : port |
192.168.*.0/24 : * : passwd.byuid : port |
|
# shadowファイルにポート制限をかける |
192.168.*.0/24 : * : shadow.byname : port |
みたいに設定を行う。見ての通り、NISデータを流す範囲や制限内容を指定する。
■これで、設定ファイルは完璧だろう。上の設定が終わったら、その内容を反映させるぜ。おぉっとその前にYPSERVのMakefileを編集しないとな。"cd /var/yp/"してカレントを移動。そこでMakefileを修正。まず、shadowパスを流すなら、"merge"しないようにする。"MERGE_PASSWD=false"とかで。マージするようにすると、Ignoreし、うまくシャドウ化できないみたい。さらに、ずーと下のほうに、パスワードやホストなど、どういったデータを流すか編集できる。特に、特別なことをしない限りは"passwd","host","portmap","shadow"等でまったく問題ないので、その他の項目はちゃちゃっとコメントアウトしちゃいましょう。後はそれを反映させるだけ。
|
$ su になる #なんらかの方法で
# cd /var/yp
# make #NISデータ作成
|
ここで特にエラーはでないはず。でしょ?
■さてここいらで、YPSERVのサービスを開始する。
|
$ su になる #なんらかの方法で
# /etc/init.d/ypserv start
# rc-update add ypserv default
|
■ここで設定は完了。サーバにはYPBINDを入れる必要がないと思うけど、ypcat等のコマンドを検証のため使用したいなら、入れてもいいと思う。んで、他のクライアントPC(当然YPBIND入り)などから"ypcat passwd"してきちんと流れてくるかどうか試してみましょう。以上です。
■これで完璧と思うなよ。って次の設定をしても完璧とは限らないが、やらないよりましだろ。セキュリティのことを考えるなら、やっぱりNISデータをシャドウで流そうぜ。クライアントから"ypcat"ってみろや。内部からは暗号化されたパスワードがユーザーにも丸分かりだろ?ハックされちまえってな感じで。問題だろ?俺の爺さんのまた爺さんに話を聞くと、過去のヴァージョンじゃシャドウ化するとうまくログインできなかったらしい。しかし世の中変わるの早いもんだ。現在のヴァージョンでは問題ないぜ。ホント感謝もんだな。ありがたく設定しようぜ。
(■ちなみに、今のLinuxシステムじゃあ、たいていローカルのパスワードファイルはシャドウ化されてるぜ。気づかなかったのか?"/etc/passwd"見ろや。それぞれの行の2列目が"x"とか"!"とかで隠されているだろ?ならシャドウ化されてるぜ。それに"/etc/shadow"も見ちゃえ。暗号化されたパスワードがたんまり入っているだろ?パスワードの実体がROOTしか参照できない"/etc/shadow"に保存されて他のユーザーは見れないってわけだ。余談だ。閑話休題。)
■んじゃ、実際にNISのパスワードデータをシャドウ化してみるぜ。"/var/yp/Makefile"でpasswd.bynameやgroup.bynameとシャドウファイルをマージさせないようにしろ。ようは40行目あたりのそれぞれの項目を"MERGE=true"から"MERGE=false"にしろ。こうしないと、"make"してもshadow.bynameはpasswd.bynameからマージされ、Ignoredされてしまうぜ。んで作成されない。無視されただけじゃんって思うならクライアントからログイン試してみろ。できねーだろ?おぉっとサーバローカルからは自分のpasswdを見るからログインは当然できるぜ。クライアントから試せ。マージさせないようにすれば、"make"できちんとshadow.bynameが作成されるから安心しろ。それで試すとうまくいくだろ?でも意外に落とし穴があったりする。それが次の症状だ。俺も経験済みだ。
■シャドウ化して"make"した後、実際にクライアントからログインしてみると、何だよこれ!こんな感じにならなかったか?
|
[ I have no name!@HOSTNAME: ~]$
|
はい、そこの人!うげぇっと思う前に受けなかったか?これ見て。一応どーなっているのか見てみよーぜ。そのユーザーで"id"コマンドで見てみると、きちんとUIDは取得できてるだろ?じゃあ、"ypcat"してみよーぜ?何にもエコーないだろ?そりゃ名無しになるわな。いろいろネットで調べてみたけど、海外サイトでもあんましねーんだわ、ネタが。あるにはあったけど、ドイツ語みたいので未解決とか。で俺が予想するに多分、"/etc/ypserv.conf"でshadow.bynameをport制限かけてねぇーか?これコメントアウトしてみて"make"かけてみよーぜ。うまくいかねーか?俺はこれが原因だった。そもそもshadow.bynameはユーザーレベルでは"ypcat"できない(みたい)。だから特にPORT制限をかける必要はないと思うわけよ。
■NISについては以上だ。まぁ何とか形になっただろ?後は自分で勉強してくれや。