目覚めよ! SELinux

SELinux Policy EditorでSELinuxを簡単に


中村 雄一
日立ソフトウェアエンジニアリング株式会社
技術開発本部 研究部 技師
2006/12/8
Security&Trustフォーラムでも連載中の「SELinuxの最新動向」などでSELinuxの生い立ちや意義は理解できていても、実際の設定でつまずいて結局利用していないという人も多いのではないだろうか。
本記事ではセキュアOSの普及に情熱を注いでいる中村氏の「多くの人にSELinuxを使ってもらいたい」という気持ちから作成されたツール、SELinux Policy Editorの機能を説明する(編集部)

 あなたのLinuxの中にもSELinuxは眠っている

 最近のLinuxディストリビューションには、セキュアOS「SELinux」が標準搭載されています。SELinuxは、高度なセキュリティ機能を提供する一方、難しいというイメージが先行し、有効に活用されていません。読者の皆さまの中にも、SELinuxの設定に挫折して、SELinuxを無効にしてきた方も多いのではないでしょうか。

 とはいえ、SELinuxもやり方次第では簡単に使えるのです。今回は、SELinuxを簡単にするツール、「SELinux Policy Editor」(通称SEEdit)を紹介します。

 SEEditとは

 SEEditとは、SELinuxを簡単に使えるようにすることを目指して開発が行われている、SELinuxの設定ツールです。SEEditは2003年に日立ソフトウェアエンジニアリングからオープンソース・ソフトウェア(GPLライセンス)で公開されたプロトタイプが基になっています。現在はSourceforge.netのプロジェクトにて開発が進んでおり、2007年2月現在の最新版はCent OS 4とFedora Core 6で動作するバージョン2.1.0となります。

 SEEditでは、SPDL(Simplified Policy Description Language)と呼ばれる単純な設定書式を使って簡単に設定を行うことができるようになっています。それに加え、ポリシー生成ツールなどの補助ツール、X Window SystemベースのGUIも用意されています。

 まずはSEEditのインストール

 早速SEEditをインストールしてみましょう。インストールはrpmパッケージを使って簡単に行うことができます。本記事では、Fedora Core 6を前提に話を進めます。

 SEEditは、Fedora Core 6のExtrasに取り込まれていますので、以下のコマンドだけでインストールできます。

# yum install seedit-gui

 これにより、seedit、seedit-policy、seedit-guiパッケージがインストールされます。

 なお、CentOSの場合は、SEEditダウンロードページより、seedit-converter、seedit-policy、seedit-guiの3つのパッケージをダウンロードし、

# rpm -ivh seedit*.rpm

 にてインスト-ルします。インストール直後には、以下のコマンドで初期化を行う必要があります。

# /usr/sbin/seedit-init

 その後、再起動を行います。再起動すると、SELinuxのラベルの初期化画面が出てきて、起動が一時停止します。数分待つと自動的に再起動します。さらに、もう一度自動的に再起動が行われます。ログインできるようになったら、インストールは完了です。

 SEEditはGUIで直感的に理解可能

 SEEditをインストールすると、SELinuxに関するすべての操作をGUIから行えるようになります。コマンドラインからの操作も可能ですが、本記事ではより簡単なGUIベースの使い方を紹介します。端末から「seedit-gui」と打ち込むか、「システム」→「管理」→「SELinux Policy Editor」を選択します。

図1 SEEditのコントロールパネル

 図1のような画面が立ち上がります(Cent OSの場合は、アイコンの代わりにボタンが表示されます)。このアイコンをダブルクリックすることで、SELinuxを管理するためのツールが立ち上がります。各アイコンを選択することで何ができるのかを、表1に示しました。

項目
内容
ステータス SELinuxのモードの確認・切り替え
動作中のプロセスのドメイン確認
ドメインを管理 新規ドメインの作成、削除
ポリシーを生成 足りない設定をログから自動生成
ポリシーを編集 テキストエディタで直接ポリシーを編集
ポリシーのロード・ラベル付け 設定の反映を手作業で行う
表1 コントロールパネルから操作できる項目

 この中でも、特に便利なのが「ステータス」および「ポリシーを生成」です。「ステータス」を選択すると、図2のような画面が表示され、動作モードの設定およびプロセスの動作状況を確認できます。

図2 SELinuxのステータスを確認できる

 この画面から分かるように、インストール直後は、Permissiveモードになっています。Permissiveモードは動作確認用のモードで、SELinuxによるアクセスが拒否されていても、ログを出力するだけで実際はアクセスを許可しています。従って、実運用時には、Enforcingモードに切り替える必要があります。このために、「現在のモード」、および「ブート時のモード」で「Enforcingモード」を選択し、「適用」ボタンを押します。

 「プロセス」タブからは、プロセスにどんなドメインが割り当てられているかを確認できます(図3)。ドメインに「Unconfined」と表示されているものが、SELinuxのアクセス制御を受けないプロセスです。cupsdなどが、SELinuxのアクセス制御を受けないことが分かります。デフォルト設定では、利便性を重視し、SELinuxのアクセス制御を受けないプロセスの存在を許しているからです。安全性を高めるため、このようなプロセスについては、サービスを停止、接続先の限定、または新たなドメインを設定する必要があります。一方、Apache Webサーバ(httpd)には、「httpd_t」というドメインが割り当てられていることが分かります。

図3 プロセスがどのドメインに割り当てられているかを確認できる

1/3

Index
SELinux Policy EditorでSELinuxを簡単に
Page1
あなたのLinuxの中にもSELinuxは眠っている
SEEditとは
まずはSEEditのインストール
SEEditはGUIで直感的に理解可能
  Page2
SELinuxを簡単に操れるSEEditの威力
  Page3
裏方に徹するSEEditの働き
ドメインの新規作成も簡単
あなたのフィードバックが明日のSEEditを作ります

関連記事
  連載:SELinuxの最新動向
  連載:セキュアOS「LIDS」入門
  ITmedia エンタープライズ:SELinuxの現状:使いやすさの改善が進むSELinux

Security&Trust記事一覧


Security&Trust フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Security & Trust 記事ランキング

本日 月間