SELinuxで組み込み機器のセキュリティを高める(後編) ―― 組み込み機器にSELinuxを適用する
3 最小限のポリシの準備
まず,システムが動作するための必要最小限のポリシを準備します.前編で紹介したように,ポリシの準備にはSELinux Policy Editor(SEEdit)を使います.
● 作成するファイル
ポリシに関係するファイルとして,ボード上に作成する必要があるのは,表5の三つのファイルです.
これらのうち,policy.21,file_contextsはポリシの設定ファイルです.以降でSEEditを使って用意します./etc/selinux/configについては,次のような内容でボード上に作成します.
SELINUXTYPE=seedit
これは,「ポリシ関連のファイルを/etc/selinux/seeditに格納する」と設定しています.
● SELinux Policy Editorの開発機への導入
さて,ポリシ設定ファイルを作成するために,SEEditを開発機に導入しましょう.最新版のソースをhttp://sourceforge.net/projects/seedit/からダウンロードします.最新版のファイル名はseedit-2.2.0.1.tar.gzです.ダウンロードしたらファイルを展開し,次のコマンドでコンパイル・インストールします.インストール先は~/seedit-crossです注1.
$ cd core $ make $ make cross-install DESTDIR=~/seedit- cross $ cd .. $ cd policy $ make cross-install DESTDIR=~/seedit- cross
注1;インストール前に,開発機側に「checkpolicy」パッケージを入れておく必要がある.CentOS 5では,yum install checkpolicyで導入できる.
● 最小限のポリシを作成
これで,ポリシの開発環境が~/seedit-crossディレクトリに作成されました.seedit-crossディレクトリには,主に表6のようなファイルとディレクトリが配備されています.
このディレクトリに移動し,最小限のポリシを作成します.
$ cd ~/seedit-cross $ ./seedit-load -d
seedit-loadコマンドは,SEEditの設定書式SPDLで書かれたポリシを通常の形式に変換するものです.通常は,-dオプションを付けて実行します.これで,simplified_policyディレクトリ以下に格納されたSPDL記述の設定が,通常のSELinuxの設定書式に変換され,policy_root以下に出力されます.出力された設定は必要最小限のものです.プログラムには,kernel_t,init_t,もしくはunconfined_tというドメインが付与されます.これらのドメインは,「すべての操作を許可」と設定されており,セキュリティ上の効果はありません.実際にSELinuxの機能を活用するには,自分で設定を追加する必要があります.
policy_rootディレクトリ以下のファイルを,ボードの/etc/selinux/seeditディレクトリに転送します.転送後,ボード側には/etc/selinux/seedit/policy/policy.21,/etc/selinux/seedit/contexts/files/file_contextsというファイルができていることを確認します.