Fedora Core6におけるSELinuxの強化点──活発に開発が進むSELinux(1/2 ページ)

先月リリースされたFedora Core 6において、SELinuxには「setroubleshoot」と「secmark」という新機能が盛り込まれた。本記事では、新機能をいち早くレビューする。

» 2006年11月24日 08時00分 公開
[中村雄一(日本SELinuxユーザー会),ITmedia]

 2006年10月24日、Fedora Core 6がリリースされた。SELinuxも有効になっており、SELinuxがFedora Coreの中核機能であることには変わりない。Fedora Coreは、新機能をいち早く試せるのが醍醐味であるが、SELinuxについても、「setroubleshoot」と「secmark」という新機能が盛り込まれている。今回の新機能は、2007年第一四半期にもリリース予定のRed Hat Enterprise Linux 5に実装される可能性が高い。本記事では、この新機能をいち早くレビューする。

 今回導入された新機能は、オプション的な扱いであるため、SELinuxの管理方法そのものはFedora Core 5と変わらない。SELinuxの管理方法については、こちらの連載で今後紹介される予定である。

setroubleshoot

 以前の記事でも紹介したが、setroubleshootはSELinuxに起因するトラブルが発生した場合に、その原因と解決策を教えてくれるツールである。ここでは、具体的な使い方を見ていこう。

インストール

 デフォルトでは、setroubleshootはインストールされていない。次のようにしてsetroubleshootパッケージをyumコマンドでインストールする必要がある。


# yum install setroubleshoot

 インストール後、関係するサービスを起動する。


#/etc/init.d/auditd start
#/etc/init.d/setroubleshoot start

setroubleshootの実際

 setroubleshootが真価を発揮するのは、SELinuxによるトラブルが生じた時だ。トラブルの例とともに動作を見てみよう。Fedora Core 6のデフォルトでは、Sambaでユーザーのホームディレクトリを公開しようとしても、ホームディレクトリにアクセスできない。以前であれば、SELinuxを知らないユーザーであればここで途方にくれることになる。

 しかし、Fedora Core 6では、デスクトップに図1のような警告が現れる。これらのサービスの詳細は少し専門的なので、以下のコラムを参照して欲しい。

図1 図1:ポップアップで「SELinuxによるトラブル発生」を示している
図2 図2:図1のポップアップをクリックすると、この画面に。問題の説明と解決策が示されている。「Detailed Descirption」の部分が、問題の説明、「Allowing Access」の部分が問題の解決方法。今回の場合「setsetbool -P samba_enable_home_dirs=1」を実行すればトラブルを解決できることが分かる

コラム:Auditサブシステムとsetroubleshoot

 setroubleshootをインストールした際に、auditdとsetroubleshootサービスを起動している。auditdサービス、setroubleshootサービスの関係を図3に沿ってみていこう。

図3 図3:auditdサービスとsetroubleshootサービスの関係
  1. SELinuxによって拒否されるアクセスがあると、Auditサブシステムに処理が渡る
  2. Auditサブシステム(Linux Auditing Systemとも呼ばれる)とは、システムコールレベルで詳細なログを取るための、Linuxカーネルの仕組みである。また、SELinuxのログのようなカーネルのログを一括して処理する窓口でもある
  3. auditdサービスは、カーネルの外で動いているデーモンプロセスである。Auditサブシステムから、auditdサービスにメッセージが渡る
  4. auditdサービスは、メッセージを/var/log/audit/audit.logに出力する。つまり、auditdサービスが起動していると、SELinuxによるアクセス拒否ログはここに出力されることになる
  5. setroubleshootサービス(実体は/usr/sbin/setroubleshootd)は、auditdサービスに渡るアクセス拒否メッセージを監視している
  6. アクセス拒否メッセージがあると、setroubleshootサービスは、「SELinuxによるトラブル発生」とみなし、問題解決ロジックが詰まったプラグインを基に,問題の解決方法をユーザーに提示する。

 なお、auditサブシステムにはさまざまな機能がある。詳細は、man auditdおよび、そこから辿れるmanページを参照してほしい。


       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