Solaris 2.4 システム管理 - ネットワーク編

この資料は Solaris 2.4 を主としたシステム設定を解説している。その範囲はネット ワークサービスを主体としている。 但し Sun の教育プログラム「Solaris 2.X システム管理 basic」「同 管理 I 」およ び「同 インストール」に解説されていない範囲は対象外とした。
なお本文中 Digital UNIX は DU と省略表記している。

目次

  1. IP 接続
  2. NFS
  3. Automount
  4. Remote Printer
  5. BIND Client
  6. その他

IP 接続

ネットワークを起動するには、ifconfig でネットワーク・インターフェースを稼働 させるが、これも Solaris では標準で起動するようになっている。 またインストール時に設定内容によっては、これらが起動されていない。手作業で設 定する場合は以下の点に注意する。
/etc/hosts など Network に関する定義ファイル群は全て /etc/inet の下に移動し ている。但し Solaris 2.4 では /etc/ へのリンクがあるため従来通り /etc/hosts を参照してもよい。

※ IP 接続に不具合があると admintool が起動しない(異常に遅い)場合がある。 従って、Network に接続される場合、Client でなくても設定を完了させるべき。

ホストテーブルの登録

/etc/inet/hosts にホスト名と IP アドレスを登録する。なお自分自身のホスト名 の別名 loghost は、システム・ログファイルの書込み先を意味する。
	127.0.0.1     localhost
	xx.xx.xx.xx   sunpdm sunpdm.osa.dec.com       loghost
	xx.xx.xx.xx   osabs0.osa.dec.com      osabs0

/etc/hostname.XX の登録

/etc/hostname.XX はネットワーク・インターフェース XX のホスト名を定義する。 インターフェース名は H/W に依存している。
boot 時にこのファイルがなければ、ネットワークの起動は行なわれない。

/etc/hostname.le0

	sunpdm.osa.dec.com

/etc/netmasks

サブネットを使用している場合等は /etc/networks にネットマスクを定義する。 インストール時にアドレス・クラスから割り出したネットマスク値が登録される。 この時、左辺はクラスを表すために用いられる。
	xx.xx.xx.0        255.255.255.0 

DEC 社内では次のパターンが一般的。
	16.0.0.0          255.255.255.0 

起動確認

現在起動されているインターフェースの状況は ifconfig で確認できる。
	% /usr/sbin/ifconfig -a
	lo0: flags=849 mtu 8232
		inet 127.0.0.1 netmask ff000000
	le0: flags=863 mtu 1500
		inet xx.xx.xx.xx netmask ffffff00 broadcast xx.xx.xx.xx


NFS

NFS server側設定

NFS server の設定は、まず NFS 関連 daemon が動作している必要がある。標準では Run-level 3 で必要な daemon が動作するよう設定されている。 (但し定義ファイル群が存在しない場合は、reboot するまで手動で起動する必要があ る。)
ディレクトリの公開は、share コマンドで行なう。従来のような /etc/exports はな くなり、/etc/dfs/dfstab が追加された。 share は以下のように使用し、同じ内容を /etc/dfs/dfstab に記述することで、次回 の boot からも有効となる。
	share -F nfs -o <オプション> -d <注釈>  <ディレクトリ>
オプションは従来と同様 ro, rw(省略値), root=ホスト名 がよく使用される。但し ホスト名をいくつか記述する場合の区切り記号はコロン(:)である。
	ro=host1:host2
	root=master

ex.
	# share	-F nfs -o root=host1:host2 -d "Free Soft" /usr/local/

ディレクトリ等を指定しない場合は現在の共有状態を表示する。
	% share -F nfs
	-               /usr/openwin/lib   ro   ""
	-               /Ora   anon=0   ""
	-               /Meta   anon=0   ""

もし初めて NFS の設定を行なった場合は、手動で NFS 関連デーモンを起動する必要 がある。これらは定義ファイル (/etc/dfs/dfstab) の内容によって、boot 時に自動 起動されるため、reboot する場合は手動による起動は不要。
	# /etc/init.d/nfs.client stop
	# /etc/init.d/nfs.server stop
	# /etc/init.d/nfs.cliset start
	# /etc/init.d/nfs.cliset start

