31.2. IdM 도메인에서 호스트 기반 액세스 제어 구성


호스트 기반 액세스 제어를 위해 도메인을 구성하려면 다음을 수행합니다.
  1. 중요
    사용자 정의 HBAC 규칙을 만들기 전에 allow_all 규칙을 비활성화하지 마십시오. 이렇게 하면 사용자가 호스트에 액세스할 수 없습니다.

31.2.1. HBAC 규칙 생성

HBAC 규칙을 만들려면 다음을 사용합니다.
예를 들면 “HBAC 규칙의 예” 의 내용을 참조하십시오.
참고
IdM은 사용자의 기본 그룹을 IdM 그룹 오브젝트에 대한 링크 대신 gidNumber 속성의 숫자 값으로 저장합니다. 이러한 이유로 HBAC 규칙은 기본 그룹이 아닌 사용자의 보조 그룹만 참조할 수 있습니다.

웹 UI: HBAC 규칙 생성

  1. Policy Host-Based Access Control HBAC rules 를 선택합니다.
  2. 추가 를 클릭하여 새 규칙 추가를 시작합니다.
  3. 규칙 이름을 입력하고 추가 를 클릭하여 HBAC 규칙 구성 페이지로 직접 이동합니다.
  4. who 영역에서 대상 사용자를 지정합니다.
    • 지정된 사용자 또는 그룹에만 HBAC 규칙을 적용하려면 지정된 사용자 및 그룹을 선택합니다. 그런 다음 추가 를 클릭하여 사용자 또는 그룹을 추가합니다.
    • 모든 사용자에게 HBAC 규칙을 적용하려면 Anyone 을 선택합니다.

    그림 31.2. HBAC 규칙의 대상 사용자 지정

    HBAC 규칙의 대상 사용자 지정
  5. 액세스 영역에서 대상 호스트를 지정합니다.
    • 지정된 호스트 또는 그룹에만 HBAC 규칙을 적용하려면 지정된 호스트 및 그룹을 선택합니다. 그런 다음 추가 를 클릭하여 호스트 또는 그룹을 추가합니다.
    • 모든 호스트에 HBAC 규칙을 적용하려면 모든 호스트를 선택합니다.
  6. Via Service 영역에서 대상 HBAC 서비스를 지정합니다.
    • 지정된 서비스 또는 그룹에만 HBAC 규칙을 적용하려면 지정된 서비스 및 그룹을 선택합니다. 그런 다음 추가 를 클릭하여 서비스 또는 그룹을 추가합니다.
    • 모든 서비스에 HBAC 규칙을 적용하려면 모든 서비스를 선택합니다.
    참고
    기본적으로 가장 일반적인 서비스 및 서비스 그룹만 HBAC 규칙에 대해 구성됩니다.
    • 현재 사용 가능한 서비스 목록을 표시하려면 Policy Host-Based Access Control HBAC Services 를 선택합니다.
    • 현재 사용 가능한 서비스 그룹 목록을 표시하려면 Policy Host-Based Access Control HBAC 서비스 그룹을 선택합니다.
    더 많은 서비스 및 서비스 그룹을 추가하려면 31.3절. “사용자 지정 HBAC 서비스에 대한 HBAC 서비스 항목 추가”31.4절. “HBAC 서비스 그룹 추가” 을 참조하십시오.
  7. HBAC 규칙 구성 페이지에서 특정 설정을 변경하면 페이지 상단의 저장 버튼이 강조 표시됩니다. 이 경우 버튼을 클릭하여 변경 사항을 확인합니다.

명령줄: 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 명령을 사용합니다.
      예를 들어 단일 호스트를 추가하려면 다음을 수행합니다.
      $ 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 명령을 사용합니다.
      예를 들어 단일 서비스를 추가하려면 다음을 수행합니다.
      $ 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 및 --hbacsvc groups 옵션을 사용하면 됩니다.
      $ 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 규칙에 대해 가장 일반적인 서비스 및 서비스 그룹만 구성됩니다. 자세한 내용은 31.3절. “사용자 지정 HBAC 서비스에 대한 HBAC 서비스 항목 추가”31.4절. “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사용자
  • 모든 호스트에 대한 호스트 (웹 UI에서) 또는 ipa hbacrule-add (규칙 추가 시) 또는 ipa hbacrule-mod와 함께 --hostcat=all 을 사용합니다.
  • 모든 서비스에 대한 서비스 (웹 UI에서) 또는 ipa hbacrule-add (규칙 추가 시) 또는 ipa hbacrule-mod와 함께 --servicecat=all 을 사용합니다.

예 31.2. 특정 서비스만 호스트에 액세스하는 데 사용될 수 있는지 확인

