検索

11.3.8. アクセスの許可: audit2allow

download PDF
警告
実稼働環境では、このセクションの例を使用しないでください。これは、audit2allow ユーティリティーの使用を実証する目的でのみ使用されます。
audit2allow ユーティリティーは、拒否された操作のログから情報を収集し、SELinux ポリシー許可ルールを生成します。[13] 「sealert メッセージ」に従って拒否メッセージを分析し、ラベル変更やブール値によるアクセスが許可されていない場合は、audit2allow を使用してローカルポリシーモジュールを作成します。SELinux がアクセスを拒否した場合に、audit2allow を実行すると、拒否したアクセスを許可する Type Enforcement ルールが生成されます。
SELinux 拒否が表示された場合、最初に audit2allow を使用してローカルポリシーモジュールを生成しないでください。トラブルシューティングは、ラベル付けの問題があるかどうかを最初に確認します。2 番目に多いのが、SELinux が、プロセスの設定変更を認識していない場合です。詳細は、Four Key Causes of SELinux Errors のホワイトペーパーを参照してください。
以下の例は、audit2allow を使用してポリシーモジュールを作成する例を示しています。
  1. 拒否メッセージと関連するシステムコールが/var/log/audit/audit.log ファイルにログ記録されます。
    type=AVC msg=audit(1226270358.848:238): avc:  denied  { write } for  pid=13349 comm="certwatch" name="cache" dev=dm-0 ino=218171 scontext=system_u:system_r:certwatch_t:s0 tcontext=system_u:object_r:var_t:s0 tclass=dir
    
    type=SYSCALL msg=audit(1226270358.848:238): arch=40000003 syscall=39 success=no exit=-13 a0=39a2bf a1=3ff a2=3a0354 a3=94703c8 items=0 ppid=13344 pid=13349 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="certwatch" exe="/usr/bin/certwatch" subj=system_u:system_r:certwatch_t:s0 key=(null)
    
    この例では、certwatchvar_t タイプのラベルが付けられたディレクトリーへの書き込みアクセスを拒否します。「sealert メッセージ」に従って拒否メッセージを分析します。ラベル変更やブール値によるアクセスが許可されていない場合は、audit2allow を使用してローカルポリシーモジュールを作成します。
  2. 以下のコマンドを入力して、アクセスが拒否された理由を人間が判読できるように説明します。audit2allow ユーティリティーは /var/log/audit/audit.log を読み取ります。そのような場合は、root ユーザーとして実行する必要があります。
    ~]# audit2allow -w -a
    type=AVC msg=audit(1226270358.848:238): avc:  denied  { write } for  pid=13349 comm="certwatch" name="cache" dev=dm-0 ino=218171 scontext=system_u:system_r:certwatch_t:s0 tcontext=system_u:object_r:var_t:s0 tclass=dir
    	Was caused by:
    		Missing type enforcement (TE) allow rule.
    
    	You can use audit2allow to generate a loadable module to allow this access.
    
    -a コマンドラインオプションを指定すると、すべての監査ログが読み込まれます。-w オプションは、人間が判読できる記述を生成します。このように、Type Enforcement ルールがないため、アクセスが拒否されました。
  3. 次のコマンドを入力して、拒否されたアクセスを許可する Type Enforcement ルールを表示します。
    ~]# audit2allow -a
    
    
    #============= certwatch_t ==============
    allow certwatch_t var_t:dir write;
    
    重要
    欠落している Type Enforcement ルールは、通常 SELinux ポリシーのバグにより発生するため、Red Hat Bugzilla で報告する必要があります。Red Hat Enterprise Linux の場合、Red Hat Enterprise Linux の製品に対してバグを作成し、selinux-policy コンポーネントを選択します。このバグレポートに、audit2allow -w -a および audit2allow -a コマンドの出力を追加します。
  4. audit2allow -a が表示するルールを使用するには、root で以下のコマンドを実行して、カスタムモジュールを作成します。-M オプションは、-M で指定された名前で、現在の作業ディレクトリーに、Type Enforcement ファイル (.te) を作成します。
    ~]# audit2allow -a -M mycertwatch
    ******************** IMPORTANT ***********************
    To make this policy package active, execute:
    
    semodule -i mycertwatch.pp
    
  5. また、audit2allow は、Type Enforcement ルールをポリシーパッケージ (.pp) にコンパイルします。
    ~]# ls
    mycertwatch.pp  mycertwatch.te
    
    モジュールをインストールするには、root で以下のコマンドを実行します。
    ~]# semodule -i mycertwatch.pp
    重要
    audit2allow で作成したモジュールは、必要以上のアクセスを許可する場合があります。audit2allow で作成したポリシーは、アップストリームの SELinux 一覧に投稿して確認することが推奨されます。 ポリシーにバグがあると思われる場合は、Red Hat Bugzilla でバグを作成します。
複数のプロセスからの拒否メッセージが複数存在し、1 つのプロセスに対してのみカスタムポリシーを作成する場合は、grep ユーティリティーを使用して、audit2allow の入力内容を絞り込みます。以下の例は、grep を使用して、audit2allow 経由で certwatch に関連する拒否メッセージのみを送信することを示しています。
~]# grep certwatch /var/log/audit/audit.log | audit2allow -R -M mycertwatch2
******************** IMPORTANT ***********************
To make this policy package active, execute:

semodule -i mycertwatch2.pp


[13] audit2allow の詳細は、audit2allow(1) man ページを参照してください。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.