SELinux : audit2allow 基本操作2025/10/22 |
|
[audit2allow] コマンドにより AVC 拒否のログを分析し SELinux ポリシーに対してアクセス許可するルールを生成することができます。これにより容易にポリシーのカスタマイズが可能です。 ただし、SETroubleShoot 等を利用して自身でログを確認し、解決方法を判断して、[restorecon] コマンド や [chcon] コマンドにより必要最小限の許可を与える方法と比べると、[audit2allow] によって生成される許可ルールは粗い場合があり、必要以上の許可を与えてしまうこともあるため、利用する際は注意が必要です。 なお、[audit2allow] コマンドがない場合は [dnf install policycoreutils-python-utils] としてインストール可能です。 |
|
| [1] | ログを読み込み、拒否された理由を表示します。 ログファイルを指定しない場合のデフォルトは [/var/log/audit/audit.log] を読み込みます。 ログファイルを指定する場合は [-a] の代わりに [-i ログファイル] と指定します。 |
|
# audit.log から AVC 拒否を全て読み取って理由を表示 dlp:~ # audit2allow -w -a
type=AVC msg=audit(1761101149.745:138): avc: denied { getattr } for pid=2041 comm="rsyslogd" path="/run/rsyslog/additional-log-sockets.conf" dev="tmpfs" ino=1914 scontext=system_u:system_r:syslogd_t:s0 tcontext=unconfined_u:object_r:var_run_t:s0 tclass=file permissive=0
Was caused by:
Missing type enforcement (TE) allow rule.
You can use audit2allow to generate a loadable module to allow this access.
type=AVC msg=audit(1761101149.745:139): avc: denied { getattr } for pid=2041 comm="rsyslogd" path="/run/rsyslog/additional-log-sockets.conf" dev="tmpfs" ino=1914 scontext=system_u:system_r:syslogd_t:s0 tcontext=unconfined_u:object_r:var_run_t:s0 tclass=file permissive=0
Was caused by:
Missing type enforcement (TE) allow rule.
You can use audit2allow to generate a loadable module to allow this access.
.....
.....
# 例えば ausearch と併用して特定のログに絞っての表示も可 # [date] コマンドで日付表示の設定確認 dlp:~ # date '+%x' 10/22/25 dlp:~ # ausearch -m AVC --start 10/20/25 00:00:00 --end 10/22/25 18:00:00 | audit2allow -w
type=AVC msg=audit(1761101149.745:138): avc: denied { getattr } for pid=2041 comm="rsyslogd" path="/run/rsyslog/additional-log-sockets.conf" dev="tmpfs" ino=1914 scontext=system_u:system_r:syslogd_t:s0 tcontext=unconfined_u:object_r:var_run_t:s0 tclass=file permissive=0
Was caused by:
Missing type enforcement (TE) allow rule.
You can use audit2allow to generate a loadable module to allow this access.
type=AVC msg=audit(1761101149.745:139): avc: denied { getattr } for pid=2041 comm="rsyslogd" path="/run/rsyslog/additional-log-sockets.conf" dev="tmpfs" ino=1914 scontext=system_u:system_r:syslogd_t:s0 tcontext=unconfined_u:object_r:var_run_t:s0 tclass=file permissive=0
Was caused by:
Missing type enforcement (TE) allow rule.
You can use audit2allow to generate a loadable module to allow this access.
.....
.....
# -a オプションで必要なアクセス権を表示 dlp:~ # ausearch -m AVC --start 10/20/25 00:00:00 --end 10/22/25 18:00:00 | audit2allow -a
#============= httpd_t ==============
allow httpd_t reserved_port_t:tcp_socket name_bind;
#============= syslogd_t ==============
allow syslogd_t var_run_t:file { getattr open read };
|
| [2] | 許可ルールを生成するには以下のように設定します。 |
|
# 例として [test_rule] というモジュールを生成 dlp:~ # ausearch -m AVC --start 10/20/25 00:00:00 --end 10/22/25 18:00:00 | audit2allow -a -M test_rule ******************** IMPORTANT *********************** To make this policy package active, execute: semodule -i test_rule.pp # 表示された通りにコマンド実行してモジュールインストール dlp:~ # semodule -i test_rule.pp
# モジュールが読み込まれているか確認 dlp:~ # semodule -l | grep test_rule test_rule |
|
以上で以下のようにアクセス可能になる場合もあります。また、そうでない場合もあります。 |
| Sponsored Link |
|
|