第4回 ReferenceポリシーをEnforcingモードで動かそう

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

 ベースモジュールの設定の作り直し

 ここまでの設定でポリシーモジュールを作り直します。

[root@localhost ~]# cd /etc/selinux/refpolicy/src/policy/
[root@localhost policy]# make clean
[root@localhost policy]# make modules
[root@localhost policy]# make install
ポリシーの作り直し

 モジュールの作成が終わったら、いま読み込まれているuserdomainポリシーモジュールを取り外します。念のため、前回作成した古いポリシーモジュール(*.pp)が/etc/selinux/refpolicy/modules/active/にあるかどうかを確認してください。もし残っているようであれば、すべて削除しておきましょう。

[root@localhost policy]# semodule -r userdomain (userdomain.ppを取り外す)
[root@localhost policy]# semodule -l (組み込まれているモジュールを確認する)
[root@localhost policy]# cd /etc/selinux/refpolicy/modules/active/
[root@localhost active]# rm -f *.pp (モジュールをすべて削除する)
[root@localhost active]# reboot (再起動させる)
ポリシーモジュールの取り外しと組み込まれているモジュールの確認

 ここまで終わったら再起動してみます。再起動は大量のエラーメッセージとともに、起動にかなりの時間がかかるかもしれません。コンソールに大量のメッセージが表示されるので、見づらい場合は「# dmesg -n 1」と実行してコンソールへの出力を押さえるとよいでしょう。

 そろそろEnforcingモードで動作させたいので、ファイルに対するセキュリティコンテキストを回復しておきましょう。

[root@localhost ~]# restorecon -Rv /
ファイルシステムに対するセキュリティコンテキストの回復

 これで現在読み込まれているポリシーに合わせてファイルシステムのセキュリティコンテキストが設定されます。いよいよEnforcingモードで動作させてみましょう。

[root@localhost ~]# setenforce 1
Enforcingモードで動作させる

 動作を確認したら、/etc/selinux/configにある「SELINUX = permissive」という部分を「SELINUX = enforcing」に変更し、Enforcingモードで再起動します。

 Enforcingモードでの動作確認

 再起動が終わったらTomcatの動作を確認してみましょう。「http://インストールしたホスト名:8080」にアクセスし動作を確認します。するとエラーが出力され、Tomcatが起動しないことが分かります。

----
[root@localhost ~]# ausearch -m avc | tail -15
time->Fri Mar 24 13:08:54 2006
type=SYSCALL msg=audit(1143173334.062:7): arch=40000003 syscall=192 success=no exit=-13 a0=1000 a1=10000 a2=7 a3=22 items=0 pid=2468 auid=4294967295 uid=91 gid=91 euid=91 suid=91 fsuid=91 egid=91 sgid=91 fsgid=91 comm="gij" exe="/usr/bin/gij"
type=AVC msg=audit(1143173334.062:7): avc: denied { execmem } for pid=2468 comm="gij" scontext=system_u:system_r:kernel_t tcontext=system_u:system_r:kernel_t tclass=process
----
time->Fri Mar 24 13:08:54 2006
type=SYSCALL msg=audit(1143173334.066:8): arch=40000003 syscall=192 success=no exit=-13 a0=1000 a1=2000 a2=7 a3=22 items=0 pid=2468 auid=4294967295 uid=91 gid=91 euid=91 suid=91 fsuid=91 egid=91 sgid=91 fsgid=91 comm="gij" exe="/usr/bin/gij"
type=AVC msg=audit(1143173334.066:8): avc: denied { execmem } for pid=2468 comm="gij" scontext=system_u:system_r:kernel_t tcontext=system_u:system_r:kernel_t tclass=process
----
time->Fri Mar 24 13:09:55 2006
type=SYSCALL msg=audit(1143173395.198:21): arch=40000003 syscall=192 success=no exit=-13 a0=1000 a1=10000 a2=7 a3=22 items=0 pid=3476 auid=0 uid=91 gid=91 euid=91 suid=91 fsuid=91 egid=91 sgid=91 fsgid=91 comm="gij" exe="/usr/bin/gij"
type=AVC msg=audit(1143173395.198:21): avc: denied { execmem } for pid=3476 comm="gij" scontext=root:system_r:kernel_t tcontext=root:system_r:kernel_t tclass=process
----
time->Fri Mar 24 13:09:55 2006
type=SYSCALL msg=audit(1143173395.202:22): arch=40000003 syscall=192 success=no exit=-13 a0=1000 a1=2000 a2=7 a3=22 items=0 pid=3476 auid=0 uid=91 gid=91 euid=91 suid=91 fsuid=91 egid=91 sgid=91 fsgid=91 comm="gij" exe="/usr/bin/gij"
type=AVC msg=audit(1143173395.202:22): avc: denied { execmem } for pid=3476 comm="gij" scontext=root:system_r:kernel_t tcontext=root:system_r:kernel_t tclass=process
Tomcat5のエラーログ

 Javaで必要な「execmem」【注】が許可されていないことが原因です。以下のように解決します。

【注】
execmem とは mmap()によるメモリのマッピング時に実行可能(PROT_EXEC)、書き込み可能(PROT_WRITE)で行うことを示す(mmap(2)より)

[root@localhost ~]# getsebool allow_execmem
allow_execmem --> on
[root@localhost ~]# setsebool -P allow_execmem=1 (execmemを許可する)
[root@localhost ~]# getsebool allow_execmem
allow_execmem --> off
[root@localhost ~]# service tomcat5 start (Tomcat5を起動する)
execmemの許可とTomcat5の起動

 あらためてtomcatの動作を確認してみましょう。「http://インストールしたホスト名:8080」にアクセスするとトップ画面が表示され、いくつかのサンプルコードを動作させることができるはずです。

2/4

Index
ReferenceポリシーをEnforcingモードで動かそう
  Page1
モジュール構造の確認
ベースモジュールの設定を変更する
Page2
ベースモジュールの設定の作り直し
Enforcingモードでの動作確認
  Page3
追加記述するモジュールの選定
ひな型でみ見る大まかなモジュールの記述方法
  Page4
SELinux Symposium 2006
SELinuxの今後の方向性


Security&Trust記事一覧


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

注目のテーマ

Security & Trust 記事ランキング

本日 月間