今回から,2004年5月18日(米国時間)に公開されたばかりの最新ディストリビューション「Fedora Core 2」でのSELinuxの使い方を解説していく。

 Fedora Core 2では,SELinuxが標準で組み込まれた上,SELinuxの動作を管理するポリシー・ファイルも整備されており,比較的簡単にSELinuxの機能が利用できるようになった。

 Fedora Core 2の登場以前にSELinuxを使いたい場合は,ディストリビューションのインストールに加えて,SELinuxを使うために必要なパッケージを別途インストールする必要があった。ポリシー・ファイルも未整備であり,「ディストリビューションをインストールしてすぐにSELinuxの機能を試す」わけにはいかなかった。

SELinuxが標準で組み込まれたFedora Core 2

 先に述べたようにFedora Core 2には,SELinuxを利用するために必要なパッケージが包含されている。Fedora Core 2に含まれるSELinux関連のパッケージを表1に示す。

表1●Fedora Core 2に組み込まれたSELinux関連のパッケージ
インストール時にSELinuxもインストールするように指定すると,これらのパッケージが組み込まれる。同時に,SELinux用に拡張されたコマンド(lsコマンドやpsコマンドなど)も組み込まれる

kernel SELinuxが組み込まれたLinuxカーネル
libselinux SELinux特有のAPIを使うためのライブラリと管理コマンド
policy 設定ファイルのバイナリと,ファイルへの属性情報(タイプ)付け
policycoreutils 設定を管理するためのコマンド

 関連パッケージのなかで最も重要なのが,SELinuxのための機能拡張がなされたLinuxカーネルである。

Linuxカーネルの拡張

 Fedora Core 2のLinuxカーネルには,バージョン2.6(以下,カーネル2.6)が採用された。カーネル2.6は,旧バージョンのカーネル2.4と比較してさまざまな機能が追加あるいは強化された。それのうち,SELinuxに関連するものを紹介する。

(1)LSM(Linux Security Module)のサポート

 LSMとは,SELinuxなどのセキュアOSをカーネル・モジュールとして実装するための仕組みである。この仕組みにより,Linuxカーネル本体には手を加えずに,モジュール化したセキュアOSの機能をLinuxカーネルに組み込むことができる。このLSMに準拠したセキュアOSには,SELinuxやLIDSがある。

(2)ファイル・システムによる拡張属性のサポート

 前回紹介したようにSELinuxでは,アクセスを制限するために,ファイルに「タイプ」と呼ぶ属性情報を設定する。タイプをファイルに付与するためには,ファイル・システムが「拡張属性」をサポートしている必要がある。Fedora Core 2では,カーネル2.6に含まれるExt3,Ext2,XFSの各ファイル・システムが拡張属性をサポートしている。そのため,SELinuxを使う場合は,これらのファイル・システムを使うようにする。

 Fedora Core 2では,これらの機能を備えるカーネル2.6が採用されたと同時に,LSMに対応したSELinuxのカーネル・モジュールやポリシー・ファイルが組み込まれた。そのため,次に紹介する手順でFedora Core 2を有効にするだけでSELinuxの機能が利用できる。

Fedora Core 2でSELinuxを有効にする

