Red Hat Training

A Red Hat training course is available for RHEL 8

54.2. CLI を使用した IdM ドメインでの HBAC ルールの設定

ホストベースのアクセス制御用にドメインを設定するには、次の手順を実行します。

注記

カスタム HBAC ルールを作成する前に、allow_all ルールを無効にしないでください。カスタムルールを作成する前にこれを無効にすると、すべてのユーザーのすべてのホストへのアクセスが拒否されます。

54.2.1. IdM CLI での HBAC ルールの作成

IdM CLI を使用してホストベースのアクセス制御用にドメインを設定するには、以下の手順に従います。この例では、任意のサービスを使用してドメイン内のすべてのシステムにアクセスする権限を、1 人のユーザー sysadmin に付与する方法を説明します。

注記

IdM は、ユーザーのプライマリーグループを、IdM グループオブジェクトへのリンクの代わりに、gidNumber 属性の数値として保存します。このため、HBAC ルールで参照できるのはユーザーの補助グループだけで、プライマリーグループは参照できません。

前提条件

  • ユーザー sysadmin が IdM に存在する。

手順

  1. ipa hbacrule-add コマンドを使用して、ルールを追加します。

    $ ipa hbacrule-add
    Rule name: rule_name
    ---------------------------
    Added HBAC rule "rule_name"
    ---------------------------
      Rule name: rule_name
      Enabled: TRUE
  2. sysadmin ユーザーのみに HBAC ルールを適用するには、ipa hbacrule-add-user コマンドを使用します。

    $ ipa hbacrule-add-user --users=sysadmin
    Rule name: rule_name
      Rule name: rule_name
      Enabled: True
      Users: sysadmin
    -------------------------
    Number of members added 1
    -------------------------
    注記

    すべてのユーザーに HBAC ルールを適用するには、ipa hbacrule-mod コマンドを使用して、all ユーザーカテゴリー --usercat=all を指定します。HBAC ルールが個々のユーザーまたはグループに関連付けられていると、ipa hbacrule-mod --usercat=all は失敗します。この場合は、ipa hbacrule-remove-user コマンドを使用して、ユーザーとグループを削除します。

  3. ターゲットホストを指定します。すべてのホストに HBAC ルールを適用するには、ipa hbacrule-mod コマンドを使用して、all ホストカテゴリーを指定します。

    $ ipa hbacrule-mod rule_name --hostcat=all
    ------------------------------
    Modified HBAC rule "rule_name"
    ------------------------------
      Rule name: rule_name
      Host category: all
      Enabled: TRUE
      Users: sysadmin
    注記

    HBAC ルールが個々のホストまたはグループに関連付けられていると、ipa hbacrule-mod --hostcat=all は失敗します。この場合は、ipa hbacrule-remove-host コマンドを使用して、ホストとグループを削除します。

  4. ターゲットの HBAC サービスを指定します。すべてのサービスに HBAC ルールを適用するには、ipa hbacrule-mod コマンドを使用して、all サービスカテゴリーを指定します。

    $ ipa hbacrule-mod rule_name --servicecat=all
    ------------------------------
    Modified HBAC rule "rule_name"
    ------------------------------
      Rule name: rule_name
      Host category: all
      Service category: all
      Enabled: True
      Users: sysadmin
注記

HBAC ルールが個々のサービスまたはグループに関連付けられていると、ipa hbacrule-mod --servicecat=all は失敗します。この場合は、ipa hbacrule-remove-service コマンドを使用して、サービスとグループを削除します。

検証

  • HBAC ルールが正しく追加されたことを確認します。

    1. ipa hbacrule-find コマンドを使用して、HBAC ルールが IdM に存在することを確認します。
    2. ipa hbacrule-show コマンドを使用して、HBAC ルールのプロパティーを確認します。

関連情報

54.2.2. IdM CLI での HBAC ルールのテスト

IdM では、シミュレートシナリオを使用して、さまざまな状況で HBAC 設定をテストできます。シミュレートしたテストを実行することで、実稼働環境に HBAC ルールをデプロイする前に、設定ミスやセキュリティーリスクを見つけることができます。

実稼働環境で使用する前に、カスタム HBAC ルールを常にテストしてください。

IdM では、信頼された Active Directory (AD) ユーザーに対する HBAC ルールの影響については検証されない点に注意してください。IdM LDAP ディレクトリーには AD データが保存されないため、IdM は、HBAC シナリオをシミュレートするときに AD ユーザーのグループメンバーシップを解決できません。

手順

  1. ipa hbactest コマンドを使用して、HBAC ルールをテストします。1 つの HBAC ルールをテストする方法と、複数の HBAC ルールをテストする方法があります。

    • 1 つの HBAC ルールをテストするには、以下を実行します。

      $ ipa hbactest --user=sysadmin --host=server.idm.example.com --service=sudo --rules=rule_name
      ---------------------
      Access granted: True
      ---------------------
        Matched rules: rule_name
    • 複数の HBAC ルールをテストするには、以下を実行します。

      1. sysadmin にすべてのホストで ssh の使用のみを許可する 2 番目のルールを追加します。

        $ ipa hbacrule-add --hostcat=all rule2_name
        $ ipa hbacrule-add-user --users sysadmin rule2_name
        $ ipa hbacrule-add-service --hbacsvcs=sshd rule2_name
          Rule name: rule2_name
          Host category: all
          Enabled: True
          Users: admin
          HBAC Services: sshd
        -------------------------
        Number of members added 1
        -------------------------
      2. 次のコマンドを実行して、複数の HBAC ルールをテストします。

        $ ipa hbactest --user=sysadmin --host=server.idm.example.com --service=sudo --rules=rule_name --rules=rule2_name
        --------------------
        Access granted: True
        --------------------
          Matched rules: rule_name
          Not matched rules: rule2_name

出力において、Matched rules には正常なアクセスを許可したルールがリスト表示され、Not matched rules にはアクセスを妨げたルールがリスト表示されます。--rules オプションを指定しない場合は、すべてのルールが適用されることに注意してください。--rules を使用すると、各ルールを個別にテストするのに役立ちます。

関連情報

  • 詳細は、ipa hbactest --help を参照してください。

54.2.3. IdM CLI での HBAC ルールの無効化

HBAC ルールを無効にすることはできますが、ルールは非アクティブ化されるだけで、削除されません。HBAC ルールを無効にした場合は、後で再度有効にできます。

注記

カスタム HBAC ルールを初めて設定する場合は、HBAC ルールを無効にすると便利です。新しい設定がデフォルトの low_all HBAC ルールで上書きされないようにするには、low_all を無効にする必要があります。

手順

  • ipa hbacrule-disable コマンドを使用します。たとえば、allow_all ルールを無効にするには、次のコマンドを実行します。

    $ ipa hbacrule-disable allow_all
    ------------------------------
    Disabled HBAC rule "allow_all"
    ------------------------------

関連情報

  • 詳細は、ipa hbacrule-disable --help を参照してください。