一時間で覚える?TOMOYO Linux
2010年5月 9日(日) 23:51 JST
閲覧数 5,848
実際に一時間で覚えられるかどうかはさておき、一時間でなんとなく使えた気になれる最低限の項目だけに絞ってみました。
環境は個人的に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してください。
■ポリシーの初期化
ポリシーを単純にするために今回は、ファイルのアクセス制御に絞ります。
■プロファイルについて
TOMOYO Linuxでの機能をどのように適用するかの設定です。
■ポリシーの変更を許可するプログラムについて
ポリシーを変更することができるプログラムは、 /etc/ccs/manager.conf というファイルで指定されています。
■例外ポリシーについて
/etc/ccs/exception_policy.confに記載されています。
わかってなくてもとりあえずは使えるので割愛。
■監査ログの取得設定
監査ログは、アクセス許可要求ログと、アクセス拒否要求ログの2種類あり、ccs-auditdデーモンで保管されます。
ccs-auditdが自動起動される様に、rc.localあたりに仕掛けます。
今回は、拒否ログだけを出すように設定します。
■ポリシーを学習させてみる
以下でgetty以下の操作を学習させてみます。
/sbin/agettyから操作されたもののポリシーが学習されます。
ポリシーは再起動すると消えるのでセーブが必要になります。
■ポリシーの参照・編集
生成されたポリシーの参照・編集には、 ccs-editpolicy を用います。
操作は慣れるしかありません。これからいじるだけですね。
環境は個人的に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 '次にイロイロなファイルを表示してみましょう。 /etc/inittabは表示されますが、他のファイルは表示できないはずです。/sbin/init /sbin/agetty'
# cat /etc/passwd cat: cannot open '/etc/passwd' for reading: Operation not permitted■ポリシーのセーブ
ポリシーは再起動すると消えるのでセーブが必要になります。
# /usr/sbin/ccs-savepolicy
■ポリシーの参照・編集
生成されたポリシーの参照・編集には、 ccs-editpolicy を用います。
操作は慣れるしかありません。これからいじるだけですね。
# /usr/sbin/ccs-editpolicy