なお公開済みディレクトリを非公開にするには unshare を使う。 ※ CD-ROM について Volume Manager が動作している場合、CD-ROM や Floppy は Volume Manager がマウ ントし、/cdrom や /floppy にリンクを張る。 このため /cdrom や /floppy を share しても、実体が見えない場合がある。これは Automount の /net 以下についても同じである。 この場合 /cdrom/cdrom0 や /floppy/unnamed_volume のように、実体が見えるディレ クトリを share しなくてはいけない。 さらに一旦 share した場合は unshare してから、メディアを eject しないと、 volume manager が矛盾を検出し、再度他のメディアを mount できなくなる。 必ず unshare し、eject してからメディアを交換すること。 頻繁に上記の操作がある場合は、予め /etc/init.d/volmgr stop により、Volume Manager を停止させ、手作業で mount/unmount したほうが確実である。 ex.
	# eject -q
	/vol/dev/rdsk/c0t6/oracle_solaris は使用可能です。
	# mount |grep cdrom
	/cdrom/oracle_solaris on /vol/dev/dsk/c0t6/oracle_solaris read only on (水)  6月   5 12:52:29 1996
	# share -F nfs -o ro /cdrom/oracle_solaris

NFS Client側設定

NFS Clinet については、特に設定しない限り daemon の自動起動が組み込まれている。 既に公開されている NFS server のディレクトリを、mount によりマウントする。
	# mount -F nfs <サーバ>:<公開ディレクトリ>  <マウントポイント>

動作確認後、/etc/vfstab にエントリを追加する。NFS の場合のエントリ例を次にし めす。

NFS その他

NFS server で、Client の接続状態を確認するには dfshares を使用する。
	% dfshares
	RESOURCE                             SERVER ACCESS    TRANSPORT
	sunpdm.osa.dec.com:/usr/openwin/lib  sunpdm.osa.dec.com  -         -
	sunpdm.osa.dec.com:/Ora              sunpdm.osa.dec.com  -         -
	sunpdm.osa.dec.com:/Meta             sunpdm.osa.dec.com  -         -

同様に Client から接続しているサーバ一覧を表示するには dfmounts を使用する。
	% dfmounts
	資源         サーバ パス名                    クライアント
	  -      sunpdm.osa.dec.com /Meta             alpha2,os2100
	  -      sunpdm.osa.dec.com /Ora/local        (anon),ss55
	  -      sunpdm.osa.dec.com /Ora/solaris      suncdr.osa.dec.com
	  -      sunpdm.osa.dec.com /usr/openwin/lib  xsin.osa.dec.com


Automount

Automount に関係する daemon はシステム・インストール時に組みこまれているため、 定義ファイルの編集だけでシステム管理が可能である。
この rc script は /etc/init.d/autofs で、Run level 2 で起動される。 また Automount はダイナミックに実行されるため auto_master 修正以外は、daemon のリスタート等も不要である。

Solaris では、NIS+ に対応するため、従来からある Automount のマップ(定義ファイ ル)の名称が変更され、ドット(.)を含まない形に変更された。

	/etc/auto.* → /etc/auto_*
また、標準で以下の2つのマップが用意されている。
	/etc/auto_master
	/etc/auto_home
とくに auto_home は /export/home/USER を /home/USER にマウントするための物で、 サーバマシンへのログイン時は /export/home を /home にマウント、つまり自分自身 に Automount するように推奨されている。これを lofs:loopback virtual file system ループバック・ファイルシステムと呼ぶ。

サーバ/クライアント設定

lofs 以外では share により、公開ディレクトリを定義する必要がある。 /etc/auto_master は標準で以下が定義済み。
	# Master map for automounter
	#
	+auto_master
	/net            -hosts          -nosuid
	/home           auto_home
このうち -host は special map と呼ばれ、全公開ディレクトリを意味する。 つまり他のシステムからは /net/ホスト名/ で、全公開ディレクトリが参照される。