모든 사용자가 sudo- 관련 서비스를 사용하여 host.example.com 이라는 호스트에 액세스하도록 하려면 새 HBAC 규칙을 생성하고 다음을 설정합니다.
  • 사용자는 Anyone (웹 UI에서) 또는 ipa hbacrule-add (규칙 추가 시) 또는 ipa hbacrule-mod와 함께 --usercat=all 을 사용합니다.
  • host.example.com의 호스트
  • Sudo.do의 HBAC 서비스 그룹( sudo 및 관련 서비스의 기본 그룹)

31.2.2. HBAC 규칙 테스트

IdM을 사용하면 시뮬레이션된 시나리오를 사용하여 다양한 상황에서 HBAC 구성을 테스트할 수 있습니다. 시뮬레이션된 테스트 실행을 수행하면 HBAC 규칙을 프로덕션에 배포하기 전에 잘못된 문제나 보안 위험을 발견할 수 있습니다.
중요
프로덕션에서 사용하기 전에 사용자 지정 HBAC 규칙을 항상 테스트하십시오.
IdM은 신뢰할 수 있는 AD(Active Directory) 사용자에 대한 HBAC 규칙의 영향을 테스트하지 않습니다. AD 데이터는 IdM LDAP 디렉터리에 저장되지 않기 때문에 HBAC 시나리오 시뮬레이션 시 IdM은 AD 사용자의 그룹 멤버십을 확인할 수 없습니다.
HBAC 규칙을 테스트하려면 다음을 사용합니다.

웹 UI: HBAC 규칙 테스트

  1. Policy Host-Based Access Control HBAC Test 를 선택합니다.
  2. who 화면에서 다음을 수행합니다. 테스트를 수행할 ID 아래에 사용자를 지정하고 다음을 클릭합니다.

    그림 31.3. HBAC 테스트 대상 사용자 지정

    HBAC 테스트 대상 사용자 지정
  3. 액세스 화면에서 다음을 수행합니다. 사용자가 액세스할 호스트를 지정하고 다음을 클릭합니다.
  4. Via 서비스 화면에서 다음을 수행합니다. 사용자가 사용할 서비스를 지정하고 다음을 클릭합니다.
  5. 규칙 화면에서 다음을 수행합니다. 테스트할 HBAC 규칙을 선택하고 다음을 클릭합니다. 규칙을 선택하지 않으면 모든 규칙이 테스트됩니다.
    상태가 Enabled인 모든 규칙에서 테스트를 실행하려면To run the test on all rules whose status is enabled. Include Disabled 를 선택하여 상태가 Disabled 인 모든 규칙에서 테스트를 실행합니다. HBAC 규칙의 상태를 보고 변경하려면 정책 호스트 기반 액세스 제어 HBAC 규칙 을 선택합니다.
    중요
    테스트가 여러 규칙에서 실행되는 경우 선택한 규칙 중 하나 이상이 액세스를 허용하는 경우 성공적으로 전달됩니다.
  6. 테스트 실행 화면에서 다음을 수행합니다. 테스트 실행을 클릭합니다.

    그림 31.4. HBAC 테스트 실행

    HBAC 테스트 실행
  7. 테스트 결과를 검토합니다.
    • ACCESS DENIED 가 표시되면 테스트에서 사용자에게 액세스 권한이 부여되지 않았습니다.
    • ACCESS GRANTED 가 표시되면 사용자가 호스트에 성공적으로 액세스할 수 있었습니다.

    그림 31.5. HBAC 테스트 결과 검토

    HBAC 테스트 결과 검토
    기본적으로 IdM은 테스트 결과를 표시할 때 테스트된 모든 HBAC 규칙을 나열합니다.
    • 성공적인 액세스를 허용하는 규칙을 표시하려면 일치 를 선택합니다.
    • 액세스할 수 없는 규칙을 표시하려면 Unmatched 를 선택합니다.

명령줄: HBAC 규칙 테스트

ipa hbactest 명령을 사용하여 최소한을 지정합니다.
  • 테스트를 수행하려는 ID 아래의 사용자
  • 사용자가 액세스를 시도하는 호스트
  • 사용자가 사용하려는 서비스
예를 들어 이러한 값을 대화형으로 지정하는 경우 다음을 수행합니다.
$ ipa hbactest
User name: user1
Target host: example.com
Service: sudo
---------------------
Access granted: False
---------------------
Not matched rules: rule1
기본적으로 IdM은 상태가 활성화된 모든 HBAC 규칙에서 테스트를 실행합니다. 다른 HBAC 규칙을 지정하려면 다음을 수행합니다.
  • --rules 옵션을 사용하여 하나 이상의 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 규칙을 테스트할 때 하나 이상의 규칙이 사용자에게 성공적인 액세스를 허용하는 경우 테스트가 통과합니다.
$ 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 규칙을 비활성화하려면 다음을 사용할 수 있습니다.

웹 UI: HBAC 규칙 비활성화

  1. Policy Host-Based Access Control HBAC 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"
------------------------------
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.