net_rawaccess 特権で一般ユーザに snoop コマンドを実行させる
Solaris10では、net_rawaccess 特権を一般ユーザに与えることで snoop コマンドの実行を許可することができる。
Solaris 9 以前でもRBAC機能を使えば、 root 権限での snoop
コマンドの実行を一般ユーザに許可することは容易だが、Solaris10
では必要最低限の特権を与えることで、セキュリティリスクを最小化してこのようなニーズに対応することが可能になっている。(→最小特権機能と呼ばれてい
る)
その他の特権の一覧はこちら
■ 一般ユーザの追加(任意)
以下のように net_rawaccess 特権を与えるユーザー test を作成する。
bash-3.00#
useradd -d
/export/home/test -m -s /bin/bash test
■ 特権の割り当て
以下のように test ユーザーのデフォルト特権を変更する。
下記の例では一般ユーザのデフォルトの特権である basic に net_rawaccess を加えている。
bash-3.00#
usermod -K
defaultpriv=basic,net_rawaccess test
※basic 特権とはエイリアスみたいなもので、実は下記5つの特権の集合を表している。
file_link_any, proc_exec, proc_fork, proc_info, proc_session
上記コマンドで /etc/user_attr ファイルに以下のエントリが追加される。
(usermod コマンドを使用せずに /etc/user_attr ファイルを直接編集してもよい)
bash-3.00#
more /etc/user_attr
...
test::::type=normal;defaultpriv=basic,net_rawaccess
■ 動作確認
以下のようにユーザー test に変更して、動作を確認する。
bash-3.00#
su - test
-bash-3.00$
ppriv $$
22451: -bash
flags = <none>
E: basic,net_rawaccess
I: basic,net_rawaccess
P: basic,net_rawaccess
L: all
上記の結果からわかるように、現在のシェル(bash)にちゃんと net_rawaccess という特権が与えられている。
-bash-3.00$
/usr/sbin/snoop
Using device /dev/hme (promiscuous mode)
...
...
このように一般ユーザに簡単に snoop コマンドが実行させることができる。
========================================
※詳しい情報は以下のトレーニングコース参照
Solaris10新機能(システム管理編)
========================================
Solaris系技術トレーニング一覧