第26章 fapolicyd RHEL システムロールを使用したアプリケーションの実行の制限


fapolicyd ソフトウェアフレームワークを使用すると、ユーザー定義のポリシーに基づいてアプリケーションの実行を制限できます。このフレームワークは、実行前にアプリケーションの整合性を検証します。これは、悪意のある可能性のある信頼できないアプリケーションの実行を防ぐ効率的な方法です。fapolicyd RHEL システムロールを使用すると、fapolicyd のインストールと設定を自動化できます。

重要

fapolicyd サービスは、root としてではなく、通常のユーザーとして実行される不正なアプリケーションの実行のみを防止します。

26.1. fapolicyd RHEL システムロールを使用してユーザーによる信頼できないコードの実行を防止する

fapolicyd RHEL システムロールを使用すると、fapolicyd サービスのインストールと設定を自動化できます。このロールを使用すると、RPM データベースや許可リストに指定されているアプリケーションなど、信頼できるアプリケーションのみをユーザーが実行できるようにサービスをリモートで設定できます。さらに、サービスは許可されたアプリケーションを実行する前に整合性チェックを実行できます。

前提条件

手順

  1. 次の内容を含む Playbook ファイル (例: ~/playbook.yml) を作成します。

    ---
    - name: Configuring fapolicyd
      hosts: managed-node-01.example.com
      tasks:
        - name: Allow only executables installed from RPM database and specific files
          ansible.builtin.include_role:
            name: rhel-system-roles.fapolicyd
          vars:
            fapolicyd_setup_permissive: false
            fapolicyd_setup_integrity: sha256
            fapolicyd_setup_trust: rpmdb,file
            fapolicyd_add_trusted_file:
              - <path_to_allowed_command>
              - <path_to_allowed_service>

    サンプル Playbook で指定されている設定は次のとおりです。

    fapolicyd_setup_permissive: <true|false>
    ポリシーの決定をカーネルに送信して適用することを有効または無効にします。デバッグおよびテスト目的の場合、この変数を false に設定します。
    fapolicyd_setup_integrity: <type_type>

    整合性チェック方法を定義します。次のいずれかの値を設定できます。

    • none (デフォルト): 整合性チェックを無効にします。
    • size: サービスにより、許可されたアプリケーションのファイルサイズのみを比較します。
    • ima: サービスにより、カーネルの Integrity Measurement Architecture (IMA) がファイルの拡張属性に保存した SHA-256 ハッシュをチェックします。さらに、サイズチェックも実行します。ロールは IMA カーネルサブシステムを設定しないことに注意してください。このオプションを使用するには、IMA サブシステムを手動で設定する必要があります。
    • sha256: サービスにより、許可されたアプリケーションの SHA-256 ハッシュを比較します。
    fapolicyd_setup_trust: <trust_backends>
    信頼バックエンドのリストを定義します。file バックエンドを含める場合は、fapolicyd_add_trusted_file リストで許可されている実行可能ファイルを指定します。

    Playbook で使用されるすべての変数の詳細は、コントロールノードの /usr/share/ansible/roles/rhel-system-roles.fapolicyd.README.md ファイルを参照してください。

  2. Playbook の構文を検証します。

    $ ansible-playbook ~/playbook.yml --syntax-check

    このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。

  3. Playbook を実行します。

    $ ansible-playbook ~/playbook.yml

検証

  • 許可リストにないバイナリーアプリケーションをユーザーとして実行します。

    $ ansible managed-node-01.example.com -m command -a 'su -c "/bin/not_authorized_application " <user_name>'
    bash: line 1: /bin/not_authorized_application: Operation not permitted non-zero return code

関連情報

  • /usr/share/ansible/roles/rhel-system-roles.fapolicyd/README.md ファイル
  • /usr/share/doc/rhel-system-roles/fapolicyd/ ディレクトリー
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.