Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

31.2. IdM ドメインでのホストベースのアクセス制御の設定

ホストベースのアクセス制御にドメインを設定するには、次のコマンドを実行します。
  1. 重要
    カスタムの HBAC ルールを作成する前に、allow_all ルールを無効にしないでください。これを実行する場合、ユーザーはどのホストにもアクセスできなくなります。

31.2.1. HBAC ルールの作成

HBAC ルールを作成するには、以下を使用できます。
例については、「HBAC ルールの例」
注記
IdM は、ユーザーのプライマリーグループを、IdM グループオブジェクトへのリンクではなく、gidNumber 属性の数値として保存します。このため、HBAC ルールはユーザーの補助グループのみを参照でき、プライマリーグループではありません。

Web UI: HBAC ルールの作成

  1. PolicyHost-Based Access ControlHBAC Rules を選択します。
  2. Add をクリックして、新規ルールの追加を開始します。
  3. ルールの名前を入力し、Add and Edit をクリックして HBAC ルール設定ページに直接移動します。
  4. Who エリアで、ターゲットユーザーを指定します。
    • HBAC ルールを指定されたユーザーまたはグループのみに適用するには、Specified Users and Groups を選択します。次に、Add をクリックしてユーザーまたはグループを追加します。
    • HBAC ルールをすべてのユーザーに適用するには、Anyone を選択します。

    図31.2 HBAC ルール用のターゲットユーザーの指定

    HBAC ルール用のターゲットユーザーの指定
  5. Accessing エリアで、ターゲットホストを指定します。
    • HBAC ルールを指定されたホストまたはグループのみに適用するには、Specified Hosts and Groups を選択します。次に、Add をクリックしてホストまたはグループを追加します。
    • HBAC ルールをすべてのホストに適用するには、任意のホスト を選択します
  6. Via Service エリアで、ターゲット HBAC サービスを指定します。
    • HBAC ルールを指定されたサービスまたはグループのみに適用するには、Specified Services and Groups を選択します。Add をクリックしてサービスまたはグループを追加します。
    • HBAC ルールをすべてのサービスに適用するには、Any Service を選択します。
    注記
    最も一般的なサービスとサービスグループのみが、デフォルトで HBAC ルール用に設定されます。
    • 現在利用できるサービスの一覧を表示するには、PolicyHost-Based Access ControlHBAC Services を選択します。
    • Host-Based Access ControlHBAC サービスグループを選択します。
  7. HBAC ルール設定ページで特定の設定を変更すると、ページの上部にある Save ボタンが強調表示されます。その場合は、ボタンをクリックして変更を確認します。

