【レポート】

SELinuxにみるセキュアOSの現在

3 SELinux設定の実例 - FC2で基本設定

鶴田展之  [2004/08/25]

それでは、実際にSELinuxの機能を試してみよう。SELinuxはカーネル2.6にマージされており、カーネル2.6ベースのディストリビューションならば基本的にその機能を利用できるはずだ。ただ、SELinuxの設定は使用するアプリケーション毎に個別にポリシを設定していかなければならないため、一から十まで自力で設定していくのは非常に骨が折れる。実際にはディストリビューション自体がSELinuxへの対応を考慮して構成されていないと、たとえ経験豊富な技術者でもなかなか使いこなすのは難しいだろう。現在、ディストリビューションとして最もSELinuxへの対応が進んでいるのは「Fedora Core 2 (以下FC2)」だ。FC2にはあらかじめ各種サーバアプリケーション用の基本的な設定がデフォルトのポリシとして含まれているので、とりあえずSELinuxの動作を学ぶには格好の教材となる。ここではFC2を使い、実際のSELinuxの設定手順を簡単に紹介しておきたい。

SELinuxを有効にするには、まずFC2のインストール時に以下のようにブートオプションを指定する必要がある。

boot: linux selinux

インストーラが起動したら、あとは通常の手順と同じようにインストールを行えばよい。ただ、インストール後にXが起動しなかったり、Xを使ったグラフィカルログインができないといった問題が起きる。この場合は以下の手順で修正しよう。まず、Ctrl+Alt+F1キーで一旦テキストベースのコンソールに画面を切り替え、rootでログインする。次のようなメッセージが表示されるはずだ。

Your default context is root:sysadm_r:sysadm_t.

Do you want to choose a different one? [n]

これは、rootユーザに複数のロールが割り当てられているために表示されるものだ。そのままEnterキーを押せば、sysadm_rロールが選択され、sysadm_tドメインで動作するシェルが起動する。つまり、rootがシステムの管理作業を行える状態になるわけだ。そこで、以下のコマンドを実行する。

# fixfiles relabel

これで使用するファイルに正しくラベルが付加されるので、再起動すれば問題は解消する。

再起動したら、実際にSELinuxの動作を試してみよう。rootでログインし、以下のコマンドでstaff_rロールに切り替える。

# newrole -r staff_r

getconコマンドでロールを確認してみよう。

# getcon
root:staff_r:staff_t

ロールが"staff_r"に変更されているが、rootユーザであることに変わりはない。この状態で、viエディタで/etc下のファイルを編集してみる。ここではhostsファイルで試してみよう。

# vi /etc/hosts

内容を変更すると「Warning: Changing a readonly file」とメッセージが表示される。変更を保存しようとしても、「E45: 'readonly' option is set」と表示され、保存できない。たとえrootであっても、ファイルの編集には適切なロールが要求されることがわかるだろう。

    新着記事

    特設サイトの情報

    求人情報

    人気記事

    一覧

    イチオシ記事

    新着記事

    特別企画

    一覧

    転職ノウハウ

    あなたの仕事適性診断

    4つの診断で、自分の適性を見つめなおそう!

    Heroes File ~挑戦者たち~

    働くこと・挑戦し続けることへの思いを綴ったインタビュー

    はじめての転職診断

    あなたにピッタリのアドバイスを読むことができます。

    転職Q&A

    転職に必要な情報が収集できます

    スカウト転職する

    企業からアプローチのメッセージが届きます。