Fedora Core 5でのSELinuxの機能や使い方を,これまでSELinuxを使ったことがない人に向けて分かりやすく解説する。今回は,リファレンス・ポリシーを操作するための「ポリシーのソース・ファイル」を解説する。
本題に入る前に,2006年10月24日にリリースされたFedora Core 6に含まれるSELinuxの状況をごく簡単に報告する。Fedora Core 6と同5のSELinuxは,ほとんど同じである。機能的な違いは,本誌2006年11月号で紹介したSELinux関連のトラブル解決支援ソフトウエア「SELinux Trouble Shooting Tool」の実装程度であり,SELinux本体の機能は変わらない。本連載はFedora Core 5での使い方を紹介しており,その内容はFedora Core 6にも通用する。
本題に入ろう。これまでポリシー・ファイルについては,バイナリ形式のものを扱ってきた。その基になっているのは,ポリシーのソース・ファイル(以下,ソース・ファイル)と呼ばれるテキスト形式のファイルだ。バイナリ形式のポリシー・ファイルでは,どのような設定がなされているのかを把握したり,大幅な修正を加えることはほとんど不可能である。
そこで,ポリシーを本格的に操作するときは,バイナリ・ファイルではなく,そのソース・ファイルが対象になる。同時に,ソース・ファイルの構造を理解しておくことも重要である。今回は,ソース・ファイルの入門として,その構造を見ていこう。
ソース・ファイルをインストールする
ポリシーのソース・ファイルを扱うには,システムに「rpm-build」および「gcc」のパッケージが必要だ。これらのパッケージをインストールしよう。
|
ポリシーのソース・ファイルは,RPMパッケージのベースとなるSRPMファイルに収録されている。今回の場合,「selinux-policy」という名前のSRPMファイルを入手する。
最新版のSRPMファイルを,「http://fedora.redhat.com/Download/mirrors.html」でアクセスできるサイトの,updates/5/SRPMSディレクトリからダウンロードしよう。2006年11月上旬時点のファイル名は,「selinux-policy-2.3.7-2.fc5.src.rpm」だ。このSRPMファイルを次のようにインストールする。
|
/usr/src/redhatディレクトリ以下に,ソース・ファイルを含んだ一連のファイル群がインストールされる。ここからソース・ファイルを取り出す手順を図1に示す。
![]() |
図1●ソース・ファイルを取り出す手順 [画像のクリックで拡大表示] |
ソース・ファイルの構成
/etc/selinux/targeted/src/policy以下には,さまざまなファイルやディレクトリが格納されている(表1)。ここでは,図2に沿って,全体を概観しよう。
![]() |
表1●policyディレクトリにある主なファイルとディレクトリ [画像のクリックで拡大表示] |
![]() |
図2●ソース・ファイルの構成 [画像のクリックで拡大表示] |
図2の(1)に示したポリシーのソース・ファイルの本体は,policy/modules以下に格納されている。このディレクトリには,「ソース・モジュール」という単位でファイル群が整理されて格納されている。
この中には,strictポリシーや,targetedポリシー,ディストリビューション固有のポリシーといった,さまざまな用途のポリシーがまとめて記述されている。
(2)makeコマンドを用いて,ソース・ファイルをバイナリ形式に変換する。変換する際のオプションをbuild.confやmodules.confなどに設定できる。この設定に基づいて,用途に応じたポリシーが抽出される。例えば,「targetedポリシーに変換」「Fedora Coreに対応したポリシーに変換」のようなことができる。
(3)バイナリ形式のポリシーは,base.ppファイルである。設定によっては,一部を別のモジュール・パッケージ(ppファイル)として分離することも可能だ。