1.8系の場合でkuroboxHGでも動くことを確認しました。apacheのみ。
2.3系(2.6.38-hardened-r6, tomoyo-tools-2.3.0_p20100820)の場合の例です。
exception_policy.confに
initialize_domain /etc/init.d/namedを追加します。(初期化時にnamedが無い場合に必要)
tomoyo-editpolicy => ?でヘルプ。?で戻る。 tomoyo-editpolicy => w => e => a => initialize_domain xxx
学習後、domain_policy.confに
allow_read /var/bind/pri/\*.zone allow_read /var/bind/sec/\*.zoneを追加します。
学習モード => 再起動 => 強制モード tomoyo-editpolicy => @ => f => named => s => 1 => named再起動 => s => 3 それから修正。 tomoyo-editpolicy => namedの行で[Enter] => 設定一覧になる。 => a => allow_read xxx => 要らない行に移動 => d => Yes など。
セーブ
tomoyo-savepolicy
ロード
/usr/sbin/tomoyo-loadpolicy -df < /etc/tomoyo/domain_policy.conf など。 /usr/sbin/tomoyo-loadpolicy -ef < /etc/tomoyo/exception_policy.conf など。
profile.conf, manager.conf は変更しないものとします。
tomoyo-editpolicy => w => p tomoyo-editpolicy => w => m
いきなり強制モードだと後でallow_truncate xxxなどを手動で追加しないと再起動などで起動できないこともあります。
自動で追加したい場合はs => 1番で、エラーログだけ出してアクセス可能にする場合はs => 2番です。
1番の場合セーブは手動なのでセーブしないでOSを再起動すれば追加分は消えます。
/etc/tomoyo/以下に過去の設定が残るので、とりあえずセーブして差分を見れば良さそうです。
2番は設定終わったけど1週間ほど試運転するよ、と言う場合に使ったら良さそうです。
ソフトウェアを信用しない場合は、いきなり3番でいいです。
(勝手にメールを送る、たまにシステムファイルを消す、などの怪しいソフトを使う場合など)
マニュアル。
http://tomoyo.sourceforge.jp/2.3/
以下はメモです。
## exception_policy.conf
### /proc/self/ の参照OK。
+allow_read /proc/self/\* +allow_read /proc/self/\{\*\}/\*
### /lib32/, /lib64/, の xxx.so の参照OK。
+allow_read /lib\$/\*.so +allow_read /lib\$/\*.so.\+\* +allow_read /lib\$/\{\*\}/\*.so +allow_read /lib\$/\{\*\}/\*.so.\+\*
### /usr/lib32/, /usr/lib64/, の xxx.so の参照OK。
+allow_read /usr/lib\$/\*.so +allow_read /usr/lib\$/\*.so.\+\* +allow_read /usr/lib\$/\{\*\}/\*.so +allow_read /usr/lib\$/\{\*\}/\*.so.\+\*
### 初期化時にnamedが無かった。
+initialize_domain /etc/init.d/named
## domain_policy.conf
### named 学習後に設定ファイルをまとめた。secの方も追加。
+allow_read /var/bind/pri/\*.zone +allow_read /var/bind/sec/\*.zone
### ntpd。学習 => 再起動 => 強制
/var/log/tomoyo.logにエラーはないが同期できないのでntp自体の設定がおかしい。
/lib32/, /lib64/, /usr/lib32/, /usr/lib64/, 以下のxxx.soの読み込み許可を大雑把にした。
xxx.soはxxx.so.数字.数字.数字.数字が実体の場合あり。最大4つだった。
/usr/lib\*/\*.so\* だと設定が2=>1になるし、/usr/lib/の場合も入る。
xxx.soで終わる、xxx.so.数字1文字と/ではない文字0回以上、の2つにする。
/usr/libexec/が気になるので lib数字1回以上 にする。
$ ll -d /lib* /usr/lib* lrwxrwxrwx 1 root root 5 2011-05-20 20:33:07 /lib -> lib64/ drwxr-xr-x 3 root root 4096 2011-06-23 11:58:09 /lib32/ drwxr-xr-x 15 root root 4096 2011-06-23 11:58:09 /lib64/ lrwxrwxrwx 1 root root 5 2009-08-11 14:57:24 /usr/lib -> lib64/ drwxr-xr-x 38 root root 40960 2011-06-16 02:48:59 /usr/lib32/ drwxr-xr-x 148 root root 90112 2011-06-23 12:10:33 /usr/lib64/ drwxr-xr-x 19 root root 12288 2011-06-23 12:10:33 /usr/libexec/
$ find /lib* /usr/lib* -name "*.so*" | wc -l 6772 $ find /lib* /usr/lib* -name "*.so.[0-9]*" | wc -l 2263 $ find /lib* /usr/lib* | grep -P ".*\.so(\.\d+){1,}" | wc -l 2263 $ find /lib* /usr/lib* -name "*.so" | wc -l 4479 $ expr 2263 \+ 4479 6742 $ find /lib* /usr/lib* -name "*.so[^.]*" | wc -l 30 $ expr 6742 \+ 30 6772
\*.so\* だと少し期待しないマッチがある。別にいいか?
$ find /lib* /usr/lib* -name "*.so[^.]*" -exec dirname {} \; | sort | uniq -c 1 /lib64/modules/2.6.36-hardened-r9 1 /lib64/modules/2.6.38-hardened-r6 1 /lib64/systemd/system 1 /lib64/systemd/system/dbus.target.wants 1 /lib64/systemd/system/sockets.target.wants 25 /usr/lib64/libreoffice/basis3.3/presets/config
$ find /lib* /usr/lib* -name "*.so[^.]*" | awk -F'.' '{print $NF}' | sort | uniq -c 1 sob 10 soc 3 socket 3 sod 3 soe 2 softdep 5 sog 3 soh
### 対話シリアル
cu, taylor-uucp, minicomは?
### cd/dvdチェック
qpxtool
### xwindow入れ子起動。
Xnest, xorg-server
### アーカイブツール
atool
0 件のコメント:
コメントを投稿