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 20:25:00 +0900 (Sat, 30 Mar 2024) $
このページでは、 TOMOYO を使うために必要となる基本操作について説明します。
以下のコマンドを実行することで、ポリシーを初期化してください。
| [root@tomoyo ~]# /usr/lib/tomoyo/tomoyo_init_policy |
この処理には数分かかります。
TOMOYO のポリシーファイルが /etc/tomoyo/ ディレクトリの中に作成されます。
/etc/tomoyo/ というオプションと一緒に、 TOMOYO のポリシーエディタである tomoyo-editpolicy を実行すると、以下のような画面が表示されます。
| [root@tomoyo ~]# /usr/sbin/tomoyo-editpolicy /etc/tomoyo/ |

この画面には、ドメインツリーが表示されています。現時点では、 <kernel> ドメインだけが定義されています。しかし、システムが動作するにつれて、 TOMOYO は新しいドメインを作成してこのツリーに追加していきます。以下の画面ではたくさんのドメインが定義されています。

TOMOYO における強制アクセス制御はドメインを単位として適用されます。全てのプロセスは1個のドメインに属しており、原則としてプログラムが実行される度に異なるドメインへと遷移します。ドメインの名前はプロセスの実行履歴として連結された文字列です。例えば、カーネルが属するドメインの名前は <kernel> 、カーネルから起動された /sbin/init が属するドメインの名前は <kernel> /sbin/init 、 /sbin/init から起動された /etc/rc.d/rc が属するドメインの名前は <kernel> /sbin/init /etc/rc.d/rc となります。この遷移規則の例外については後述します。
各行の2番目の数字に注目してください。

この数字はプロファイル番号と呼ばれるものです。プロファイル番号は0~255の整数値をとります。
w キーを押すと、選択肢が表示されます。

p キーを押すと、プロファイルの一覧が表示されます。
以下のエントリが表示されます。

矢印キーや Home/End/PageUp/PageDown キーを使ってスクロールすることができます。
| 項目 | 内容 | デフォルト値 | 自動学習対応 |
| COMMENT | プロファイルの内容を説明するための1行コメント。 | - | |
| MAC_FOR_FILE | ファイルに対する強制アクセス制御を有効にする。 | disabled | ○ |
| MAX_ACCEPT_ENTRY | 学習モードで自動的に追加される「アクセス許可」の上限を指定する。 | 2048 | - |
| TOMOYO_VERBOSE | ドメイン別ポリシーに対する違反を syslog に表示する。 | enabled | - |
MAC_FOR_FILE については以下の値を指定できます。
| 値 | 内容 |
| disabled | 無効。通常のカーネルと同様に動作する。 |
| learning | 学習モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加を行う。 |
| permissive | 確認モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。 |
| enforcing | 強制モード。ポリシーに違反したらエラーとする。 |
MAX_ACCEPT_ENTRY については 0 以上の任意の整数を指定できます。
TOMOYO_VERBOSE については以下の値を指定できます。
| 値 | 内容 |
| disabled | ドメイン別ポリシーに対する違反を表示しない。 |
| enabled | ドメイン別ポリシーに対する違反を表示する。 |
w キー、 e キーの順に押すことで、以下の画面が表示されます。

この画面には以下の例外設定が表示されます。
| (1) パス名のパターン |
file_pattern というキーワードを使用して、パス名のパターンを登録します。アクセス許可を学習する際に、要求されたパス名が file_pattern というキーワードを使用して登録されたパス名のパターンと一致した場合、パターン化されたパス名でアクセス許可が学習されます。
システムにインストールされているアプリケーションやその設定により、上記以外にもパターン化されたパス名が必要になります。不足しているパターンは、実際にどのようなアクセスが行われるかを観察してから、適切にパターン化して追加します。 | ||
| (2) 無条件に読み込みを許可するファイル |
allow_read というキーワードを使用して、全てのプログラムへの読み込みアクセスを許可するファイルのパス名を登録します。パターンも使用できます。読み込みモードで要求されたパス名が allow_read というキーワードを使用して登録されたパス名と一致した場合、ドメインポリシーで明示的に許可が与えられていなかった場合でも読み込みアクセスが許可されます。
システムにインストールされているアプリケーションやその設定により、上記以外にも常に読み込みアクセスを許可したいファイルがあるかもしれません。不足しているファイルは、実際にどのようなファイルを読み込むかを観察してから、必要に応じてその都度追加していきます。 | ||
| (3) 書き換えを禁止するファイル |
deny_rewrite というキーワードを使用して、既に記録されている部分の書き換えを禁止したいファイル(ログファイル等)のパス名を登録します。パターンが使用できます。 deny_rewrite というキーワードを使用して登録されたファイルは、後述するドメインポリシーの中で明示的に allow_rewrite というキーワードを用いて許可が与えられない限り、追記ではない書き込みモードでのオープンとファイルの切り詰めが禁止されます。
システムにインストールされているアプリケーションやその設定により、上記以外にも書き換えを禁止したいファイルがあるかもしれません。不足しているファイルは、実際にどのようなファイルが追記専用で使われているかを観察してから、必要に応じてその都度追加していきます。 | ||
| (4) シンボリックリンクの名前で実行するプログラム |
TOMOYO Linux は、原則としてシンボリックリンクを解決したパス名で実行許可のチェックを行いますが、実行時の名前によって異なる振る舞いをするプログラムがシンボリックリンク経由で実行される場合に対処するために、シンボリックリンクの名前でドメインを遷移できるようにすることができます。 | ||
| (5) ドメイン遷移を初期化するプログラム |
initialize_domain というキーワードを使用して、ドメイン遷移履歴をリセットするプログラムのパス名を登録します。パターンは使用できません。 initialize_domain というキーワードを使用して登録されたパス名のプログラムが実行された場合、そのプログラムは <kernel> 直下のドメインで動作します。
システムにインストールされているアプリケーションやその設定により、上記以外にもドメイン遷移履歴をリセットさせたいプログラムがあるかもしれません。最初にドメイン遷移履歴を作成して、実際にどのようなプログラムを指定したらよいかを考慮しながら、必要に応じてその都度追加していきます。その際、他のドメインへの影響に注意してください。例えば、ドメインポリシーとして
というポリシーが既に存在している状態で /bin/tcsh を initialize_domain として追加した場合、 /bin/tcsh は <kernel> /bin/tcsh というドメインへ遷移することになるため、 <kernel> ・・・ /bin/bash /bin/tcsh というドメインへは遷移できなくなってしまいます。そのような場合は、以下のように、 <kernel> ・・・ /bin/bash /bin/tcsh で始まる部分を <kernel> /bin/tcsh で始まるようにドメインポリシーを変更してやる必要があります。
| ||
| (6) ドメイン遷移を初期化させないプログラム |
no_initialize_domain というキーワードを使うことで、 initialize_domain キーワードの効果を打ち消すことができます。特定の条件下ではドメイン遷移を初期化させたくない場合に使用します。 | ||
| (7) ドメイン遷移を行わないドメイン |
keep_domain というキーワードを使用して、ドメイン遷移を行わないドメインを指定することができます。 | ||
| (8) ドメイン遷移を行うドメイン |
no_keep_domain というキーワードを使うことで、 keep_domain キーワードの効果を打ち消すことができます。特定の条件下でドメイン遷移を行わせたい場合に使用します。 |
q キーを押してポリシーエディタを終了してください。
以後、必要に応じてポリシーエディタのチュートリアルページであるポリシーエディタの使い方を参照してください。
システムを再起動して、起動時に TOMOYO Linux 対応カーネルを選択してください。
| [root@tomoyo ~]# reboot |