47.2. CLI를 사용하여 IdM 도메인에서 HBAC 규칙 구성

호스트 기반 액세스 제어를 위해 도메인을 구성하려면 다음 단계를 완료합니다.

참고

사용자 정의 HBAC 규칙을 만들기 전에 allow_all 규칙을 비활성화하지 마십시오. 사용자 지정 규칙을 만들기 전에 비활성화하면 모든 사용자의 모든 호스트에 대한 액세스가 거부됩니다.

47.2.1. IdM CLI에서 HBAC 규칙 생성

IdM CLI를 사용하여 호스트 기반 액세스 제어를 위해 도메인을 구성하려면 다음 단계를 따르십시오. 이 예제의 목적을 위해 이 절차에서는 단일 사용자인 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 명령을 사용하고 모든 사용자 카테고리 --usercat=all 을 지정합니다. HBAC 규칙이 개별 사용자 또는 그룹과 연결된 경우 ipa hbacrule-mod --usercat=all 이 실패합니다. 이 경우 ipa hbacrule-remove-user 명령을 사용하여 사용자와 그룹을 제거합니다.

  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
      Users: sysadmin
    참고

    HBAC 규칙이 개별 호스트 또는 그룹과 연결된 경우 ipa hbacrule-mod --hostcat=all 이 실패합니다. 이 경우 ipa hbacrule-remove-host 명령을 사용하여 호스트와 그룹을 제거합니다.

  4. 대상 HBAC 서비스를 지정합니다. 모든 서비스에 HBAC 규칙을 적용하려면 ipa hbacrule-mod 명령을 사용하고 모든 서비스 범주를 지정합니다.

    $ 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 명령을 사용하여 IdM에 HBAC 규칙이 있는지 확인합니다.
    2. ipa hbacrule-show 명령을 사용하여 HBAC 규칙의 속성을 확인합니다.

추가 리소스

47.2.2. IdM CLI에서 HBAC 규칙 테스트

IdM을 사용하면 시뮬레이션된 시나리오를 사용하여 다양한 상황에서 HBAC 구성을 테스트할 수 있습니다. 이러한 시뮬레이션 테스트를 수행하면 HBAC 규칙을 프로덕션에 배포하기 전에 잘못된 문제 또는 보안 위험을 확인할 수 있습니다.

프로덕션 환경에서 사용하기 전에 항상 사용자 정의 HBAC 규칙을 테스트합니다.

IdM은 신뢰할 수 있는 AD(Active Directory) 사용자에 대한 HBAC 규칙의 영향을 테스트하지 않습니다. IdM LDAP 디렉터리는 AD 데이터를 저장하지 않기 때문에 HBAC 시나리오를 시뮬레이션할 때 IdM은 AD 사용자의 그룹 멤버십을 확인할 수 없습니다.

절차

  1. ipa hbactest 명령을 사용하여 HBAC 규칙을 테스트합니다. 단일 HBAC 규칙 또는 여러 HBAC 규칙을 테스트할 수 있는 옵션이 있습니다.

    • 단일 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 를 사용하도록 허용하는 두 번째 규칙을 추가합니다.

        $ 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

출력에서 일치된 규칙에 는 성공적으로 액세스할 수 있는 규칙이 나열되고 일치하지 않는 규칙에는 액세스를 방지할 수 있는 규칙이 나열됩니다. --rules 옵션을 지정하지 않으면 모든 규칙이 적용됩니다. --rules 를 사용하면 각 규칙을 독립적으로 테스트하는 데 유용합니다.

추가 리소스

  • 자세한 내용은 ipa hbactest --help 를 참조하십시오.

47.2.3. IdM CLI에서 HBAC 규칙 비활성화

HBAC 규칙을 비활성화할 수는 있지만 규칙을 비활성화하여 삭제하지 않습니다. HBAC 규칙을 비활성화하면 나중에 다시 활성화할 수 있습니다.

참고

HBAC 규칙을 비활성화하면 사용자 정의 HBAC 규칙을 처음 구성할 때 유용합니다. 새 구성이 기본 allow_all HBAC 규칙으로 재정의되지 않도록 하려면 allow_all 을 비활성화해야 합니다.

절차

  • ipa hbacrule-disable 명령을 사용합니다. 예를 들어 allow_all 규칙을 비활성화하려면 다음을 수행합니다.

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

추가 리소스

  • 자세한 내용은 ipa hbacrule-disable --help 를 참조하십시오.