Fedora Core 5でのSELinuxの機能や使い方を,これまでSELinuxを使ったことがない人に向けて分かりやすく解説する。今回は,タイプを手作業で付与してより安全な設定にする方法を紹介する。

 本題に入る前に注意点がある。Fedora Core 5を最新版にアップデートすると,/usr/share/selinux/develディレクトリが削除され,本連載の内容が試せなくなってしまう(2006年9月上旬現在)。その対処方法をWebページの「日経Linux2006年10月号補足情報」に示したので,該当者は参照してほしい。

 前回から,モジュール・パッケージを追加して,不足している設定を補足する方法を紹介している。前回は,audit2allowコマンドを使って,足りない設定を自動的に生成する方法を解説した。

 しかし,この方法では,セキュリティ上の問題を包含した設定が生成されてしまうことがある。例えば,前回設定したallow文を見てみよう(図1)。ここでは,「httpd_tドメインがhttpd_sys_content_tタイプに書き込み可能」と設定している(図2(1))。

図1●前回に設定したallow文
図1●前回に設定したallow文
2006年10月号の図5で示したteファイルの中で指定したもの。
[画像のクリックで拡大表示]

図2●タイプを分けることで,きめ細かな設定が行える
図2●タイプを分けることで,きめ細かな設定が行える
[画像のクリックで拡大表示]

タイプ設定の必要性

 httpd_sys_content_tは,/var/www/html以下に付与されているタイプである。つまり,httpd_tドメインが,/var/www/html以下すべてに読み書き可能に設定されていることを意味する。

 しかし,前回の例題として取り上げたPukiWikiは,/var/www/html/pukiwiki以下にしかアクセスしないため,この設定だと余計なアクセスを許していることになる。このように,audit2allowコマンドで生成された設定が最適とは限らない。

 SELinuxは,ファイルをタイプで識別している。SELinuxは,httpd_sys_content_tタイプが付与されたファイルをすべて同じものとみなす。より適切な設定を行うには,図2(2)のように,「/var/www/html/pukiwiki」に新たなタイプを付与し,そのタイプに読み書き可能なように設定すればよい。今回は「wiki_write_t」という名前のタイプを付与してみよう*2。こうすれば,/var/www/html/pukiwikiのみを書き込み可能にできる。