コマンドライン: HBAC ルールの作成

  1. ipa hbacrule-add コマンドを使用して、ルールを追加します。
    $ ipa hbacrule-add
    Rule name: rule_name
    ---------------------------
    Added HBAC rule "rule_name"
    ---------------------------
      Rule name: rule_name
      Enabled: TRUE
  2. ターゲットユーザーを指定します。
    • HBAC ルールを指定されたユーザーまたはグループのみに適用するには、ipa hbacrule-add-user コマンドを使用します。
      たとえば、グループを追加するには、次のコマンドを実行します。
      $ ipa hbacrule-add-user
      Rule name: rule_name
      [member user]:
      [member group]: group_name
        Rule name: rule_name
        Enabled: TRUE
        User Groups: group_name
      -------------------------
      Number of members added 1
      -------------------------
      複数のユーザーまたはグループを追加するには、--users および -- groups オプションを使用します。
      $ ipa hbacrule-add-user rule_name --users=user1 --users=user2 --users=user3
        Rule name: rule_name
        Enabled: TRUE
        Users: user1, user2, user3
      -------------------------
      Number of members added 3
      -------------------------
    • HBAC ルールをすべてのユーザーに適用するには、ipa hbacrule-mod コマンドを使用して、すべてのユーザーカテゴリーを指定します
      $ ipa hbacrule-mod rule_name --usercat=all
      ------------------------------
      Modified HBAC rule "rule_name"
      ------------------------------
        Rule name: rule_name
        User category: all
        Enabled: TRUE
      注記
      HBAC ルールが個別のユーザーまたはグループに関連付けられている場合、ipa hbacrule-mod --usercat=all は失敗します。このような場合は、ipa hbacrule-remove-user コマンドを使用してユーザーおよびグループを削除します。
      詳細は、--help オプションを指定して ipa hbacrule-remove-user を実行します。
  3. ターゲットホストを指定します。
    • HBAC ルールを指定されたホストまたはグループのみに適用するには、ipa hbacrule-add-host コマンドを使用します。
      たとえば、ホスト 1 つを追加するには、次のコマンドを実行します。
      $ ipa hbacrule-add-host
      Rule name: rule_name
      [member host]: host.example.com
      [member host group]:
        Rule name: rule_name
        Enabled: TRUE
        Hosts: host.example.com
      -------------------------
      Number of members added 1
      -------------------------
      複数のホストまたはグループを追加するには、--hosts オプションおよび -- hostgroups オプションを使用します。
      $ ipa hbacrule-add-host rule_name --hosts=host1 --hosts=host2 --hosts=host3
        Rule name: rule_name
        Enabled: TRUE
        Hosts: host1, host2, host3
      -------------------------
      Number of members added 3
      -------------------------
    • HBAC ルールをすべてのホストに適用するには、ipa hbacrule-mod コマンドを使用して、すべてのホストカテゴリーを指定します
      $ ipa hbacrule-mod rule_name --hostcat=all
      ------------------------------
      Modified HBAC rule "rule_name"
      ------------------------------
        Rule name: rule_name
        Host category: all
        Enabled: TRUE
      注記
      HBAC ルールが個別のホストまたはグループに関連付けられている場合、ipa hbacrule-mod --hostcat=all は失敗します。この場合は、ipa hbacrule-remove-host コマンドを使用してホストとグループを削除します。
      詳細は、--help オプションを指定して ipa hbacrule-remove-host を実行します。
  4. ターゲット HBAC サービスを指定します。
    • HBAC ルールを指定されたサービスまたはグループのみに適用するには、ipa hbacrule-add-service コマンドを使用します。
      たとえば、サービスを 1 つに追加するには、次のコマンドを実行します。
      $ ipa hbacrule-add-service
      Rule name: rule_name
      [member HBAC service]: ftp
      [member HBAC service group]:
      Rule name: rule_name
      Enabled: TRUE
      Services: ftp
      -------------------------
      Number of members added 1
      -------------------------
      複数のサービスまたはグループを追加するには、--hbacsvcs および --hbacsvcgroups オプションを使用します。
      $ ipa hbacrule-add-service rule_name --hbacsvcs=su --hbacsvcs=sudo
        Rule name: rule_name
        Enabled: TRUE
        Services: su, sudo
      -------------------------
      Number of members added 2
      -------------------------
      注記
      最も一般的なサービスとサービスグループのみが、HBAC ルール用に設定されます。「カスタム HBAC サービスの HBAC サービスエントリーの追加」「HBAC サービスグループの追加」
    • HBAC ルールをすべてのサービスに適用するには、ipa hbacrule-mod コマンドを使用して、すべてのサービスカテゴリーを指定します
      $ ipa hbacrule-mod rule_name --servicecat=all
      ------------------------------
      Modified HBAC rule "rule_name"
      ------------------------------
        Rule name: rule_name
        Service category: all
        Enabled: TRUE
      注記
      HBAC ルールが個別のサービスまたはグループに関連付けられている場合、ipa hbacrule-mod --servicecat=all は失敗します。このような場合は、ipa hbacrule-remove-service コマンドを使用してサービスおよびグループを削除します。
      詳細は、--help オプションを指定して ipa hbacrule-remove-service を実行します。
  5. 任意です。HBAC ルールが正しく追加されたことを確認します。
    1. ipa hbacrule-find コマンドを使用して、HBAC ルールが IdM に追加されたことを確認します。
    2. ipa hbacrule-show コマンドを使用して、HBAC ルールのプロパティーを確認します。
    詳細は、--help オプションを指定してコマンドを実行します。

HBAC ルールの例

例31.1 任意のサービスを使用したすべてのホストへのアクセス権の付与

admin ユーザーが任意のサービスを使用してドメインのすべてのシステムにアクセスできるようにするには、新規の HBAC ルールを作成して設定します。
  • adminするユーザー
  • ホストが 任意のホスト(Web UI で) か、ipa hbacrule-add(ルールを追加する場合)または ipa hbacrule-mod--hostcat=all を使用します。
  • (Web UI で) サービスへのサービス、または ipa hbacrule-add (ルールを追加する場合)で --servicecat=all を使用する、または ipa hbacrule-mod

例31.2 特定のサービスのみがホストにアクセスできるようにする

すべてのユーザーが sudo- 関連のサービスを使用して host.example.com という名前のホストにアクセスできるようにするには、新規の HBAC ルールを作成して設定します。
  • ユーザーが (Web UI で) ipa hbacrule-add(ルールを追加する場合)または ipa hbacrule-mod--usercat=all を使用します。
  • host.example.com へのホスト
  • HBAC サービスグループの Sudo: sudo および関連サービスのデフォルトグループです。

31.2.2. HBAC ルールのテスト

IdM を使用すると、シミュレーションシナリオを使用して、各種の状況で HBAC 設定をテストできます。シミュレーションされたテストの実行を実行することで、実稼働環境で HBAC ルールをデプロイする前に、設定が間違っている問題またはセキュリティーリスクを検出できます。
重要
実稼働環境で使用を開始する前に、常にカスタム HBAC ルールをテストします。
IdM は、信頼された Active Directory(AD)ユーザーで HBAC ルールの影響をテストしないことに注意してください。AD データは IdM LDAP ディレクトリーに保存されないので、HBAC シナリオをシミュレートする際に、IdM は AD ユーザーのグループメンバーシップを解決できません。
HBAC ルールをテストするには、以下を使用できます。