写真1●Fedora Core 2のインストーラの起動画面
写真2●「ファイヤーウォール設定」の画面
 それでは,Fedora Core 2をインストールしてSELinuxを使えるようにしてみよう。

 Fedora Core 2を標準設定のままでインストールすると,SELinuxの機能は無効になっている。そのため,インストール時あるいはインストール後に,SELinuxの機能が有効になるように設定を変更する。

  • Fedora Core2のインストール時にSELinuxを有効にする

     次のようにすれば,Fedora Core 2のインストール時にSELinuxを有効にできる。

    (1)Fedora Core 2のインストーラの画面で,「linux selinux」と入力する(写真1[拡大表示])。

    (2)(1)により,「ファイヤーウォール設定」の画面で,SELinuxを選択できるようになる(写真2[拡大表示])。

     表2にオプションの意味を示す。デフォルトでは「アクティブ」が指定されている。デフォルトの「アクティブ」のままでインストールを行うとSELinuxが有効になる。

    表2●SELinuxのインストール・オプションの意味

    アクティブ SELinuxを有効にする
    警告 ログのみを出力するモードでSELinuxを有効にする
    ファイアウォールを無効にする SELinuxを無効にする

  • Fedora Core 2のインストール後にSELinuxを有効にする

     Fedora Core 2をインストールした後でも,次のようにすれば簡単にSELinuxを有効にできる。

    (1)rootユーザーでログインし,必要な初期化作業を次のコマンドで行う。

    # fixfiles relabel

     このコマンドを実行することより,ファイル・システムの拡張属性にTEのタイプを書き込んでいる。

    (2)/etc/sysconfig/selinuxファイルを編集して,システム起動時のSELinuxの有効・無効を指定する。具体的には,/etc/sysconfig/selinuxファイルの

    SELINUX=disabled

    という行を次のように変更する。

    SELINUX=enforcing

    これにより,起動時にSELinuxが有効になる。

    (3)最後にシステムをリブートする。

    # reboot

    を実行してシステムを再起動する。これで,SELinuxが有効になった状態でシステムが起動する。

    SELinuxを無効にする

     SELinuxを使ってシステムを運用しているときに,障害対応などで一時的にSELinuxを無効にしたいときがあり得る。そうした場合でも,次の2通りの方法を用いて,簡単にSELinuxを無効にできる。

    (1)/etc/sysconfig/selinuxファイルの「SELINUX=…」となっている行を,「SELinux=disabled」のように変更する。システムの再起動後には,SELinuxが無効になる。

    (2)システムのブート時に無効にする。SELinuxの障害の具合によっては,/etc/sysconfig/selinuxファイルすら変更できない場合もあり得る。このような場合は,ブート時の指定が便利である。ブート・ローダーのGNU GRUBが起動したら,「e」キーを押してから,「selinux=0」を以下のように追加する。

    root (hd0,1)
    kernel /vmlinuz-2.6.5-1.358 ro root=LABEL=/1 rhgb quiet selinux=0 下線部を追加する
    initrd /initrd-2.6.5-1.358.img

     それから「b」キーを押してブートすれば,SELinuxが無効になる。この際,日本語キーボードで「=」を入力するためには,「^」キーを押す必要があることに気を付けよう。

     再びSELinuxを有効にする際は,「fixfiles relabel」にて再度初期化作業を行うようにする。

    SELinuxの動作を確認する

     SELinuxを有効にしてシステムを起動したら,その動作を確認してみよう。今回はテキスト・ログインでの確認方法を紹介する。

     まず,「Ctrl+Alt+F1」を押して,テキスト・ログインの画面に切り替えよう。ユーザー名「root」とそのパスワードを入力すると,選択を促すメッセージが出てくるが,ここでは気にせずにコマンド・プロンプトが表示されるまでリターン・キーを押し続けよう。ログインができたら,次のコマンドで動作確認をする。

    # getenforce
    enforcing

    と表示されば,SELinuxが有効になっている。

     今回の操作はここまでとし,最後にシステムを終了させよう。「shutdown -h now」を入力して,シャットダウンする。

     SELinuxでは,RBACやTEを反映して,各種コマンドの操作方法が通常のLinuxのものとは多少異なっている。そこで次回(6月15日公開予定)はSELinux特有のコマンドの操作方法を解説する。また,日経Linux7月号(6月8日発売)の特集「今すぐ始めるFedora Core2」においてもSELinuxの設定・利用法を解説している。付録DVD-ROMにFedora Core 2を収録するので,いち早く試したい方は利用するとよいだろう。


    著者紹介
    中村 雄一(なかむら ゆういち)氏
    日立ソフトウェアエンジニアリング技術開発本部研究部所属。SELinux関連の研究・開発を行っている。SELinuxの普及活動も行う。講演・執筆に加えて,コミュニティにも積極的に参加。パッチ・プログラムやインストール・パッケージなども開発している。著書に「SELinux徹底ガイド」(日経BP社)がある。書籍や記事のサポート・ページも開設している。日本オープンソース推進機構(JOSAO)のSELinux専門委員会委員長を務める。

     SELinux徹底ガイド セキュアOSによるシステムの構築と運用

    セキュアOS SELinuxを詳述した初めての書籍。SELinuxの機能,効果,限界といった仕組みの解説から,構築・運用に必要な実践ノウハウ,支援ツールの利用法まで,SELinuxを活用するために不可欠な知識を網羅した一冊。付録DVD-ROMにSELinuxとFedora Core 1を収録。