31.2. IdM 도메인에서 호스트 기반 액세스 제어 구성
호스트 기반 액세스 제어를 위해 도메인을 구성하려면 다음을 수행합니다.
- 중요사용자 정의 HBAC 규칙을 만들기 전에
allow_all
규칙을 비활성화하지 마십시오. 이렇게 하면 사용자가 호스트에 액세스할 수 없습니다.
31.2.1. HBAC 규칙 생성
HBAC 규칙을 만들려면 다음을 사용합니다.
- IdM 웹 UI ( “웹 UI: HBAC 규칙 생성”참조)
- 명령줄 ( “명령줄: HBAC 규칙 생성”참조)
예를 들면 “HBAC 규칙의 예” 의 내용을 참조하십시오.
참고
IdM은 사용자의 기본 그룹을 IdM 그룹 오브젝트에 대한 링크 대신
gidNumber
속성의 숫자 값으로 저장합니다. 이러한 이유로 HBAC 규칙은 기본 그룹이 아닌 사용자의 보조 그룹만 참조할 수 있습니다.
웹 UI: HBAC 규칙 생성
를 선택합니다. - 규칙 이름을를 클릭하여 HBAC 규칙 구성 페이지로 직접 이동합니다.
- who 영역에서 대상 사용자를 지정합니다.
- 지정된 사용자 또는 그룹에만 HBAC 규칙을 적용하려면 지정된 사용자 및 그룹을 선택합니다. 그런 다음 를 클릭하여 사용자 또는 그룹을 추가합니다.
- 모든 사용자에게 HBAC 규칙을 적용하려면 Anyone 을 선택합니다.
그림 31.2. HBAC 규칙의 대상 사용자 지정
- 액세스 영역에서 대상 호스트를 지정합니다.
- 지정된 호스트 또는 그룹에만 HBAC 규칙을 적용하려면 지정된 호스트 및 그룹을 선택합니다. 그런 다음 를 클릭하여 호스트 또는 그룹을 추가합니다.
- 모든 호스트에 HBAC 규칙을 적용하려면 모든 호스트를 선택합니다.
- Via Service 영역에서 대상 HBAC 서비스를 지정합니다.
- 지정된 서비스 또는 그룹에만 HBAC 규칙을 적용하려면 지정된 서비스 및 그룹을 선택합니다. 그런 다음 를 클릭하여 서비스 또는 그룹을 추가합니다.
- 모든 서비스에 HBAC 규칙을 적용하려면 모든 서비스를 선택합니다.
참고기본적으로 가장 일반적인 서비스 및 서비스 그룹만 HBAC 규칙에 대해 구성됩니다.- 현재 사용 가능한 서비스 목록을 표시하려면
를 선택합니다. - 현재 사용 가능한 서비스 그룹 목록을 표시하려면
선택합니다.
더 많은 서비스 및 서비스 그룹을 추가하려면 31.3절. “사용자 지정 HBAC 서비스에 대한 HBAC 서비스 항목 추가” 및 31.4절. “HBAC 서비스 그룹 추가” 을 참조하십시오. - HBAC 규칙 구성 페이지에서 특정 설정을 변경하면 페이지 상단의버튼이 강조 표시됩니다. 이 경우 버튼을 클릭하여 변경 사항을 확인합니다.
명령줄: HBAC 규칙 생성
- ipa hbacrule-add 명령을 사용하여 규칙을 추가합니다.
$ ipa hbacrule-add Rule name:
rule_name
--------------------------- Added HBAC rule "rule_name" --------------------------- Rule name: rule_name Enabled: TRUE - 대상 사용자를 지정합니다.
- 지정된 사용자 또는 그룹에만 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 를 실행합니다.
- 대상 호스트를 지정합니다.
- 지정된 호스트 또는 그룹에만 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 를 실행합니다.
- 대상 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 를 실행합니다.
- 선택 사항입니다. HBAC 규칙이 올바르게 추가되었는지 확인합니다.
- ipa hbacrule-find 명령을 사용하여 HBAC 규칙이 IdM에 추가되었는지 확인합니다.
- 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 규칙을 테스트하려면 다음을 사용합니다.
- IdM 웹 UI ( “웹 UI: HBAC 규칙 테스트”참조)
- 명령줄 ( “명령줄: HBAC 규칙 테스트”참조)
웹 UI: HBAC 규칙 테스트
를 선택합니다. - who 화면에서 다음을 수행합니다. 테스트를 수행할 ID 아래에 사용자를 지정하고클릭합니다.
그림 31.3. HBAC 테스트 대상 사용자 지정
- 액세스 화면에서 다음을 수행합니다. 사용자가 액세스할 호스트를 지정하고 클릭합니다.
- Via 서비스 화면에서 다음을 수행합니다. 사용자가 사용할 서비스를 지정하고 클릭합니다.
- 규칙 화면에서 다음을 수행합니다. 테스트할 HBAC 규칙을 선택하고 클릭합니다. 규칙을 선택하지 않으면 모든 규칙이 테스트됩니다.상태가 Enabled인 모든 규칙에서 테스트를 실행하려면To run the test on all rules whose status is
enabled
. Include Disabled 를 선택하여 상태가Disabled
인 모든 규칙에서 테스트를 실행합니다. HBAC 규칙의 상태를 보고 변경하려면을 선택합니다. 중요테스트가 여러 규칙에서 실행되는 경우 선택한 규칙 중 하나 이상이 액세스를 허용하는 경우 성공적으로 전달됩니다. - 테스트 실행 화면에서 다음을 수행합니다. 클릭합니다.
그림 31.4. HBAC 테스트 실행
- 테스트 결과를 검토합니다.
ACCESS DENIED
가 표시되면 테스트에서 사용자에게 액세스 권한이 부여되지 않았습니다.ACCESS GRANTED
가 표시되면 사용자가 호스트에 성공적으로 액세스할 수 있었습니다.
그림 31.5. 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 규칙에서 user1
이 sudo
서비스를 사용하여 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 규칙을 비활성화하려면 다음을 사용할 수 있습니다.
- IdM 웹 UI ( “웹 UI: HBAC 규칙 비활성화”참조)
- 명령줄 ( “명령줄: HBAC 규칙 비활성화”참조)
웹 UI: HBAC 규칙 비활성화
를 선택합니다. - 비활성화할 HBAC 규칙을 선택하고 비활성화를 클릭합니다.
그림 31.6. allow_all
HBAC 규칙 비활성화

명령줄: HBAC 규칙 비활성화
ipa hbacrule-disable 명령을 사용합니다. 예를 들어
allow_all
규칙을 비활성화하려면 다음을 수행합니다.
$ ipa hbacrule-disable allow_all
------------------------------
Disabled HBAC rule "allow_all"
------------------------------