Web UI: HBAC ルールのテスト

  1. PolicyHost-Based Access ControlHBAC Test を選択します。
  2. Who 画面で: テストを実行するアイデンティティーの下のユーザーを指定し、Next をクリックします。

    図31.3 HBAC テスト用のターゲットユーザーの指定

    HBAC テスト用のターゲットユーザーの指定
  3. アクセス画面で - ユーザーがアクセスを試みるホストを指定し、次へ をクリックします。
  4. Via Service 画面で: ユーザーが使用を試行するサービスを指定し、Next をクリックします。
  5. ルール 画面で - テストする HBAC ルールを選択し、Next をクリックします。ルールを選択しないと、すべてのルールがテストされます。
    Include Enabled を選択して、ステータスが Enabled のすべてのルールでテストを実行します。Include Disabled を選択し、ステータスが Disabled のすべてのルールでテストを実行します。HBAC ルールのステータスを表示し、変更するには、PolicyHost-Based Access ControlHBAC Rules を選択します。
    重要
    テストが複数のルールで実行される場合、選択したルールの 1 つがアクセスを許可すると、テストが正常に渡されます。
  6. Run Test 画面で Run Test をクリックします。

    図31.4 HBAC テストの実行

    HBAC テストの実行
  7. テスト結果を確認します。
    • ACCESS DENIED が表示されると、そのユーザーにはテストのアクセスが付与されていません。
    • ACCESS GRANTED が表示されると、ユーザーはホストに正常にアクセスできました。

    図31.5 HBAC テスト結果の確認

    HBAC テスト結果の確認
    デフォルトでは、IdM はテスト結果を表示する際にテストを行ったすべての HBAC ルールを一覧表示します。
    • Matched を選択して、アクセスに成功したルールを表示します。
    • Unmatched を選択し、アクセスを阻止するルールを表示します。

コマンドライン: HBAC ルールのテスト

ipa hbactest コマンドを使用して、少なくとも以下を指定します。
  • テストを実行するアイデンティティーの下のユーザー
  • ユーザーがアクセスを試みるホスト
  • ユーザーが使用を試みるサービス
たとえば、これらの値を対話的に指定すると、以下のようになります。
$ ipa hbactest
User name: user1
Target host: example.com
Service: sudo
---------------------
Access granted: False
---------------------
Not matched rules: rule1
デフォルトでは、IdM は状態が有効なすべての HBAC ルールでテストを実行します。異なる HBAC ルールを指定するには、次のコマンドを実行します。
  • --rules オプションを使用して、1 つ以上の HBAC ルールを定義します。
  • --disabled オプションを使用して、ステータスが無効にされたすべての HBAC ルールをテストします。
HBAC ルールの現在のステータスを確認するには、ipa hbacrule-find コマンドを実行します。

例31.3 コマンドラインでの HBAC ルールのテスト

以下のテストでは、rule2 という名前の HBAC ルールにより 、user1sudo サービスを使用して example.com にアクセスできないようにします。
$ ipa hbactest --user=user1 --host=example.com --service=sudo --rules=rule1
---------------------
Access granted: False
---------------------
  Not matched rules: rule1

例31.4 コマンドラインでの複数 HBAC ルールのテスト

複数の HBAC ルールをテストする際に、少なくとも 1 つのルールによりユーザーの正常なアクセスが許可されている場合はテストにパスします。
$ ipa hbactest --user=user1 --host=example.com --service=sudo --rules=rule1 --rules=rule2
--------------------
Access granted: True
--------------------
  Matched rules: rule2
  Not matched rules: rule1
出力では、以下のようになります。
  • 一致したルールには、アクセスの成功を許可されるルールが一覧表示されます。
  • 一致しないルールは、アクセスを阻止するルールを一覧表示します。

31.2.3. HBAC ルールの無効化

HBAC ルールを無効にするとルールが非アクティブになりますが、これを削除しません。HBAC ルールを無効にする場合は、後で再度有効にできます。
注記
たとえば、HBAC ルールを無効にする場合は、カスタムの HBAC ルールを最初に設定した後に役に立ちます。新規設定がデフォルトの allow_all HBAC ルールで上書きされないようにするには、allow_all を無効にする必要があります。
HBAC ルールを無効にするには、以下を使用できます。

Web UI: HBAC ルールの無効化

  1. PolicyHost-Based Access ControlHBAC Rules を選択します。
  2. 無効にする HBAC ルールを選択し、無効 をクリックします。

図31.6 allow_all HBAC ルールの無効化

allow_all HBAC ルールの無効化

コマンドライン: HBAC ルールの無効化

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

このページには機械翻訳が使用されている場合があります (詳細はこちら)。