-->

2011-05-06

TOMOYO Linuxのインストール

インストールする。
--menuconfig(make menuconfigと同じ)でtomoyoで検索(/)してマッチした値をonにする。
$ sudo emerge --oneshot -avt =sys-kernel/hardened-sources-2.6.36-r9
$ ll /usr/src/linux
lrwxrwxrwx 1 root root 24 2011-05-06 06:26:16 /usr/src/linux -> linux-2.6.36-hardened-r9/
$ sudo genkernel --kernel-config=/etc/kernels/kernel-config-x86_64-2.6.36-gentoo-r8 --menuconfig all
...
$ grep -i tomoyo /etc/kernels/kernel-config-x86_64-2.6.36-hardened-r9
CONFIG_SECURITY_TOMOYO=y
CONFIG_DEFAULT_SECURITY_TOMOYO=y
CONFIG_DEFAULT_SECURITY="tomoyo"

grubを修正して作成したカーネルで再起動する。

インストールの確認。
$ grep tomoyo_supervisor /proc/kallsyms
ffffffff8124d6b2 T tomoyo_supervisor

ツールをインストールする。
2.6.36なのでtomoyo-tools-2.3.0_p20100820にする。
$ sudo ACCEPT_KEYWORDS="~*" emerge --oneshot -avt =sys-apps/ccs-tools-1.8.0_p20110214
$ sudo emerge -Cav sys-apps/ccs-tools
$ sudo ACCEPT_KEYWORDS="~*" emerge --oneshot -avt =sys-apps/tomoyo-tools-2.3.0_p20100820

sys-apps/ccs-tools-1.8.0_p20110214のインストール後のコメントの一部。
ccs-toolsの方が_pYYYYMMDDの部分の日付が新しいので間違っているかもしれない。
* For >=kernel-2.6.36:
 * http://tomoyo.sourceforge.jp/2.3/
 *
 * For >=kernel-2.6.30:
 * http://tomoyo.sourceforge.jp/2.2/
 *
 * For <kernel-2.6.30 + ccs-patch:
 * http://tomoyo.sourceforge.jp/1.8/

sys-kernel/ccs-sourcesというのがあるが、こっちの方がいいのかもしれない。
$ eix -S tomoyo -c
[N] sys-apps/ccs-tools (~1.8.0_p20110214): TOMOYO Linux tools
[D] sys-apps/tomoyo-tools (2.3.0_p20100820@2011年05月06日 -> ~2.3.0_p20100820): TOMOYO Linux tools
[N] sys-kernel/ccs-sources [1] (~2.6.36(2.6.36)): TOMOYO Linux sources for the 2.6 kernel tree
[1] "sunrise" /var/lib/layman/sunrise

Found 3 matches.

バージョンを確認する。
$ grep -nriP -A6 "static.*tomoyo_read_version" /usr/src/linux/security/tomoyo/
/usr/src/linux/security/tomoyo/common.c:1751:static void tomoyo_read_version(struct tomoyo_io_buffer *head)
/usr/src/linux/security/tomoyo/common.c-1752-{
/usr/src/linux/security/tomoyo/common.c-1753-   if (!head->r.eof) {
/usr/src/linux/security/tomoyo/common.c-1754-           tomoyo_io_printf(head, "2.3.0");
/usr/src/linux/security/tomoyo/common.c-1755-           head->r.eof = true;
/usr/src/linux/security/tomoyo/common.c-1756-   }
/usr/src/linux/security/tomoyo/common.c-1757-}

バージョン2.3.0をインストールしました。
フル機能を使用する場合は1.8系らしいので、その場合はインストールに失敗しています。
ここから先はhttp://tomoyo.sourceforge.jp/2.3/をご参照ください。

機能があるかどうか。
$ grep tomoyo_supervisor /proc/kallsyms
ffffffff8124d6b2 T tomoyo_supervisor

grubの設定の有無。yなので無し。
$ grep CONFIG_DEFAULT_SECURITY_TOMOYO /etc/kernels/kernel-config-x86_64-2.6.36-hardened-r9
CONFIG_DEFAULT_SECURITY_TOMOYO=y

初期化する。
$ sudo emerge --config =sys-apps/tomoyo-tools-2.3.0_p20100820


Configuring pkg...

Creating policy directory... OK
Creating exception policy... OK
Creating domain policy... OK
Creating manager policy... OK
Creating default profile... OK
Creating memory quota policy... OK

$ sudo ls -al /etc/tomoyo/
合計 120
drwx------   2 root root  4096  5月  6 08:29 .
drwxr-xr-x 100 root root 12288  5月  6 08:29 ..
-rw-r--r--   1 root root    23  5月  6 08:29 domain_policy.conf
-rw-r--r--   1 root root 89355  5月  6 08:29 exception_policy.conf
-rw-r--r--   1 root root   160  5月  6 08:29 manager.conf
-rw-r--r--   1 root root    83  5月  6 08:29 meminfo.conf
-rw-r--r--   1 root root   403  5月  6 08:29 profile.conf
$ grep -A3 pkg_config /usr/portage/sys-apps/tomoyo-tools/tomoyo-tools-2.3.0_p20100820.ebuild
pkg_config() {
        /usr/$(get_libdir)/tomoyo/init_policy
}

