This page is for TOMOYO 2.2 (for Linux 2.6.30 - 2.6.35 kernels). Please jump to this page for TOMOYO 2.3 (for Linux 2.6.36 and later kernels).
Last modified: $Date: 2024-03-30 11:25:00 +0000 (Sat, 30 Mar 2024) $
このページでは、 TOMOYO のポリシーをチューニングする方法について説明します。
WWW サーバがアクセスするコンテンツのように、学習モードでは必ずしもアクセスされないファイルに対するアクセス許可を /etc/tomoyo/domain_policy.conf に追加します。
以下の例では、 /usr/sbin/httpd に対して /var/www/html/ 以下の読み込みを許可しています。
<kernel> /usr/sbin/httpd use_profile 3 allow_read /var/www/html/\* allow_read /var/www/html/\*/\* allow_read /var/www/html/\*/\*/\* allow_read /var/www/html/\*/\*/\*/\* allow_read /var/www/html/\*/\*/\*/\*/\* |
同様に、パターンを使用して手作業でのグループ化を行います。
以下の例では、 /usr/sbin/smbd に対して全てのログファイルを同様に扱うように指示しています。
修正前 | 修正後 |
<kernel> /usr/sbin/smbd use_profile 3 allow_write /var/log/samba/host1.log allow_write /var/log/samba/host2.log allow_write /var/log/samba/host3.log allow_write /var/log/samba/host4.log allow_write /var/log/samba/host5.log |
<kernel> /usr/sbin/smbd use_profile 3 allow_write /var/log/samba/\*.log |
与えられたパターンと一致するディスク上のパス名を一覧表示する tomoyo-pathmatch コマンドを用いて、パターン化することでアクセス可能になる範囲を確認できます。
[root@tomoyo ~]# /usr/sbin/tomoyo-pathmatch '/var/log/samba/\*.log' /var/log/samba/host1.log /var/log/samba/host2.log /var/log/samba/host3.log /var/log/samba/host4.log /var/log/samba/host5.log |
カーネルに存在するドメインポリシーをディスクに保存します。
[root@tomoyo ~]# /usr/sbin/tomoyo-savepolicy d |
テンポラリファイルの可能性があるパス名を抽出します。
[root@tomoyo ~]# /usr/sbin/tomoyo-findtemp < /etc/tomoyo/domain_policy.conf /etc/mtab.tmp /etc/mtab~ /etc/mtab~2302 /etc/mtab~2328 /etc/mtab~2329 /etc/mtab~2330 /etc/mtab~2331 /etc/mtab~2332 /etc/mtab~2339 /etc/mtab~2383 /halt /selinux/disable /selinux/enforce /selinux/policyvers /tmp/sh-thd-1163110572 /tmp/sh-thd-1163113704 /var/cache/samba/browse.dat. /var/lib/nfs/etab.tmp /var/lib/nfs/xtab.tmp /var/lock/mrtg/mrtg_l |
テンポラリファイルにアクセスしているドメインを探します。
[root@tomoyo ~]# /usr/sbin/tomoyo-domainmatch /etc/mtab~2302 <kernel> /sbin/init /etc/rc.d/rc.sysinit /sbin/initlog /etc/rc.d/rc.sysinit /sbin/initlog /bin/mount allow_create /etc/mtab~2302 allow_write /etc/mtab~2302 allow_link /etc/mtab~2302 /etc/mtab~ allow_unlink /etc/mtab~2302 [root@tomoyo ~]# /usr/sbin/tomoyo-domainmatch /tmp/sh-thd-1163113704 <kernel> /etc/rc.d/init.d/smartd /sbin/initlog /usr/sbin/smartd /bin/sh allow_create /tmp/sh-thd-1163113704 allow_read/write /tmp/sh-thd-1163113704 allow_unlink /tmp/sh-thd-1163113704 |
カーネルに存在する例外ポリシーをディスクに保存します。
[root@tomoyo ~]# /usr/sbin/tomoyo-savepolicy e |
必要に応じてディスク上の例外ポリシーにパターンを追加します。
[root@tomoyo ~]# echo 'file_pattern /etc/mtab~\$' >> /etc/tomoyo/exception_policy.conf [root@tomoyo ~]# echo 'file_pattern /tmp/sh-thd-\$' >> /etc/tomoyo/exception_policy.conf |
ディスク上の例外ポリシーをカーネルに読み込みます。
[root@tomoyo ~]# /usr/sbin/tomoyo-loadpolicy ef |
/etc/mtab~\$ および /tmp/sh-thd-\$ に一致するパス名のパターン化を行います。
[root@tomoyo ~]# /usr/sbin/tomoyo-patternize '/etc/mtab~\$' '/tmp/sh-thd-\$' < /etc/tomoyo/domain_policy.conf > /etc/tomoyo/domain_policy.tmp |
パターン化されたことを確認します。
[root@tomoyo ~]# /usr/sbin/tomoyo-findtemp < /etc/tomoyo/domain_policy.tmp /etc/mtab.tmp /etc/mtab~ /halt /selinux/disable /selinux/enforce /selinux/policyvers /var/cache/samba/browse.dat. /var/lib/nfs/etab.tmp /var/lib/nfs/xtab.tmp /var/lock/mrtg/mrtg_l |
パターン化前後の差分を表示して、パターン化が適切に行われているかどうかを確認します。
[root@tomoyo ~]# diff /etc/tomoyo/domain_policy.conf /etc/tomoyo/domain_policy.tmp 2326,2331c2326,2331 < allow_read/write /tmp/sh-thd-1163110572 < allow_read/write /tmp/sh-thd-1163113704 < allow_create /tmp/sh-thd-1163110572 < allow_create /tmp/sh-thd-1163113704 < allow_unlink /tmp/sh-thd-1163110572 < allow_unlink /tmp/sh-thd-1163113704 --- > allow_read/write /tmp/sh-thd-\$ > allow_read/write /tmp/sh-thd-\$ > allow_create /tmp/sh-thd-\$ > allow_create /tmp/sh-thd-\$ > allow_unlink /tmp/sh-thd-\$ > allow_unlink /tmp/sh-thd-\$ 3331,3336c3331,3336 < allow_write /etc/mtab~2328 < allow_write /etc/mtab~2329 < allow_write /etc/mtab~2330 < allow_write /etc/mtab~2331 < allow_write /etc/mtab~2332 < allow_write /etc/mtab~2383 --- > allow_write /etc/mtab~\$ > allow_write /etc/mtab~\$ > allow_write /etc/mtab~\$ > allow_write /etc/mtab~\$ > allow_write /etc/mtab~\$ > allow_write /etc/mtab~\$ 3338,3349c3338,3349 < allow_create /etc/mtab~2328 < allow_create /etc/mtab~2329 < allow_create /etc/mtab~2330 < allow_create /etc/mtab~2331 < allow_create /etc/mtab~2332 < allow_create /etc/mtab~2383 < allow_link /etc/mtab~2328 /etc/mtab~ < allow_link /etc/mtab~2329 /etc/mtab~ < allow_link /etc/mtab~2330 /etc/mtab~ < allow_link /etc/mtab~2331 /etc/mtab~ < allow_link /etc/mtab~2332 /etc/mtab~ < allow_link /etc/mtab~2383 /etc/mtab~ --- > allow_create /etc/mtab~\$ > allow_create /etc/mtab~\$ > allow_create /etc/mtab~\$ > allow_create /etc/mtab~\$ > allow_create /etc/mtab~\$ > allow_create /etc/mtab~\$ > allow_link /etc/mtab~\$ /etc/mtab~ > allow_link /etc/mtab~\$ /etc/mtab~ > allow_link /etc/mtab~\$ /etc/mtab~ > allow_link /etc/mtab~\$ /etc/mtab~ > allow_link /etc/mtab~\$ /etc/mtab~ > allow_link /etc/mtab~\$ /etc/mtab~ 3351,3356c3351,3356 < allow_unlink /etc/mtab~2328 < allow_unlink /etc/mtab~2329 < allow_unlink /etc/mtab~2330 < allow_unlink /etc/mtab~2331 < allow_unlink /etc/mtab~2332 < allow_unlink /etc/mtab~2383 --- > allow_unlink /etc/mtab~\$ > allow_unlink /etc/mtab~\$ > allow_unlink /etc/mtab~\$ > allow_unlink /etc/mtab~\$ > allow_unlink /etc/mtab~\$ > allow_unlink /etc/mtab~\$ 3439,3440c3439,3440 < allow_write /etc/mtab~2302 < allow_write /etc/mtab~2339 --- > allow_write /etc/mtab~\$ > allow_write /etc/mtab~\$ 3443,3446c3443,3446 < allow_create /etc/mtab~2302 < allow_create /etc/mtab~2339 < allow_link /etc/mtab~2302 /etc/mtab~ < allow_link /etc/mtab~2339 /etc/mtab~ --- > allow_create /etc/mtab~\$ > allow_create /etc/mtab~\$ > allow_link /etc/mtab~\$ /etc/mtab~ > allow_link /etc/mtab~\$ /etc/mtab~ 3449,3450c3449,3450 < allow_unlink /etc/mtab~2302 < allow_unlink /etc/mtab~2339 --- > allow_unlink /etc/mtab~\$ > allow_unlink /etc/mtab~\$ |
ディスク上のドメインポリシーを更新します
[root@tomoyo ~]# cat /etc/tomoyo/domain_policy.tmp > /etc/tomoyo/domain_policy.conf |
ディスク上のドメインポリシーをカーネルに読み込みます。
[root@tomoyo ~]# /usr/sbin/tomoyo-loadpolicy df |
カーネルに読み込まれているドメインポリシーが更新されていることを確認します。
[root@tomoyo ~]# /usr/sbin/tomoyo-savepolicy -d | /usr/sbin/tomoyo-findtemp /etc/mtab.tmp /etc/mtab~ /halt /selinux/disable /selinux/enforce /selinux/policyvers /var/cache/samba/browse.dat. /var/lib/nfs/etab.tmp /var/lib/nfs/xtab.tmp /var/lock/mrtg/mrtg_l |