第5回 Referenceポリシーの作成と動作テスト

古田 真己
サイオステクノロジー株式会社
インフラストラクチャービジネスユニット
Linuxテクノロジー部
OSSテクノロジーグループ
2006/6/17

 実行ファイルのタイプを考える

 次に、ドメイン名と関連付けたアプリケーションの実行ファイルに付けるタイプを考えます。これはtomcat.fcを作成する部分に当たります。

 SELinuxではドメイン遷移を起こす起点(エントリポイント)のバイナリに対してXX_exec_tタイプを与えています。今回は/etc/init.d/tomcat,service tomcatに対して、start、stop、restart、condrestartを実行するとドメイン遷移を起こすように設定するため、/usr/lib/jvm/java/bin/javaにtomcat_exec_tを与えることとします。

 fcファイルの構成は以下の手順で行っていきます。

1.rpmコマンドを使ったファイルのリストアップ(tomcat.fc)

/etc/tomcat5(/.*)? gen_context(system_u:object_r:tomcat_etc_t,s0)
/var/lib/tomcat5(/.*)? gen_context(system_u:object_r:tomcat_lib_t,s0)
/usr/share/tomcat5(/.*)? gen_context(system_u:object_r:tomcat_lib_t,s0)
/usr/lib/jvm/java/bin/java gen_context(system_u:object_r:tomcat_exec_t,s0)

2.動作に必要なファイルのリストアップ(tomcat.fc)

/var/run/tomcat5.* gen_context(system_u:object_r:tomcat_var_run_t,s0)
/tmp/(catalina|jakarta|jsp|naming|servlets|struts|tomcat).* gen_context(system_u:object_r:tomcat_tmp_t,s0)

3.fcファイルの完成(tomcat.fc)

/var/lib/tomcat5(/.*)? gen_context(system_u:object_r:httpd_sys_content_t,s0)
/etc/tomcat5(/.*)? gen_context(system_u:object_r:tomcat_etc_t,s0)
/var/run/tomcat5.* gen_context(system_u:object_r:tomcat_var_run_t,s0)
/usr/lib/jvm/java/bin/java gen_context(system_u:object_r:tomcat_exec_t,s0)
/var/log/tomcat5(/.*)? gen_context(system_u:object_r:tomcat_log_t,s0)
/tmp/(catalina|jakarta|jsp|naming|servlets|struts|tomcat).* gen_context(system_u:object_r:tomcat_tmp_t,s0)

 インターフェイスを考える

 最後にほかのポリシーモジュールから利用するインターフェイスを作成します。これはtomcat.ifを作成する部分に当たります。

 インターフェイスといっても、従来のm4によるマクロを別ファイルに固めたものです。ほかのアプリケーションから使用する可能性がなければ作成する必要はありません。

これはReferenceポリシーの強力なカプセル化、手続きの隠ぺいのために行うもので、現在のポリシーではポリシーファイル(*.te)に書かれているタイプをそのまま使用しても問題なく動作します。

 モジュールの作成

 モジュールの作成は以下の手順で行っていきます。

1.ファイルの配置と作成方法

mv -v tomcat.te /etc/selinux/refpolicy/src/policy/poliy/moudles
mv -v tomcat.fc /etc/selinux/refpolicy/src/policy/poliy/moudles
mv -v tomcat.if /etc/selinux/refpolicy/src/policy/poliy/moudles
cd /etc/selinux/refpolicy/src/policy/
make tomcat.pp

2.モジュールのインストールと確認

semodule -i tomcat.pp
semodule -l |grep tomcat

3.ファイルコンテキストの再付与

restorecon -Rv /usr/share/tomcat5 /var/lib/tomcat5 /var/log/httpd /etc/tomcat5

 ログの再確認と修正

 ポリシーを作成したら、動作検証と併せてログを確認します。SELinuxのモードによるエラーログ出力回数と動作しているサービスによる出力先の変化に注意してください。

 モードによって、それぞれ次のような特徴があります。

Permissiveモード
警告は最初1回のみログに出力されます。

Enforcingモード
アクセス制御ルールに抵触するたびに警告メッセージがログに出力されます。

 ログの確認方法には、syslogdとauditdの2種類があります。

syslogd
auditdが動作している場合はauditログが出力されます。auditdを停止させることで、すべてのSELinuxのログメッセージを/var/log/messagesに出力してtailコマンドで逐次出力されるログを確認できます。

auditd
ausearchコマンドで「[root@vmfc4~]# ausearch -m AVC」とすることで、mauditのレコードからSELinuxのAVCを含んだセキュリティインシデントを検索して表示させることができます。

2/4

Index
Referenceポリシーの作成と動作テスト
  Page1
ドメイン名を考える
Page2
実行ファイルのタイプを考える
インターフェイスを考える
モジュールの作成
ログの再確認と修正
  Page3
FC5におけるポリシーソースのインストール方法
新しくなったaudit2allowによる設定方法
  Page4
SELinuxのこれからの展開


Security&Trust記事一覧


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

注目のテーマ

Security & Trust 記事ランキング

本日 月間