SELinuxの現状:使いやすさの改善が進むSELinux(2/3 ページ)

» 2006年09月26日 09時00分 公開
[中村雄一(日立ソフトウェアエンジニアリング),ITmedia]

使い勝手を上げる2通りのアプローチ

 SELinuxの使い勝手を上げるためのアプローチは、2つの方向から行われている。

 1つ目のアプローチは、開発元のアプローチだ。SELinuxの開発元は、SELinuxのセキュリティ機能はそのままに、徐々に使い勝手を上げていこうとしている。このアプローチは、セキュリティ的には優れているが、実現までに時間が掛かるという欠点がある。この欠点を克服するために、Fedora Projectのリソースを利用した人海戦術も採用している。

 もう1つのアプローチは、SELinux Policy Editorによるアプローチだ。こちらは、「SELinuxの機能を省き、使い勝手を一気に上げる」というアプローチだ。手っ取り早く使い勝手のよさは実現できるものの、セキュリティの面では開発元のアプローチに劣る。下がったセキュリティについては、省いた機能を徐々に追加していくことで補おうとしている。

開発元の取り組み

 SELinuxの開発は、主にNSA、Red HatおよびTresys Technologyによって行われているが、使い勝手向上の取り組みはRed Hatが中心になっているようだ。開発元の取り組みは「ポリシーを隠蔽する」「トラブル解決のノウハウ集約」の2つが主な取り組みだ。

ポリシーを隠蔽する

 これは、以前から行われているアプローチだ。「設定の必要性がなくなれば、ユーザーがポリシーを意識することはなくなるはずだ 」という考え方で、できるだけ多くのアプリケーションのためのポリシーをディストリビューション側で用意する。現在のところ、Fedora Coreをベースにポリシーが整備されており、Fedora Coreに標準添付されているほとんどのアプリケーションのためのポリシーが用意されている。

トラブル解決のノウハウを集約するsetroubleshoot

 しかし、ポリシーを十分用意しても、なおもSELinuxが原因のトラブルが発生し続けている。結局、用途によって必要なポリシーは異なるため、ある程度のカスタマイズが必要となるからだ。例えば、Sambaでホームディレクトリを公開したい場合とそうでない場合は、必要なアクセス権限、つまりポリシーは異なってくる。

 そこで、Red Hat社内に「SELinux Usability Project」というプロジェクトが発足し、使い勝手向上の研究がされるようになってきた。その最初の成果として発表されたのが「setroubleshoot」である。

 setroubleshootは、トラブル解決のノウハウを集約したデータベースを持っている。実際には、プラグインと呼ばれるpythonベースの小さなプログラムの集合体であり、各プラグインに問題解決のロジックが詰まっており、新たなノウハウが判明したら、プラグインを追加することで拡張することができるようになっている。SELinuxが原因のトラブルが発生した場合は、このデータベースを基に、解決方法をGUIベースのポップアップで知らせてくれる(図1)。

図1 図1:setroubleshootの画面。SELinuxによってアクセスが拒否された場合、このようなウインドウがポップアップで提示される。問題の説明と解決方法が記述されている

 setroubleshootは、近々リリース予定のFedora Core6に搭載される見込みである。そして、Red Hat Enterprise Linux 5のリリースまでには完成させるつもりのようだ。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