マスターマップには全てのマップ情報が定義されており、これらは /etc/ の下に同 じ名称のファイルとして存在する。
/etc/auto_home は以下の通り

	# Home directory map for automounter
	#                                   
	+auto_home                          
この auto_home にユーザ毎にマウント情報を追加すれば、その直後からマウントポ イントが参照されるたびに NFS (lofs) でディレクトリがマウントされる。 省略時は 5分間アクセスがなければアンマウントされる。 ユーザ毎のエントリ例
	yakoshi         sun1:/export/home/yakoshi
	konno           sun1:/export/home/konno
また、このエントリにはワイルド・カードが使用できるため、以下のように簡潔に定 義することもできる。
	*               sun1:/export/home/& 

NIS によるマップの共有

NIS により、マップを共有する場合には以下の点に注意する。

Remote Printer

プリンタの設定は GUI ツールを利用することが望ましい。
TTY I/O (Printer 含む) はサブシステムごと SAF(Service Access Facility)と呼ば れる機能に置きかわったため、従来(他OS?)との管理方法の互換性は全くない。

GUI にて設定後、以下の操作が必要。この操作は一旦行なえば、reboot 後も有効

	# /usr/sbin/accept プリンタ名
	# /usr/sbin/enable プリンタ名
※ 手作業での設定は、以下の通り。ただし動作確認はしていない。
	# lpsystem -t s5 サーバ名
	# sacadm -a -p tcp -t listen -c /usr/lib/saf/listen tcp \
	     -v `nlsadmin -V` -n 999
	# pmadm -a -p tcp -s lp -i root -v `nlsadmin -V` \
	    -m `nlsadmin -o /var/spool/lp/fifos/listenS5`
	# pmadm -a -p tcp -s 0 -i root -v `nsladmin -V` \
	    -m `nlsadmin -c /usr/lib/saf/nlps_server -A \
	        '\x00020ACE0000000000000000'`
	# lpadmin -p プリンタ名 -s サーバ名 -T プリンタ形式 -I ファイル形式
	# /usr/sbin/accept プリンタ名
	# /usr/sbin/enable プリンタ名


BIND Client

BIND については全く設定ツール等が存在しない。全て手作業となる。
Clietn の設定は /etc/resolv.conf を作成するだけでよい。

resolv.conf 例

	domain          osa.kaisya.com
	nameserver      xx.xx.xx.2    
	nameserver      xx.xx.xx.3    
nslookup により動作確認を行なう。
	% /usr/sbin/nslookup host
	Server:  name-server.kaisya.com
	Address:  xx.xx.xx.2
 
	Name:    host.osa.dec.com
	Address:  xx.xx.xx.34
DNS を利用する場合、その情報の検索順序は /etc/nsswitch.conf で定義する。 たとえば、hosts をローカルファイル、BIND の順に検索するのであれば、以下のよ うなエントリとなる。
	hosts:  files dns


その他

セキュリティ関連

Remote root login

コンソール以外からの root ログインは制限されている。これを解除するには、 /etc/default/login の CONSOLE に関するエントリをコメント・アウトする。
	# If CONSOLE is set, root can only login on that device.
	# Comment this line out to allow remote login by root. 
	#                                                      
	#CONSOLE=/dev/console                                  

FTP users

/etc/ftpusers はインストール時に存在しないが、セキュリティ上作成しておく事が 望ましい。

/etc/ftpusers 例

	root
	uucp
	nuucp
	シャットダウンユーザ

~/.rhosts

DU などでは ~/.rhosts の属性に、ユーザ以外の書込み権がある場合は rsh が動作 しないが、Solaris はチェックを行なっていない。セキュリティ上このファイルの 属性は 600 が望ましい。
	% ls -l ~/.rhosts
	-rw-rw-r--  1 yakoshi   85 Jun  5 17:48 /usr/users/yakoshi/.rhosts
 
	DU> rsh `hostname` date
	Permission denied.
 
	Sun> rsh `hostname` date
	Thu Jun  6 12:41:48 JST 1996

SU

DU では root への su は system グループのメンバーに限定されているが、Solaris では su(1) コマンドの実行についての制限はない。 なお su 時の振るまい(PATH の設定など)は /etc/default/su にて設定可能