3 |
<head> |
<head> |
4 |
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> |
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> |
5 |
<meta http-equiv="Content-Style-Type" content="text/css"> |
<meta http-equiv="Content-Style-Type" content="text/css"> |
6 |
<title>TOMOYO Linux ポリシー解説書</title> |
<title>TOMOYO Linux ポリシ解説書</title> |
7 |
<link rel="stylesheet" href="tomoyo.css" media="all" type="text/css"> |
<link rel="stylesheet" href="tomoyo.css" media="all" type="text/css"> |
8 |
</head> |
</head> |
9 |
<body> |
<body> |
10 |
<p style="text-align:right;"><a href="../../en/1.6.x/policy-reference.html">English Page</a></p> |
<p style="text-align:right;"><a href="../../en/1.6.x/policy-reference.html">English Page</a></p> |
11 |
<h1 style="text-align:center;">TOMOYO Linux ポリシー解説書</h1> |
<h1 style="text-align:center;">TOMOYO Linux ポリシ解説書</h1> |
12 |
<p style="text-align:right;">Last modified: $Date: 2008-03-03 16:32:30 +0900 (Mon, 3 Mar 2008) $</p> |
<p style="text-align:right;">Last modified: $Date: 2008-03-03 16:32:30 +0900 (Mon, 3 Mar 2008) $</p> |
13 |
<h1><a name="index">目次</a></h1> |
<h1><a name="index">目次</a></h1> |
14 |
<h2><a href="#Keyword_Index">1. キーワード一覧</a></p> |
<h2><a href="#Keyword_Index">1. キーワード一覧</a></h2> |
15 |
<h2><a href="#Introduction">2. はじめに</a></h2> |
<h2><a href="#Introduction">2. はじめに</a></h2> |
16 |
<p><a href="#word_expression_rules">2.1 単語の表記規則</a></p> |
<p><a href="#word_expression_rules">2.1 単語の表記規則</a></p> |
17 |
<p><a href="#wildcard_expression_rules">2.2 パターンの表記規則</a></p> |
<p><a href="#wildcard_expression_rules">2.2 パターンの表記規則</a></p> |
18 |
<p><a href="#word_length_rules">2.3 単語の長さに関する制約</a></p> |
<p><a href="#word_length_rules">2.3 単語の長さに関する制約</a></p> |
19 |
<p><a href="#line_length_rules">2.4 1行の長さに関する制約</a></p> |
<p><a href="#line_length_rules">2.4 1行の長さに関する制約</a></p> |
20 |
<p><a href="#memory_allocation_rules">2.5 メモリ使用量に関する制約</a></p> |
<p><a href="#memory_allocation_rules">2.5 メモリ使用量に関する制約</a></p> |
21 |
<h2><a href="#Policy_Files">3. ポリシーファイルに関して</a></h2> |
<h2><a href="#Policy_Files">3. ポリシファイルに関して</a></h2> |
22 |
<p><a href="#policy_file_locations">3.1 所在について</a></p> |
<p><a href="#policy_file_locations">3.1 所在について</a></p> |
23 |
<p><a href="#policy_file_modifiers">3.2 変更について</a></p> |
<p><a href="#policy_file_modifiers">3.2 変更について</a></p> |
24 |
<h2><a href="#Domain_Rules">4. ドメインに関して</a></h2> |
<h2><a href="#Domain_Rules">4. ドメインに関して</a></h2> |
25 |
<p><a href="#domain_definition">4.1 ドメインとは</a></p> |
<p><a href="#domain_definition">4.1 ドメインとは</a></p> |
26 |
<p><a href="#domain_transition">4.2 ドメイン遷移とは</a></p> |
<p><a href="#domain_transition">4.2 ドメイン遷移とは</a></p> |
27 |
<p><a href="#access_logs">4.3 アクセスログについて</a></p> |
<p><a href="#access_logs">4.3 アクセスログについて</a></p> |
28 |
|
<h2><a href="#Syntax_Details">5. キーワード詳細</a></h2> |
29 |
<h2><a href="#features_for_intermediate">中級者向けの機能</a></h2> |
<h2><a href="#features_for_advanced">6. 便利な機能</a></h2> |
30 |
<p><a href="#sleep_penalty">ポリシー違反時のペナルティ指定</a></p> |
<p><a href="#conditional_acl">6.1 条件付きアクセス許可の指定</a></p> |
31 |
<p><a href="#conditional_acl">条件付きアクセス許可の指定</a></p> |
<p><a href="#stateful_acl">6.2 ステートフルなアクセス許可の指定</a></p> |
32 |
<h2><a href="#features_for_advanced">上級者向けの機能</a></h2> |
<p><a href="#sleep_penalty">6.3 ポリシ違反時のペナルティ指定</a></p> |
33 |
<p><a href="#stateful_acl">ステートフルなアクセス許可の指定</a></p> |
<p><a href="#execute_handler">6.4 プログラムの実行可否をカーネルの外部で判断</a></p> |
34 |
<p><a href="#denied_execute_handler_penalty">許可されていないプログラムの実行が要求された場合の代替処理指定</a></p> |
<p><a href="#denied_execute_handler">6.5 許可されていないプログラムの実行が要求された場合の代替処理指定</a></p> |
|
<p><a href="#always_denied_execute_handler">プログラムの実行可否をカーネルの外部で判断</a></p> |
|
|
|
|
35 |
<hr> |
<hr> |
36 |
|
|
37 |
<h1><a name="Keyword_Index">1. キーワード一覧</a></h1> |
<h1><a name="Keyword_Index">1. キーワード一覧</a></h1> |
81 |
<li><a href="#profile_RESTRICT_UNMOUNT">RESTRICT_UNMOUNT</a></li> |
<li><a href="#profile_RESTRICT_UNMOUNT">RESTRICT_UNMOUNT</a></li> |
82 |
<li><a href="#profile_RESTRICT_PIVOT_ROOT">RESTRICT_PIVOT_ROOT</a></li> |
<li><a href="#profile_RESTRICT_PIVOT_ROOT">RESTRICT_PIVOT_ROOT</a></li> |
83 |
<li><a href="#profile_RESTRICT_AUTOBIND">RESTRICT_AUTOBIND</a></li> |
<li><a href="#profile_RESTRICT_AUTOBIND">RESTRICT_AUTOBIND</a></li> |
84 |
<li><a href="#profile_MAC_ACCEPT_ENTRY">MAX_ACCEPT_ENTRY</a></li> |
<li><a href="#profile_MAX_ACCEPT_ENTRY">MAX_ACCEPT_ENTRY</a></li> |
85 |
<li><a href="#profile_MAX_GRANT_LOG">MAX_GRANT_LOG</a></li> |
<li><a href="#profile_MAX_GRANT_LOG">MAX_GRANT_LOG</a></li> |
86 |
<li><a href="#profile_MAX_REJECT_LOG">MAX_REJECT_LOG</a></li> |
<li><a href="#profile_MAX_REJECT_LOG">MAX_REJECT_LOG</a></li> |
87 |
<li><a href="#profile_TOMOYO_VERBOSE">TOMOYO_VERBOSE</a></li> |
<li><a href="#profile_TOMOYO_VERBOSE">TOMOYO_VERBOSE</a></li> |
206 |
<tr><td>tmp/</td><td>無効なパス名</td></tr> |
<tr><td>tmp/</td><td>無効なパス名</td></tr> |
207 |
</table> |
</table> |
208 |
|
|
209 |
|
<p>ただし、例外として、 /proc/プロセスID/fd/ ディレクトリに表示されるパイプのパス名は pipe: で、ソケットのパス名は socket: で始まります。</p> |
210 |
|
|
211 |
<h2><a name="wildcard_expression_rules">2.2 パターンの表記規則</a></h2> |
<h2><a name="wildcard_expression_rules">2.2 パターンの表記規則</a></h2> |
212 |
|
|
213 |
<p>パス名にはテンポラリファイルのように、毎回異なる文字が使われる場合があります。そのため、ワイルドカードを用いたパターン化を行うことが必要になります。 TOMOYO Linux に於いては以下のワイルドカードをサポートしています。</p> |
<p>パス名にはテンポラリファイルのように、毎回異なる文字が使われる場合があります。そのため、ワイルドカードを用いたパターン化を行うことが必要になります。 TOMOYO Linux に於いては以下のワイルドカードをサポートしています。</p> |
235 |
|
|
236 |
<h2><a name="word_length_rules">2.3 単語の長さに関する制約</a></h2> |
<h2><a name="word_length_rules">2.3 単語の長さに関する制約</a></h2> |
237 |
|
|
238 |
<p>Linux に於いてはパス名の長さに関する上限は存在しませんが、パス名を用いたアクセス制御を行うために無限の長さをサポートすることはできません。そのため、 TOMOYO Linux に於いては、単語の長さは4000バイトまでに制限されています。</p> |
<p>Linux に於いてはパス名の長さに関する上限は存在しませんが、パス名を用いたアクセス制御を行うために無限の長さをサポートすることはできません。そのため、 TOMOYO Linux に於いては、単語の長さは終端の NUL 文字を含めて4000バイトまでに制限されています。</p> |
239 |
|
|
240 |
<h2><a name="line_length_rules">2.4 1行の長さに関する制約</a></h2> |
<h2><a name="line_length_rules">2.4 1行の長さに関する制約</a></h2> |
241 |
|
|
242 |
<p>TOMOYO Linux に於いては、1行の長さは8192バイトまでに制限されています。</p> |
<p>TOMOYO Linux に於いては、1行の長さは終端の NUL 文字を含めて8192バイトまでに制限されています。</p> |
243 |
|
|
244 |
<h2><a name="memory_allocation_rules">2.5 メモリ使用量に関する制約</a></h2> |
<h2><a name="memory_allocation_rules">2.5 メモリ使用量に関する制約</a></h2> |
245 |
|
|
259 |
</pre></td></tr> |
</pre></td></tr> |
260 |
</table> |
</table> |
261 |
|
|
262 |
<h1><a name="Policy_Files">3. ポリシーファイルに関して</a></h1> |
<h1><a name="Policy_Files">3. ポリシファイルに関して</a></h1> |
263 |
|
|
264 |
<h2><a name="policy_file_locations">3.1 所在について</a></h2> |
<h2><a name="policy_file_locations">3.1 所在について</a></h2> |
265 |
|
|
266 |
<p>ポリシーファイルとは、アクセスの可否を定義したファイルです。システムの起動時に自動的にカーネルへと読み込まれます。</p> |
<p>ポリシファイルとは、アクセスの可否を定義したファイルです。システムの起動時に自動的にカーネルへと読み込まれます。</p> |
267 |
|
|
268 |
<p>システムの起動時には、 /sbin/init というプログラムが実行されます。 /sbin/init の実行が要求されたときに、 /sbin/ccs-init というプログラムが存在していた場合、 /sbin/ccs-init が実行され、 /sbin/ccs-init の処理が終了してから /sbin/init の実行が開始されます。</p> |
<p>システムの起動時には、 /sbin/init というプログラムが実行されます。 /sbin/init の実行が要求されたときに、 /sbin/ccs-init というプログラムが存在していた場合、 /sbin/ccs-init が実行され、 /sbin/ccs-init の処理が終了してから /sbin/init の実行が開始されます。</p> |
269 |
|
|
270 |
<p> /sbin/ccs-init は /etc/ccs/ ディレクトリにあるポリシーファイルを /proc/ccs/ ディレクトリを通じてカーネルへと読み込みます。</p> |
<p> /sbin/ccs-init は /etc/ccs/ ディレクトリにあるポリシファイルを /proc/ccs/ ディレクトリを通じてカーネルへと読み込みます。</p> |
271 |
|
|
272 |
<table border="1"> |
<table border="1"> |
273 |
<tr><td>カーネルとのインタフェース</td><td>ポリシーファイル</td><td>定義されている内容</td></tr> |
<tr><td>カーネルとのインタフェース</td><td>ポリシファイル</td><td>定義されている内容</td></tr> |
274 |
<tr><td><a href="#profile">/proc/ccs/profile</a></td><td><a href="#profile.conf">/etc/ccs/profile.conf</a></td><td>プロファイル(制御レベルを定義したもの)</td></tr> |
<tr><td><a href="#profile">/proc/ccs/profile</a></td><td><a href="#profile.conf">/etc/ccs/profile.conf</a></td><td>プロファイル(制御レベルを定義したもの)</td></tr> |
275 |
<tr></td><td><a href="#manager">/proc/ccs/manager</a></td><td><a href="#manager.conf">/etc/ccs/manager.conf</a><td>マネージャ(ポリシーの変更ができるプログラムを定義したもの)</td></tr> |
<tr><td><a href="#manager">/proc/ccs/manager</a></td><td><a href="#manager.conf">/etc/ccs/manager.conf</a><td>マネージャ(ポリシの変更ができるプログラムを定義したもの)</td></tr> |
276 |
<tr><td><a href="#system_policy">/proc/ccs/system_policy</a></td><td><a href="#system_policy.conf">/etc/ccs/system_policy.conf</a></td><td>システムポリシ(システム全体で適用される設定)</td></tr> |
<tr><td><a href="#system_policy">/proc/ccs/system_policy</a></td><td><a href="#system_policy.conf">/etc/ccs/system_policy.conf</a></td><td>システムポリシ(システム全体で適用される設定)</td></tr> |
277 |
<tr><td><a href="#exception_policy">/proc/ccs/exception_policy</a></td><td><a href="#exception_policy.conf">/etc/ccs/exception_policy.conf</a></td><td>例外ポリシ(ドメインポリシの例外を定義したもの)</td></tr> |
<tr><td><a href="#exception_policy">/proc/ccs/exception_policy</a></td><td><a href="#exception_policy.conf">/etc/ccs/exception_policy.conf</a></td><td>例外ポリシ(ドメインポリシの例外を定義したもの)</td></tr> |
278 |
<tr><td><a href="#domain_policy">/proc/ccs/domain_policy</a></td><td><a href="#domain_policy.conf">/etc/ccs/domain_policy.conf</a></td><td>ドメインポリシ(ドメイン単位で適用される設定)</td></tr> |
<tr><td><a href="#domain_policy">/proc/ccs/domain_policy</a></td><td><a href="#domain_policy.conf">/etc/ccs/domain_policy.conf</a></td><td>ドメインポリシ(ドメイン単位で適用される設定)</td></tr> |
279 |
</table> |
</table> |
280 |
|
|
281 |
<p>そのほかの情報を取得するためのインタフェースもあります。対応するポリシーファイルはありません。</p> |
<p>そのほかの情報を取得するためのインタフェースもあります。対応するポリシファイルはありません。</p> |
282 |
|
|
283 |
<table border="1"> |
<table border="1"> |
284 |
<tr><td>カーネルとのインタフェース</td><td>内容</td></tr> |
<tr><td>カーネルとのインタフェース</td><td>内容</td></tr> |
285 |
<tr><td><a href="#query">/proc/ccs/query</a></td><td>管理者の指示待ちとなっているアクセス要求</td></tr> |
<tr><td><a href="#query">/proc/ccs/query</a></td><td>管理者の指示待ちとなっているアクセス要求</td></tr> |
286 |
<tr><td><a href="#.domain_status">/proc/ccs/.domain_status</a></td><td>定義されているドメイン名とプロファイル番号</td></tr> |
<tr><td><a href="#.domain_status">/proc/ccs/.domain_status</a></td><td>定義されているドメイン名とプロファイル番号</td></tr> |
287 |
<tr><td><a href="#meminfo">/proc/ccs/meminfo</a></td><td>メモリ使用状況</td></tr> |
<tr><td><a href="#meminfo">/proc/ccs/meminfo</a></td><td>メモリ使用状況</td></tr> |
288 |
<tr><td><a href="#grant_log">/proc/ccs/grant_log</a></td><td>ポリシーに違反しなかったアクセス要求のログ</td></tr> |
<tr><td><a href="#grant_log">/proc/ccs/grant_log</a></td><td>ポリシに違反しなかったアクセス要求のログ</td></tr> |
289 |
<tr><td><a href="#reject_log">/proc/ccs/reject_log</a></td><td>ポリシーに違反したアクセス要求のログ</td></tr> |
<tr><td><a href="#reject_log">/proc/ccs/reject_log</a></td><td>ポリシに違反したアクセス要求のログ</td></tr> |
290 |
<tr><td><a href="#self_domain">/proc/ccs/self_domain</a></td><td>自分が属しているドメインのドメイン名</td></tr> |
<tr><td><a href="#self_domain">/proc/ccs/self_domain</a></td><td>自分が属しているドメインのドメイン名</td></tr> |
291 |
<tr><td><a href="#.process_status">/proc/ccs/.process_status</a></td><td>プロセスが属しているドメイン名とプロファイル番号</td></tr> |
<tr><td><a href="#.process_status">/proc/ccs/.process_status</a></td><td>プロセスが属しているドメイン名とプロファイル番号</td></tr> |
292 |
<tr><td><a href="#.updates_counter">/proc/ccs/.updates_counter</a></td><td>ポリシーの変更カウンタ</td></tr> |
<tr><td><a href="#.updates_counter">/proc/ccs/.updates_counter</a></td><td>ポリシの変更カウンタ</td></tr> |
293 |
<tr><td><a href="#version">/proc/ccs/version</a></td><td>TOMOYO Linux のバージョン</td></tr> |
<tr><td><a href="#version">/proc/ccs/version</a></td><td>TOMOYO Linux のバージョン</td></tr> |
294 |
</table> |
</table> |
295 |
|
|
296 |
<h2><a name="policy_file_modifiers">3.2 変更について</a></h2> |
<h2><a name="policy_file_modifiers">3.2 変更について</a></h2> |
297 |
|
|
298 |
<p>カーネルとのインタフェースである /proc/ccs/ ディレクトリを経由してポリシーを変更することができるプログラム名を /proc/ccs/manager に登録します。プログラム名ではなくドメイン名で登録することもできます。</p> |
<p>カーネルとのインタフェースである /proc/ccs/ ディレクトリを経由してポリシを変更することができるプログラム名を /proc/ccs/manager に登録します。プログラム名ではなくドメイン名で登録することもできます。</p> |
299 |
|
|
300 |
<ul> |
<ul> |
301 |
<li>/proc/ccs/manager に登録されているプログラム名を持つプロセス</li> |
<li>/proc/ccs/manager に登録されているプログラム名を持つプロセス</li> |
302 |
<li>/proc/ccs/manager に登録されているドメイン名を持つプロセス</li> |
<li>/proc/ccs/manager に登録されているドメイン名を持つプロセス</li> |
303 |
</ul> |
</ul> |
304 |
|
|
305 |
<p>だけがカーネルとのインタフェースである /proc/ccs/ ディレクトリを経由してポリシーを変更できます。以下に例を示します。</p> |
<p>だけがカーネルとのインタフェースである /proc/ccs/ ディレクトリを経由してポリシを変更できます。以下に例を示します。</p> |
306 |
|
|
307 |
<table border="1"> |
<table border="1"> |
308 |
<tr><td> |
<tr><td> |
317 |
</td></tr> |
</td></tr> |
318 |
</table> |
</table> |
319 |
|
|
320 |
<p>上記の制約に加えて、デフォルトではユーザIDと実効ユーザIDの両方が0であるプロセスだけがポリシーを変更できますが、 非 root ユーザによるポリシーの変更を認めたい場合には /proc/ccs/manager に対して</p> |
<p>上記の制約に加えて、デフォルトではユーザIDと実効ユーザIDの両方が0であるプロセスだけがポリシを変更できますが、 非 root ユーザによるポリシの変更を認めたい場合には /proc/ccs/manager に対して</p> |
321 |
|
|
322 |
<table border="1"> |
<table border="1"> |
323 |
<tr><td> |
<tr><td> |
324 |
# echo manage_by_non_root | loadpolicy -m |
# echo manage_by_non_root | /usr/lib/ccs/loadpolicy -m |
325 |
</td></tr> |
</td></tr> |
326 |
</table> |
</table> |
327 |
|
|
329 |
|
|
330 |
<table border="1"> |
<table border="1"> |
331 |
<tr><td> |
<tr><td> |
332 |
# echo delete manage_by_non_root | loadpolicy -m |
# echo delete manage_by_non_root | /usr/lib/ccs/loadpolicy -m |
333 |
|
</td></tr> |
334 |
|
</table> |
335 |
|
|
336 |
|
<p>のように delete manage_by_non_root というキーワードを書き込んでください。 /proc/ccs/ 以下のエントリの所有者は root なので、非 root ユーザによるアクセスを認めるためには必要に応じて chown/chmod を実行してください。<br> |
337 |
|
起動時に自動的にこの処理が行われるようにするために、 /sbin/ccs-init は /etc/ccs/ccs-post-init というプログラムが存在する場合には /etc/ccs/ccs-post-init も実行するようになっています。よって、例えば demo ユーザが /proc/ccs/ インタフェースへの読み書きができるように設定したい場合は、</p> |
338 |
|
|
339 |
|
<table border="1"> |
340 |
|
<tr><td> |
341 |
|
#! /bin/sh<br> |
342 |
|
echo manage_by_non_root > /proc/ccs/manager<br> |
343 |
|
chown -R demo /proc/ccs/ |
344 |
</td></tr> |
</td></tr> |
345 |
</table> |
</table> |
346 |
|
|
347 |
<p>のように delete manage_by_non_root というキーワードを書き込んでください。 /proc/ccs/ 以下のエントリの所有者は root なので、非 root ユーザによるアクセスを認めるためには必要に応じて chown/chmod を実行してください。</p> |
<p>という内容で /etc/ccs/ccs-post-init を作成し、</p> |
348 |
|
|
349 |
|
<table border="1"> |
350 |
|
<tr><td> |
351 |
|
# chmod 755 /etc/ccs/ccs-post-init<br> |
352 |
|
# chown -R demo /etc/ccs/<br> |
353 |
|
# chmod 755 /usr/lib/ccs/ |
354 |
|
</td></tr> |
355 |
|
</table> |
356 |
|
|
357 |
|
<p>を実行することで demo ユーザがポリシのあるディレクトリへのアクセスとポリシを編集するためのプログラムを実行できるようになります。</p> |
358 |
|
|
359 |
<p>なお、学習モード用のプロファイルが割り当てられているプロセスは、アクセスを要求するだけで<a href="#system_policy">/proc/ccs/system_policy</a>または<a href="#domain_policy">/proc/ccs/domain_policy</a>へと自動的にアクセス許可が追加されていきます。</p> |
<p>なお、学習モード用のプロファイルが割り当てられているプロセスは、アクセスを要求するだけで<a href="#system_policy">/proc/ccs/system_policy</a>または<a href="#domain_policy">/proc/ccs/domain_policy</a>へと自動的にアクセス許可が追加されていきます。</p> |
360 |
|
|
362 |
|
|
363 |
<h2><a name="domain_definition">4.1 ドメインとは</a></h2> |
<h2><a name="domain_definition">4.1 ドメインとは</a></h2> |
364 |
|
|
365 |
<p>TOMOYO Linux においては、全てのプロセスがそれぞれ1つのドメインに属し、全てのプログラムがそれぞれ異なるドメインに属する。現在実行されている2つのプロセスが同一のプログラムであっても、それぞれのプロセスの直前のドメインが異なっていれば異なるドメインに属する。</p> |
<p>TOMOYO Linux においては、システム全体でアクセス許可を定義するものと、ドメイン単位でアクセス許可を定義するものの2種類があります。前者はシステムポリシと呼ばれ、<a href="#system_policy">/proc/ccs/system_policy</a>を通じてアクセス許可を指定します。後者はドメインポリシと呼ばれ、<a href="#domain_policy">/proc/ccs/domain_policy</a> を通じてアクセス許可を定義します。</p> |
366 |
|
|
367 |
<p>全てのドメインはカーネルが属するドメイン「<kernel>」を基点として定義される。 /sbin/init はカーネルの属するドメインから起動されるので、 /sbin/init のドメインは「<kernel> /sbin/init」と定義される。 /etc/rc.d/rc はカーネルから起動された /sbin/init の属するドメインから起動されるので、 /etc/rc.d/rc のドメインは「<kernel> /sbin/init /etc/rc.d/rc」と定義される。</p> |
<p>TOMOYO Linux においては、全てのプロセスがそれぞれ1つのドメインに属し、全てのプログラムがそれぞれ異なるドメインに属します。現在実行されている2つのプロセスが同一のプログラムであっても、それぞれのプロセスの直前のドメインが異なっていれば異なるドメインに属します。</p> |
368 |
|
|
369 |
|
<p>全てのドメインはカーネルが属するドメイン「<kernel>」を基点として定義されます。 /sbin/init はカーネルの属するドメインから起動されるので、 /sbin/init のドメインは「<kernel> /sbin/init」と定義されます。 /etc/rc.d/rc はカーネルから起動された /sbin/init の属するドメインから起動されるので、 /etc/rc.d/rc のドメインは「<kernel> /sbin/init /etc/rc.d/rc」と定義されます。</p> |
370 |
|
|
371 |
<h2><a name="domain_transition">4.2 ドメイン遷移とは</a></h2> |
<h2><a name="domain_transition">4.2 ドメイン遷移とは</a></h2> |
372 |
|
|
373 |
<p>実行時のプログラムの名前により異なる動作をするプログラムが存在する。例えば /sbin/pidof は /sbin/killall5 へのシンボリックリンクである。 TOMOYO Linux は正規化したパス名を使用するので、 /sbin/pidof を実行すると /sbin/killall5 が実行されたものとしてドメインが定義される。</p> |
<p>実行時のプログラムの名前により異なる動作をするプログラムが存在します。例えば /sbin/pidof は /sbin/killall5 へのシンボリックリンクです。 TOMOYO Linux は正規化したパス名を使用するので、 /sbin/pidof を実行すると /sbin/killall5 が実行されたものとしてドメインが定義されます。</p> |
374 |
|
|
375 |
<p>プロセスがプログラムを実行しようとすると、以下の処理が行われる。</p> |
<p>プロセスがプログラムを実行しようとすると、以下の処理が行われます。</p> |
376 |
|
|
377 |
<table border="1"> |
<table border="1"> |
378 |
<tr><td>Step</td><td>内容</td></tr> |
<tr><td>Step</td><td>内容</td></tr> |
379 |
<tr><td>プログラム名の取得</td><td> |
<tr><td>プログラム名の取得</td><td> |
380 |
<p>実行しようとするプログラムの「正規化されたファイル名」を取得して「パス名候補1」とする。ただし、実行しようとするプログラムがシンボリックリンクの場合は、シンボリックリンクを解決したパス名を取得する。</p> |
<p>実行しようとするプログラムの「正規化されたファイル名」を取得して「パス名候補1」とします。ただし、実行しようとするプログラムがシンボリックリンクの場合は、シンボリックリンクを解決したパス名を取得します。</p> |
381 |
<p>実行しようとするプログラムの「正規化されたファイル名」を取得して「パス名候補2」とする。ただし、実行しようとするプログラムがシンボリックリンクの場合は、シンボリックリンクを解決する前のパス名を取得する。</p> |
<p>実行しようとするプログラムの「正規化されたファイル名」を取得して「パス名候補2」とします。ただし、実行しようとするプログラムがシンボリックリンクの場合は、シンボリックリンクを解決する前のパス名を取得します。</p> |
382 |
</td></tr> |
</td></tr> |
383 |
<tr><td>シンボリックリンクの識別</td><td> |
<tr><td>シンボリックリンクの識別</td><td> |
384 |
<p>「パス名候補1」と「パス名候補2」が一致しない場合、例外ポリシーから</p> |
<p>「パス名候補1」と「パス名候補2」が一致しない場合、例外ポリシから</p> |
385 |
|
|
386 |
<ul> |
<ul> |
387 |
<li>alias 「パス名候補1」 「パス名候補2」 |
<li>alias 「パス名候補1」 「パス名候補2」 |
388 |
</ul> |
</ul> |
389 |
|
|
390 |
<p>というエントリを探す。見つかった場合は「パス名候補2」を「パス名候補1」とする。</p> |
<p>というエントリを探します。見つかった場合は「パス名候補2」を「パス名候補1」とします。</p> |
391 |
</td></tr> |
</td></tr> |
392 |
<tr><td><a name="exec_stage_check_argv0">argv[0] のチェック</a></td><td> |
<tr><td><a name="exec_stage_check_argv0">argv[0] のチェック</a></td><td> |
393 |
<p>「パス名候補1」の最後の / 以降の部分と argv[0] の最後の / 以降の部分が異なっている場合、ドメイン別ポリシーから</p> |
<p>「パス名候補1」の最後の / 以降の部分と argv[0] の最後の / 以降の部分が異なっている場合、ドメインポリシから</p> |
394 |
|
|
395 |
<ul> |
<ul> |
396 |
<li>allow_argv0 「パス名候補1」 「argv[0]の最後の / 以降の部分」 |
<li>allow_argv0 「パス名候補1」 「argv[0]の最後の / 以降の部分」 |
397 |
</ul> |
</ul> |
398 |
|
|
399 |
<p>というエントリを探す。見つからなければ拒否する。</p> |
<p>というエントリを探します。見つからなければプログラムの実行要求は拒否されます。</p> |
400 |
</td></tr> |
</td></tr> |
401 |
<tr><td>類似するプログラムの集約</td><td> |
<tr><td>類似するプログラムの集約</td><td> |
402 |
<p>例外ポリシーから</p> |
<p>例外ポリシから</p> |
403 |
|
|
404 |
<ul> |
<ul> |
405 |
<li>aggregator 「パス名候補1」 「集約されたパス名」 |
<li>aggregator 「パス名候補1」 「集約されたパス名」 |
406 |
</ul> |
</ul> |
407 |
|
|
408 |
<p>というエントリを探す。見つかった場合は、「集約されたパス名」を「パス名候補1」とする。</p> |
<p>というエントリを探します。見つかった場合は、「集約されたパス名」を「パス名候補1」とします。</p> |
409 |
</td></tr> |
</td></tr> |
410 |
<tr><td><a name="exec_stage_check_execute">権限のチェック</a></td><td> |
<tr><td><a name="exec_stage_check_execute">権限のチェック</a></td><td> |
411 |
<p>ドメイン別ポリシーから</p> |
<p>ドメインポリシから</p> |
412 |
|
|
413 |
<ul> |
<ul> |
414 |
<li>allow_execute 「パス名候補1」 |
<li>allow_execute 「パス名候補1」 |
415 |
<li>allow_execute @「パス名候補1」を含むグループ名 |
<li>allow_execute @「パス名候補1」を含むグループ名 |
416 |
</ul> |
</ul> |
417 |
|
|
418 |
<p>というエントリを探す。見つからなければ拒否する。</p> |
<p>というエントリを探します。見つからなければプログラムの実行要求は拒否されます。</p> |
419 |
</td></tr> |
</td></tr> |
420 |
<tr><td><a name="exec_stage_check_destination">遷移先の決定</a></td><td> |
<tr><td><a name="exec_stage_check_destination">遷移先の決定</a></td><td> |
421 |
|
|
422 |
<p>(1) 例外ポリシーから</p> |
<p>(1) 例外ポリシから</p> |
423 |
|
|
424 |
<ul> |
<ul> |
425 |
<li>no_initialize_domain 「パス名候補1」 from 「現在のプロセスが属しているドメインのドメイン名」 |
<li>no_initialize_domain 「パス名候補1」 from 「現在のプロセスが属しているドメインのドメイン名」 |
427 |
<li>no_initialize_domain 「パス名候補1」 |
<li>no_initialize_domain 「パス名候補1」 |
428 |
</ul> |
</ul> |
429 |
|
|
430 |
<p>というエントリを探す。見つかった場合は (3) へ進む。</p> |
<p>というエントリを探します。見つかった場合は (3) へ進みます。</p> |
431 |
|
|
432 |
<p>(2) 例外ポリシーから</p> |
<p>(2) 例外ポリシから</p> |
433 |
|
|
434 |
<ul> |
<ul> |
435 |
<li>initialize_domain 「パス名候補1」 from 「現在のプロセスが属しているドメインのドメイン名」 |
<li>initialize_domain 「パス名候補1」 from 「現在のプロセスが属しているドメインのドメイン名」 |
437 |
<li>initialize_domain 「パス名候補1」 |
<li>initialize_domain 「パス名候補1」 |
438 |
</ul> |
</ul> |
439 |
|
|
440 |
<p>というエントリを探す。見つかった場合は「カーネルが属しているドメインのドメイン名(<kernel>)」と「パス名候補1」とを連結して「遷移先ドメイン」として (6) へ進む。</p> |
<p>というエントリを探します。見つかった場合は「カーネルが属しているドメインのドメイン名(<kernel>)」と「パス名候補1」とを連結して「遷移先ドメイン」として (6) へ進みます。</p> |
441 |
|
|
442 |
<p>(3) 例外ポリシーから</p> |
<p>(3) 例外ポリシから</p> |
443 |
|
|
444 |
<ul> |
<ul> |
445 |
<li>no_keep_domain 「パス名候補1」 from 「現在のプロセスが属しているドメインのドメイン名」 |
<li>no_keep_domain 「パス名候補1」 from 「現在のプロセスが属しているドメインのドメイン名」 |
448 |
<li>no_keep_domain 「現在のプロセスが属しているドメインのドメイン名」の最後の要素 |
<li>no_keep_domain 「現在のプロセスが属しているドメインのドメイン名」の最後の要素 |
449 |
</ul> |
</ul> |
450 |
|
|
451 |
<p>というエントリを探す。見つかった場合は (5) へ進む。</p> |
<p>というエントリを探します。見つかった場合は (5) へ進みます。</p> |
452 |
|
|
453 |
<p>(4) 例外ポリシーから</p> |
<p>(4) 例外ポリシから</p> |
454 |
|
|
455 |
<ul> |
<ul> |
456 |
<li>keep_domain 「パス名候補1」 from 「現在のプロセスが属しているドメインのドメイン名」 |
<li>keep_domain 「パス名候補1」 from 「現在のプロセスが属しているドメインのドメイン名」 |
459 |
<li>keep_domain 「現在のプロセスが属しているドメインのドメイン名」の最後の要素 |
<li>keep_domain 「現在のプロセスが属しているドメインのドメイン名」の最後の要素 |
460 |
</ul> |
</ul> |
461 |
|
|
462 |
<p>というエントリを探す。見つかった場合は「現在のプロセスが属しているドメインのドメイン名」を「遷移先ドメイン」とし、 (7) へ進む。</p> |
<p>というエントリを探します。見つかった場合は「現在のプロセスが属しているドメインのドメイン名」を「遷移先ドメイン」とし、 (7) へ進みます。</p> |
463 |
|
|
464 |
<p>(5) 「現在のプロセスが属しているドメインのドメイン名」と「パス名候補1」とを連結して「遷移先ドメイン」とし、(6)へ進む。</p> |
<p>(5) 「現在のプロセスが属しているドメインのドメイン名」と「パス名候補1」とを連結して「遷移先ドメイン」とし、(6)へ進みます。</p> |
465 |
|
|
466 |
<p>(6) ドメイン別ポリシーから「遷移先ドメイン」を探す。見つからなければ拒否する。</p> |
<p>(6) ドメインポリシから「遷移先ドメイン」を探します。見つからなければプログラムの実行要求は拒否されます。</p> |
467 |
|
|
468 |
</td></tr> |
</td></tr> |
469 |
<tr><td>環境変数のチェック</td><td> |
<tr><td>環境変数のチェック</td><td> |
470 |
|
|
471 |
<p>(1)全ての環境変数名が「遷移先ドメイン」で許可されているかどうかを検査し、許可されていないものが見つかった場合は拒否する。</p> |
<p>(1)全ての環境変数名が「遷移先ドメイン」で許可されているかどうかを検査します。1つでも許可されていないものが見つかった場合は、プログラムの実行要求は拒否されます。</p> |
472 |
|
|
473 |
<p>(2)通常のプログラム実行処理を行い、正常に終了した場合は「遷移先ドメイン」に遷移する。</p> |
<p>(2)通常のプログラム実行処理を行い、正常に終了した場合は「遷移先ドメイン」に遷移します。</p> |
474 |
</td></tr> |
</td></tr> |
475 |
</table> |
</table> |
476 |
|
|
477 |
<p>ただし、</p> |
<p>ただし、例外として</p> |
478 |
|
|
479 |
<ul> |
<ul> |
480 |
<li>上記手順の「<a href="#exec_stage_check_argv0">argv[0] のチェック</a>」「<a href="#exec_stage_check_execute">権限のチェック</a>」「<a href="#exec_stage_check_destination">遷移先の決定</a>」の何れかに於いて拒否されたが、プログラムの実行を要求したプロセスの属しているドメインに <a href="#domain_policy_denied_execute_handler">denied_execute_handler</a>キーワードが指定されている</li> |
<li>上記手順の「<a href="#exec_stage_check_argv0">argv[0] のチェック</a>」「<a href="#exec_stage_check_execute">権限のチェック</a>」「<a href="#exec_stage_check_destination">遷移先の決定</a>」の何れかに於いて拒否されたが、プログラムの実行を要求したプロセスの属しているドメインに <a href="#domain_policy_denied_execute_handler">denied_execute_handler</a>キーワードが指定されている</li> |
483 |
|
|
484 |
<p>のどちらかに該当し、かつ、</p> |
<p>のどちらかに該当し、かつ、</p> |
485 |
|
|
|
|
|
486 |
<ul> |
<ul> |
487 |
<li>プログラムの実行を要求したプロセスが <a href="#domain_policy_execute_handler">execute_handler</a> キーワードまたは <a href="#domain_policy_denied_execute_handler">denied_execute_handler</a> キーワードにより起動されたプロセスではない</li> |
<li>プログラムの実行を要求したプロセスが <a href="#domain_policy_execute_handler">execute_handler</a> キーワードまたは <a href="#domain_policy_denied_execute_handler">denied_execute_handler</a> キーワードにより起動されたプロセスではない</li> |
488 |
</ul> |
</ul> |
489 |
|
|
490 |
<p>場合には、以下の手順を実行します。</p> |
<p>場合には、以下の手順を実行します。この例外の使い方については「<a href="#execute_handler">プログラムの実行可否をカーネルの外部で判断</a>」と「<a href="#denied_execute_handler">許可されていないプログラムの実行が要求された場合の代替処理指定</a>」で説明します。</p> |
491 |
|
|
492 |
<table border="1"> |
<table border="1"> |
493 |
<tr><td>Step</td><td>内容</td></tr> |
<tr><td>Step</td><td>内容</td></tr> |
494 |
<tr><td>プログラム名の取得</td><td> |
<tr><td>プログラム名の取得</td><td> |
495 |
<p><a href="#domain_policy_denied_execute_handler">denied_execute_handler</a> または <a href="#domain_policy_execute_handler">execute_handler</a>で指定されているプログラムのパス名を取得し、「パス名候補1」とする。</p> |
<p><a href="#domain_policy_denied_execute_handler">denied_execute_handler</a> または <a href="#domain_policy_execute_handler">execute_handler</a>で指定されているプログラムのパス名を取得し、「パス名候補1」とします。</p> |
496 |
</td></tr> |
</td></tr> |
497 |
<tr><td>情報の追加</td><td> |
<tr><td>情報の追加</td><td> |
498 |
<p>全ての環境変数を引数の末尾に追加し、全ての環境変数を削除する。</p> |
<p>全ての環境変数を引数の末尾に追加し、全ての環境変数を削除します。</p> |
499 |
<p>「パス名候補1」「プログラムの実行を要求したプロセスの属しているドメインのドメイン名」「プログラムの実行を要求したプロセスのパス名」「プログラムの実行を要求したプロセスの状態」「実行が要求されたプログラムのパス名」「引数の数」「環境変数の数」を引数の先頭に挿入する。</p> |
<p>「パス名候補1」「プログラムの実行を要求したプロセスの属しているドメインのドメイン名」「プログラムの実行を要求したプロセスのパス名」「プログラムの実行を要求したプロセスの状態」「実行が要求されたプログラムのパス名」「引数の数」「環境変数の数」を引数の先頭に挿入します。</p> |
500 |
</td></tr> |
</td></tr> |
501 |
<tr><td>遷移先の決定</td><td> |
<tr><td>遷移先の決定</td><td> |
502 |
|
|
503 |
<p>(1) 例外ポリシーから</p> |
<p>(1) 例外ポリシから</p> |
504 |
|
|
505 |
<ul> |
<ul> |
506 |
<li>no_initialize_domain 「パス名候補1」 from 「現在のプロセスが属しているドメインのドメイン名」 |
<li>no_initialize_domain 「パス名候補1」 from 「現在のプロセスが属しているドメインのドメイン名」 |
508 |
<li>no_initialize_domain 「パス名候補1」 |
<li>no_initialize_domain 「パス名候補1」 |
509 |
</ul> |
</ul> |
510 |
|
|
511 |
<p>というエントリを探す。見つかった場合は (3) へ進む。</p> |
<p>というエントリを探します。見つかった場合は (3) へ進みます。</p> |
512 |
|
|
513 |
<p>(2) 例外ポリシーから</p> |
<p>(2) 例外ポリシから</p> |
514 |
|
|
515 |
<ul> |
<ul> |
516 |
<li>initialize_domain 「パス名候補1」 from 「現在のプロセスが属しているドメインのドメイン名」 |
<li>initialize_domain 「パス名候補1」 from 「現在のプロセスが属しているドメインのドメイン名」 |
518 |
<li>initialize_domain 「パス名候補1」 |
<li>initialize_domain 「パス名候補1」 |
519 |
</ul> |
</ul> |
520 |
|
|
521 |
<p>というエントリを探す。見つかった場合は「カーネルが属しているドメインのドメイン名(<kernel>)」と「パス名候補1」とを連結して「遷移先ドメイン」として (6) へ進む。</p> |
<p>というエントリを探します。見つかった場合は「カーネルが属しているドメインのドメイン名(<kernel>)」と「パス名候補1」とを連結して「遷移先ドメイン」として (6) へ進みます。</p> |
522 |
|
|
523 |
<p>(3) 例外ポリシーから</p> |
<p>(3) 例外ポリシから</p> |
524 |
|
|
525 |
<ul> |
<ul> |
526 |
<li>no_keep_domain 「パス名候補1」 from 「現在のプロセスが属しているドメインのドメイン名」 |
<li>no_keep_domain 「パス名候補1」 from 「現在のプロセスが属しているドメインのドメイン名」 |
529 |
<li>no_keep_domain 「現在のプロセスが属しているドメインのドメイン名」の最後の要素 |
<li>no_keep_domain 「現在のプロセスが属しているドメインのドメイン名」の最後の要素 |
530 |
</ul> |
</ul> |
531 |
|
|
532 |
<p>というエントリを探す。見つかった場合は (5) へ進む。</p> |
<p>というエントリを探します。見つかった場合は (5) へ進みます。</p> |
533 |
|
|
534 |
<p>(4) 例外ポリシーから</p> |
<p>(4) 例外ポリシから</p> |
535 |
|
|
536 |
<ul> |
<ul> |
537 |
<li>keep_domain 「パス名候補1」 from 「現在のプロセスが属しているドメインのドメイン名」 |
<li>keep_domain 「パス名候補1」 from 「現在のプロセスが属しているドメインのドメイン名」 |
540 |
<li>keep_domain 「現在のプロセスが属しているドメインのドメイン名」の最後の要素 |
<li>keep_domain 「現在のプロセスが属しているドメインのドメイン名」の最後の要素 |
541 |
</ul> |
</ul> |
542 |
|
|
543 |
<p>というエントリを探す。見つかった場合は「現在のプロセスが属しているドメインのドメイン名」を「遷移先ドメイン」とし、 (7) へ進む。</p> |
<p>というエントリを探します。見つかった場合は「現在のプロセスが属しているドメインのドメイン名」を「遷移先ドメイン」とし、 (7) へ進みます。</p> |
544 |
|
|
545 |
<p>(5) 「現在のプロセスが属しているドメインのドメイン名」と「パス名候補1」とを連結して「遷移先ドメイン」とし、(6)へ進む。</p> |
<p>(5) 「現在のプロセスが属しているドメインのドメイン名」と「パス名候補1」とを連結して「遷移先ドメイン」とし、(6)へ進みます。</p> |
546 |
|
|
547 |
<p>(6) ドメイン別ポリシーから「遷移先ドメイン」を探す。見つからなければ拒否する。</p> |
<p>(6) ドメインポリシから「遷移先ドメイン」を探します。見つからなければプログラムの実行要求は拒否されます。</p> |
548 |
|
|
549 |
</td></tr> |
</td></tr> |
550 |
<tr><td>プログラムの実行</td><td> |
<tr><td>プログラムの実行</td><td> |
551 |
|
|
552 |
<p>通常のプログラム実行処理を行い、正常に終了した場合は「遷移先ドメイン」に遷移する。</p> |
<p>通常のプログラム実行処理を行い、正常に終了した場合は「遷移先ドメイン」に遷移します。</p> |
553 |
|
|
554 |
</td></tr> |
</td></tr> |
555 |
</table> |
</table> |
556 |
|
|
|
|
|
557 |
<h2><a name="access_logs">4.3 アクセスログについて</a></h2> |
<h2><a name="access_logs">4.3 アクセスログについて</a></h2> |
558 |
|
|
559 |
<hr> |
<p>ドメインポリシによって許可されたアクセス要求のログと拒否されたアクセス要求のログを生成します。前者は許可ログと呼ばれ、 /proc/ccs/grant_log から取得することができます。後者は拒否ログと呼ばれ、 /proc/ccs/reject_log から取得することができます。これらのログを取得してファイルとして保存するためのツールとして /usr/lib/ccs/ccs-auditd というプログラムが付属しています。</p> |
560 |
|
|
561 |
|
<p>以下に例を示します。最初の例はプログラムを実行しようとしたときのログです。</p> |
562 |
|
|
|
<h2><a name="word_definition">1.1 用語の定義</a></h2> |
|
563 |
<table border="1"> |
<table border="1"> |
564 |
<tr> |
<tr><td> |
565 |
<td>正規化されたパス名</td> |
#2008-04-09 12:50:15# profile=1 mode=learning pid=5054 uid=0 gid=0 euid=0 egid=0 suid=0 sgid=0 fsuid=0 fsgid=0 state[0]=0 state[1]=0 state[2]=0 argc=2 envc=16 argv[]={ "cat" "/etc/fstab" } envp[]={ "TERM=vt100" "SHELL=/bin/bash" "SSH_CLIENT=::ffff:192.168.99.1\04048601\04022" "SSH_TTY=/dev/pts/0" "USER=root" "MAIL=/var/mail/root" "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/lib/ccs" "PWD=/root" "LANG=C" "PS1=\\h:\\w\\$\040" "SHLVL=1" "HOME=/root" "LANGUAGE=en_JP:en_US:en_GB:en" "LOGNAME=root" "SSH_CONNECTION=::ffff:192.168.99.1\04048601\040::ffff:192.168.99.152\04022" "_=/bin/cat" }<br> |
566 |
<td>"/" で始まり、シンボリックリンクや "/./" や "//" や "/../" を含まないパス名。(ただし、現在のプロセスに関する情報にアクセスするための "/proc/self/" ディレクトリに関してはそのまま "/proc/self/" とする。)<br> |
<kernel> /usr/sbin/sshd /bin/bash<br> |
567 |
プロセスが chroot された環境下で動作する場合であっても、 chroot する前のパス名で指定される。<br> |
allow_execute /bin/cat |
568 |
正規化されたパス名は、全てアスキーコードの表示可能な範囲(0x21〜0x7E)で構成されている。 従って、\ 文字(0x5C)は \\ 、その他の表示不可能な文字(0x01〜0x20、0x7F〜0xFF)は \ooo 形式の8進数で表記する。 (例えば、空白文字(0x20)は \040 と表記する。)</td> |
</td></tr> |
|
</tr> |
|
|
<tr> |
|
|
<td>正規化されたディレクトリ名</td> |
|
|
<td>正規化されたパス名の内、"/"で終わるもの。</td> |
|
|
</tr> |
|
|
<tr> |
|
|
<td>正規化されたファイル名</td> |
|
|
<td>正規化されたパス名の内、"/"で終わらないもの。<br> |
|
|
正規化されたファイル名は、ディレクトリ以外の全てのファイルタイプ(通常ファイル、キャラクタ型デバイスファイル、ブロック型デバイスファイル、FIFO、シンボリックリンク、ソケット)を含む。</td> |
|
|
</tr> |
|
|
<tr> |
|
|
<td>プログラム</td> |
|
|
<td>正規化されたファイル名の内、実行可能なもの。</td> |
|
|
</tr> |
|
|
<tr> |
|
|
<td>ドメイン</td> |
|
|
<td>MAC(強制アクセス制御)を行うための属性</td> |
|
|
</tr> |
|
|
<tr> |
|
|
<td>遷移先ドメイン</td> |
|
|
<td>プログラムが正常に開始された場合にプロセスが遷移するドメイン</td> |
|
|
</tr> |
|
|
<tr> |
|
|
<td>操作対象ドメイン</td> |
|
|
<td>操作対象となるプロセスの属しているドメイン</td> |
|
|
</tr> |
|
569 |
</table> |
</table> |
570 |
|
|
571 |
<hr> |
<p>このログは、 <kernel> /usr/sbin/sshd /bin/bash というドメインに属しているプロセスが /bin/cat というプログラムを実行しようとし、そのときの引数の内容は "cat" "/etc/fstab" 、環境変数の内容は "TERM=vt100" "SHELL=/bin/bash" "SSH_CLIENT=::ffff:192.168.99.1\04048601\04022" "SSH_TTY=/dev/pts/0" "USER=root" "MAIL=/var/mail/root" "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/lib/ccs" "PWD=/root" "LANG=C" "PS1=\\h:\\w\\$\040" "SHLVL=1" "HOME=/root" "LANGUAGE=en_JP:en_US:en_GB:en" "LOGNAME=root" "SSH_CONNECTION=::ffff:192.168.99.1\04048601\040::ffff:192.168.99.152\04022" "_=/bin/cat" であったということを示しています。また、プロセスIDやユーザIDなど、プロセスに関する情報も一緒に出力されます。</p> |
|
<h1><a name="policy_files_and_syntaxes">2. ポリシーファイルの分類と構文</a></h1> |
|
|
<p>ポリシーファイルは全て /etc/ccs/ ディレクトリに作成しておく。このディレクトリに存在するファイルが /sbin/init の開始時に /sbin/ccs-init によって読み込まれるようになっている。</p> |
|
|
<h2><a name="manager.conf">2.1 ポリシーマネージャ定義(manager.conf)</a></h2> |
|
|
<p>全てのプログラムがポリシーの変更を行えるのは危険であるため、このファイルには /proc/ccs/ インタフェースへの書き込みアクセスを許可するプログラムまたはドメインを定義しておく。</p> |
|
|
<p>このファイルに定義されていないプログラムやドメインからは /proc/ccs/ インタフェースへの書き込みアクセスができない。システム運用時にポリシーの変更を許可しない場合はこのファイルを削除しておく。</p> |
|
|
<p>(例)<br> |
|
|
/usr/lib/ccs/loadpolicy<br> |
|
|
/usr/lib/ccs/editpolicy<br> |
|
|
/usr/lib/ccs/setlevel<br> |
|
|
/usr/lib/ccs/setprofile<br> |
|
|
/usr/lib/ccs/ld-watch<br> |
|
|
/usr/lib/ccs/ccs-queryd<br> |
|
|
<kernel> /sbin/mingetty /usr/lib/bin/bash |
|
|
</p> |
|
572 |
|
|
573 |
<hr> |
<p>次の例は、ファイルを読み込みモードでオープンしようとしたときのログです。</p> |
574 |
|
|
575 |
|
<table border="1"> |
576 |
|
<tr><td> |
577 |
|
#2008-04-09 12:50:15# profile=1 mode=learning pid=5054 uid=0 gid=0 euid=0 egid=0 suid=0 sgid=0 fsuid=0 fsgid=0 state[0]=0 state[1]=0 state[2]=0<br> |
578 |
|
<kernel> /usr/sbin/sshd /bin/bash /bin/cat<br> |
579 |
|
allow_read /etc/fstab |
580 |
|
</td></tr> |
581 |
|
</table> |
582 |
|
|
583 |
|
<p>このログは、 <kernel> /usr/sbin/sshd /bin/bash /bin/cat というドメインに属しているプロセスが /etc/fstab というファイルをオープンしようとしたことを示しています。</p> |
584 |
|
|
585 |
|
<p>次の例は、ドメインが新規作成されたときのログです。</p> |
586 |
|
|
587 |
|
<table border="1"> |
588 |
|
<tr><td> |
589 |
|
#2008-04-09 12:52:01# profile=1 mode=learning pid=5110 uid=0 gid=0 euid=0 egid=0 suid=0 sgid=0 fsuid=0 fsgid=0 state[0]=0 state[1]=0 state[2]=0<br> |
590 |
|
<kernel> /usr/sbin/sshd /bin/bash /bin/bash /bin/audit-exec-param /bin/cat<br> |
591 |
|
use_profile 1 |
592 |
|
</td></tr> |
593 |
|
</table> |
594 |
|
|
595 |
|
<p>このログは、 <kernel> /usr/sbin/sshd /bin/bash /bin/bash /bin/audit-exec-param /bin/cat というドメインが新規作成され、プロファイルとして 1 が割り当てられたことを示しています。 TOMOYO Linux では、ドメインが自動的に新規作成されていきます。自動的に新規作成された場合には、ドメインを新規作成することになったプロセスの属しているドメインに割り当てられていたプロファイル番号が引き継がれます。</p> |
596 |
|
|
597 |
|
<p>次の例は、<a href="#execute_handler">プログラムの実行可否をカーネルの外部で判断</a>するために要求されたのとは異なるプログラムが実行されたときのログです。</p> |
598 |
|
<table border="1"> |
599 |
|
<tr><td> |
600 |
|
#2008-04-09 12:52:01# profile=1 mode=learning pid=5110 uid=0 gid=0 euid=0 egid=0 suid=0 sgid=0 fsuid=0 fsgid=0 state[0]=0 state[1]=0 state[2]=0 argc=24 envc=0 argv[]={ "/bin/audit-exec-param" "<kernel>\040/usr/sbin/sshd\040/bin/bash\040/bin/bash" "/bin/bash" "pid=5110\040uid=0\040gid=0\040euid=0\040egid=0\040suid=0\040sgid=0\040fsuid=0\040fsgid=0\040state[0]=0\040state[1]=0\040state[2]=0" "/bin/cat" "2" "18" "cat" "/etc/fstab" "SHELL=/bin/bash" "TERM=vt100" "SSH_CLIENT=::ffff:192.168.99.1\04048601\04022" "SSH_TTY=/dev/pts/0" "USER=root" "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/lib/ccs" "MAIL=/var/mail/root" "_=/bin/cat" "PWD=/root" "LANG=C" "HOME=/root" "SHLVL=2" "LANGUAGE=en_JP:en_US:en_GB:en" "LOGNAME=root" "SSH_CONNECTION=::ffff:192.168.99.1\04048601\040::ffff:192.168.99.152\04022" } envp[]={ }<br> |
601 |
|
<kernel> /usr/sbin/sshd /bin/bash /bin/bash<br> |
602 |
|
execute_handler /bin/audit-exec-param |
603 |
|
</td></tr> |
604 |
|
</table> |
605 |
|
|
606 |
|
<p>このログは、 <kernel> /usr/sbin/sshd /bin/bash /bin/bash というドメインに属しているプロセスがプログラムを実行しようとしたが、 execute_handler が指定されていたので代わりに /bin/audit-exec-param というプログラムが実行されたこと、 /bin/audit-exec-param に渡された引数の内容は "/bin/audit-exec-param" "<kernel>\040/usr/sbin/sshd\040/bin/bash\040/bin/bash" "/bin/bash" "pid=5110\040uid=0\040gid=0\040euid=0\040egid=0\040suid=0\040sgid=0\040fsuid=0\040fsgid=0\040state[0]=0\040state[1]=0\040state[2]=0" "/bin/cat" "2" "18" "cat" "/etc/fstab" "SHELL=/bin/bash" "TERM=vt100" "SSH_CLIENT=::ffff:192.168.99.1\04048601\04022" "SSH_TTY=/dev/pts/0" "USER=root" "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/lib/ccs" "MAIL=/var/mail/root" "_=/bin/cat" "PWD=/root" "LANG=C" "HOME=/root" "SHLVL=2" "LANGUAGE=en_JP:en_US:en_GB:en" "LOGNAME=root" "SSH_CONNECTION=::ffff:192.168.99.1\04048601\040::ffff:192.168.99.152\04022" であったということを示しています。 LD_PRELOAD などの環境変数によって /bin/audit-exec-param の動作が左右されるのを防ぐため、環境変数を引数に移動しています。</p> |
607 |
|
|
608 |
|
<p>このように、アクセスログは3行で1件( /usr/lib/ccs/ccs-auditd によってファイルに保存されるときに空行が入るので4行で1件)となっており、これらのログはそのままドメインポリシとして追加可能な形式になっています。アクセス拒否ログから許可したい部分を抽出して、例えば /var/log/tomoyo/diff.txt という名前で保存した後、</p> |
609 |
|
|
610 |
|
<table border="1"> |
611 |
|
<tr><td> |
612 |
|
# /usr/lib/ccs/loadpolicy -d < /var/log/tomoyo/diff.txt |
613 |
|
</td></tr> |
614 |
|
</table> |
615 |
|
|
616 |
|
<p>という操作を行うことで、ドメインポリシに追加することができます。そのため、「学習モード」を使わなくても、最初から「許容モード」を使って拒否ログを出力させ、拒否ログの内容を編集するというアプローチでもドメインポリシを定義していくことができます。「学習モード」でドメインポリシを作成する場合にはプロセスの状態(アクセスログの先頭行の内容)は加味されませんが、アクセス拒否ログからドメインポリシを生成すると、最初から<a href="#conditional_acl">条件付きアクセス許可の指定</a>を行うことができます。例えば、「学習モード」を使わずにログを生成し、</p> |
617 |
|
|
618 |
|
<table border="1"> |
619 |
|
<tr><td> |
620 |
|
<kernel> /usr/sbin/sshd /bin/bash<br> |
621 |
|
allow_execute /bin/cat if exec.argc=2 exec.argv[0]="cat" exec.argv[1]="/etc/fstab" |
622 |
|
</td></tr> |
623 |
|
</table> |
624 |
|
|
625 |
|
<p>としてドメインポリシを追加した場合、「学習モード」で追加される</p> |
626 |
|
|
627 |
|
<table border="1"> |
628 |
|
<tr><td> |
629 |
|
<kernel> /usr/sbin/sshd /bin/bash<br> |
630 |
|
allow_execute /bin/cat |
631 |
|
</td></tr> |
632 |
|
</table> |
633 |
|
|
634 |
|
<p>よりも細かい指定を行うことができるようになります。</p> |
635 |
|
|
636 |
<h1><a name="details">詳細</a></h1> |
<h1><a name="Syntax_Details">5. キーワード詳細</a></h1> |
637 |
|
|
638 |
<h2><a name="profile">/proc/ccs/profile</a></h2> |
<h2><a name="profile">/proc/ccs/profile</a></h2> |
639 |
|
|
640 |
<p>TOMOYO Linuxでは、ファイル以外にもいくつかの項目について強制アクセス制御を行うことができるが、ポリシー管理の負担を減らすために、必要の無い機能を無効化できるようになっている。</p> |
<p>TOMOYO Linuxでは、ファイル以外にもいくつかの項目について強制アクセス制御を行うことができますが、ポリシ管理の負担を減らすために、必要の無い機能を無効化できるようになっています。</p> |
641 |
|
|
642 |
<p>有効にしたい機能とそのモードを「プロファイル番号-項目=値」という形式で定義する。プロファイル番号は 0 〜 255 が指定可能である。プロファイルの内容を変更するには setlevel コマンドまたは loadpolicy コマンドを使用する。</p> |
<p>有効にしたい機能とそのモードを「プロファイル番号-項目=値」という形式で定義します。プロファイル番号は 0 〜 255 が指定可能です。プロファイルの内容を変更するには setlevel コマンドまたは loadpolicy コマンドを使用します。</p> |
643 |
|
|
644 |
<p>各ドメインには1個のプロファイルが割り当てられる。ドメインにプロファイルを割り当てるには setprofile コマンドまたは editpolicy コマンドまたは loadpolicy コマンドを使用する。</p> |
<p>各ドメインには1個のプロファイルが割り当てられます。ドメインにプロファイルを割り当てるには setprofile コマンドまたは editpolicy コマンドまたは loadpolicy コマンドを使用します。</p> |
645 |
|
|
646 |
<p>現在ドメインに割り当てられているプロファイル番号は editpolicy コマンドで確認できる。<br> |
<p>現在ドメインに割り当てられているプロファイル番号は editpolicy コマンドで確認できます。<br> |
647 |
現在動作中のプロセスに割り当てられているプロファイル番号は ccstree コマンドで確認できる。<br> |
現在動作中のプロセスに割り当てられているプロファイル番号は ccstree コマンドで確認できます。<br> |
648 |
現在のポリシーを savepolicy コマンドで保存した場合、<a href="#domain_policy_use_profile">use_profile</a>というキーワードに保持される。</p> |
現在のポリシを savepolicy コマンドで保存した場合、<a href="#domain_policy_use_profile">use_profile</a>というキーワードに保持されます。</p> |
649 |
|
|
650 |
<h3><a name="profile_MAC_FOR_FILE">MAC_FOR_FILE</a></h3> |
<h3><a name="profile_MAC_FOR_FILE">MAC_FOR_FILE</a></h3> |
651 |
|
|
652 |
<p>ファイルに対する強制アクセス制御のレベルを指定する。</p> |
<p>ファイルに対する強制アクセス制御のレベルを指定します。</p> |
653 |
|
|
654 |
<table border="1"> |
<table border="1"> |
655 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
656 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
657 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
658 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。 |
659 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
ポリシへの自動追加も行いません。</td></tr> |
660 |
|
<tr><td>enforcing</td><td>強制モード。ポリシに違反したらエラーとします。</td></tr> |
661 |
</table> |
</table> |
662 |
|
|
663 |
<h3><a name="profile_MAC_FOR_ARGV0">MAC_FOR_ARGV0</a></h3> |
<h3><a name="profile_MAC_FOR_ARGV0">MAC_FOR_ARGV0</a></h3> |
664 |
|
|
665 |
<p>プログラム実行時の argv[0] に対する強制アクセス制御のレベルを指定する。</p> |
<p>プログラム実行時の argv[0] に対する強制アクセス制御のレベルを指定します。</p> |
666 |
|
|
667 |
<table border="1"> |
<table border="1"> |
668 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
669 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
670 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
671 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
672 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
673 |
</table> |
</table> |
674 |
|
|
675 |
<h3><a name="profile_MAC_FOR_ENV">MAC_FOR_ENV</a></h3> |
<h3><a name="profile_MAC_FOR_ENV">MAC_FOR_ENV</a></h3> |
676 |
|
|
677 |
<p>プログラム実行時の環境変数名に対する強制アクセス制御のレベルを指定する。</p> |
<p>プログラム実行時の環境変数名に対する強制アクセス制御のレベルを指定します。</p> |
678 |
|
|
679 |
<table border="1"> |
<table border="1"> |
680 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
681 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
682 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
683 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
684 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
685 |
</table> |
</table> |
686 |
|
|
687 |
<h3><a name="profile_MAC_FOR_CAPABILITY::inet_tcp_create">MAC_FOR_CAPABILITY::inet_tcp_create</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::inet_tcp_create">MAC_FOR_CAPABILITY::inet_tcp_create</a></h3> |
688 |
|
|
689 |
<p>TCP ソケットの使用に対する強制アクセス制御のレベルを指定する。</p> |
<p>TCP ソケットの使用に対する強制アクセス制御のレベルを指定します。</p> |
690 |
|
|
691 |
<table border="1"> |
<table border="1"> |
692 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
693 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
694 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
695 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
696 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
697 |
</table> |
</table> |
698 |
|
|
699 |
<h3><a name="profile_MAC_FOR_CAPABILITY::inet_tcp_listen">MAC_FOR_CAPABILITY::inet_tcp_listen</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::inet_tcp_listen">MAC_FOR_CAPABILITY::inet_tcp_listen</a></h3> |
700 |
|
|
701 |
<p>TCP ソケットの listenに対する強制アクセス制御のレベルを指定する。</p> |
<p>TCP ソケットの listenに対する強制アクセス制御のレベルを指定します。</p> |
702 |
|
|
703 |
<table border="1"> |
<table border="1"> |
704 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
705 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
706 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
707 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
708 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
709 |
</table> |
</table> |
710 |
|
|
711 |
<h3><a name="profile_MAC_FOR_CAPABILITY::inet_tcp_connect">MAC_FOR_CAPABILITY::inet_tcp_connect</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::inet_tcp_connect">MAC_FOR_CAPABILITY::inet_tcp_connect</a></h3> |
712 |
|
|
713 |
<p>TCP ソケットの connectに対する強制アクセス制御のレベルを指定する。</p> |
<p>TCP ソケットの connectに対する強制アクセス制御のレベルを指定します。</p> |
714 |
|
|
715 |
<table border="1"> |
<table border="1"> |
716 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
717 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
718 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
719 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
720 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
721 |
</table> |
</table> |
722 |
|
|
723 |
<h3><a name="profile_MAC_FOR_CAPABILITY::use_inet_udp">MAC_FOR_CAPABILITY::use_inet_udp</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::use_inet_udp">MAC_FOR_CAPABILITY::use_inet_udp</a></h3> |
724 |
|
|
725 |
<p>UDP ソケットの使用に対する強制アクセス制御のレベルを指定する。</p> |
<p>UDP ソケットの使用に対する強制アクセス制御のレベルを指定します。</p> |
726 |
|
|
727 |
<table border="1"> |
<table border="1"> |
728 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
729 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
730 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
731 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
732 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
733 |
</table> |
</table> |
734 |
|
|
735 |
<h3><a name="profile_MAC_FOR_CAPABILITY::use_inet_ip">MAC_FOR_CAPABILITY::use_inet_ip</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::use_inet_ip">MAC_FOR_CAPABILITY::use_inet_ip</a></h3> |
736 |
|
|
737 |
<p>RAW ソケットの使用に対する強制アクセス制御のレベルを指定する。</p> |
<p>RAW ソケットの使用に対する強制アクセス制御のレベルを指定します。</p> |
738 |
|
|
739 |
<table border="1"> |
<table border="1"> |
740 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
741 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
742 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
743 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
744 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
745 |
</table> |
</table> |
746 |
|
|
747 |
<h3><a name="profile_MAC_FOR_CAPABILITY::use_route">MAC_FOR_CAPABILITY::use_route</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::use_route">MAC_FOR_CAPABILITY::use_route</a></h3> |
748 |
|
|
749 |
<p>ROUTE ソケットの使用に対する強制アクセス制御のレベルを指定する。</p> |
<p>ROUTE ソケットの使用に対する強制アクセス制御のレベルを指定します。</p> |
750 |
|
|
751 |
<table border="1"> |
<table border="1"> |
752 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
753 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
754 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
755 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
756 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
757 |
</table> |
</table> |
758 |
|
|
759 |
<h3><a name="profile_MAC_FOR_CAPABILITY::use_packet">MAC_FOR_CAPABILITY::use_packet</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::use_packet">MAC_FOR_CAPABILITY::use_packet</a></h3> |
760 |
|
|
761 |
<p>PACKET ソケットの使用に対する強制アクセス制御のレベルを指定する。</p> |
<p>PACKET ソケットの使用に対する強制アクセス制御のレベルを指定します。</p> |
762 |
|
|
763 |
<table border="1"> |
<table border="1"> |
764 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
765 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
766 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
767 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
768 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
769 |
</table> |
</table> |
770 |
|
|
771 |
<h3><a name="profile_MAC_FOR_CAPABILITY::use_kernel_module">MAC_FOR_CAPABILITY::use_kernel_module</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::use_kernel_module">MAC_FOR_CAPABILITY::use_kernel_module</a></h3> |
772 |
|
|
773 |
<p>create_module(2) init_module(2) delete_module(2) の使用に対する強制アクセス制御のレベルを指定する。</p> |
<p>create_module(2) init_module(2) delete_module(2) の使用に対する強制アクセス制御のレベルを指定します。</p> |
774 |
|
|
775 |
<table border="1"> |
<table border="1"> |
776 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
777 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
778 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
779 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
780 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
781 |
</table> |
</table> |
782 |
|
|
783 |
<h3><a name="profile_MAC_FOR_CAPABILITY::create_fifo">MAC_FOR_CAPABILITY::create_fifo</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::create_fifo">MAC_FOR_CAPABILITY::create_fifo</a></h3> |
784 |
|
|
785 |
<p>mknod(2) で FIFO の作成に対する強制アクセス制御のレベルを指定する。</p> |
<p>mknod(2) で FIFO の作成に対する強制アクセス制御のレベルを指定します。</p> |
786 |
|
|
787 |
<table border="1"> |
<table border="1"> |
788 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
789 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
790 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
791 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
792 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
793 |
</table> |
</table> |
794 |
|
|
795 |
<h3><a name="profile_MAC_FOR_CAPABILITY::create_block_dev">MAC_FOR_CAPABILITY::create_block_dev</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::create_block_dev">MAC_FOR_CAPABILITY::create_block_dev</a></h3> |
796 |
|
|
797 |
<p>mknod(2) でブロック型デバイスの作成に対する強制アクセス制御のレベルを指定する。</p> |
<p>mknod(2) でブロック型デバイスの作成に対する強制アクセス制御のレベルを指定します。</p> |
798 |
|
|
799 |
<table border="1"> |
<table border="1"> |
800 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
801 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
802 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
803 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
804 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
805 |
</table> |
</table> |
806 |
|
|
807 |
<h3><a name="profile_MAC_FOR_CAPABILITY::create_char_dev">MAC_FOR_CAPABILITY::create_char_dev</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::create_char_dev">MAC_FOR_CAPABILITY::create_char_dev</a></h3> |
808 |
|
|
809 |
<p>mknod(2) でキャラクタ型デバイスの作成に対する強制アクセス制御のレベルを指定する。</p> |
<p>mknod(2) でキャラクタ型デバイスの作成に対する強制アクセス制御のレベルを指定します。</p> |
810 |
|
|
811 |
<table border="1"> |
<table border="1"> |
812 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
813 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
814 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
815 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
816 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
817 |
</table> |
</table> |
818 |
|
|
819 |
<h3><a name="profile_MAC_FOR_CAPABILITY::create_unix_socket">MAC_FOR_CAPABILITY::create_unix_socket</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::create_unix_socket">MAC_FOR_CAPABILITY::create_unix_socket</a></h3> |
820 |
|
|
821 |
<p>mknod(2) で UNIX ドメインソケットの作成に対する強制アクセス制御のレベルを指定する。</p> |
<p>mknod(2) で UNIX ドメインソケットの作成に対する強制アクセス制御のレベルを指定します。</p> |
822 |
|
|
823 |
<table border="1"> |
<table border="1"> |
824 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
825 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
826 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
827 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
828 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
829 |
</table> |
</table> |
830 |
|
|
831 |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_MOUNT">MAC_FOR_CAPABILITY::SYS_MOUNT</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_MOUNT">MAC_FOR_CAPABILITY::SYS_MOUNT</a></h3> |
832 |
|
|
833 |
<p>mount(2) の使用に対する強制アクセス制御のレベルを指定する。</p> |
<p>mount(2) の使用に対する強制アクセス制御のレベルを指定します。</p> |
834 |
|
|
835 |
<table border="1"> |
<table border="1"> |
836 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
837 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
838 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
839 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
840 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
841 |
</table> |
</table> |
842 |
|
|
843 |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_UMOUNT">MAC_FOR_CAPABILITY::SYS_UMOUNT</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_UMOUNT">MAC_FOR_CAPABILITY::SYS_UMOUNT</a></h3> |
844 |
|
|
845 |
<p>umount(2) の使用に対する強制アクセス制御のレベルを指定する。</p> |
<p>umount(2) の使用に対する強制アクセス制御のレベルを指定します。</p> |
846 |
|
|
847 |
<table border="1"> |
<table border="1"> |
848 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
849 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
850 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
851 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
852 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
853 |
</table> |
</table> |
854 |
|
|
855 |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_REBOOT">MAC_FOR_CAPABILITY::SYS_REBOOT</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_REBOOT">MAC_FOR_CAPABILITY::SYS_REBOOT</a></h3> |
856 |
|
|
857 |
<p>reboot(2) の使用に対する強制アクセス制御のレベルを指定する。</p> |
<p>reboot(2) の使用に対する強制アクセス制御のレベルを指定します。</p> |
858 |
|
|
859 |
<table border="1"> |
<table border="1"> |
860 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
861 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
862 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
863 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
864 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
865 |
</table> |
</table> |
866 |
|
|
867 |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_CHROOT">MAC_FOR_CAPABILITY::SYS_CHROOT</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_CHROOT">MAC_FOR_CAPABILITY::SYS_CHROOT</a></h3> |
868 |
|
|
869 |
<p>chroot(2) の使用に対する強制アクセス制御のレベルを指定する。</p> |
<p>chroot(2) の使用に対する強制アクセス制御のレベルを指定します。</p> |
870 |
|
|
871 |
<table border="1"> |
<table border="1"> |
872 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
873 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
874 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
875 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
876 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
877 |
</table> |
</table> |
878 |
|
|
879 |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_KILL">MAC_FOR_CAPABILITY::SYS_VHANGUP</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_KILL">MAC_FOR_CAPABILITY::SYS_VHANGUP</a></h3> |
880 |
|
|
881 |
<p>0 以外のシグナルで kill(2) tkill(2) tgkill(2)の使用に対する強制アクセス制御のレベルを指定する。</p> |
<p>0 以外のシグナルで kill(2) tkill(2) tgkill(2)の使用に対する強制アクセス制御のレベルを指定します。</p> |
882 |
|
|
883 |
<table border="1"> |
<table border="1"> |
884 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
885 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
886 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
887 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
888 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
889 |
</table> |
</table> |
890 |
|
|
891 |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_VHANGUP">MAC_FOR_CAPABILITY::SYS_VHANGUP</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_VHANGUP">MAC_FOR_CAPABILITY::SYS_VHANGUP</a></h3> |
892 |
|
|
893 |
<p>vhangup(2) の使用に対する強制アクセス制御のレベルを指定する。</p> |
<p>vhangup(2) の使用に対する強制アクセス制御のレベルを指定します。</p> |
894 |
|
|
895 |
<table border="1"> |
<table border="1"> |
896 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
897 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
898 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
899 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
900 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
901 |
</table> |
</table> |
902 |
|
|
903 |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_TIME">MAC_FOR_CAPABILITY::SYS_TIME</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_TIME">MAC_FOR_CAPABILITY::SYS_TIME</a></h3> |
904 |
|
|
905 |
<p>stime(2) settimeofday(2) adjtimex(2) の使用に対する強制アクセス制御のレベルを指定する。</p> |
<p>stime(2) settimeofday(2) adjtimex(2) の使用に対する強制アクセス制御のレベルを指定します。</p> |
906 |
|
|
907 |
<table border="1"> |
<table border="1"> |
908 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
909 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
910 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
911 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
912 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
913 |
</table> |
</table> |
914 |
|
|
915 |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_NICE">MAC_FOR_CAPABILITY::SYS_NICE</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_NICE">MAC_FOR_CAPABILITY::SYS_NICE</a></h3> |
916 |
|
|
917 |
<p>nice(2) setpriority(2) の使用に対する強制アクセス制御のレベルを指定する。</p> |
<p>nice(2) setpriority(2) の使用に対する強制アクセス制御のレベルを指定します。</p> |
918 |
|
|
919 |
<table border="1"> |
<table border="1"> |
920 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
921 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
922 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
923 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
924 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
925 |
</table> |
</table> |
926 |
|
|
927 |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_SETHOSTNAME">MAC_FOR_CAPABILITY::SYS_SETHOSTNAME</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_SETHOSTNAME">MAC_FOR_CAPABILITY::SYS_SETHOSTNAME</a></h3> |
928 |
|
|
929 |
<p>sethostname(2) setdomainname(2) の使用に対する強制アクセス制御のレベルを指定する。</p> |
<p>sethostname(2) setdomainname(2) の使用に対する強制アクセス制御のレベルを指定します。</p> |
930 |
|
|
931 |
<table border="1"> |
<table border="1"> |
932 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
933 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
934 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
935 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
936 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
937 |
</table> |
</table> |
938 |
|
|
939 |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_LINK">MAC_FOR_CAPABILITY::SYS_LINK</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_LINK">MAC_FOR_CAPABILITY::SYS_LINK</a></h3> |
940 |
|
|
941 |
<p>link(2) の使用に対する強制アクセス制御のレベルを指定する。</p> |
<p>link(2) の使用に対する強制アクセス制御のレベルを指定します。</p> |
942 |
|
|
943 |
<table border="1"> |
<table border="1"> |
944 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
945 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
946 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
947 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
948 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
949 |
</table> |
</table> |
950 |
|
|
951 |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_SYMLINK">MAC_FOR_CAPABILITY::SYS_SYMLINK</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_SYMLINK">MAC_FOR_CAPABILITY::SYS_SYMLINK</a></h3> |
952 |
|
|
953 |
<p>symlink(2) の使用に対する強制アクセス制御のレベルを指定する。</p> |
<p>symlink(2) の使用に対する強制アクセス制御のレベルを指定します。</p> |
954 |
|
|
955 |
<table border="1"> |
<table border="1"> |
956 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
957 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
958 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
959 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
960 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
961 |
</table> |
</table> |
962 |
|
|
963 |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_RENAME">MAC_FOR_CAPABILITY::SYS_RENAME</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_RENAME">MAC_FOR_CAPABILITY::SYS_RENAME</a></h3> |
964 |
|
|
965 |
<p>symlink(2) の使用に対する強制アクセス制御のレベルを指定する。</p> |
<p>symlink(2) の使用に対する強制アクセス制御のレベルを指定します。</p> |
966 |
|
|
967 |
<table border="1"> |
<table border="1"> |
968 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
969 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
970 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
971 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
972 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
973 |
</table> |
</table> |
974 |
|
|
975 |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_UNLINK">MAC_FOR_CAPABILITY::SYS_UNLINK</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_UNLINK">MAC_FOR_CAPABILITY::SYS_UNLINK</a></h3> |
976 |
|
|
977 |
<p>symlink(2) の使用に対する強制アクセス制御のレベルを指定する。</p> |
<p>symlink(2) の使用に対する強制アクセス制御のレベルを指定します。</p> |
978 |
|
|
979 |
<table border="1"> |
<table border="1"> |
980 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
981 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
982 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
983 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
984 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
985 |
</table> |
</table> |
986 |
|
|
987 |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_CHMOD">MAC_FOR_CAPABILITY::SYS_CHMOD</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_CHMOD">MAC_FOR_CAPABILITY::SYS_CHMOD</a></h3> |
988 |
|
|
989 |
<p>chmod(2) fchmod(2) の使用に対する強制アクセス制御のレベルを指定する。</p> |
<p>chmod(2) fchmod(2) の使用に対する強制アクセス制御のレベルを指定します。</p> |
990 |
|
|
991 |
<table border="1"> |
<table border="1"> |
992 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
993 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
994 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
995 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
996 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
997 |
</table> |
</table> |
998 |
|
|
999 |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_CHOWN">MAC_FOR_CAPABILITY::SYS_CHOWN</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_CHOWN">MAC_FOR_CAPABILITY::SYS_CHOWN</a></h3> |
1000 |
|
|
1001 |
<p>chown(2) fchown(2) lchown(2) の使用に対する強制アクセス制御のレベルを指定する。</p> |
<p>chown(2) fchown(2) lchown(2) の使用に対する強制アクセス制御のレベルを指定します。</p> |
1002 |
|
|
1003 |
<table border="1"> |
<table border="1"> |
1004 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
1005 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
1006 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
1007 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
1008 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
1009 |
</table> |
</table> |
1010 |
|
|
1011 |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_IOCTL">MAC_FOR_CAPABILITY::SYS_IOCTL</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_IOCTL">MAC_FOR_CAPABILITY::SYS_IOCTL</a></h3> |
1012 |
|
|
1013 |
<p>chown(2) fchown(2) lchown(2) の使用に対する強制アクセス制御のレベルを指定する。</p> |
<p>chown(2) fchown(2) lchown(2) の使用に対する強制アクセス制御のレベルを指定します。</p> |
1014 |
|
|
1015 |
<table border="1"> |
<table border="1"> |
1016 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
1017 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
1018 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
1019 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
1020 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
1021 |
</table> |
</table> |
1022 |
|
|
1023 |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_KEXEC_LOAD">MAC_FOR_CAPABILITY::SYS_KEXEC_LOAD</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_KEXEC_LOAD">MAC_FOR_CAPABILITY::SYS_KEXEC_LOAD</a></h3> |
1024 |
|
|
1025 |
<p>kexec_load(2) の使用に対する強制アクセス制御のレベルを指定する。</p> |
<p>kexec_load(2) の使用に対する強制アクセス制御のレベルを指定します。</p> |
1026 |
|
|
1027 |
<table border="1"> |
<table border="1"> |
1028 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
1029 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
1030 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
1031 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
1032 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
1033 |
</table> |
</table> |
1034 |
|
|
1035 |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_PIVOT_ROOT">MAC_FOR_CAPABILITY::SYS_PIVOT_ROOT</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_PIVOT_ROOT">MAC_FOR_CAPABILITY::SYS_PIVOT_ROOT</a></h3> |
1036 |
|
|
1037 |
<p>pivot_root(2) の使用に対する強制アクセス制御のレベルを指定する。</p> |
<p>pivot_root(2) の使用に対する強制アクセス制御のレベルを指定します。</p> |
1038 |
|
|
1039 |
<table border="1"> |
<table border="1"> |
1040 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
1041 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
1042 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
1043 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
1044 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
1045 |
</table> |
</table> |
1046 |
|
|
1047 |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_PTRACE">MAC_FOR_CAPABILITY::SYS_PTRACE</a></h3> |
<h3><a name="profile_MAC_FOR_CAPABILITY::SYS_PTRACE">MAC_FOR_CAPABILITY::SYS_PTRACE</a></h3> |
1048 |
|
|
1049 |
<p>ptrace(2) の使用に対する強制アクセス制御のレベルを指定する。<br> |
<p>ptrace(2) の使用に対する強制アクセス制御のレベルを指定します。<br> |
1050 |
|
|
1051 |
<table border="1"> |
<table border="1"> |
1052 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
1053 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
1054 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
1055 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
1056 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
1057 |
</table> |
</table> |
1058 |
|
|
1059 |
<h3><a name="profile_MAC_FOR_NETWORK">MAC_FOR_NETWORK</a></h3> |
<h3><a name="profile_MAC_FOR_NETWORK">MAC_FOR_NETWORK</a></h3> |
1060 |
|
|
1061 |
<p>ネットワークに対する強制アクセス制御のレベルを指定する。</p> |
<p>ネットワークに対する強制アクセス制御のレベルを指定します。</p> |
1062 |
|
|
1063 |
<table border="1"> |
<table border="1"> |
1064 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
1065 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
1066 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
1067 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
1068 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
1069 |
</table> |
</table> |
1070 |
|
|
1071 |
<h3><a name="profile_MAC_FOR_SIGNAL">MAC_FOR_SIGNAL</a></h3> |
<h3><a name="profile_MAC_FOR_SIGNAL">MAC_FOR_SIGNAL</a></h3> |
1072 |
|
|
1073 |
<p>シグナルの送信に対する強制アクセス制御のレベルを指定する。</p> |
<p>シグナルの送信に対する強制アクセス制御のレベルを指定します。</p> |
1074 |
|
|
1075 |
<table border="1"> |
<table border="1"> |
1076 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
1077 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
1078 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
1079 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
1080 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
1081 |
</table> |
</table> |
1082 |
|
|
1083 |
<h3><a name="profile_DENY_CONCEAL_MOUNT">DENY_CONCEAL_MOUNT</a></h3> |
<h3><a name="profile_DENY_CONCEAL_MOUNT">DENY_CONCEAL_MOUNT</a></h3> |
1084 |
<p>既存のマウントを隠蔽するようなマウントを禁止する。</p> |
<p>既存のマウントを隠蔽するようなマウントを禁止します。</p> |
1085 |
|
|
1086 |
<table border="1"> |
<table border="1"> |
1087 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
1088 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
1089 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。既存のマウントを隠蔽するようなマウント要求に対して警告メッセージを表示しますが、拒否はしません。</td></tr> |
1090 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。既存のマウントを隠蔽するようなマウント要求に対してエラーメッセージを表示し、拒否します。</td></tr> |
1091 |
</table> |
</table> |
1092 |
|
|
1093 |
<h3><a name="profile_RESTRICT_CHROOT">RESTRICT_CHROOT</a></h3> |
<h3><a name="profile_RESTRICT_CHROOT">RESTRICT_CHROOT</a></h3> |
1094 |
|
|
1095 |
<p>chroot で移動可能なディレクトリの制限を有効にする。</p> |
<p>chroot で移動可能なディレクトリの制限を有効にします。</p> |
1096 |
|
|
1097 |
<table border="1"> |
<table border="1"> |
1098 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
1099 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
1100 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
1101 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
1102 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
1103 |
</table> |
</table> |
1104 |
|
|
1105 |
<h3><a name="profile_RESTRICT_MOUNT">RESTRICT_MOUNT</a></h3> |
<h3><a name="profile_RESTRICT_MOUNT">RESTRICT_MOUNT</a></h3> |
1106 |
|
|
1107 |
<p>mount で指定可能なパラメータの制限を有効にする。</p> |
<p>mount で指定可能なパラメータの制限を有効にします。</p> |
1108 |
|
|
1109 |
<table border="1"> |
<table border="1"> |
1110 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
1111 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
1112 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
1113 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
1114 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
1115 |
</table> |
</table> |
1116 |
|
|
1117 |
<h3><a name="profile_RESTRICT_UNMOUNT">RESTRICT_UNMOUNT</a></h3> |
<h3><a name="profile_RESTRICT_UNMOUNT">RESTRICT_UNMOUNT</a></h3> |
1118 |
|
|
1119 |
<p>指定されたディレクトリのアンマウントを禁止する。</p> |
<p>指定されたディレクトリのアンマウントを禁止します。</p> |
1120 |
|
|
1121 |
<table border="1"> |
<table border="1"> |
1122 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
1123 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
1124 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。指定されたディレクトリのアンマウント要求に対して警告メッセージを表示しますが、拒否はしません。</td></tr> |
1125 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。指定されたディレクトリのアンマウント要求に対してエラーメッセージを表示し、拒否します。</td></tr> |
1126 |
</table> |
</table> |
1127 |
|
|
1128 |
<h3><a name="profile_RESTRICT_PIVOT_ROOT">RESTRICT_PIVOT_ROOT</a></h3> |
<h3><a name="profile_RESTRICT_PIVOT_ROOT">RESTRICT_PIVOT_ROOT</a></h3> |
1129 |
|
|
1130 |
<p>pivot_root で交換可能なディレクトリの制限を有効にする。</p> |
<p>pivot_root で交換可能なディレクトリの制限を有効にします。</p> |
1131 |
|
|
1132 |
<table border="1"> |
<table border="1"> |
1133 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
1134 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
1135 |
<tr><td>learning</td><td>学習モード。ポリシーに違反しても警告をエラーにせず、ポリシーへの自動追加を行う。</td></tr> |
<tr><td>learning</td><td>学習モード。ポリシに違反してもアクセス要求を拒否することはせず、再度同じアクセス要求が発生した場合にポリシ違反とならないようにするために、ポリシへの自動追加を行います。</td></tr> |
1136 |
<tr><td>permissive</td><td>許容モード。ポリシーに違反してもエラーにせず、ポリシーへの自動追加も行わない。</td></tr> |
<tr><td>permissive</td><td>許容モード。ポリシに違反してもアクセス要求を拒否することはしませんが、ポリシへの自動追加も行いません。</td></tr> |
1137 |
<tr><td>enforcing</td><td>強制モード。ポリシーに違反したらエラーとする。</td></tr> |
<tr><td>enforcing</td><td>強制モード。ポリシに違反するアクセス要求を拒否します。</td></tr> |
1138 |
</table> |
</table> |
1139 |
|
|
1140 |
<h3><a name="profile_RESTRICT_AUTOBIND">RESTRICT_AUTOBIND</a></h3> |
<h3><a name="profile_RESTRICT_AUTOBIND">RESTRICT_AUTOBIND</a></h3> |
1141 |
|
|
1142 |
<p>ローカルのポート番号を自動選択させる際に特定のポート番号を選択させないようにするかどうかを指定する。</p> |
<p>ローカルのポート番号を自動選択させる際に特定のポート番号を選択させないようにするかどうかを指定します。</p> |
1143 |
|
|
1144 |
<table border="1"> |
<table border="1"> |
1145 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
1146 |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作する。</td></tr> |
<tr><td>disabled</td><td>無効。通常のカーネルと同様に動作します。</td></tr> |
1147 |
<tr><td>enabled</td><td>有効。ローカルのポート番号を自動選択させる際に、特定のポート番号を選択させないようにする。</td></tr> |
<tr><td>enabled</td><td>有効。ローカルのポート番号を自動選択させる際に、特定のポート番号を選択させないようにします。</td></tr> |
1148 |
</table> |
</table> |
1149 |
|
|
1150 |
<h3><a name="profile_MAX_ACCEPT_ENTRY">MAX_ACCEPT_ENTRY</a></h3> |
<h3><a name="profile_MAX_ACCEPT_ENTRY">MAX_ACCEPT_ENTRY</a></h3> |
1151 |
|
|
1152 |
<p>学習モードに於いて自動的に追加されるアクセス許可の上限を指定する。デフォルトは 2048 件。</p> |
<p>学習モードに於いて自動的に追加されるアクセス許可の上限を指定します。デフォルトは 2048 件です。</p> |
1153 |
|
|
1154 |
<h3><a name="profile_MAX_GRANT_LOG">MAX_GRANT_LOG</a></h3> |
<h3><a name="profile_MAX_GRANT_LOG">MAX_GRANT_LOG</a></h3> |
1155 |
|
|
1156 |
<p>カーネル内に保持する、ポリシーによって許可されたアクセス要求のログの件数を指定する。デフォルトは 1024 件。</p> |
<p>カーネル内に保持する、ポリシによって許可されたアクセス要求のログの件数を指定します。デフォルトは 1024 件です。</p> |
1157 |
|
|
1158 |
<h3><a name="profile_">MAX_REJECT_LOG</a></h3> |
<h3><a name="profile_MAX_REJECT_LOG">MAX_REJECT_LOG</a></h3> |
1159 |
|
|
1160 |
<p>カーネル内に保持する、ポリシーによって許可されなかったアクセス要求のログの件数を指定する。デフォルトは 1024 件。</p> |
<p>カーネル内に保持する、ポリシによって許可されなかったアクセス要求のログの件数を指定します。デフォルトは 1024 件です。</p> |
1161 |
|
|
1162 |
<h3><a name="profile_TOMOYO_VERBOSE">TOMOYO_VERBOSE</a></h3> |
<h3><a name="profile_TOMOYO_VERBOSE">TOMOYO_VERBOSE</a></h3> |
1163 |
|
|
1164 |
<p>ドメイン別ポリシーに対する違反を syslog に表示するかどうかを指定する。</p> |
<p>ドメインポリシに対する違反を syslog に表示するかどうかを指定します。</p> |
1165 |
|
|
1166 |
<table border="1"> |
<table border="1"> |
1167 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
1168 |
<tr><td>disabled</td><td>ドメイン別ポリシーに対する違反を表示しない。</td></tr> |
<tr><td>disabled</td><td>ドメインポリシに対する違反を表示しない。</td></tr> |
1169 |
<tr><td>enabled</td><td>ドメイン別ポリシーに対する違反を表示する。</td></tr> |
<tr><td>enabled</td><td>ドメインポリシに対する違反を表示します。</td></tr> |
1170 |
</table> |
</table> |
1171 |
|
|
1172 |
<h3><a name="profile_ALLOW_ENFORCE_GRACE">ALLOW_ENFORCE_GRACE</a></h3> |
<h3><a name="profile_ALLOW_ENFORCE_GRACE">ALLOW_ENFORCE_GRACE</a></h3> |
1173 |
|
|
1174 |
<p>強制モードに於いてポリシーに違反したアクセス要求を対話的に許可できるようにするかどうかを指定する。</p> |
<p>強制モードに於いてポリシに違反したアクセス要求を対話的に許可できるようにするかどうかを指定します。</p> |
1175 |
|
|
1176 |
<table border="1"> |
<table border="1"> |
1177 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
1178 |
<tr><td>disabled</td><td>強制モードでポリシーに違反したら直ちに拒否する。</td></tr> |
<tr><td>disabled</td><td>強制モードでポリシに違反したら直ちに拒否します。</td></tr> |
1179 |
<tr><td>enabled</td><td>強制モードでポリシーに違反しても、対話的な操作により許可することを可能にする。</td></tr> |
<tr><td>enabled</td><td>強制モードでポリシに違反しても、対話的な操作により許可することを可能にします。</td></tr> |
1180 |
</table> |
</table> |
1181 |
|
|
1182 |
<h3><a name="profile_SLEEP_PERIOD">SLEEP_PERIOD</a></h3> |
<h3><a name="profile_SLEEP_PERIOD">SLEEP_PERIOD</a></h3> |
1183 |
|
|
1184 |
<p>強制モードに於いてポリシー違反が発生した場合にスリープさせるかどうかを指定する。</p> |
<p>強制モードに於いてポリシ違反が発生した場合にスリープさせるかどうかを指定します。</p> |
1185 |
|
|
1186 |
<table border="1"> |
<table border="1"> |
1187 |
<tr><td>値</td><td>内容</td></tr> |
<tr><td>値</td><td>内容</td></tr> |
1188 |
<tr><td>0 〜 3000</td><td>スリープさせる時間を0.1秒単位で指定する。デフォルトは0。</td></tr> |
<tr><td>0 〜 3000</td><td>スリープさせる時間を 0.1 秒単位で指定します。デフォルトは 0 秒です。</td></tr> |
1189 |
</table> |
</table> |
1190 |
|
|
1191 |
<h2><a name="system_policy">/proc/ccs/system_policy</a></h2> |
<h2><a name="system_policy">/proc/ccs/system_policy</a></h2> |
1192 |
|
|
1193 |
<h3><a name="system_policy_allow_mount">allow_mount</a></h3> |
<h3><a name="system_policy_allow_mount">allow_mount</a></h3> |
1194 |
<p>マウント許可を指定するには、 allow_mount というディレクティブに続けて、「デバイスファイル マウントポイント ファイルシステム オプション」を指定する。 デバイスファイルを必要とするファイルシステムを指定する場合は、デバイスファイルは正規化されたファイル名でなければいけない。マウントポイントは正規化されたディレクトリ名でなければいけない。オプションは数値で指定する。</p> |
<p>マウント許可を指定するには、 allow_mount というディレクティブに続けて、「デバイスファイル マウントポイント ファイルシステム オプション」を指定します。 デバイスファイルを必要とするファイルシステムを指定する場合は、デバイスファイルは正規化されたファイル名でなければいけません。マウントポイントは正規化されたディレクトリ名でなければいけません。オプションは 16 進数の数値で指定します。</p> |
1195 |
|
|
1196 |
<p>「any マウントポイント --remount オプション」と指定すると、「mount -o remount マウントポイント」が許可される。</p> |
<p>「any マウントポイント --remount オプション」と指定すると、「mount -o remount マウントポイント」が許可されます。</p> |
1197 |
|
|
1198 |
<p>「複製元 複製先 --bind オプション」と指定すると、「mount --bind 複製元 複製先」が許可される。<br> |
<p>「複製元 複製先 --bind オプション」と指定すると、「mount --bind 複製元 複製先」が許可されます。<br> |
1199 |
「移動元 移動先 --move オプション」と指定すると、「mount --move 移動元 移動先」が許可される。<br> |
「移動元 移動先 --move オプション」と指定すると、「mount --move 移動元 移動先」が許可されます。<br> |
1200 |
複製元/複製先/移動元/移動先は正規化されたディレクトリ名でなければならない。</p> |
複製元/複製先/移動元/移動先は正規化されたディレクトリ名でなければなりません。</p> |
1201 |
|
|
1202 |
<p>カーネル 2.6.15 以降では、 Shared Subtree という機能が利用できる。<br> |
<p>カーネル 2.6.15 以降では、 Shared Subtree という機能が利用できる。<br> |
1203 |
「any マウントポイント --make-unbindable オプション」と指定すると、「mount --make-unbindable マウントポイント」が許可される。<br> |
「any マウントポイント --make-unbindable オプション」と指定すると、「mount --make-unbindable マウントポイント」が許可されます。<br> |
1204 |
「any マウントポイント --make-private オプション」と指定すると、「mount --make-private マウントポイント」が許可される。<br> |
「any マウントポイント --make-private オプション」と指定すると、「mount --make-private マウントポイント」が許可されます。<br> |
1205 |
「any マウントポイント --make-slave オプション」と指定すると、「mount --make-slave マウントポイント」が許可される。<br> |
「any マウントポイント --make-slave オプション」と指定すると、「mount --make-slave マウントポイント」が許可されます。<br> |
1206 |
「any マウントポイント --make-shared オプション」と指定すると、「mount --make-shared マウントポイント」が許可される。 |
「any マウントポイント --make-shared オプション」と指定すると、「mount --make-shared マウントポイント」が許可されます。 |
1207 |
</p> |
</p> |
1208 |
|
|
1209 |
<p>(例)<br> |
<p>(例)<br> |
1216 |
allow_mount any / --remount 0x0</p> |
allow_mount any / --remount 0x0</p> |
1217 |
|
|
1218 |
<h3><a name="system_policy_deny_unmount">deny_unmount</a></h3> |
<h3><a name="system_policy_deny_unmount">deny_unmount</a></h3> |
1219 |
<p>アンマウント禁止を指定するには、 deny_unmount というディレクティブに続けて、アンマウントを許可しない正規化されたディレクトリ名を指定する。<br> |
<p>アンマウント禁止を指定するには、 deny_unmount というディレクティブに続けて、アンマウントを許可しない正規化されたディレクトリ名を指定します。<br> |
1220 |
通常、 /sbin/mingetty が使用する /dev/tty? を含む /dev/ ディレクトリと、リモートログインする場合に pty デバイスファイルが作成される /dev/pts/ ディレクトリを指定する。</p> |
通常、 /sbin/mingetty が使用する /dev/tty? を含む /dev/ ディレクトリと、リモートログインする場合に pty デバイスファイルが作成される /dev/pts/ ディレクトリを指定します。</p> |
1221 |
<p>/dev が読み込み専用になってしまったり、 /dev/pts がアンマウントされてしまうと、ログインができなくなる。そのため、 / が読み込み専用のシステムでは、 /dev/ や /dev/pts/ がアンマウントされないようにしなければならない。</p> |
<p>/dev が読み込み専用になってしまったり、 /dev/pts がアンマウントされてしまうと、ログインができなくなる。そのため、 / が読み込み専用のシステムでは、 /dev/ や /dev/pts/ がアンマウントされないようにしなければなりません。</p> |
1222 |
|
|
1223 |
<p>(例)<br> |
<p>(例)<br> |
1224 |
deny_unmount /dev/<br> |
deny_unmount /dev/<br> |
1226 |
deny_unmount /proc/</p> |
deny_unmount /proc/</p> |
1227 |
|
|
1228 |
<h3><a name="system_policy_allow_chroot">allow_chroot</a></h3> |
<h3><a name="system_policy_allow_chroot">allow_chroot</a></h3> |
1229 |
<p>chroot 許可を指定するには、 allow_chroot というディレクティブに続けて、 chroot で移動することを許可したい正規化されたディレクトリ名を指定する。<br> |
<p>chroot 許可を指定するには、 allow_chroot というディレクティブに続けて、 chroot で移動することを許可したい正規化されたディレクトリ名を指定します。<br> |
1230 |
通常、 sshd が使用する /var/empty/sshd/ を指定する。 その他に chroot 環境で動かしたいアプリケーションや、 chroot を行うアプリケーション( vsftpd の場合 /usr/share/empty/ )が存在する場合は、それらも指定する。</p> |
通常、 sshd が使用する /var/empty/sshd/ を指定します。 その他に chroot 環境で動かしたいアプリケーションや、 chroot を行うアプリケーション( vsftpd の場合 /usr/share/empty/ )が存在する場合は、それらも指定します。</p> |
1231 |
|
|
1232 |
<p>(例)<br> |
<p>(例)<br> |
1233 |
allow_chroot /var/empty/sshd/<br> |
allow_chroot /var/empty/sshd/<br> |
1236 |
allow_chroot /</p> |
allow_chroot /</p> |
1237 |
|
|
1238 |
<h3><a name="system_policy_allow_pivot_root">allow_pivot_root</a></h3> |
<h3><a name="system_policy_allow_pivot_root">allow_pivot_root</a></h3> |
1239 |
<p>pivot_root 許可を指定するには、 allow_pivot_root というディレクティブに続けて、新しいルートとなる正規化されたディレクトリ名と古いルートディレクトリとなる正規化されたディレクトリ名を指定する。<br> |
<p>pivot_root 許可を指定するには、 allow_pivot_root というディレクティブに続けて、新しいルートとなる正規化されたディレクトリ名と古いルートディレクトリとなる正規化されたディレクトリ名を指定します。<br> |
1240 |
通常、このディレクティブを使う必要は無い。</p> |
通常、このディレクティブを使う必要は無い。</p> |
1241 |
|
|
1242 |
<h3><a name="system_policy_deny_autobind">deny_autobind</a></h3> |
<h3><a name="system_policy_deny_autobind">deny_autobind</a></h3> |
1243 |
<p>ローカルポートの自動選択で特定のポート番号が選択させるのを禁止するには、 deny_autobind というディレクティブに続けて、ローカルポート番号を指定する。 このディレクティブは、特定のポート番号が一時的な用途で割り当てられるのを防ぐのが狙いである。 例えば、一部のプロキシサーバはポート8080を使用するので、ポート8080が一時的な用途のために割り当てられるべきではない。</p> |
<p>ローカルポートの自動選択で特定のポート番号が選択させるのを禁止するには、 deny_autobind というディレクティブに続けて、ローカルポート番号を指定します。 このディレクティブは、特定のポート番号が一時的な用途で割り当てられるのを防ぐのが狙いである。 例えば、一部のプロキシサーバはポート8080を使用するので、ポート8080が一時的な用途のために割り当てられるべきではない。</p> |
1244 |
|
|
1245 |
<p>(例)<br> |
<p>(例)<br> |
1246 |
deny_autobind 1-1023<br> |
deny_autobind 1-1023<br> |
1248 |
|
|
1249 |
<h2><a name="domain_policy">/proc/ccs/domain_policy</a></h2> |
<h2><a name="domain_policy">/proc/ccs/domain_policy</a></h2> |
1250 |
|
|
1251 |
<p>このファイルでは、全てのドメインを定義し、各ドメインに対して与えるアクセス許可を定義する。</p> |
<p>このファイルでは、全てのドメインを定義し、各ドメインに対して与えるアクセス許可を定義します。</p> |
1252 |
|
|
1253 |
<p>ドメインを定義している行(<kernel>で始まる行)の次行から次のドメインを定義している行の前行までが、そのドメインに対するアクセス許可である。</p> |
<p>ドメインを定義している行(<kernel>で始まる行)の次行から次のドメインを定義している行の前行までが、そのドメインに対するアクセス許可である。</p> |
1254 |
|
|
1255 |
<p>それぞれのアクセス許可について、必要に応じて追加の条件を指定することができる。そのための構文は<a href="#conditional_acl">条件付きアクセス許可の指定</a>で説明する。さらに、必要に応じてプロセスの状態を切り替え、プロセスの状態も条件として使うための方法を<a href="#stateful_acl">ステートフルなアクセス許可の指定</a>で説明する。</p> |
<p>それぞれのアクセス許可について、必要に応じて追加の条件を指定することができる。そのための構文は<a href="#conditional_acl">条件付きアクセス許可の指定</a>で説明します。さらに、必要に応じてプロセスの状態を切り替え、プロセスの状態も条件として使うための方法を<a href="#stateful_acl">ステートフルなアクセス許可の指定</a>で説明します。</p> |
1256 |
|
|
1257 |
<h3><a name="domain_policy_allow_execute">allow_execute</a></h3> |
<h3><a name="domain_policy_allow_execute">allow_execute</a></h3> |
1258 |
<p>指定されたパス名を実行することを許可する。パス名にワイルドカードを使用することは認められない。ワイルドカードで指定しなければ対応できない場合には、プログラム名をグループ化してからアクセス許可を与える。</p> |
<p>指定されたパス名を実行することを許可します。パス名にワイルドカードを使用することは認められない。ワイルドカードで指定しなければ対応できない場合には、プログラム名をグループ化してからアクセス許可を与える。</p> |
1259 |
<p>(例)allow_execute /bin/ls</p> |
<p>(例)allow_execute /bin/ls</p> |
1260 |
<p>関連項目:<a href="#">ドメイン遷移</a> <a href="#exception_policy_path_group">path_group</a> <a href="#exception_policy_aggregator">aggregator</a></p> |
<p>関連項目:<a href="#domain_transition">ドメイン遷移</a> <a href="#exception_policy_path_group">path_group</a> <a href="#exception_policy_aggregator">aggregator</a></p> |
1261 |
|
|
1262 |
<h3><a name="domain_policy_allow_write">allow_write</a></h3> |
<h3><a name="domain_policy_allow_write">allow_write</a></h3> |
1263 |
<p>指定されたパス名を書き込みモードでオープンすることを許可する。</p> |
<p>指定されたパス名を書き込みモードでオープンすることを許可します。</p> |
1264 |
<p>(例) allow_write /dev/null</p> |
<p>(例) allow_write /dev/null</p> |
1265 |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
1266 |
|
|
1267 |
<h3><a name="domain_policy_allow_read">allow_read</a></h3> |
<h3><a name="domain_policy_allow_read">allow_read</a></h3> |
1268 |
<p>指定されたパス名を読み込みモードでオープンすることを許可する。</p> |
<p>指定されたパス名を読み込みモードでオープンすることを許可します。</p> |
1269 |
<p>(例) allow_read /proc/meminfo</p> |
<p>(例) allow_read /proc/meminfo</p> |
1270 |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
1271 |
|
|
1272 |
<h3><a name="domain_policy_allow_read/write">allow_read/write</a></h3> |
<h3><a name="domain_policy_allow_read/write">allow_read/write</a></h3> |
1273 |
<p>指定されたパス名を読み書きモードでオープンすることを許可する。</p> |
<p>指定されたパス名を読み書きモードでオープンすることを許可します。</p> |
1274 |
<p>(例) allow_read/write /dev/null</p> |
<p>(例) allow_read/write /dev/null</p> |
1275 |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
1276 |
|
|
1277 |
<h3><a name="domain_policy_allow_create">allow_create</a></h3> |
<h3><a name="domain_policy_allow_create">allow_create</a></h3> |
1278 |
<p>指定されたパス名のファイルを新規作成することを許可する。</p> |
<p>指定されたパス名のファイルを新規作成することを許可します。</p> |
1279 |
<p>(例) allow_create /var/lock/subsys/crond</p> |
<p>(例) allow_create /var/lock/subsys/crond</p> |
1280 |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
1281 |
|
|
1282 |
<h3><a name="domain_policy_allow_unlink">allow_unlink</a></h3> |
<h3><a name="domain_policy_allow_unlink">allow_unlink</a></h3> |
1283 |
<p>指定されたパス名を削除することを許可する。</p> |
<p>指定されたパス名を削除することを許可します。</p> |
1284 |
<p>(例) allow_unlink /var/lock/subsys/crond</p> |
<p>(例) allow_unlink /var/lock/subsys/crond</p> |
1285 |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
1286 |
|
|
1287 |
<h3><a name="domain_policy_allow_mkdir">allow_mkdir</a></h3> |
<h3><a name="domain_policy_allow_mkdir">allow_mkdir</a></h3> |
1288 |
<p>パス名で指定されたディレクトリを作成することを許可する。</p> |
<p>パス名で指定されたディレクトリを作成することを許可します。</p> |
1289 |
<p>(例) allow_mkdir /tmp/logwatch.\*/</p> |
<p>(例) allow_mkdir /tmp/logwatch.\*/</p> |
1290 |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
1291 |
|
|
1292 |
<h3><a name="domain_policy_allow_rmdir">allow_rmdir</a></h3> |
<h3><a name="domain_policy_allow_rmdir">allow_rmdir</a></h3> |
1293 |
<p>ディレクトリの削除を許可する。</p> |
<p>ディレクトリの削除を許可します。</p> |
1294 |
<p>(例) allow_rmdir /tmp/logwatch.\*/</p> |
<p>(例) allow_rmdir /tmp/logwatch.\*/</p> |
1295 |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
1296 |
|
|
1297 |
<h3><a name="domain_policy_allow_mkfifo">allow_mkfifo</a></h3> |
<h3><a name="domain_policy_allow_mkfifo">allow_mkfifo</a></h3> |
1298 |
<p>FIFO の作成を許可する。</p> |
<p>FIFO の作成を許可します。</p> |
1299 |
<p>(例) allow_mkfifo /dev/initctl</p> |
<p>(例) allow_mkfifo /dev/initctl</p> |
1300 |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
1301 |
|
|
1302 |
<h3><a name="domain_policy_allow_mksock">allow_mksock</a></h3> |
<h3><a name="domain_policy_allow_mksock">allow_mksock</a></h3> |
1303 |
<p>UNIX ドメインソケットの作成を許可する。</p> |
<p>UNIX ドメインソケットの作成を許可します。</p> |
1304 |
<p>(例) allow_mksock /dev/log</p> |
<p>(例) allow_mksock /dev/log</p> |
1305 |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
1306 |
|
|
1307 |
<h3><a name="domain_policy_allow_mkblock">allow_mkblock</a></h3> |
<h3><a name="domain_policy_allow_mkblock">allow_mkblock</a></h3> |
1308 |
<p>ブロック型デバイスファイルの作成を許可する。</p> |
<p>ブロック型デバイスファイルの作成を許可します。</p> |
1309 |
<p>(例) allow_mkblock /dev/\*</p> |
<p>(例) allow_mkblock /dev/\*</p> |
1310 |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
1311 |
|
|
1312 |
<h3><a name="domain_policy_allow_mkchar">allow_mkchar</a></h3> |
<h3><a name="domain_policy_allow_mkchar">allow_mkchar</a></h3> |
1313 |
<p>キャラクタ型デバイスファイルの作成を許可する。</p> |
<p>キャラクタ型デバイスファイルの作成を許可します。</p> |
1314 |
<p>(例) allow_mkchar /dev/\*</p> |
<p>(例) allow_mkchar /dev/\*</p> |
1315 |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
1316 |
|
|
1317 |
<h3><a name="domain_policy_allow_truncate">allow_truncate</a></h3> |
<h3><a name="domain_policy_allow_truncate">allow_truncate</a></h3> |
1318 |
<p>ファイルの切り詰めと伸長を許可する。</p> |
<p>ファイルの切り詰めと伸長を許可します。</p> |
1319 |
<p>(例) allow_truncate /etc/mtab</p> |
<p>(例) allow_truncate /etc/mtab</p> |
1320 |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
1321 |
|
|
1322 |
<h3><a name="domain_policy_allow_symlink">allow_symlink</a></h3> |
<h3><a name="domain_policy_allow_symlink">allow_symlink</a></h3> |
1323 |
<p>シンボリックリンクの作成を許可する。</p> |
<p>シンボリックリンクの作成を許可します。</p> |
1324 |
<p>(例) allow_symlink /dev/cdrom</p> |
<p>(例) allow_symlink /dev/cdrom</p> |
1325 |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
1326 |
|
|
1327 |
<h3><a name="domain_policy_allow_link">allow_link</a></h3> |
<h3><a name="domain_policy_allow_link">allow_link</a></h3> |
1328 |
<p>ハードリンクの作成を許可する。</p> |
<p>ハードリンクの作成を許可します。</p> |
1329 |
<p>(例) allow_link /etc/mtab~\$ /etc/mtab~</p> |
<p>(例) allow_link /etc/mtab~\$ /etc/mtab~</p> |
1330 |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
1331 |
|
|
1332 |
<h3><a name="domain_policy_allow_rename">allow_rename</a></h3> |
<h3><a name="domain_policy_allow_rename">allow_rename</a></h3> |
1333 |
<p>ファイル名の変更を許可する。</p> |
<p>ファイル名の変更を許可します。</p> |
1334 |
<p>(例) allow_rename /etc/mtab.tmp /etc/mtab</p> |
<p>(例) allow_rename /etc/mtab.tmp /etc/mtab</p> |
1335 |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a></p> |
1336 |
|
|
1337 |
<h3><a name="domain_policy_allow_rewrite">allow_rewrite</a></h3> |
<h3><a name="domain_policy_allow_rewrite">allow_rewrite</a></h3> |
1338 |
<p><a href="#exception_policy_deny_rewrite">deny_rewrite</a>によりファイルの内容の上書きが禁止されているパス名が指すファイル内容の上書きを許可する。</p> |
<p><a href="#exception_policy_deny_rewrite">deny_rewrite</a>によりファイルの内容の上書きが禁止されているパス名が指すファイル内容の上書きを許可します。</p> |
1339 |
<p>(例) allow_rewrite /var/log/messages</p> |
<p>(例) allow_rewrite /var/log/messages</p> |
1340 |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a> <a href="#exception_policy_deny_rewrite">deny_rewrite</a></p> |
<p>関連項目:<a href="#exception_policy_path_group">path_group</a> <a href="#exception_policy_deny_rewrite">deny_rewrite</a></p> |
1341 |
|
|
1342 |
<h3><a name="domain_policy_allow_argv0">allow_argv0</a></h3> |
<h3><a name="domain_policy_allow_argv0">allow_argv0</a></h3> |
1343 |
|
|
1344 |
<p>argv[0] の組み合わせを制限するには、 allow_argv0 というディレクティブに続けて、「正規化されたファイル名」と「argv[0] の最後の / より後ろの部分」を指定する。</p> |
<p>argv[0] の組み合わせを制限するには、 allow_argv0 というディレクティブに続けて、「正規化されたファイル名」と「argv[0] の最後の / より後ろの部分」を指定します。</p> |
1345 |
|
|
1346 |
<p>プログラムを実行する関数である execve() には filename と argv[] と envp[] を渡すことができる。いくつかのプログラム(例えば busybox )は argv[0] の内容によって振る舞いを変化させる。 |
<p>プログラムを実行する関数である execve() には filename と argv[] と envp[] を渡すことができる。いくつかのプログラム(例えば busybox )は argv[0] の内容によって振る舞いを変化させる。 |
1347 |
プログラムへのシンボリックリンクを経由してプログラムを実行する場合、 TOMOYO Linux のドメイン遷移は filename が指すパス名を正規化した内容に基づいて行われるのに対し、振る舞いは argv[0] (通常は filename が指すパス名と同じ内容)に基づいて行われてしまう。例えば、 /bin/ls と /bin/cat が busybox へのハードリンクとして提供されている環境において、 /tmp/cat という /bin/ls へのシンボリックリンクを作成して /tmp/cat を実行することにより、 /bin/ls のためのドメインで cat として振舞うことができてしまうという抜け穴になる。</p> |
プログラムへのシンボリックリンクを経由してプログラムを実行する場合、 TOMOYO Linux のドメイン遷移は filename が指すパス名を正規化した内容に基づいて行われるのに対し、振る舞いは argv[0] (通常は filename が指すパス名と同じ内容)に基づいて行われてしまう。例えば、 /bin/ls と /bin/cat が busybox へのハードリンクとして提供されている環境において、 /tmp/cat という /bin/ls へのシンボリックリンクを作成して /tmp/cat を実行することにより、 /bin/ls のためのドメインで cat として振舞うことができてしまうという抜け穴になる。</p> |
1349 |
|
|
1350 |
<h3><a name="domain_policy_allow_env">allow_env</a></h3> |
<h3><a name="domain_policy_allow_env">allow_env</a></h3> |
1351 |
|
|
1352 |
<p>環境変数名を制限するには、 allow_env というディレクティブに続けて、「環境変数名」を指定する。</p> |
<p>環境変数名を制限するには、 allow_env というディレクティブに続けて、「環境変数名」を指定します。</p> |
1353 |
|
|
1354 |
<p>プログラムを実行する関数である execve() には filename と argv[] と envp[] を渡すことができる。多くのプログラムは envp[] の内容によって振る舞いを変化させる。</p> |
<p>プログラムを実行する関数である execve() には filename と argv[] と envp[] を渡すことができる。多くのプログラムは envp[] の内容によって振る舞いを変化させる。</p> |
1355 |
<p>このディレクティブの目的は、実行されるプログラムに渡される環境変数を制限することである。</p> |
<p>このディレクティブの目的は、実行されるプログラムに渡される環境変数を制限することである。</p> |
1358 |
|
|
1359 |
<h3><a name="domain_policy_allow_capability">allow_capability</a></h3> |
<h3><a name="domain_policy_allow_capability">allow_capability</a></h3> |
1360 |
|
|
1361 |
<p>ケイパビリティのアクセス許可を指定するには、 allow_capability というディレクティブに続けて、ケイパビリティを指定する。以下のケイパビリティが指定できる。</p> |
<p>ケイパビリティのアクセス許可を指定するには、 allow_capability というディレクティブに続けて、ケイパビリティを指定します。以下のケイパビリティが指定できます。</p> |
1362 |
|
|
1363 |
<table border="1"> |
<table border="1"> |
1364 |
<tr><td>allow_capability inet_tcp_create</td><td>TCP ソケットの使用を許可</td></tr> |
<tr><td>allow_capability inet_tcp_create</td><td>TCP ソケットの使用を許可</td></tr> |
1394 |
<tr><td>allow_capability SYS_PTRACE</td><td>ptrace(2) の使用を許可</td></tr> |
<tr><td>allow_capability SYS_PTRACE</td><td>ptrace(2) の使用を許可</td></tr> |
1395 |
</table> |
</table> |
1396 |
|
|
1397 |
<p>allow_capability ディレクティブの目的は、プログラムが呼び出すことができるシステムコールを制限することである。幾つかのシステムコールに対しては他のディレクティブやポリシーファイルを使用してより詳細な制限が可能になっている。</p> |
<p>allow_capability ディレクティブの目的は、プログラムが呼び出すことができるシステムコールを制限することである。幾つかのシステムコールに対しては他のディレクティブやポリシファイルを使用してより詳細な制限が可能になっている。</p> |
1398 |
<ul> |
<ul> |
1399 |
<li>作成を許可するキャラクタ型デバイスファイルのパス名を<a href="#domain_policy_allow_mkblock">allow_mkblock</a>ディレクティブを使用して制限することができる。 |
<li>作成を許可するキャラクタ型デバイスファイルのパス名を<a href="#domain_policy_allow_mkblock">allow_mkblock</a>ディレクティブを使用して制限することができる。 |
1400 |
<li>作成を許可するブロック型デバイスファイルのパス名を<a href="#domain_policy_allow_mkchar">allow_mkchar</a>ディレクティブを使用して制限することができる。 |
<li>作成を許可するブロック型デバイスファイルのパス名を<a href="#domain_policy_allow_mkchar">allow_mkchar</a>ディレクティブを使用して制限することができる。 |
1409 |
<li>マウントを許可するデバイスおよびマウントポイントを<a href="#system_policy_allow_mount">allow_mount</a>ディレクティブを使用して制限することができる。 |
<li>マウントを許可するデバイスおよびマウントポイントを<a href="#system_policy_allow_mount">allow_mount</a>ディレクティブを使用して制限することができる。 |
1410 |
<li>アンマウントを許可しないマウントポイントを<a href="#system_policy_deny_unmount">deny_unmount</a>ディレクティブを使用して指定することができる。 |
<li>アンマウントを許可しないマウントポイントを<a href="#system_policy_deny_unmount">deny_unmount</a>ディレクティブを使用して指定することができる。 |
1411 |
<li>chroot で移動できるディレクトリを<a href="#system_policy_allow_chroot">allow_chroot</a>ディレクティブを使用して制限することができる。 |
<li>chroot で移動できるディレクトリを<a href="#system_policy_allow_chroot">allow_chroot</a>ディレクティブを使用して制限することができる。 |
1412 |
<li>pivot_root で交換できるディレクトリを<a href="#system_policy_allpw_pivot_root">allow_pivot_root</a>ディレクティブを使用して制限することができる。 |
<li>pivot_root で交換できるディレクトリを<a href="#system_policy_allow_pivot_root">allow_pivot_root</a>ディレクティブを使用して制限することができる。 |
1413 |
</ul> |
</ul> |
1414 |
|
|
1415 |
<h3><a name="domain_policy_allow_network">allow_network</a></h3> |
<h3><a name="domain_policy_allow_network">allow_network</a></h3> |
1416 |
|
|
1417 |
<p>ネットワークのアクセス許可を指定するには、 allow_network というディレクティブに続けて、プロトコル(TCP UDP RAW の何れか)、 IP アドレス、ポート番号(TCP UDP の場合)またはプロトコル番号(RAW の場合)を指定する。 IPv4 プロトコルおよび IPv6 プロトコルで使用するローカルポート番号が対象である。</p> |
<p>ネットワークのアクセス許可を指定するには、 allow_network というディレクティブに続けて、プロトコル(TCP UDP RAW の何れか)、 IP アドレス、ポート番号(TCP UDP の場合)またはプロトコル番号(RAW の場合)を指定します。 IPv4 プロトコルおよび IPv6 プロトコルで使用するローカルポート番号が対象である。</p> |
1418 |
<table border="1"> |
<table border="1"> |
1419 |
<tr><td>ディレクティブ</td><td>許可されるアクセス</td><td>指定例</td></tr> |
<tr><td>ディレクティブ</td><td>許可されるアクセス</td><td>指定例</td></tr> |
1420 |
<tr><td>allow_network TCP bind</td><td>ローカルの TCP アドレス/ポートの割り当て</td><td>allow_network TCP bind 0.0.0.0 80</td></tr> |
<tr><td>allow_network TCP bind</td><td>ローカルの TCP アドレス/ポートの割り当て</td><td>allow_network TCP bind 0.0.0.0 80</td></tr> |
1435 |
|
|
1436 |
<h3><a name="domain_policy_allow_signal">allow_signal</a></h3> |
<h3><a name="domain_policy_allow_signal">allow_signal</a></h3> |
1437 |
|
|
1438 |
<p>シグナルのアクセス許可を指定するには、 allow_signal というディレクティブに続けて、シグナルの番号および操作対象ドメインを指定する。<br> |
<p>シグナルのアクセス許可を指定するには、 allow_signal というディレクティブに続けて、シグナルの番号および操作対象ドメインを指定します。<br> |
1439 |
例外が2つ存在する。シグナル番号が0の場合は常に許可される。また、自分の属するドメインへのシグナルの場合には常に許可される。<br> |
例外が2つ存在します。シグナル番号が0の場合は常に許可されます。また、自分の属するドメインへのシグナルの場合には常に許可されます。<br> |
1440 |
その他の場合、このファイルに指定されたシグナル番号とドメイン名で始まる場合のみそのシグナルを送信できる。<br> |
その他の場合、このファイルに指定されたシグナル番号とドメイン名で始まる場合のみそのシグナルを送信できる。<br> |
1441 |
操作対象ドメインとして <kernel> を指定すると、全てのドメインに指定された番号のシグナルを送信できる。</p> |
操作対象ドメインとして <kernel> を指定すると、全てのドメインに指定された番号のシグナルを送信できる。</p> |
1442 |
|
|
1446 |
|
|
1447 |
<h3><a name="domain_policy_ignore_global_allow_read">ignore_global_allow_read</a></h3> |
<h3><a name="domain_policy_ignore_global_allow_read">ignore_global_allow_read</a></h3> |
1448 |
|
|
1449 |
<p>これは、このドメインに対しては例外ポリシーで指定されている <a href="#exception_policy_allow_read">allow_read</a> を無視することを示しています。特定のドメインに対して特に読み込みモードでオープンできるファイルを制限したい場合に使います。</p> |
<p>これは、このドメインに対しては例外ポリシで指定されている <a href="#exception_policy_allow_read">allow_read</a> を無視することを示しています。特定のドメインに対して特に読み込みモードでオープンできるファイルを制限したい場合に使います。</p> |
1450 |
|
|
1451 |
<p>関連項目:<a href="#exception_policy_allow_read">allow_read</a></p> |
<p>関連項目:<a href="#exception_policy_allow_read">allow_read</a></p> |
1452 |
|
|
1453 |
<h3><a name="domain_policy_ignore_global_allow_env">ignore_global_allow_env</a></h3> |
<h3><a name="domain_policy_ignore_global_allow_env">ignore_global_allow_env</a></h3> |
1454 |
|
|
1455 |
<p>これは、このドメインに対しては例外ポリシーで指定されている <a href="#exception_policy_allow_env">allow_env</a> を無視することを示しています。特定のドメインに対して特に環境変数の受け渡しを制限したい場合に使います。</p> |
<p>これは、このドメインに対しては例外ポリシで指定されている <a href="#exception_policy_allow_env">allow_env</a> を無視することを示しています。特定のドメインに対して特に環境変数の受け渡しを制限したい場合に使います。</p> |
1456 |
|
|
1457 |
<p>関連項目:<a href="#exception_policy_allow_env">allow_env</a></p> |
<p>関連項目:<a href="#exception_policy_allow_env">allow_env</a></p> |
1458 |
|
|
1479 |
|
|
1480 |
<h3><a name="exception_policy_file_pattern">file_pattern</a></h3> |
<h3><a name="exception_policy_file_pattern">file_pattern</a></h3> |
1481 |
|
|
1482 |
<p>パス名のパターン化を指示するには、 file_pattern というディレクティブに続けて、パス名のパターンを指定する。パス名は正規化されたパス名でなければならない。このディレクティブは実行許可を与える場合とドメイン定義には適用されない。<br> |
<p>パス名のパターン化を指示するには、 file_pattern というディレクティブに続けて、パス名のパターンを指定します。パス名は正規化されたパス名でなければなりません。このディレクティブは実行許可を与える場合とドメイン定義には適用されない。<br> |
1483 |
例えば、プロセスIDを含む正規化されたパス名(/proc/PID/)は、アクセス制御が正しく行われるようにグループ化されなければならない。</p> |
例えば、プロセスIDを含む正規化されたパス名(/proc/PID/)は、アクセス制御が正しく行われるようにグループ化されなければなりません。</p> |
1484 |
|
|
1485 |
<p>学習モード(<a href="#profile_MAC_FOR_FILE">MAC_FOR_FILE</a>がlearningに設定されている状態)でパス名に対するアクセスを行うと、自動的にパターン化された状態で学習される。学習モード以外には影響しない。この構文は、既知のパターンをテンプレート化することによって、後でチューニングを行うときの手間を軽減するためだけに使われる。</p> |
<p>学習モード(<a href="#profile_MAC_FOR_FILE">MAC_FOR_FILE</a>がlearningに設定されている状態)でパス名に対するアクセスを行うと、自動的にパターン化された状態で学習されます。学習モード以外には影響しない。この構文は、既知のパターンをテンプレート化することによって、後でチューニングを行うときの手間を軽減するためだけに使われる。</p> |
1486 |
|
|
1487 |
<h3><a name="exception_policy_path_group">path_group</a></h3> |
<h3><a name="exception_policy_path_group">path_group</a></h3> |
1488 |
|
|
1489 |
<p>パス名のグループを定義するには、 path_group というディレクティブに続けて、グループ名とパス名のパターンを指定する。<br> |
<p>パス名のグループを定義するには、 path_group というディレクティブに続けて、グループ名とパス名のパターンを指定します。<br> |
1490 |
例えば、ホームディレクトリ以下の全ファイルをまとめたい場合、</p> |
例えば、ホームディレクトリ以下の全ファイルをまとめたい場合、</p> |
1491 |
|
|
1492 |
<table border="1"> |
<table border="1"> |
1500 |
</td></tr> |
</td></tr> |
1501 |
</table> |
</table> |
1502 |
|
|
1503 |
<p>のように定義しておくことで、ドメイン別ポリシーのファイルに対するアクセス許可を指定する際に</p> |
<p>のように定義しておくことで、ドメインポリシのファイルに対するアクセス許可を指定する際に</p> |
1504 |
|
|
1505 |
<table border="1"> |
<table border="1"> |
1506 |
<tr><td> |
<tr><td> |
1508 |
</td></tr> |
</td></tr> |
1509 |
</table> |
</table> |
1510 |
|
|
1511 |
<p>のように指定できる。</p> |
<p>のように指定できます。</p> |
1512 |
|
|
1513 |
<h3><a name="exception_policy_address_group">address_group</a></h3> |
<h3><a name="exception_policy_address_group">address_group</a></h3> |
1514 |
|
|
1515 |
<p>アドレスのグループを定義するには、 address_group というディレクティブに続けて、グループ名とIPアドレスのパターンを指定する。<br> |
<p>アドレスのグループを定義するには、 address_group というディレクティブに続けて、グループ名とIPアドレスのパターンを指定します。<br> |
1516 |
例えば、ローカルアドレスをまとめたい場合、</p> |
例えば、ローカルアドレスをまとめたい場合、</p> |
1517 |
|
|
1518 |
<table border="1"> |
<table border="1"> |
1523 |
</td></tr> |
</td></tr> |
1524 |
</table> |
</table> |
1525 |
|
|
1526 |
<p>のように定義しておくことで、ドメイン別ポリシーのネットワークに対するアクセス許可を指定する際に</p> |
<p>のように定義しておくことで、ドメインポリシのネットワークに対するアクセス許可を指定する際に</p> |
1527 |
|
|
1528 |
<table border="1"> |
<table border="1"> |
1529 |
<tr><td> |
<tr><td> |
1531 |
</td></tr> |
</td></tr> |
1532 |
</table> |
</table> |
1533 |
|
|
1534 |
<p>のように指定できる。</p> |
<p>のように指定できます。</p> |
1535 |
|
|
1536 |
<h3><a name="exception_policy_allow_read">allow_read</a></h3> |
<h3><a name="exception_policy_allow_read">allow_read</a></h3> |
1537 |
|
|
1547 |
|
|
1548 |
<h3><a name="exception_policy_deny_rewrite">deny_rewrite</a></h3> |
<h3><a name="exception_policy_deny_rewrite">deny_rewrite</a></h3> |
1549 |
|
|
1550 |
<p>deny_rewrite というキーワードを使用して、既に記録されている部分の書き換えを禁止したいファイル(ログファイル等)のパス名を登録する。パターンが使用できる。 deny_rewrite というキーワードを使用して登録されたファイルは、ドメイン用ポリシーの中で明示的に<a href="#domain_policy_allow_rewrite">allow_rewrite</a>というキーワードを用いて許可が与えられない限り、追記ではない書き込みモードでのオープンとファイルの切り詰めが禁止される。</p> |
<p>deny_rewrite というキーワードを使用して、既に記録されている部分の書き換えを禁止したいファイル(ログファイル等)のパス名を登録します。パターンが使用できる。 deny_rewrite というキーワードを使用して登録されたファイルは、ドメイン用ポリシの中で明示的に<a href="#domain_policy_allow_rewrite">allow_rewrite</a>というキーワードを用いて許可が与えられない限り、追記ではない書き込みモードでのオープンとファイルの切り詰めが禁止されます。</p> |
1551 |
|
|
1552 |
<p>関連項目:<a href="#domain_policy_allow_rewrite">allow_rewrite</a></p> |
<p>関連項目:<a href="#domain_policy_allow_rewrite">allow_rewrite</a></p> |
1553 |
|
|
1554 |
<h3><a name="exception_policy_alias">alias</h3> |
<h3><a name="exception_policy_alias">alias</a></h3> |
1555 |
|
|
1556 |
<p>シンボリックリンクを解決した名前ではなくシンボリックリンクの名前のまま実行させるプログラムを指定するには、 alias というディレクティブに続けてシンボリックリンクを解決したパス名とシンボリックリンクを解決する前のパス名を指定する。このディレクティブの目的は、実行時の名前によって異なる振る舞いをするプログラムが、ハードリンクではなくシンボリックリンクで参照される場合に、シンボリックリンクの名前でドメインを遷移できるようにすることである。</p> |
<p>シンボリックリンクを解決した名前ではなくシンボリックリンクの名前のまま実行させるプログラムを指定するには、 alias というディレクティブに続けてシンボリックリンクを解決したパス名とシンボリックリンクを解決する前のパス名を指定します。このディレクティブの目的は、実行時の名前によって異なる振る舞いをするプログラムが、ハードリンクではなくシンボリックリンクで参照される場合に、シンボリックリンクの名前でドメインを遷移できるようにすることである。</p> |
1557 |
<p>例えば /sbin/pidof は /sbin/killall5 へのシンボリックリンクであるため、通常は /sbin/pidof を実行すると /sbin/killall5 が実行されたものとしてドメインが定義される。しかし、 alias /sbin/killall5 /sbin/pidof という指定をすることで、 /sbin/pidof を実行すると /sbin/pidof が実行されたものとしてドメインが定義されるようにできる。</p> |
<p>例えば /sbin/pidof は /sbin/killall5 へのシンボリックリンクであるため、通常は /sbin/pidof を実行すると /sbin/killall5 が実行されたものとしてドメインが定義されます。しかし、 alias /sbin/killall5 /sbin/pidof という指定をすることで、 /sbin/pidof を実行すると /sbin/pidof が実行されたものとしてドメインが定義されるようにできる。</p> |
1558 |
|
|
1559 |
<p>関連項目:<a href="#domain_policy_allow_execute">allow_execute</a></p> |
<p>関連項目:<a href="#domain_policy_allow_execute">allow_execute</a></p> |
1560 |
|
|
1561 |
<h3><a name="exception_policy_aggregator">aggregator</h3> |
<h3><a name="exception_policy_aggregator">aggregator</a></h3> |
1562 |
|
|
1563 |
<p>複数のプログラムを単一のプログラム名で扱うには、 aggregator というディレクティブに続けて集約前のプログラム名と集約後のプログラム名を指定する。このディレクティブの目的は、同様のプログラムを集約することである。</p> |
<p>複数のプログラムを単一のプログラム名で扱うには、 aggregator というディレクティブに続けて集約前のプログラム名と集約後のプログラム名を指定します。このディレクティブの目的は、同様のプログラムを集約することである。</p> |
1564 |
<p>例えば、 /usr/bin/tac と /bin/cat は似ているので、 aggregator /usr/bin/tac /bin/cat という指定をすることで /usr/bin/tac を /bin/cat のドメインで実行することができるようになる。</p> |
<p>例えば、 /usr/bin/tac と /bin/cat は似ているので、 aggregator /usr/bin/tac /bin/cat という指定をすることで /usr/bin/tac を /bin/cat のドメインで実行することができるようになる。</p> |
1565 |
<p>例えば、Fedora Core 3 の /usr/sbin/logrotate は /tmp/logrotate.\?\?\?\?\?\? というパターンのプログラムを作成して実行するが、 TOMOYO Linux では安全上の理由からプログラムの実行許可を与える場合とドメインを定義する場合にパターンを使用することを認めていない。しかし、 aggregator /tmp/logrotate.\?\?\?\?\?\? /tmp/logrotate.tmp という指定をすることで /tmp/logrotate.\?\?\?\?\?\? を /tmp/logrotate.tmp のドメインで実行することができるようになる。</p> |
<p>例えば、Fedora Core 3 の /usr/sbin/logrotate は /tmp/logrotate.\?\?\?\?\?\? というパターンのプログラムを作成して実行するが、 TOMOYO Linux では安全上の理由からプログラムの実行許可を与える場合とドメインを定義する場合にパターンを使用することを認めていない。しかし、 aggregator /tmp/logrotate.\?\?\?\?\?\? /tmp/logrotate.tmp という指定をすることで /tmp/logrotate.\?\?\?\?\?\? を /tmp/logrotate.tmp のドメインで実行することができるようになる。</p> |
1566 |
|
|
1568 |
|
|
1569 |
<h3><a name="exception_policy_initialize_domain">initialize_domain</a></h3> |
<h3><a name="exception_policy_initialize_domain">initialize_domain</a></h3> |
1570 |
|
|
1571 |
<p>特定のプログラムが実行された場合にドメイン遷移を初期化させるには、 initialize_domain というディレクティブを使用する。</p> |
<p>特定のプログラムが実行された場合にドメイン遷移を初期化させるには、 initialize_domain というディレクティブを使用します。</p> |
1572 |
|
|
1573 |
<ul> |
<ul> |
1574 |
<li>initialize_domain プログラム名 from ドメイン名 |
<li>initialize_domain プログラム名 from ドメイン名 |
1576 |
<li>initialize_domain プログラム名 |
<li>initialize_domain プログラム名 |
1577 |
</ul> |
</ul> |
1578 |
|
|
1579 |
<p> from 以降が指定されていない場合は任意のドメインから実行された場合に適用される。ドメイン名が <kernel> で始まらない場合は、ドメイン名の最後のプログラム名が一致する全てのドメインに適用される。</p> |
<p> from 以降が指定されていない場合は任意のドメインから実行された場合に適用されます。ドメイン名が <kernel> で始まらない場合は、ドメイン名の最後のプログラム名が一致する全てのドメインに適用されます。</p> |
1580 |
|
|
1581 |
<p>このディレクティブの目的は、常駐型プログラムや必要に応じてカーネルから起動されるプログラムを、通常とは異なるドメインに遷移させることで、ドメイン遷移を集約することである。</p> |
<p>このディレクティブの目的は、常駐型プログラムや必要に応じてカーネルから起動されるプログラムを、通常とは異なるドメインに遷移させることで、ドメイン遷移を集約することである。</p> |
1582 |
|
|
1583 |
<p>関連項目:<a href="#">ドメイン遷移</a> <a href="#exception_policy_no_initialize_domain">no_initialize_domain</a></p> |
<p>関連項目:<a href="#domain_transition">ドメイン遷移</a> <a href="#exception_policy_no_initialize_domain">no_initialize_domain</a></p> |
1584 |
|
|
1585 |
<h3><a name="exception_policy_no_initialize_domain">no_initialize_domain</a></h3> |
<h3><a name="exception_policy_no_initialize_domain">no_initialize_domain</a></h3> |
1586 |
|
|
1587 |
<p>initialize_domain の効力を打ち消すには、 no_initialize_domain というディレクティブを指定する。</p> |
<p>initialize_domain の効力を打ち消すには、 no_initialize_domain というディレクティブを指定します。</p> |
1588 |
<ul> |
<ul> |
1589 |
<li>no_initialize_domain プログラム名 from ドメイン名 |
<li>no_initialize_domain プログラム名 from ドメイン名 |
1590 |
<li>no_initialize_domain プログラム名 from ドメイン名の最後のプログラム名 |
<li>no_initialize_domain プログラム名 from ドメイン名の最後のプログラム名 |
1591 |
<li>no_initialize_domain プログラム名 |
<li>no_initialize_domain プログラム名 |
1592 |
</ul> |
</ul> |
1593 |
|
|
1594 |
<p>このディレクティブはドメイン遷移を初期化させたくない場合に使用する。</p> |
<p>このディレクティブはドメイン遷移を初期化させたくない場合に使用します。</p> |
1595 |
|
|
1596 |
<p>関連項目:<a href="#">ドメイン遷移</a> <a href="#exception_policy_initialize_domain">initialize_domain</a></p> |
<p>関連項目:<a href="#domain_transition">ドメイン遷移</a> <a href="#exception_policy_initialize_domain">initialize_domain</a></p> |
1597 |
|
|
1598 |
<h3><a name="exception_policy_keep_domain">keep_domain</a></h3> |
<h3><a name="exception_policy_keep_domain">keep_domain</a></h3> |
1599 |
|
|
1600 |
<p>特定のドメインからプログラムが実行されてもドメイン遷移を行わないようにするには、 keep_domain というディレクティブを使用する。</p> |
<p>特定のドメインからプログラムが実行されてもドメイン遷移を行わないようにするには、 keep_domain というディレクティブを使用します。</p> |
1601 |
|
|
1602 |
<ul> |
<ul> |
1603 |
<li>keep_domain プログラム名 from ドメイン名 |
<li>keep_domain プログラム名 from ドメイン名 |
1606 |
<li>keep_domain ドメイン名の最後のプログラム名 |
<li>keep_domain ドメイン名の最後のプログラム名 |
1607 |
</ul> |
</ul> |
1608 |
|
|
1609 |
<p> from 以前が指定されていない場合は任意のプログラムが実行された場合に適用される。ドメイン名が <kernel> で始まらない場合は、ドメイン名の最後のプログラム名が一致する全てのドメインに適用される。</p> |
<p> from 以前が指定されていない場合は任意のプログラムが実行された場合に適用されます。ドメイン名が <kernel> で始まらない場合は、ドメイン名の最後のプログラム名が一致する全てのドメインに適用されます。</p> |
1610 |
|
|
1611 |
<p>このディレクティブの目的は、不要なドメイン遷移の発生を抑制することでドメイン数とメモリ消費を抑えることである。</p> |
<p>このディレクティブの目的は、不要なドメイン遷移の発生を抑制することでドメイン数とメモリ消費を抑えることである。</p> |
1612 |
|
|
1613 |
<p>関連項目:<a href="#">ドメイン遷移</a> <a href="#exception_policy_no_keep_domain">no_keep_domain</a></p> |
<p>関連項目:<a href="#domain_transition">ドメイン遷移</a> <a href="#exception_policy_no_keep_domain">no_keep_domain</a></p> |
1614 |
|
|
1615 |
<h3><a name="exception_policy_no_keep_domain">no_keep_domain</a></h3> |
<h3><a name="exception_policy_no_keep_domain">no_keep_domain</a></h3> |
1616 |
|
|
1617 |
<p>keep_domain の効力を打ち消すには、 no_keep_domain というディレクティブを指定する。</p> |
<p>keep_domain の効力を打ち消すには、 no_keep_domain というディレクティブを指定します。</p> |
1618 |
|
|
1619 |
<ul> |
<ul> |
1620 |
<li>no_keep_domain プログラム名 from ドメイン名 |
<li>no_keep_domain プログラム名 from ドメイン名 |
1623 |
<li>no_keep_domain ドメイン名の最後のプログラム名 |
<li>no_keep_domain ドメイン名の最後のプログラム名 |
1624 |
</ul> |
</ul> |
1625 |
|
|
1626 |
<p>このディレクティブはドメイン遷移を行わせたい場合に使用する。</p> |
<p>このディレクティブはドメイン遷移を行わせたい場合に使用します。</p> |
1627 |
|
|
1628 |
<p>関連項目:<a href="#">ドメイン遷移</a> <a href="#exception_policy_keep_domain">keep_domain</a></p> |
<p>関連項目:<a href="#domain_transition">ドメイン遷移</a> <a href="#exception_policy_keep_domain">keep_domain</a></p> |
1629 |
|
|
1630 |
<hr> |
<hr> |
1631 |
|
|
1632 |
<h3><a name="profile">/proc/ccs/profile</a></h3> |
<h3><a name="profile">/proc/ccs/profile</a></h3> |
1633 |
|
|
1634 |
<p>現在の制御レベルを取得または変更する。変更するためのツールとして setlevel と loadpolicy が用意されている。</p> |
<p>現在の制御レベルを取得または変更します。変更するためのツールとして setlevel と loadpolicy が用意されている。</p> |
1635 |
<p>(例)<br> |
<p>(例)<br> |
1636 |
cat /proc/ccs/profile<br> |
cat /proc/ccs/profile<br> |
1637 |
savepolicy -p<br> |
savepolicy -p<br> |
1642 |
|
|
1643 |
<h3><a name="system_policy">/proc/ccs/system_policy</a></h3> |
<h3><a name="system_policy">/proc/ccs/system_policy</a></h3> |
1644 |
|
|
1645 |
<p>現在の<a href="#system_policy">システムポリシー</a>を読み出しまたは追加または削除する。</p> |
<p>現在の<a href="#system_policy">システムポリシ</a>を読み出しまたは追加または削除します。</p> |
1646 |
<p>(例)<br> |
<p>(例)<br> |
1647 |
cat /proc/ccs/system_policy<br> |
cat /proc/ccs/system_policy<br> |
1648 |
savepolicy -s<br> |
savepolicy -s<br> |
1653 |
|
|
1654 |
<h3><a name="domain_policy">/proc/ccs/domain_policy</a></h3> |
<h3><a name="domain_policy">/proc/ccs/domain_policy</a></h3> |
1655 |
|
|
1656 |
<p>現在の<a href="#domain_policy">ドメインポリシー</a>を読み出しまたは追加または削除する。</p> |
<p>現在の<a href="#domain_policy">ドメインポリシ</a>を読み出しまたは追加または削除します。</p> |
1657 |
<p>(例)ドメインを選択してアクセス許可を追加(ドメインが存在しない場合は作成される)<br> |
<p>(例)ドメインを選択してアクセス許可を追加(ドメインが存在しない場合は作成される)<br> |
1658 |
printf "<kernel> /sbin/init\nallow_read /etc/passwd\n" | loadpolicy -d</p> |
printf "<kernel> /sbin/init\nallow_read /etc/passwd\n" | loadpolicy -d</p> |
1659 |
<p>(例)ドメインを選択してアクセス許可を追加(ドメインが存在しない場合は作成されない)<br> |
<p>(例)ドメインを選択してアクセス許可を追加(ドメインが存在しない場合は作成されない)<br> |
1660 |
printf "select <kernel> /sbin/init\nallow_read /etc/passwd\n" | loadpolicy -d</p> |
printf "select <kernel> /sbin/init\nallow_read /etc/passwd\n" | loadpolicy -d</p> |
1661 |
<p>(例)ドメインを選択してアクセス許可を削除<br> |
<p>(例)ドメインを選択してアクセス許可を削除<br> |
1662 |
printf "select <kernel> /sbin/init\ndelete allow_read /etc/passwd\ndelete allow_read /etc/shadow\n" | loadpolicy -d</p> |
printf "select <kernel> /sbin/init\ndelete allow_read /etc/passwd\ndelete allow_read /etc/shadow\n" | loadpolicy -d</p> |
1663 |
<p>(例)特定のドメインを削除<br> |
<p>(例)特定のドメインを削除<br> |
1664 |
printf "delete <kernel> /sbin/init\n" | loadpolicy -d</p> |
printf "delete <kernel> /sbin/init\n" | loadpolicy -d</p> |
1665 |
<p>(例)ドメイン別ポリシーの読み出し<br> |
<p>(例)ドメインポリシの読み出し<br> |
1666 |
cat /proc/ccs/domain_policy</p> |
cat /proc/ccs/domain_policy</p> |
1667 |
|
|
1668 |
<h3><a name="exception_policy">/proc/ccs/exception_policy</a></h3> |
<h3><a name="exception_policy">/proc/ccs/exception_policy</a></h3> |
1669 |
|
|
1670 |
<p>現在の<a href="#exception_policy">例外ポリシー</a>を読み出しまたは追加または削除する。</p> |
<p>現在の<a href="#exception_policy">例外ポリシ</a>を読み出しまたは追加または削除します。</p> |
1671 |
<p>(例)<br> |
<p>(例)<br> |
1672 |
echo 'file_pattern /proc/\$/status' | loadpolicy -e<br> |
echo 'file_pattern /proc/\$/status' | loadpolicy -e<br> |
1673 |
echo 'delete file_pattern /proc/\$/status' | loadpolicy -e<br> |
echo 'delete file_pattern /proc/\$/status' | loadpolicy -e<br> |
1675 |
|
|
1676 |
<h3><a name="query">/proc/ccs/query</a></h3> |
<h3><a name="query">/proc/ccs/query</a></h3> |
1677 |
|
|
1678 |
<p>強制モードで動作中にポリシー違反が発生した場合に、そのアクセス要求を個別に許可するかどうかの指定を行うために使用する。 ALLOW_ENFORCE_GRACE=enabled に設定されているプロファイルが割り当てられているドメインに対して強制モードでポリシー違反が発生した場合、 ccs-queryd を用いて対話的に諾否を指定できる。</p> |
<p>強制モードで動作中にポリシ違反が発生した場合に、そのアクセス要求を個別に許可するかどうかの指定を行うために使用します。 ALLOW_ENFORCE_GRACE=enabled に設定されているプロファイルが割り当てられているドメインに対して強制モードでポリシ違反が発生した場合、 ccs-queryd を用いて対話的に諾否を指定できます。</p> |
1679 |
|
|
1680 |
<h3><a name="manager">/proc/ccs/manager</a></h3> |
<h3><a name="manager">/proc/ccs/manager</a></h3> |
1681 |
|
|
1682 |
<p>ポリシーの読み書きを行えるプログラムまたはドメインの一覧を取得または追加する。</p> |
<p>ポリシの読み書きを行えるプログラムまたはドメインの一覧を取得または追加します。</p> |
1683 |
|
|
1684 |
<h3><a name=".domain_status">/proc/ccs/.domain_status</a></h3> |
<h3><a name=".domain_status">/proc/ccs/.domain_status</a></h3> |
1685 |
|
|
1686 |
<p>setprofile コマンドが行単位での処理を行いやすくするために domain_policy の内容からプロファイル番号とドメイン名の部分だけを抽出したもの。DBMSのビューに相当する機能を提供する。</p> |
<p>setprofile コマンドが行単位での処理を行いやすくするために domain_policy の内容からプロファイル番号とドメイン名の部分だけを抽出したもの。DBMSのビューに相当する機能を提供します。</p> |
1687 |
|
|
1688 |
<h3><a name="meminfo">/proc/ccs/meminfo</a></h3> |
<h3><a name="meminfo">/proc/ccs/meminfo</a></h3> |
1689 |
|
|
1690 |
<p>TOMOYO Linuxがポリシーを保持するために使用しているカーネルのメモリ情報を取得する。</p> |
<p>TOMOYO Linuxがポリシを保持するために使用しているカーネルのメモリ情報を取得します。</p> |
1691 |
<p>(例)<br> |
<p>(例)<br> |
1692 |
cat /proc/ccs/meminfo<br></p> |
cat /proc/ccs/meminfo<br></p> |
1693 |
|
|
1694 |
<h3><a name="grant_log">/proc/ccs/grant_log</a></h3> |
<h3><a name="grant_log">/proc/ccs/grant_log</a></h3> |
1695 |
|
|
1696 |
<p>ドメイン別ポリシーに対するアクセス許可ログを取得する。 取得すべきログが無い場合はすぐに戻ってくるので、ログが発生するまで待機させるには select(2) を使うこと。 記憶できる件数はMAX_GRANT_LOG件までである。 それ以上は記録されないので、随時読み出すようにする必要がある。</p> |
<p>ドメインポリシに対するアクセス許可ログを取得します。 取得すべきログが無い場合はすぐに戻ってくるので、ログが発生するまで待機させるには select(2) を使うこと。 記憶できる件数はMAX_GRANT_LOG件までです。 それ以上は記録されないので、随時読み出すようにする必要がある。</p> |
1697 |
<p>(例)<br> |
<p>(例)<br> |
1698 |
cat /proc/ccs/grant_log</p> |
cat /proc/ccs/grant_log</p> |
1699 |
|
|
1700 |
<h3><a name="reject_log">/proc/ccs/reject_log</a></h3> |
<h3><a name="reject_log">/proc/ccs/reject_log</a></h3> |
1701 |
|
|
1702 |
<p>ドメイン別ポリシーに対するアクセス拒否ログを取得する。 取得すべきログが無い場合はすぐに戻ってくるので、ログが発生するまで待機させるには select(2) を使うこと。 記憶できる件数はMAX_REJECT_LOG件までである。 それ以上は記録されないので、随時読み出すようにする必要がある。</p> |
<p>ドメインポリシに対するアクセス拒否ログを取得します。 取得すべきログが無い場合はすぐに戻ってくるので、ログが発生するまで待機させるには select(2) を使うこと。 記憶できる件数はMAX_REJECT_LOG件までです。 それ以上は記録されないので、随時読み出すようにする必要がある。</p> |
1703 |
<p>(例)<br> |
<p>(例)<br> |
1704 |
cat /proc/ccs/reject_log</p> |
cat /proc/ccs/reject_log</p> |
1705 |
|
|
1706 |
<h3><a name="self_domain">/proc/ccs/self_domain</a></h3> |
<h3><a name="self_domain">/proc/ccs/self_domain</a></h3> |
1707 |
|
|
1708 |
<p>呼び出し元プロセスが属しているドメインの名前を取得する。</p> |
<p>呼び出し元プロセスが属しているドメインの名前を取得します。</p> |
1709 |
<p>(例)<br> |
<p>(例)<br> |
1710 |
cat /proc/ccs/self_domain</p> |
cat /proc/ccs/self_domain</p> |
1711 |
|
|
1712 |
<h3><a name=".process_status">/proc/ccs/.process_status</a></h3> |
<h3><a name=".process_status">/proc/ccs/.process_status</a></h3> |
1713 |
|
|
1714 |
<p>ccstree コマンド(「現在動作中のプロセス」と「そのプロセスが属しているドメイン」と「そのドメインに割り当てられているプロファイル番号」を pstree のように一覧表示する)のためのインタフェース。例外的にポリシーマネージャとして登録されていないプログラムでも書き込みを行える。</p> |
<p>ccstree コマンド(「現在動作中のプロセス」と「そのプロセスが属しているドメイン」と「そのドメインに割り当てられているプロファイル番号」を pstree のように一覧表示する)のためのインタフェース。例外的にポリシマネージャとして登録されていないプログラムでも書き込みを行える。</p> |
1715 |
|
|
1716 |
<h3><a name=".updates_counter">/proc/ccs/.updates_counter</a></h3> |
<h3><a name=".updates_counter">/proc/ccs/.updates_counter</a></h3> |
1717 |
|
|
1718 |
<p>ポリシーの変更を検出するためのカウンタ。参照されるたびに 0 にリセットされる。ポリシーの更新を監視するプログラムのためのインタフェース。</p> |
<p>ポリシの変更を検出するためのカウンタです。参照されるたびに 0 にリセットされます。ポリシの更新を監視するプログラムのためのインタフェースです。</p> |
1719 |
|
|
1720 |
<h3><a name="version">/proc/ccs/version</a></h3> |
<h3><a name="version">/proc/ccs/version</a></h3> |
1721 |
|
|
1722 |
<p>TOMOYO Linux のバージョン番号を取得するためのインタフェース。</p> |
<p>TOMOYO Linux のバージョン番号を取得するためのインタフェースです。</p> |
1723 |
<p>(例)<br> |
<p>(例)<br> |
1724 |
cat /proc/ccs/version</p> |
cat /proc/ccs/version</p> |
1725 |
|
|
1726 |
<h2><a name="features_for_intermediate">中級者向けの機能</a></h2> |
<h2><a name="features_for_advanced">6. 便利な機能</a></h2> |
|
|
|
|
<h3><a name="sleep_penalty">ポリシー違反時のペナルティ指定</a></h3> |
|
|
|
|
|
<p>強制モードでポリシー違反が発生した場合に、ポリシー違反の原因となったプロセスを一定時間スリープ状態にさせることができます。</p> |
|
|
|
|
|
<table border="1"> |
|
|
<tr><td>/proc/ccs/profile での指定例</td><td>意味</td></tr> |
|
|
<tr><td>3-SLEEP_PERIOD=1</td><td>プロファイル 3 が割り当てられているプロセスが強制モードに於いてポリシー違反を発生させた場合、0.1秒間スリープさせる。</td></tr> |
|
|
<tr><td>4-SLEEP_PERIOD=10</td><td>プロファイル 4 が割り当てられているプロセスが強制モードに於いてポリシー違反を発生させた場合、1秒間スリープさせる。</td></tr> |
|
|
</table> |
|
|
|
|
|
<p>この機能は、無限ループの中でポリシー違反が発生した場合に、CPU使用率が100%になってしまうのを回避するための安全装置です。通常は0.1秒間スリープさせるだけで充分です。</p> |
|
1727 |
|
|
1728 |
<p>この機能は、許可されていないホストからの TCP 接続要求や UDP パケットを攻撃者が故意に送りつけることでポリシー違反を発生させることでサービスを長時間スリープ状態にさせることにより、許可されているホストからの TCP 接続要求や UDP パケットの処理を大幅に遅延させるという攻撃が成立してしまうのを回避するために、ネットワークの受信系の操作に対しては機能しないようになっています。</p> |
<h3><a name="conditional_acl">6.1 条件付きアクセス許可の指定</a></h3> |
|
|
|
|
<h3><a name="conditional_acl">条件付きアクセス許可の指定</a></h3> |
|
1729 |
|
|
1730 |
<p>アクセス許可にユーザID等に基づいた条件を付加することができます。条件は個々のアクセス許可の末尾に " if " 句を追加する形で指定します。</p> |
<p>アクセス許可にユーザID等に基づいた条件を付加することができます。条件は個々のアクセス許可の末尾に " if " 句を追加する形で指定します。</p> |
1731 |
|
|
1788 |
|
|
1789 |
<p>exec はプログラム実行時(つまり<a href="#domain_policy_allow_execute">allow_execute</a>)に限り指定できます。</p> |
<p>exec はプログラム実行時(つまり<a href="#domain_policy_allow_execute">allow_execute</a>)に限り指定できます。</p> |
1790 |
|
|
1791 |
<h2><a name="features_for_advanced">上級者向けの機能</a></h2> |
<h3><a name="stateful_acl">6.2 ステートフルなアクセス許可の指定</a></h3> |
|
|
|
|
<h3><a name="stateful_acl">ステートフルなアクセス許可の指定</a></h3> |
|
1792 |
|
|
1793 |
<p>TOMOYO Linux はユーザランドアプリケーションの修正を行わないため、プログラムの実行を伴わずにアクセス可能な資源の範囲を変更することはできません。しかし、例えば接続元クライアントのIPアドレスによってアクセスの可否を切り替えたいという場合があります。そのような場合に対応するため、プロセス毎に状態変数を割り当てることができ、条件付きアクセス許可の指定で使えるようになっています。</p> |
<p>TOMOYO Linux はユーザランドアプリケーションの修正を行わないため、プログラムの実行を伴わずにアクセス可能な資源の範囲を変更することはできません。しかし、例えば接続元クライアントのIPアドレスによってアクセスの可否を切り替えたいという場合があります。そのような場合に対応するため、プロセス毎に状態変数を割り当てることができ、条件付きアクセス許可の指定で使えるようになっています。</p> |
1794 |
|
|
1803 |
|
|
1804 |
<table border="1"> |
<table border="1"> |
1805 |
<tr><td>使用例</td><td>意味</td></tr> |
<tr><td>使用例</td><td>意味</td></tr> |
1806 |
<tr><td>allow_network TCP accept @TRUSTED_HOSTS 1024-65535 ; set task.state[0]=1</td><td>クライアントが @TRUSTED_HOSTS である場合には、 state[0] に 1 を設定する。</td></tr> |
<tr><td>allow_network TCP accept @TRUSTED_HOSTS 1024-65535 ; set task.state[0]=1</td><td>クライアントが @TRUSTED_HOSTS である場合には、 state[0] に 1 を設定します。</td></tr> |
1807 |
<tr><td>allow_network TCP accept @UNTRUSTED_HOSTS 1024-65535 ; set task.state[0]=0</td><td>クライアントが @UNTRUSTED_HOSTS である場合には、 state[0] に 0 を設定する。</td></tr> |
<tr><td>allow_network TCP accept @UNTRUSTED_HOSTS 1024-65535 ; set task.state[0]=0</td><td>クライアントが @UNTRUSTED_HOSTS である場合には、 state[0] に 0 を設定します。</td></tr> |
1808 |
<tr><td>allow_execute /bin/bash if task.state[0]=1</td><td>state[0] が 1 の場合は、 /bin/bash の実行を許可する。</td></tr> |
<tr><td>allow_execute /bin/bash if task.state[0]=1</td><td>state[0] が 1 の場合は、 /bin/bash の実行を許可します。</td></tr> |
1809 |
<tr><td>allow_execute /sbin/nologin if task.state[0]=0</td><td>state[0] が 0 の場合は、 /sbin/nologin の実行を許可する。</td></tr> |
<tr><td>allow_execute /sbin/nologin if task.state[0]=0</td><td>state[0] が 0 の場合は、 /sbin/nologin の実行を許可します。</td></tr> |
1810 |
<tr><td>allow_execute /etc/passwd if task.state[2]=0 ; set task.state[2]=1</td><td>state[2] が 0 の場合は /etc/passwd の読み込みモードでのオープンを許可し、その後 state[2] に 1 を設定する。</td></tr> |
<tr><td>allow_execute /etc/passwd if task.state[2]=0 ; set task.state[2]=1</td><td>state[2] が 0 の場合は /etc/passwd の読み込みモードでのオープンを許可し、その後 state[2] に 1 を設定します。</td></tr> |
1811 |
</table> |
</table> |
1812 |
|
|
1813 |
<p>状態変数を使用する際には、以下の点に注意してください。</p> |
<p>状態変数を使用する際には、以下の点に注意してください。</p> |
1814 |
|
|
1815 |
<ul> |
<ul> |
1816 |
<li>プロセスのドメインはプログラムの実行によって自動的に変更されるのに対して、プロセスの状態変数は明示的に" ; set " という句で指定されない限り変更されない。そのため、状態変数の戻し忘れに注意。</li> |
<li>プロセスのドメインはプログラムの実行によって自動的に変更されるのに対して、プロセスの状態変数は明示的に" ; set " という句で指定されない限り変更されない。そのため、状態変数の戻し忘れに注意。</li> |
1817 |
<li>状態変数の設定はポリシーのチェックにより許可された時点で行われる。そのため、メモリ不足などポリシーのチェック以降のエラーによって、状態変数が変更されたけれどもアクセス要求は処理されなかったという状況が発生しうる。</li> |
<li>状態変数の設定はポリシのチェックにより許可された時点で行われる。そのため、メモリ不足などポリシのチェック以降のエラーによって、状態変数が変更されたけれどもアクセス要求は処理されなかったという状況が発生しうる。</li> |
1818 |
<li>上記の @TRUSTED_HOSTS と @UNTRUSTED_HOSTS の両方に含まれていた場合、先に一致したほうの状態変数が使われてしまう。そのため、順番に依存するアクセス許可を定義しないように注意。</li> |
<li>上記の @TRUSTED_HOSTS と @UNTRUSTED_HOSTS の両方に含まれていた場合、先に一致したほうの状態変数が使われてしまう。そのため、順番に依存するアクセス許可を定義しないように注意。</li> |
1819 |
</ul> |
</ul> |
1820 |
|
|
1821 |
<h3><a name="denied_execute_handler_penalty">許可されていないプログラムの実行が要求された場合の代替処理指定</a></h3> |
<h3><a name="sleep_penalty">6.3 ポリシ違反時のペナルティ指定</a></h3> |
1822 |
|
|
1823 |
<p>TOMOYO Linux では、どのプログラムからどのプログラムを実行する必要があるかを事前に把握して、必要最小限のプログラムの実行のみを認めるというアプローチを採用しています。そのため、不要なプログラムの実行を拒否するという振る舞いだけでなく、それ以外の振る舞いを行うこともできます。</p> |
<p>強制モードでポリシ違反が発生した場合に、ポリシ違反の原因となったプロセスを一定時間スリープ状態にさせることができます。</p> |
1824 |
|
|
1825 |
<p>強制モードに於いて allow_execute 構文により許可されていないプログラムの実行が要求された場合、デフォルトではプログラムの実行を拒否します。しかし、あるプログラムからどのプログラムの実行を許可する必要があるかを把握済みであるという前提があれば、プロセスが正常な動作をしている限りに於いて許可されていないプログラムの実行が要求されることは無いので、許可されていないプログラムの実行が要求されたということはプロセスが正常な動作をしていない(つまり、プロセスにとっては制御を失った状態である)とみなすことができます。</p> |
<table border="1"> |
1826 |
|
<tr><td>/proc/ccs/profile での指定例</td><td>意味</td></tr> |
1827 |
|
<tr><td>3-SLEEP_PERIOD=1</td><td>プロファイル 3 が割り当てられているプロセスが強制モードに於いてポリシ違反を発生させた場合、0.1秒間スリープさせる。</td></tr> |
1828 |
|
<tr><td>4-SLEEP_PERIOD=10</td><td>プロファイル 4 が割り当てられているプロセスが強制モードに於いてポリシ違反を発生させた場合、1秒間スリープさせる。</td></tr> |
1829 |
|
</table> |
1830 |
|
|
1831 |
<p>攻撃者はバッファオーバーフローなどのセキュリティホールを攻撃することでプロセスの制御を奪い、シェルなどのコマンドの実行を要求してきます。もし、そのプロセスからシェルの実行を許可する必要が無い(すなわち allow_execute /bin/bash のようなアクセス許可を与える必要が無い)のであれば、シェルの実行が要求された時点で既にプロセスにとっては制御を失っていると考えることができます。</p> |
<p>この機能は、無限ループの中でポリシ違反が発生した場合に、CPU使用率が100%になってしまうのを回避するための安全装置です。通常は0.1秒間スリープさせるだけで充分です。</p> |
1832 |
|
|
1833 |
<p>通常、許可されていないプログラムの実行が要求された場合は、その要求を拒否するだけです。しかし、制御を失っているプロセスから要求されたプログラムの実行要求を拒否したところで、そのプロセスの制御が取り戻される(つまり、正常な動作をするようになる)とは考えられません。しかし、プログラムを実行するということは、現在動作中のプロセスを新しいプログラムに置き換えることで、制御を新しいプログラムに譲渡することを意味します。つまり、あるプロセスがバッファオーバーフローなどにより制御を失っていたとしても、プログラムを実行することにより、そのプロセスの制御が取り戻されるわけです。</p> |
<p>この機能は、許可されていないホストからの TCP 接続要求や UDP パケットを攻撃者が故意に送りつけることでポリシ違反を発生させることでサービスを長時間スリープ状態にさせることにより、許可されているホストからの TCP 接続要求や UDP パケットの処理を大幅に遅延させるという攻撃が成立してしまうのを回避するために、ネットワークの受信系の操作に対しては機能しないようになっています。</p> |
1834 |
|
|
1835 |
<p>攻撃者の手によって制御を失ったプロセスからプログラムが実行された後の制御は、どのプログラムが実行されたかによって決まります。シェルが実行された場合には、シェルはユーザが要求したとおりに処理を実行してしまうため、プログラムの実行を要求したプロセスの所有者である攻撃者の手に委ねられてしまうわけです。しかし、何もせずに終了するようなプログラム(例えば /bin/true )が実行された場合には、プロセスの制御が攻撃者の手に委ねられてしまうことはありません。</p> |
<h3><a name="execute_handler">6.4 プログラムの実行可否をカーネルの外部で判断</a></h3> |
1836 |
|
|
1837 |
<p>このように、攻撃者の手によって本来許可する必要の無いプログラムの実行が要求されるという出来事は、見方を変えると、攻撃者自身が制御を取り戻すためのチャンスを与えてくれていると考えることができます。そこで、 TOMOYO Linux では、許可されていないプログラムの実行が要求された場合、その要求を拒否する代わりに他のプログラムを実行するための機構を提供しています。この機構を用いて何をするかはシステム管理者の自由です。</p> |
<p>TOMOYO Linuxでは、原則としてポリシに従ってプログラムの実行可否を制御します。プログラム実行時のパラメータをチェックしたい場合には、<a href="#conditional_acl">条件付きアクセス許可の指定</a>で説明したようにexec.argvやexec.envpを使ってチェックを行うことができます。しかし、<a href="#conditional_acl">条件付きアクセス許可の指定</a>では、単純なパターンマッチしかサポートされておらず、また、どのようなプログラムの実行を許可するかを予め指定しておく必要があります。</p> |
1838 |
|
|
1839 |
<p>例えば、シェルの実行要求を /bin/true の実行要求に差し替えてしまうことで、そのプロセスを直ちに強制終了させることができます。</p> |
<p>そこで、TOMOYO Linux 1.6.0では<a href="#domain_policy_execute_handler">execute_handler</a>という仕組みが導入されました。この仕組みは、プログラムの実行可否をカーネルが判断するのではなく、<a href="#domain_policy_execute_handler">execute_handler</a>により指定されたプログラムが判断し、プログラムの実行を許可すべきと判断した場合には実際にプログラムを実行するという動作をします。</p> |
1840 |
|
|
1841 |
<p>例えば、シェルの実行要求をハニーポットクライアントプログラムの実行要求に差し替えてしまうことで、攻撃者がどのようなリクエストを行うかを観察することができます。</p> |
<p>Linuxに於いては、プログラムを実行するという動作は、プログラムの実行を要求したプロセスを上書きするという動作であり、プログラムの実行に成功した場合にはプログラムの実行を要求したプロセスに制御が戻ることはありません。つまり、要求されたプログラムの実行に失敗した場合にしか、プログラムの実行を要求したプロセスに対して、要求されたプログラムが実行されなかったことが通知されません。<br> |
1842 |
|
例えば、プログラムAとして動作しているプロセスがプログラムBの実行を要求する場合を考えてみます。<br> |
1843 |
|
プログラムAとして動作しているプロセスがプログラムBの実行を要求すると、カーネルが「プログラムAとして動作しているプロセスからプログラムBを実行することは適切であるかどうか」をポリシを照合することで判断し、適切であると判断された場合には「プログラムAとして動作しているプロセスをプログラムBで上書き」し、適切では無いと判断された場合には「プログラムAとして動作しているプロセスにプログラムBの実行が認められていないことを通知」します。</p> |
1844 |
|
|
1845 |
<p>例えば、そのログインセッションを強制終了させることができます。</p> |
<p><a href="#domain_policy_execute_handler">execute_handler</a>を指定した場合、 |
1846 |
|
execute_handlerとして指定されたプログラムCがこの動作に介在します。<br> |
1847 |
|
プログラムAとして動作しているプロセスがプログラムBの実行を要求すると、プログラムCに「プログラムAとして動作しているプロセスからプログラムBを実行することは適切であるかどうか」を判断してもらうために「プログラムAとして動作しているプロセスをプログラムCで上書き」します。プログラムCとして動作するようになったプロセスが「プログラムAとして動作していたプロセスからプログラムBを実行することは適切であるかどうか」を判断し、適切であると判断した場合には「プログラムCとして動作しているプロセスをプログラムBで上書き」し、適切では無いと判断された場合には「プログラムCとして動作しているプロセスをプログラムBで上書きせずに終了」します。</p> |
1848 |
|
|
1849 |
<p>例えば、要求されたコマンドがどのパッケージに含まれているかを教えてくれる Ubuntu の command-not-found パッケージのように、「You are not permitted to execute this program.」のような警告を表示することができます。</p> |
<p>このように、プログラムBの実行を要求したプログラムAとして動作していたプロセスがに対して、プログラムBの実行に失敗したことを通知する手段を放棄することになるため、プログラムBの実行を要求したプログラムAとして動作していたプロセスが、プログラムBが実行されなかったという通知を受けることができなくなるという副作用が発生します。<br> |
1850 |
|
しかし、たとえ<a href="#domain_policy_execute_handler">execute_handler</a>を指定していない場合であっても、「共有ライブラリの読み込みができなかった」「 KILL シグナルを受信した」「メモリ不足になり OOM killer によって強制終了させられた」など、様々な要因によって「実行には成功したが期待された動作を始める前に終了してしまった」という状況が起こりえます。つまり、「プログラムの実行が失敗しなかった」ということと「要求されたプログラムが期待した動作を始めた」ということの間には、不確定要素が存在します。<br> |
1851 |
|
そう考えると、「プログラムの実行に失敗したという通知が無い限りプログラムは期待された動作を始める」という保証は最初から存在しないわけなので、<a href="#domain_policy_execute_handler">execute_handler</a>により指定されたプログラムCが、プログラムBの実行に失敗したことをプログラムBの実行を要求したプログラムAとして動作していたプロセスに通知できなかったという結果になったとしても、容認できる範囲であると言えると思います。</p> |
1852 |
|
|
1853 |
<p>例えば、攻撃者の接続元IPアドレスを割り出して、ファイアウォールの設定を変更することができます。</p> |
|
1854 |
|
<p>TOMOYO Linux は、どのプログラムからどのプログラムを実行する必要があるかを事前に把握して、必要最小限のプログラムの実行のみを認めるというアプローチを採用しています。そのため、正常な動作をしている限り、ポリシで許可されていないプログラムの実行要求は起こらないはずだと仮定すると、全てのプログラムの実行要求をとりあえず受理して構わないと考えることができます。もしも受理すべきではないプログラムの実行要求が発生した場合、<a href="#domain_policy_denied_execute_handler">denied_execute_handler</a>の機能を使うことで要求を拒否する代わりにそのプロセスを強制終了させるなどの行動を起こすことができます。つまり、カーネルの内部でプログラムの実行可否の判断を行わなくても構わないということです。</p> |
1855 |
|
|
1856 |
|
<p>そこで、ドメインに対して <a href="#domain_policy_execute_handler">execute_handler</a>キーワードを指定しておくことで、そのドメインから発生する全てのプログラムの実行可否の判断をカーネル外部のプログラムに委ねることができるようになります。</p> |
1857 |
|
<p>カーネルの内部では利用可能なライブラリが少ない上に連続したメモリ領域の割り当てが失敗する可能性が高くなりますが、 |
1858 |
|
カーネルの外部であれば豊富なライブラリを使ってメモリ割り当ての限界を心配せずに詳細なチェックが可能になります。そこで、<a href="#domain_policy_execute_handler">execute_handler</a>で指定したプログラムにプログラム実行時のパラメータをチェックしてもらい、適切であればプログラムを実行してもらうようにすることができます。</p> |
1859 |
|
|
1860 |
|
<p>この方式の副作用は、プログラムの実行を拒否すべきと判断した場合に、プログラムの実行を要求したプロセスに通知する方法が無い点です。しかし、自由にカスタマイズできるので、 ssh 等を用いて遠隔地のマシンに問い合わせをしながらしながら判断することも可能です。</p> |
1861 |
|
|
1862 |
<p>この機能を使うには、以下のように指定します。</p> |
<p>この機能を使うには、以下のように指定します。</p> |
1863 |
|
|
1864 |
<table border="1"> |
<table border="1"> |
1865 |
<tr><td>/proc/ccs/profile の例</td><td>/proc/ccs/domain_policy の例</td><td>意味</td></tr> |
<tr><td>/proc/ccs/domain_policy の例</td><td>意味</td></tr> |
1866 |
<tr><td>3-MAC_FOR_FILE=enforcing</td><td>use_profile 3<br>denied_execute_handler /bin/true</td><td>プロファイル 3 が割り当てられているドメインに属しているプロセスが、許可されていないプログラムの実行を要求した場合、代わりに /bin/true を実行する。</td></tr> |
<tr><td>execute_handler /usr/sbin/check-and-exec</td><td>このドメインに属しているプロセスがプログラムの実行を要求した場合、要求されたプログラムを実行する代わりに/usr/sbin/check-and-execを実行します。/usr/sbin/check-and-execはパラメータをチェックし、妥当と判断した場合には要求されたプログラムを実行します。</td></tr> |
1867 |
</table> |
</table> |
1868 |
|
|
1869 |
<p>denied_execute_handlerで指定されたプログラムは、以下のパラメータを受け取ります。</p> |
<p>execute_handlerで指定されたプログラムは、以下のパラメータを受け取ります。<a href="#access_logs">アクセスログについて</a>で説明した、 allow_execute のログと比較してみてください。</p> |
1870 |
|
|
1871 |
<ul> |
<ul> |
1872 |
<li>argv[0] には、denied_execute_handlerで指定されたプログラムのパス名が入っています。</li> |
<li>argv[0] には、execute_handlerで指定されたプログラムのパス名が入っています。</li> |
1873 |
<li>argv[1] には、許可されていないプログラムの実行を要求したプロセスのドメイン名が入っています。</li> |
<li>argv[1] には、プログラムの実行を要求したプロセスのドメイン名が入っています。</li> |
1874 |
<li>argv[2] には、許可されていないプログラムの実行を要求したプロセスのパス名が入っています。</li> |
<li>argv[2] には、プログラムの実行を要求したプロセスのパス名が入っています。</li> |
1875 |
<li>argv[3] には、許可されていないプログラムの実行を要求したプロセスの情報が入っています。</li> |
<li>argv[3] には、プログラムの実行を要求したプロセスの情報が入っています。</li> |
1876 |
<li>argv[4] には、許可されなかったプログラムのパス名が入っています。</li> |
<li>argv[4] には、実行が要求されたプログラムのパス名が入っています。</li> |
1877 |
<li>argv[5] には、プログラム実行時の引数の数が入っています。</li> |
<li>argv[5] には、プログラム実行要求時の引数の数が入っています。</li> |
1878 |
<li>argv[6] には、プログラム実行時の環境変数の数が入っています。</li> |
<li>argv[6] には、プログラム実行要求時の環境変数の数が入っています。</li> |
1879 |
<li>argv[7] から argv[6 + argc] には、呼び出し元プロセスが渡した argv[] の内容が入っています。</li> |
<li>argv[7] から argv[6 + argc] には、呼び出し元プロセスが渡した argv[] の内容が入っています。</li> |
1880 |
<li>argv[7 + argc] から argv [6 + argc + envc] には、呼び出し元プロセスが渡した envp[] の内容が入っています。</li> |
<li>argv[7 + argc] から argv [6 + argc + envc] には、呼び出し元プロセスが渡した envp[] の内容が入っています。</li> |
1881 |
<li>環境変数 envp[] は全てクリアされます。</li> |
<li>環境変数 envp[] は全てクリアされます。</li> |
1882 |
<li>標準入出力などは呼び出し元プロセスのものを引き継ぎます。</li> |
<li>標準入出力などは呼び出し元プロセスのものを引き継ぎます。</li> |
1883 |
</ul> |
</ul> |
1884 |
|
|
|
<p>パラメータを表示するサンプルプログラムは以下のようになります。</p> |
|
|
|
|
|
<table border="1"> |
|
|
<tr><td><pre> |
|
|
#! /bin/sh |
|
|
# Don't invoke this program from the command line. |
|
|
# This program is invoked by the kernel, with all environment variables cleared. |
|
|
# You might need to set environment variable PATH to run this program. |
|
|
# |
|
|
[ $# -ge 6 ] || exit 1 |
|
|
|
|
|
echo "----- Domain information -----" |
|
|
echo $1 |
|
|
shift |
|
|
|
|
|
echo "----- Program information -----" |
|
|
echo $1 |
|
|
shift |
|
|
|
|
|
echo "----- Process information -----" |
|
|
echo $1 |
|
|
shift |
|
|
|
|
|
echo "----- Rejected Program information -----" |
|
|
echo $1 |
|
|
shift |
|
|
|
|
|
ARGC=$1 |
|
|
shift |
|
|
echo "----- Number of commandline arguments -----" |
|
|
echo $ARGC |
|
|
|
|
|
ENVC=$1 |
|
|
shift |
|
|
echo "----- Number of environment variables -----" |
|
|
echo $ENVC |
|
|
|
|
|
echo "----- argv[] information -----" |
|
|
|
|
|
while [ $ARGC -gt 0 ] |
|
|
do |
|
|
echo $1 |
|
|
shift |
|
|
ARGC=`expr $ARGC - 1` |
|
|
done |
|
|
|
|
|
echo "----- envp[] information -----" |
|
|
|
|
|
while [ $ENVC -gt 0 ] |
|
|
do |
|
|
echo $1 |
|
|
shift |
|
|
ENVC=`expr $ENVC - 1` |
|
|
done |
|
|
|
|
|
exit 1 |
|
|
</pre></td></tr> |
|
|
</table> |
|
|
|
|
1885 |
<p>この機能を使用する際には、以下の点に注意してください。</p> |
<p>この機能を使用する際には、以下の点に注意してください。</p> |
1886 |
|
|
1887 |
<ul> |
<ul> |
1888 |
<li>denied_execute_handlerやexecute_handlerで指定されたプログラムに対して実行許可(<a href="#domain_policy_allow_execute">allow_execute</a>)を与える必要はありませんし、与えるべきではありません。</li> |
<li>execute_handlerで指定されたプログラムに対して実行許可(<a href="#domain_policy_allow_execute">allow_execute</a>)を与える必要はありませんし、与えるべきではありません。</li> |
1889 |
<li>プロセスがchroot内部の環境で動作している場合、denied_execute_handlerやexecute_handlerで指定されたプログラムが見つからないために実行されない場合があります。これは、プロセスがchroot内部の環境で動作している場合に、chroot外部の環境にあるプログラムを実行できてしまうと危険なので、denied_execute_handlerやexecute_handlerで指定されたプログラムは、プロセスの名前空間のルートディレクトリではなく、プロセスのルートディレクトリから検索するようになっているためです。</li> |
<li>プロセスがchroot内部の環境で動作している場合、execute_handlerで指定されたプログラムが見つからないために実行されない場合があります。これは、プロセスがchroot内部の環境で動作している場合に、chroot外部の環境にあるプログラムを実行できてしまうと危険なので、execute_handlerで指定されたプログラムは、プロセスの名前空間のルートディレクトリではなく、プロセスのルートディレクトリから検索するようになっているためです。</li> |
1890 |
<li>denied_execute_handlerやexecute_handlerで指定されたプログラムが動作するためのドメインが存在しない場合、実行されません。そのため、例えば<kernel>直下にdenied_execute_handlerやexecute_handlerで指定されたプログラム用のドメインを作成して、そのプログラムを<a href="#exception_policy_initialize_domain">initialize_domain</a>キーワードで指定するなどの準備をしてください。</li> |
<li>execute_handlerで指定されたプログラムが動作するためのドメインが存在しない場合、実行されません。そのため、例えば<kernel>直下にexecute_handlerで指定されたプログラム用のドメインを作成して、そのプログラムを<a href="#exception_policy_initialize_domain">initialize_domain</a>キーワードで指定するなどの準備をしてください。</li> |
1891 |
<li>denied_execute_handlerやexecute_handlerで指定されたプログラムは環境変数の影響を受けるのを避けるため、全ての環境変数の内容をクリアした状態で起動されます。そのため、環境変数 PATH 等が設定されていないので、外部コマンドを呼び出す場合には注意してください。また、denied_execute_handlerやexecute_handlerで指定されたプログラムが動作するドメインにも強制モード用のプロファイルを割り当てておくことを推奨します。</li> |
<li>execute_handlerで指定されたプログラムは環境変数の影響を受けるのを避けるため、全ての環境変数の内容をクリアした状態で起動されます。そのため、環境変数 PATH 等が設定されていないので、外部コマンドを呼び出す場合には注意してください。また、execute_handlerで指定されたプログラムが動作するドメインにも強制モード用のプロファイルを割り当てておくことを推奨します。</li> |
1892 |
</ul> |
</ul> |
1893 |
|
|
1894 |
|
<p>ccs-tools のソースパッケージには、 audit-exec-param.c というサンプルプログラムが入っています。ご自由に改造してお使いください。</p> |
1895 |
<p>この機能は、機構を提供しているだけです。この機構を活用できるかどうかはあなた次第です。</p> |
<p>この機能は、機構を提供しているだけです。この機構を活用できるかどうかはあなた次第です。</p> |
1896 |
|
|
1897 |
<h3><a name="always_denied_execute_handler">プログラムの実行可否をカーネルの外部で判断</a></h3> |
<h3><a name="denied_execute_handler">6.5 許可されていないプログラムの実行が要求された場合の代替処理指定</a></h3> |
1898 |
|
|
1899 |
<p><a href="#denied_execute_handler_penalty">許可されていないプログラムの実行が要求された場合の代替処理指定</a>で述べたとおり、正常な動作をしている限り、ポリシーで許可されていないプログラムの実行要求は起こらないはずだと仮定すると、全てのプログラムの実行要求を受理して構わないと考えることができます。もしも受理すべきではないプログラムの実行要求が発生した場合、<a href="#domain_policy_denied_execute_handler">denied_execute_handler</a>の機能を使うことで要求を拒否する代わりにそのプロセスを強制終了させるなどの行動を起こすことができます。つまり、カーネルの内部でプログラムの実行可否の判断を行わなくても構わないということです。</p> |
<p>TOMOYO Linux では、どのプログラムからどのプログラムを実行する必要があるかを事前に把握して、必要最小限のプログラムの実行のみを認めるというアプローチを採用しています。そのため、不要なプログラムの実行を拒否するという振る舞いだけでなく、それ以外の振る舞いを行うこともできます。</p> |
1900 |
|
|
1901 |
<p>そこで、ドメインに対して <a href="#domain_policy_execute_handler">execute_handler</a>キーワードを指定しておくことで、そのドメインから発生する全てのプログラムの実行可否の判断をカーネル外部のプログラムに委ねることができるようになります。</p> |
<p>強制モードに於いて allow_execute 構文により許可されていないプログラムの実行が要求された場合、デフォルトではプログラムの実行を拒否します。しかし、あるプログラムからどのプログラムの実行を許可する必要があるかを把握済みであるという前提があれば、プロセスが正常な動作をしている限りに於いて許可されていないプログラムの実行が要求されることは無いので、許可されていないプログラムの実行が要求されたということはプロセスが正常な動作をしていない(つまり、プロセスにとっては制御を失った状態である)とみなすことができます。</p> |
|
<p>カーネルの内部では利用可能なライブラリが少ない上に連続したメモリ領域の割り当てが失敗する可能性が高くなりますが、 |
|
|
カーネルの外部であれば豊富なライブラリを使ってメモリ割り当ての限界を心配せずに詳細なチェックが可能になります。そこで、<a href="#domain_policy_execute_handler">execute_handler</a>で指定したプログラムにプログラム実行時のパラメータをチェックしてもらい、適切であればプログラムを実行してもらうようにすることができます。</p> |
|
1902 |
|
|
1903 |
<p>この方式の副作用は、プログラムの実行を拒否すべきと判断した場合に、プログラムの実行を要求したプロセスに通知する方法が無い点です。しかし、自由にカスタマイズできるので、 ssh 等を用いて遠隔地のマシンに問い合わせをしながらしながら判断することも可能です。</p> |
<p>攻撃者はバッファオーバーフローなどのセキュリティホールを攻撃することでプロセスの制御を奪い、シェルなどのコマンドの実行を要求してきます。もし、そのプロセスからシェルの実行を許可する必要が無い(すなわち allow_execute /bin/bash のようなアクセス許可を与える必要が無い)のであれば、シェルの実行が要求された時点で既にプロセスにとっては制御を失っていると考えることができます。</p> |
1904 |
|
|
1905 |
|
<p>通常、許可されていないプログラムの実行が要求された場合は、その要求を拒否するだけです。しかし、制御を失っているプロセスから要求されたプログラムの実行要求を拒否したところで、そのプロセスの制御が取り戻される(つまり、正常な動作をするようになる)とは考えられません。しかし、プログラムを実行するということは、現在動作中のプロセスを新しいプログラムに置き換えることで、制御を新しいプログラムに譲渡することを意味します。つまり、あるプロセスがバッファオーバーフローなどにより制御を失っていたとしても、プログラムを実行することにより、そのプロセスの制御が取り戻されるわけです。</p> |
1906 |
|
|
1907 |
|
<p>攻撃者の手によって制御を失ったプロセスからプログラムが実行された後の制御は、どのプログラムが実行されたかによって決まります。シェルが実行された場合には、シェルはユーザが要求したとおりに処理を実行してしまうため、プログラムの実行を要求したプロセスの所有者である攻撃者の手に委ねられてしまうわけです。しかし、何もせずに終了するようなプログラム(例えば /bin/true )が実行された場合には、プロセスの制御が攻撃者の手に委ねられてしまうことはありません。</p> |
1908 |
|
|
1909 |
|
<p>このように、攻撃者の手によって本来許可する必要の無いプログラムの実行が要求されるという出来事は、見方を変えると、攻撃者自身が制御を取り戻すためのチャンスを与えてくれていると考えることができます。そこで、 TOMOYO Linux では、許可されていないプログラムの実行が要求された場合、その要求を拒否する代わりに他のプログラムを実行するための機構を提供しています。この機構を用いて何をするかはシステム管理者の自由です。</p> |
1910 |
|
|
1911 |
|
<p>例えば、シェルの実行要求を /bin/true の実行要求に差し替えてしまうことで、そのプロセスを直ちに強制終了させることができます。</p> |
1912 |
|
|
1913 |
|
<p>例えば、シェルの実行要求をハニーポットクライアントプログラムの実行要求に差し替えてしまうことで、攻撃者がどのようなリクエストを行うかを観察することができます。</p> |
1914 |
|
|
1915 |
|
<p>例えば、そのログインセッションを強制終了させることができます。</p> |
1916 |
|
|
1917 |
|
<p>例えば、要求されたコマンドがどのパッケージに含まれているかを教えてくれる Ubuntu の command-not-found パッケージのように、「You are not permitted to execute this program.」のような警告を表示することができます。</p> |
1918 |
|
|
1919 |
|
<p>例えば、攻撃者の接続元IPアドレスを割り出して、ファイアウォールの設定を変更することができます。</p> |
1920 |
|
|
1921 |
<p>この機能を使うには、以下のように指定します。</p> |
<p>この機能を使うには、以下のように指定します。</p> |
1922 |
|
|
1923 |
<table border="1"> |
<table border="1"> |
1924 |
<tr><td>/proc/ccs/domain_policy の例</td><td>意味</td></tr> |
<tr><td>/proc/ccs/profile の例</td><td>/proc/ccs/domain_policy の例</td><td>意味</td></tr> |
1925 |
<tr><td>execute_handler /usr/sbin/check-and-exec</td><td>このドメインに属しているプロセスがプログラムの実行を要求した場合、要求されたプログラムを実行する代わりに/usr/sbin/check-and-execを実行する。/usr/sbin/check-and-execはパラメータをチェックし、妥当と判断した場合には要求されたプログラムを実行する。</td></tr> |
<tr><td>3-MAC_FOR_FILE=enforcing</td><td>use_profile 3<br>denied_execute_handler /bin/true</td><td>プロファイル 3 が割り当てられているドメインに属しているプロセスが、許可されていないプログラムの実行を要求した場合、代わりに /bin/true を実行します。</td></tr> |
1926 |
</table> |
</table> |
1927 |
|
|
1928 |
|
<p>この機能を使用する際の注意事項は<a name="denied_execute_handler">許可されていないプログラムの実行が要求された場合の代替処理指定</a>と同じです。</p> |
1929 |
|
|
1930 |
<hr> |
<hr> |
1931 |
<p><a href="index.html#manual">目次へ戻る</a></p> |
<p><a href="index.html#manual">目次へ戻る</a></p> |
1932 |
<hr> |
<hr> |