今回から,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を有効にする
| ||
|
Fedora Core 2を標準設定のままでインストールすると,SELinuxの機能は無効になっている。そのため,インストール時あるいはインストール後に,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を有効にできる。
(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専門委員会委員長を務める。
![]() セキュアOS SELinuxを詳述した初めての書籍。SELinuxの機能,効果,限界といった仕組みの解説から,構築・運用に必要な実践ノウハウ,支援ツールの利用法まで,SELinuxを活用するために不可欠な知識を網羅した一冊。付録DVD-ROMにSELinuxとFedora Core 1を収録。 |