最新更新日 2002.01.17.
更新項目
/etc/inet/ipnodes 絡みの点を追加しました。
前回までは、インストールとジャンボパッチ(リコメンドパッチ)とフリーソフトのインストールを行いました。これからはその次の各種設定を施していきましょう。
リモートのマシンから作業を行う必要が有っても、まだ、新規の一般ユーザのアカウントを作って無い為にログイン出来ません。そんな時は、ちょっと危ないですが、/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 です。良かったら参考にしてみてください;-)。
必要に応じて起動出来る様にしてください。基本的には先頭に # が付いてるのはそのコマンドを実行しません。私の場合は、
・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)で表示される様になります。しかし、言語が選べるのであまり苦にはならないとは思いますが・・。
では、次のステップに進む事にしましょう;-)。