最新更新日 2002.01.17.
更新項目  /etc/inet/ipnodes 絡みの点を追加しました。


/etc 回りの設定
 さささ、インストール時に IPv6 を使う。と、してインストールした場合は素直に IPv6 Ready ですが、ifconfig -a と叩けば IPv6 アドレスが付いていると思います。私の場合は、FreeBSD 上で rtadvd が動いているので Solaris8 は文句無く IPv6 アドレスを取得しています;-)。一番最初のインストール の所で上げた通りです。

 前回までは、インストールとジャンボパッチ(リコメンドパッチ)とフリーソフトのインストールを行いました。これからはその次の各種設定を施していきましょう。

 リモートのマシンから作業を行う必要が有っても、まだ、新規の一般ユーザのアカウントを作って無い為にログイン出来ません。そんな時は、ちょっと危ないですが、/etc/default/login を編集して、リモートから root で login 出来るようにして上げます。

----------------
# If CONSOLE is set, root can only login on that device.
# Comment this line out to allow remote login by root.
#
CONSOLE=/dev/console
----------------

と、なっている部分を

#CONSOLE=/dev/console
にすると、リモートから root で login が可能となります。ただし、これはネットワーク的脅威の無い所で作業を行ってください。また、ネットワークに接続する場合はちゃんと元に戻すようにしましょう。

 さて、IPv4 は、ま、ちょっとおいといて、IPv6 Ready な環境に付いてですが、root 特権の必要な port に対して IPv6 の port に poat scan してみた所、7 9 13 19 21 23 25 79 111 512 513 514 がデェフォルトで開いていました。うひぃぃ。ちょっと怖いですね。早速止めに入りましょう。基本的には/etc/inetd.conf の要らない行をコメントアウトしてあげて、inetd に HUP シグナルを送りましょう。ちなみに私の Solaris8 で開いているのは telnet と ftp のみです;-)。
#あ、ちなみに多分、 IPv4 でも開いている port は一緒だと思いますよ。詳細は netstat -a してみるのが一番かと・・。

◇注意そのいち
 CDE を使って login した時に、パフォーマンスメータ (/usr/dt/bin/sdtperfmeter) がまともに動かないのはおかしいなぁ。と思っていろいろ調べてみると、inetd 経由で /usr/lib/netsvc/rstat/rpc.rstatd が動く必要があります。これが動かないと、sdtperfmeter は core dump してしまいます。お好みでご利用下さい。

 続いて不要なデーモンを止めましょう。止める方法は、/etc/rc2.d などから、S* となっているのを _S* などと rename して上げる事です。頭が S とか、K で始まるモノは各ランレベルで自動的に動き出す。と、言う事ですね。