動作チェック。
$ sudo tomoyo-editpolicy /etc/tomoyo/
q

設定ファイルを読まない。
$ sudo tomoyo-editpolicy
<<< Domain Transition Editor >>>      12 domains    '?' for help

<kernel>
    0:  0     <kernel>
    1:  0  *      /sbin/modprobe
    2:  0             /bin/cat
    3:  0             /bin/echo
    4:  0             /bin/grep
    5:  0             /bin/rm
    6:  0             /bin/touch
    7:  0             /bin/uname
    8:  0             /sbin/insmod
    9:  0             /usr/bin/basename
   10:  0             /usr/bin/cut
   11:  0             /usr/bin/find

初期化してから一回再起動しないとダメっぽい。
再起動後、表示が増えた。
$ sudo tomoyo-editpolicy
...

マニュアルの内容を試す。
$ sudo /etc/init.d/apache2 restart
$ sudo tomoyo-editpolicy
...

ログを分ける。
$ diff syslog-ng.conf.2011-05-06 syslog-ng.conf
26a27
> destination tomoyo { file("/var/log/tomoyo.log"); };
92a94
> filter f_tomoyo { match("^(ERROR|WARNING): Access (.*) denied for " value("MESSAGE")); };
93a96
> log { source(kernsrc); filter(f_tomoyo); destination(tomoyo); };

ccs-toolsだと別の方法で取れるようだが取れない。カーネルが対応していない。
たぶんccs-toolsはsys-kernel/ccs-sourcesを入れないと使えない。
$ sudo ACCEPT_KEYWORDS="~*" emerge --oneshot -avt =sys-apps/ccs-tools-1.8.0_p20110214
$ which ccs-auditd
/usr/sbin/ccs-auditd
$ sudo emerge --config =sys-apps/ccs-tools-1.8.0_p20110214


Configuring pkg...

/var/tmp/portage/sys-apps/ccs-tools-1.8.0_p20110214/temp/environment: line 2047: /usr/lib64/ccs/init_policy.sh: No such file or directory

$ grep -A3 pkg_config /usr/portage/sys-apps/ccs-tools/ccs-tools-1.8.0_p20110214.ebuild
pkg_config() {
        /usr/$(get_libdir)/ccs/init_policy.sh
}
$ sudo /usr/lib64/ccs/init_policy
$ sudo ls -al /etc/ccs/
...
$ sudo ccs-editpolicy
You can't use this editor for this kernel.
$ sudo ACCEPT_KEYWORDS="~*" emerge --oneshot -avt =sys-apps/tomoyo-tools-2.3.0_p20100820

学習モードで.htaccessを許可してから強制モードにすると.htaccessではなくindex.htmlのエラーになった。
動作確認はできた。
$ sudo tail -f /var/log/tomoyo.log
May  6 12:46:11 amdgentoo kernel: ERROR: Access read /var/www/localhost/htdocs/.htaccess denied for /usr/sbin/apache2
May  6 12:46:27 amdgentoo kernel: ERROR: Access read /var/www/localhost/htdocs/.htaccess denied for /usr/sbin/apache2
May  6 12:46:32 amdgentoo kernel: ERROR: Access read /var/www/localhost/htdocs/.htaccess denied for /usr/sbin/apache2
May  6 12:46:33 amdgentoo kernel: ERROR: Access read /var/www/localhost/htdocs/.htaccess denied for /usr/sbin/apache2
May  6 12:47:02 amdgentoo kernel: ERROR: Access read /var/www/localhost/htdocs/.htaccess denied for /usr/sbin/apache2
May  6 12:47:03 amdgentoo kernel: ERROR: Access read /var/www/localhost/htdocs/.htaccess denied for /usr/sbin/apache2
May  6 12:47:11 amdgentoo kernel: ERROR: Access read /var/www/localhost/htdocs/.htaccess denied for /usr/sbin/apache2
May  6 12:48:26 amdgentoo kernel: ERROR: Access read /var/www/localhost/htdocs/index.html denied for /usr/sbin/apache2
May  6 13:32:55 amdgentoo kernel: ERROR: Access read /var/www/localhost/htdocs/index.html denied for /usr/sbin/apache2
May  6 13:32:59 amdgentoo kernel: ERROR: Access read /var/www/localhost/htdocs/index.html denied for /usr/sbin/apache2

インストールしたのはTOMOYO Linux 2系だった。
http://tomoyo.sourceforge.jp/documentation.html.ja

参考。
http://tomoyo.sourceforge.jp/1.8/
http://tomoyo.sourceforge.jp/2.3/
http://sourceforge.jp/projects/tomoyo/lists/archive/dev/2009-July/thread.html#1180

0 件のコメント: