AUDIT2ALLOW

NAME
SYNOPSIS
OPTIONS
DESCRIPTION

著者:

NAME

audit2allow − SELinuxポリシのallowルールをアクセス拒否操作のログから生成

SYNOPSIS

audit2allow [options]

OPTIONS

−a | −−all

auditログとmessageログを入力とする。-iと衝突。

−d | −−dmesg

/bin/dmesgコマンドの出力を入力とする。 auditdが起動している時は、全ての監査メッセージがdmesgで出力されるわけではないことに注意が必要である。"ausearch -m avc|audit2allow" または"-a"オプシ ョンを代わりに使うこと。

−f | −−fcfile <File Context File>

ファイルコンテキストファイル(fcファイル)を、生成されたモジュールパッケージに追加する。 -Mオプションが必要。

−h | −−help

簡単な利用法を出力する。

−i <inputfile> | −−input <inputfile>

<inputfile>から読み込む。

−l | −−lastreload

最後のポリシ再読み込み以降のログを入力とする。

−m <modulename> | −−module <modulename>

<modulename>で指定された「module」文及び、require文を出力。

−M <modulename>

ポリシとして読み込み可能な(訳注:バイナリ形式のファイルのこと)モジュールパッケージを生成。-oオプションと衝突。

−o <outputfile> | −−output <outputfile>

<outputfile>に出力を追記。

−r | −−requires

ポリシモジュールの書式である「require」文を出力。

−t | −−tefile

入 力がte(type enforcement)ファイルであることを示す。これは、古い書式のファイルを新しい書式に変換する場合に使える。

−v | −−verbose

より多くのメッセージを出力する。

DESCRIPTION

このユーティリティは、アクセス拒否のログメッセージを読み込み、それらのア ク セ ス 拒否を許可をするようなポリシー記述を生成する。しかし、これはType Enforcement(TE)のallowルールのみを生成する。ある種のアクセス拒否ログについては、別の方法でのポリシー変更が必要になることがある。つまり、(constraint文の制約を満たすべく)タイプに属性を付与したり 、 ロ ー ルのallow文を追加したり、contraint文を修正したり、という具合である。何を すべきか分からない時は、 audit2why(8)ユーティリティが使えるかもしれない。

ア ク セ ス 許可しようとする設定が、セキュリティ上の脅威にならないか、 audit2allowの出力を見る際には、アクセス許可しようとする設定が、セキュリティ上の脅威にならないか、注意を払わなければならない。

このユーティリティがしばしば提示する広い範囲の修正(訳注:多くのアクセスを許可するような設定、という意味合いだと思われます)を実際に追加してい くよりも、より狭いアクセス許可を与えるように新しいドメイン、タイプを定義したり、ポリシの構造を変えたほうが良い場合がある。いくつかのパーミッション拒否は、アプリケーションにとって致命的でないことがある。そのような場合は、allow文を追加するよりも、「dontaudit」文で、アクセス拒否ログをでないようにしたほうが良いかもしれない。

モノリシックな(モジュール化されていない)ポリシを出力する例
$ cd /etc/selinux/$SELINUXTYPE/src/policy
$ cat /var/log/audit/audit.log | audit2allow >> domains/misc/local.te
$ cat domains/misc/local.te
allow cupsd_config_t unconfined_t:fifo_file { getattr ioctl };
<review domains/misc/local.te and customize as desired>
$ make load

モジュール対応したポリシを出力する例

$ cat /var/log/audit/audit.log | audit2allow -m local > local.te
$ cat local.te
module local 1.0;

require {
        role system_r;

       class fifo_file {  getattr ioctl };

       type cupsd_config_t;
        type unconfined_t;
 };

allow cupsd_config_t unconfined_t:fifo_file { getattr ioctl };
<review local.te and customize as desired>

手動でモジュールポリシをコンパイルする

# Compile the module
$ checkmodule -M -m -o local.mod local.te
# Create the package
$ semodule_package -o local.pp -m local.mod
# Load the module into the kernel
$ semodule -i local.pp

audit2allowで、モジュール対応したポリシを出力し、さらにコンパイルも行う
$ cat /var/log/audit/audit.log | audit2allow -M local
Generating type enforcment file: local.te
Compiling policy: checkmodule -M -m -o local.mod local.te
Building package: semodule_package -o local.pp -m local.mod

******************** 重要 ***********************

生成されたポリシパッケージ(訳注:local.ppのこと)をカーネルに読み込ませるには、次を実行しなければならない。

semodule -i local.pp
[MEMO] semodule -r local
       semodule -l      リストを取る       追加のrpm checkpolicy.rpm
       audit2allow -M local -i /var/log/audit/audit.log  マクロに依るモジュール作成とソースリストの作成

著者:

このマニュアルは Debian GNU/Linuxシステム向け に 、 Manoj Srivastava <srivasta@debian.org>, 似よって執筆され、Dan Walsh <dwalsh@redhat.com> によって更新された。

The audit2allowユーティリティは、 Justin R. SmithYuichi NakamuraDan Walsh らの貢献によって成り立っている。