• 検索結果がありません。

13   COMMERCIAL IP SECURITY OPTION

3.4.  セキュリティポリシーのファイル構成

3.4.3.  コマンド

 

Ⅱ‑68  Copyright © 2003 IPA, All Rights Reserved.

 

関連ファイル 

 

/etc/security/shadow̲context  spasswd あるいは svipw 等のコマンドにより編集 されたファイル/etc/shadow にアタッチするセ キュリティコンテキストを定義するファイル   

ム固有に定義された type がアタッチされていることが多い。このようなファイルを、

たとえば管理上の理由によりエディタ等の別プログラムで編集した際に、アタッチさ れていた type が変更されてしまう。このような場合に、適切なセキュリティコンテキ ストをアタッチし直すためのコマンドとして有用である。 

(4) id 

ユーザ情報を表示するコマンド。3.4.3.1(5)にて説明する newrole コマンドを利用 していると、自身に割り当てられている role と type が判らなくなることが多い。こ のような場合に、自身に割り当てられている role と type を確認するためのコマンド として有用である。 

(5) newrole 

複数の role を割り当てられているユーザでシステムにログインしている場合に、

role を切り替えるコマンド。厳密には、引数で指定された role で新たな shell を開 始するコマンド。 

本コマンドは 3.4.2(2)のアプリケーション コンフィギュレーション ファイルを 参照している。 

(6) runas 

引数で指定されたセキュリティコンテキストでプログラムを実行するコマンド。 

(7) setfiles 

ファイルシステム上のファイルに対してセキュリティコンテキストを一括してア タッチするコマンド。SELinux のインストール過程にて、セキュリティコンテキスト のマップ情報を初期化する目的で利用されている。SELinux インストール後であって も、ファイルにアタッチされた誤ったセキュリティコンテキストを正す目的や、新た に作成したセキュリティポリシーのための新たなセキュリティコンテキストをファイ ルにアタッチする目的で利用することも可能である。 

(8) spasswd 

passwd コマンドのラップコマンドで、passwd ファイルと shadow passwd ファイルの

 

Ⅱ‑70  Copyright © 2003 IPA, All Rights Reserved.

セキュリティコンテキストを適切なものに維持した状態でユーザパスワードの変更を 実現する。ただしこのコマンドは引数を取らないため、コマンドを実行したユーザ自 身 の パ ス ワ ー ド 以 外 は 変 更 で き な い 。 こ の コ マ ン ド は フ ァ イ ル /etc/passwd と /etc/shadow にアタッチされているセキュリティコンテキストを適切なものに維持す るため、同ファイル編集後に特定のセキュリティコンテキストをアタッチする。この セキュリティコンテキストは 3.4.2(4)と 3.4.2(5)のアプリケーション コンフィギュ レーション ファイルにより決定される。 

(9) sadminpasswd 

spasswd との違いは本コマンドがユーザアカウント名を引数として受け付けること である。管理者ユーザであれば、本コマンドを用いてシステム上の一般ユーザのパス ワードを変更することが可能である。一般ユーザであっても本コマンドを利用するこ とはできるが、他のユーザのパスワードを変更することは許可されていないため、自 身のパスワードを変更できるに過ぎない。 

(10) svipw 

vipw コマンドのラップコマンドで、passwd ファイルと shadow passwd ファイルのセ キュリティコンテキストを適切なものに維持した状態で同ファイルの編集を実現する。

本コマンドは spasswd コマンドと同様の理由により、3.4.2(4)と 3.4.2(5)のアプリ ケーション コンフィギュレーション ファイルを参照している。 

3.4.3.2. ディレクトリ/usr/local/selinux/sbin/下のコマンド 

(1) run̲init 

initrc スクリプトを実行するコマンド。本コマンドで実行された initrc スクリプ トには 3.4.2(3)で定義されているセキュリティコンテキストがアタッチされる。通常 Linux システムでは、initrc スクリプトをコマンドラインから実行してデーモンの起 動・停止・再起動が可能であるが、SELinux では initrc スクリプトは init プロセス からのみ起動されることを前提としてセキュリティポリシーが定義されている。した がって、initrc スクリプトをコマンドラインから実行した場合に適切なセキュリティ コンテキストがアタッチされず、その後 initrc スクリプトから起動されるプログラム は正常に稼動しない。デーモンプログラムをコマンドラインより起動・停止・再起動 させたい場合には、本コマンドを利用する必要がある。なお、本コマンドの引数にお

ける initrc スクリプトの指定は絶対パスでなければならないことに注意が必要であ る。 

3.4.3.3. スクリプト 

スクリプトは SELinux のソースアーカイバに含まれている。上記の各種コマンドとは違 い、SELinux のインストールの際に同時にインストールされないため気付きにくいが、非常 に便利なスクリプトがあるので紹介する。 

(1) newroles.pl 

このスクリプトはログ情報からセキュリティポリシー定義文(allow 文に限られる)

を作成して出力してくれるスクリプトである。SELinux はそのセキュリティポリシー 定義において拒否しているアクセスが発生した際にログを出力する。このスクリプト はそのログ情報を入力として、拒否されたアクセスを許可するためのセキュリティポ リシー定義文を出力してくれるのである。アプリケーションのために新たなセキュリ ティポリシーを定義する場合などに以下のような用法が考えられる。 

 

① 必要な domain と type を定義する(アクセスベクタルールは一切定義しない)。 

② ①をシステムのセキュリティポリシーに反映させる。 

③ SELinux の稼動モードを「permissive」モードに変更する。 

④ 当該アプリケーションを一通り稼動させる。 

⑤ 本スクリプトを利用してログ情報からアクセスベクタルールを作成する。 

⑥ ⑤で得たアクセスベクタルールを厳密に吟味する。 

⑦ ⑥の結果必要なアクセスベクタルールはセキュリティポリシーに反映する。 

 

このような手順を採れば、新たなセキュリティポリシーを定義する際に効率よく作 業できる。しかし、⑥は非常に重要であることを忘れないで欲しい。この作業を怠っ てしまっては SELinux を導入する意味がまったくなくなってしまうからである。 

 

 

Ⅱ‑72  Copyright © 2003 IPA, All Rights Reserved.