コンソールサーバー NIS HOWTO, NISを使ったポートアクセス管理 |
|
最終更新:2006年11月22日 SCS NISを使ったポートアクセス管理 注記: NIS に対するポートアクセスの管理機能の拡張については,SCS本体の /usr/local/doc/nis に次の関連文書がおさめられています.
以下は,lsi-nis-HOWTO Date: 2004/07/29 14:29:45 Revision: 1.3 に加筆したものです. Logical Solutions (LSI) Secure Console Server (SCS) NIS HOWTO 摘要 : LSI の SCS においては,ユーザー認証に加えて,各シリアルポートへのアクセス管理も行う必要があります.このため,SCS にはユーザー認証に関する情報とは別に,ユーザー毎にポートへのアクセス許可の情報を含んだ設定ファイルを持っています. NIS をSCSのユーザー認証に使う場合,次の問題が生じます. 1) NIS によりユーザー認証は行われるが,NISからはポートアクセスに関する許可情報が提供されない 2) そのため,個々の SCS にユーザーごとにポートアクセスに関するローカルな設定を行わねばならない この文書では,nsswitch.conf の設定を拡張して,それぞれのユーザーのそれぞれの SCS のポートへのアクセス許可を NIS にゆだねる方法を解説します.具体的には,既存の NIS データベースを変更し,ポートアクセスを管理するための新しいレコードを含めます. 1.0 NIS サーバーとクライエントの準備 NIS をSCSのユーザー認証とポートアクセス管理に使用するために,NISサーバーを用意し,SCSをNISクライエントに設定します.またNISサーバーのhomeディレクトリをNFSで共有しておくとSCSにユーザーディレクトリを設ける必要がなくなり便利です.NISサーバー/NFSサーバーの設定については,サーバーとしてお使いになるOSのマニュアルを参照ください. 参考例として,Linuxホスト を NIS/NFS サーバに使う設定例 を用意しましたので参照ください.SCSをNIS/NFSクライエントにする方法についても触れています. 2.0 NIS によるポートアクセスの制御 SCS は NIS を使って,どのユーザーがどのポートにアクセスできるかを制御できます. この機能は,NIS サーバーにポートアクセスの情報をおさめたデータベースを作り,それをNISクライエントであるSCSから参照することで実現します.このポートアクセスデータベースは次のファイルから構成されます.
2.1 lsi_port_access ファイル このファイルには,グループ名毎にアクセスを許されるSCSのユニットと,そのどのポートに対してCONNECT, MONITOR, CLEARの実行を許すかが書かれています. 書式 - グループ名:SCS名:CONNECT許可:MONITOR許可:CLEAR許可 上記において
上の例は2つのグループを定義しています.最初のグループ pbxgrp は,tvscs320 と名づけられた SCS のポート 1 と 2 から 6 と 13 にCONNECTでき,ポート 5 から9 をMONITORでき,ポート 1 と 7 のバッファーをCLEARできます.次のグループ itgrp は,tvscs160 と名づけられた SCS のポート 8 から 16 にCONNECTでき,ポート7をMONITORでき,ポート 1 と 3 と 5 と 7 から 11 のバッファーをCLEARできます. 2.2 lsi_port_user ファイル このファイルにはSCSのユーザーが所属するグループ名が定義されています.一人のユーザーが複数のグループに所属することもできます.次に設定例を示します. 書式 - ユーザー名 : グループ名 上記において
上の例は tomv と billf の二人のユーザーの所属するグループを定義しており,ユーザー tomv は pbxgrp グループに, ユーザー billf は itgrp に属しています. 上記の lsi_port_access ファイルと共に使って,tomv と billf の SCS へのアクセスを制御します. 2.3 lsi_port_awk ファイル このファイルは, lsi ポートデータベースファイル ( lsiportdbase ) を NIS サーバー上に作るのに使います. このファイルは makefile が使う awk のコードです. 2.4 Makefile.nis.portAccess これが ポートデータベースファイル "lsiportdbase" を作るのに使う make ファイルです. 2.5 /etc/nsswitch.conf NISクライエントとなるSCS上のこのファイルに 'port_access' データベースを追加します. その書式は他のエントリと同じです.
files と nis のサービスに加えて, default.allow と degault.deny を使うこともできます. これらはポートアクセスに関するレコードやファイルがない場合のアクションを指定するために使うことができます.SCS がローカルでないユーザー認証 (LDAPとかKerberos とか) を使う場合,SCS 上に一切のローカルな設定ファイルがないこともあり得ます. この場合,認証されたユーザーはSCSにログインできますが,デバイスポートやバッファーへのアクセスを拒否されてしまいます. /etc/nsswitch.conf ファイルの port_access 行の末尾に default.allow を付加するとポートアクセスの設定ファイルを持たないすべてのユーザーがポートやバッファーににアクセスできるようになります.
(NIS を使わないときは nis を省いてもかまいません). ローカルな設定ファイルを持っているユーザーはdefault.allow あるいは default.deny オプションは無意味です.これらはローカルな設定ファイルがないときにのみ有効です. 3.0 SCSユーザーの所属するグループ scsusers 701, monitor 702 LSI の SCS はシリアルポートとバッファーへのアクセス管理にグループパーミッションを使っています. このために2つのグループが定義されており,ユーザーがポートやポートバッファーにアクセスするためには scsusers か monitor グループか,その両方に属していなければなりません. これは /dev と /proc のエントリがこれらのグループに属しており,グループに属さないユーザーのアクセスは拒否するからです. よって,NIS を使用するときは,NISサーバー側で SCSユーザーを適切なグループに所属させて,NISクライエントであるSCSの /etc/nsswitch.conf ファイルに group も定義しておくことを忘れないでください. passwd: nis files shadow: nis files group: nis files port_access: nis files hosts: files dns シリアルポートとポートバッファーのノードのパーミッションは次のとおりになっています. /dev/ttyB* のデバイススノードのパーミッションは 660 (rw-rw----) /dev/monitor_port* のデバイスノードのパーミッションは 440 (r--r-----) NISサーバー上でSCSユーザーが scsusers グループID 701 か monitor グループID 702 かあるいは両方のメンバーになるように group の設定がなされており,NISクライエントであるSCSがNISのgroupマップを参照するように設定されているのであれば,以下の設定は不要です. 以下のを変更を実行するには,事前に root のファイルシステムを R/W モードでリマウントしておく必要があります. (mount -o remount,rw /) この操作は root として実行します. 3.1 scsusers グループ 第一のグループは "scsusers" であり,グループIDは 701 です. このグループのメンバーはポートバッファー(/proc/port_buffers/...)とシリアルポート (/dev/ttyBn)にアクセスできます. ユーザーが "scsusers" グループに属していないと,ローカルな設定ファイルやNISによるアクセス権のチェックは行われません. 3.2 monitor グループ もう一つのグループは "monitor" であり,グループIDは 702 です. このグループのメンバーはポートモニター (/dev/monitor_port...) にアクセスできます. 3.3 グループIDの変更 グループIDとして 701 と 702 を利用できる場合は,この手順は必要ありません. NIS 上ですでにグループID 701 と 702 を使っている場合は,別のグループIDに付け替えます. ただし,グループ名を変更することはできません. 初めてSCSに電源を入れると,初期値のグループIDを持ついくつかのファイルが作られます.このため,グループのグループIDを変更するだけでなく,これらファイルのグループIDも変更しなければなりません. これらの変更はユーザーを作る前あるいはNISを設定する前に行っておくべきです.さもないと,より多くのファイルのグループIDを修正しなければならなくなります. A) グループIDの変更 グループIDを変更するには, "groupmod" コマンドを使います. コマンド書式は次の通りです. groupmod -g 新しいグループID番号 -o グループ名 グループ名は "scsusers" か "monitor" です. B) 関連するファイルのオーナーグループを変更します. find / -gid 変更前のグループID -exec chgrp 新しいグループID {} \; C) LSI 設定ファイルの変更 "scsusers" グループのグループIDを変更したら,LSIの設定ファイルも変更しなければなりません. /etc/sysconfig/lsi ファイルに次の行を追加します. LSI_BUFFER_GID=新しいグループID ここで“新しいグループID”とは"scsusers"グループに新たに割り付けたグループIDです. D) 変更の保存 "save" コマンドを実行して,フラッシュメモリーに変更を保存します.
NIS サーバーにSCSユーザーを追加する際には,上記のグループのメンバーを管理することも忘れないでください. SCSユーザーを追加し,グループメンバーの設定を終えたら,MAPを作ります. cd /var/yp; make -f Makefile.nis.portAccess NIS サーバーにSCSユーザーを追加した際は,NISサーバー上のLSIポートアクセスデータベースを更新することも忘れないでください.SCSのポートアクセスデータベースを作るには,上記のファイルを NIS サーバーに置き,lsi_port_access と lsi_port_user に必要な設定を行った後に; cd /var/yp; make -f Makefile.nis.portAccess lsiportdbase を実行し,同ディレクトリに生成された lsiportdbase ファイルをNISのMAPディレクトリ(Linux では /var/yp/<NISドメイン名>)にコピーします. 以上 |
|||