follow me

一時間で覚える?TOMOYO Linux

TOMOYO Linux実際に一時間で覚えられるかどうかはさておき、一時間でなんとなく使えた気になれる最低限の項目だけに絞ってみました。
環境は個人的にSlackware好きなので、Slackware13.0です。
TOMOYO 1.7.2を利用。
(CentOSとかは本家サイトで詳しく書いてるので要らないとか思ってる人です。)
おそらく、一時間で使える気分にはなれるはずです。

■TOMOYO Linuxをインストール
Kernel(TOMOYOパッチ適用版)と、ccs-toolsをインストール。
KernelはTOMOYO 1.7.2 Kernel on Slackware 13.0でパッケージ化したモノを公開しているのでご利用ください。
ccs-toolsは、ビルドはすぐ終わりますので、ご自身でmakeしてください。

■ポリシーの初期化
ポリシーを単純にするために今回は、ファイルのアクセス制御に絞ります。
# /usr/lib/ccs/init_policy --file-only-profile
Creating exception policy... OK
Creating domain policy... OK
Creating manager policy... OK
Creating default profile... OK
Creating memory quota policy... OK
Creating module loader... OK
ちなみに、全機能を有効にしたい場合は
# /usr/lib/ccs/init_policy
コマンド実行後、/etc/ccs以下に設定ファイルができます。
# ls -al /etc/ccs
total 47
drwx------  2 root root   256 2010-05-02 02:37 ./
drwxr-xr-x 21 root root  2832 2010-05-02 02:37 ../
-rwx------  1 root root    36 2010-05-02 02:37 ccs-load-module*
-rw-r--r--  1 root root    23 2010-05-02 02:37 domain_policy.conf
-rw-r--r--  1 root root 21237 2010-05-02 02:37 exception_policy.conf
-rw-r--r--  1 root root   142 2010-05-02 02:37 manager.conf
-rw-r--r--  1 root root   104 2010-05-02 02:37 meminfo.conf
-rw-r--r--  1 root root   694 2010-05-02 02:37 profile.conf

■プロファイルについて
TOMOYO Linuxでの機能をどのように適用するかの設定です。
# cat /etc/ccs/profile.conf
PROFILE_VERSION=20090903
PREFERENCE::audit={ max_grant_log=1024 max_reject_log=1024 task_info=yes path_info=yes }
PREFERENCE::enforcing={ verbose=yes penalty=0 }
PREFERENCE::learning={ verbose=no max_entry=2048 exec.realpath=yes exec.argv0=yes symlink.target=yes }
PREFERENCE::permissive={ verbose=yes }
0-COMMENT=-----Disabled Mode-----
0-CONFIG::file={ mode=disabled grant_log=yes reject_log=yes }
1-COMMENT=-----Learning Mode-----
1-CONFIG::file={ mode=learning grant_log=yes reject_log=yes }
2-COMMENT=-----Permissive Mode-----
2-CONFIG::file={ mode=permissive grant_log=yes reject_log=yes }
3-COMMENT=-----Enforcing Mode-----
3-CONFIG::file={ mode=enforcing grant_log=yes reject_log=yes }
各内容はこんな感じ。(詳細はあとでじっくり本家サイトを参照)
  • プロファイル0:ファイルに対するアクセス制御を無効にする
  • プロファイル1:ファイルに対するアクセス制御を学習モードにする
  • プロファイル2:ファイルに対するアクセス制御を確認モードにする
  • プロファイル3:ファイルに対するアクセス制御を強制モードにする

■ポリシーの変更を許可するプログラムについて
ポリシーを変更することができるプログラムは、 /etc/ccs/manager.conf というファイルで指定されています。
# cat /etc/ccs/manager.conf
/usr/sbin/ccs-loadpolicy
/usr/sbin/ccs-editpolicy
/usr/sbin/ccs-setlevel
/usr/sbin/ccs-setprofile
/usr/sbin/ccs-ld-watch
/usr/sbin/ccs-queryd

■例外ポリシーについて
/etc/ccs/exception_policy.confに記載されています。
わかってなくてもとりあえずは使えるので割愛。

■監査ログの取得設定
監査ログは、アクセス許可要求ログと、アクセス拒否要求ログの2種類あり、ccs-auditdデーモンで保管されます。
ccs-auditdが自動起動される様に、rc.localあたりに仕掛けます。
今回は、拒否ログだけを出すように設定します。
# echo "/usr/sbin/ccs-auditd /dev/null /var/log/tomoyo/reject_log.txt" >> /etc/rc.d/rc.local
# mkdir -p /var/log/tomoyo
ここまでできたら、一度再起動します。

■ポリシーを学習させてみる
以下でgetty以下の操作を学習させてみます。
# /usr/sbin/ccs-setprofile -r 1 ' /sbin/init /sbin/agetty'
1  /sbin/init /sbin/agetty
1  /sbin/init /sbin/agetty /bin/login
1  /sbin/init /sbin/agetty /bin/login /bin/bash
1  /sbin/init /sbin/agetty /bin/login /bin/bash /bin/cat
1  /sbin/init /sbin/agetty /bin/login /bin/bash /usr/bin/id
1  /sbin/init /sbin/agetty /bin/login /bin/bash /usr/bin/grep
1  /sbin/init /sbin/agetty /bin/login /bin/bash /bin/dircolors
1  /sbin/init /sbin/agetty /bin/login /bin/bash /usr/bin/ps
1  /sbin/init /sbin/agetty /bin/login /bin/bash /bin/ls
このあとイロイロ操作してみてね。
/sbin/agettyから操作されたもののポリシーが学習されます。
# cat /etc/inittab
次に強制アクセスモードに変えてみます。
# /usr/sbin/ccs-setprofile -r 3 ' /sbin/init /sbin/agetty'
次にイロイロなファイルを表示してみましょう。 /etc/inittabは表示されますが、他のファイルは表示できないはずです。
# cat /etc/passwd
cat: cannot open '/etc/passwd' for reading: Operation not permitted
■ポリシーのセーブ
ポリシーは再起動すると消えるのでセーブが必要になります。
# /usr/sbin/ccs-savepolicy

■ポリシーの参照・編集
生成されたポリシーの参照・編集には、 ccs-editpolicy を用います。
操作は慣れるしかありません。これからいじるだけですね。
# /usr/sbin/ccs-editpolicy
一時間で覚える?TOMOYO Linux | 0 件のコメント | アカウント登録
サイト管理者はコメントに関する責任を負いません。