http://www.nspl.co.jp/Solaris/Security/inetd8.html

 この URL は読んでみるとなかなかためになります。参考にしてみてください。私の場合は、インストールした時に /etc/rc?.d/* の下を一気に rename してくれるスクリプトを書きました。これがあるとお気楽一発 rename です。良かったら参考にしてみてください;-)。

     Sol8_rc_stop.sh

 必要に応じて起動出来る様にしてください。基本的には先頭に # が付いてるのはそのコマンドを実行しません。私の場合は、

・automount を使いません。
・dtterm は起動しています。
・wnn6 を使い ATOK は使いません
・NFS は、サーバに FreeBSD を使用。クライアントとして起動する。

と、まぁ、こんな感じでしょうか。臨機応変に。と、言う感じです。はい。ダウンロードしたファイルを /etc にコピーして、sh Sol8_rc_stop.sh とすれば作業はおしまいです;-)。

 さ、続いて、/etc 内の細かい設定を見ていきましょう。まずは、ネットワーク的設定に付いてですが、デェフォルトケートウェイを設定してあるファイルが無いので作ってあげます。

----------------
% cat /etc/defaultrouter
192.168.1.254
----------------
 /etc/hosts に IPv6 アドレスを書いて上げましょう。と、言いつつ、どうも/etc/hosts(正確には /etc/inet/hosts) はどうも IPv4 のプログラムが見るファイルの様で、IPv6 アドレスを記述するには、/etc/inet/ipnodes に書く必要があるみたいです。なので、IPv6 アドレスはそらに書くことにしましょう。
----------------
% cat /etc/hosts
# LOCALHOST
127.0.0.1       localhost
::1             localhost.running-dog.net localhost

# IPv4 ADDR
192.168.1.2     pochi.running-dog.net   loghost
192.168.1.2     pochi.running-dog.net   pochi
192.168.1.2     pochi.running-dog.net.

# IPv6 ADDR
3ffe:505:2019:1:260:8ff:feb0:7e58       pochi.running-dog.net   loghost
3ffe:505:2019:1:260:8ff:feb0:7e58       pochi.running-dog.net   pochi
3ffe:505:2019:1:260:8ff:feb0:7e58       pochi.running-dog.net.
----------------
 /etc/nsswitch.conf を変更してあげましょう。hosts の設定を以下の様に指定し直す。hosts で DNS を参照する様に。次に、IPv6 Ready の場合は、ipnodes を有効にしてあげましょう。詳細に付いては、/etc/nsswitch.conf 内にうにうにと書かれています。
----------------
hosts:      dns files
#ipnodes:    files
# Uncomment the following line and comment out the above to resolve
# both IPv4 and IPv6 addresses from the ipnodes databases. Note that
# IPv4 addresses are searched in all of the ipnodes databases before
# searching the hosts databases. Before turning this option on, consult
# the Network Administration Guide for more details on using IPv6.
ipnodes:   files dns
----------------
 と、言う事で、IPv6 の場合には /etc/inet/ipnodes が重要と言う事ですね。後、バーチャルな IP アドレスを付加する場合には、IPv4 の場合は /etc/hosts と /etc/hostname.elxl0 との関わりあいが重要でしたが、IPv6 アドレスの場合はその書き方が思いっ切り変わりました。/etc/hostname6.elxl0 と言うファイルは以下の様に記述しましょう。
----------------
addif 3ffe:505:2019:1::5/64 up
addif 3ffe:505:2019:1::6/64 up
----------------
 と、言う様な感じですね。これを沢山書いていくと、ifconfig -a した時に elxl0:1: elxl0:2: elxl0:3: などと言うバーチャルインタフェースが付加されていきます。IPv4 と同じ書き方をしていてはダメです。hostname6.elxl0:2 と言うファイルを用意してもだめなので注意が必要です。

 続いて、Solaris 独特のホームディレクトリのオートマウントですが、ま、この際必要無いでしょう。以下の要領でコメントアウトします。

----------------
% cat /etc/auto_master
# Master map for automounter
#
+auto_master
/net            -hosts          -nosuid,nobrowse
#/home          auto_home       -nobrowse
/xfn            -xfn
----------------
 もし、CD-ROM の automount も停止して良いのであれば以下のコマンドを打つ様にしましょう。
----------------
# /etc/init.d/autofs stop
----------------
 後は、ntpd を起動するのであれば、/etc/inet/ntp.conf と言う名のファイルを作成してあげるとか、IP アドレスを沢山付加したい場合の対応として、/etc/init.d/inetinit に ndd コマンドを羅列するとかしてみてください。後は、/etc/resolv.conf ですね。/etc/shells も必要なら用意しましょう。

----------------
% cat /etc/shells
/sbin/sh
/sbin/jsh
/bin/sh
/bin/jsh
/bin/csh
/bin/ksh
/bin/bash
/bin/tcsh
/bin/zsh
/usr/bin/sh
/usr/bin/jsh
/usr/bin/csh
/usr/bin/ksh
/usr/bin/bash
/usr/bin/tcsh
/usr/bin/zsh
----------------
 マシンをリブートしてみて実際にどういったデーモンが起動するか確認していきましょう。そして、いよいよ、groupadd して、useradd して、一般ユーザを作成して、そして、CDE から login してみましょう。おーーー。/home の automount をやめたので、BSD ライクなホームディレクトリでも OK ですね。むひひひ。

 最後にもう一点だけ。ちょっと気になったので追加で書きます。/etc/TIMEZONE と言うファイルがあります。正確には /etc/default/init ですが。このファイルを見ると、LANG=ja と書いて有りますが、これは、inetd 起動時に悪さします。

 例えば、LANG=ja の時、ls であるとか、date であるとかはみんな日本語で表示されます。システムの設定が LANG=ja であると、inetd も 日本語対応で起動してしまいます。簡単に言うと、もし、あるポートで接続して来たプログラムに対し、ls -l の結果を返すデーモンが inetd から起動した場合、ls -l の結果を日本語で返してしまうんですね。

 これが影響するのは、wu-ftpd です。後、port 106 で起動する、mail アドレスのパスワードの変更を行うプログラムなんかも inetd が日本語環境で起動していると正しく動作しません。

 システムレベルでの LANG=ja はもしかすると抑制した方が幸せな場合があると思います。ちなみに私はコメントアウトしました。システムの環境はLANG=C で起動する様にして、自分の環境は LANG=ja にした方が幸せだと思います。あ、サーバ用途でのお話ですが、この値を変更すると、CDE のログイン画面は英語(LANG=C)で表示される様になります。しかし、言語が選べるのであまり苦にはならないとは思いますが・・。

 では、次のステップに進む事にしましょう;-)。


Copyright (c) 1997-2004 takachan@running-dog.net All Rights Reserved.