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 명령을 사용하여 규칙을 추가합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 대상 사용자를 지정합니다.
- 지정된 사용자 또는 그룹에만 HBAC 규칙을 적용하려면 ipa hbacrule-add-user 명령을 사용합니다.예를 들어 그룹을 추가하려면 다음을 수행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여러 사용자 또는 그룹을 추가하려면--users 및 --groups옵션을 사용합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 모든 사용자에게 HBAC 규칙을 적용하려면 ipa hbacrule-mod 명령을 사용하고
모든사용자 카테고리를 지정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고HBAC 규칙이 개별 사용자 또는 그룹과 연결된 경우 ipa hbacrule-mod --usercat=all 이 실패합니다. 이 경우 ipa hbacrule-remove-user 명령을 사용하여 사용자와 그룹을 제거합니다.자세한 내용은--help옵션을 사용하여 ipa hbacrule-remove-user 를 실행합니다.
- 대상 호스트를 지정합니다.
- 지정된 호스트 또는 그룹에만 HBAC 규칙을 적용하려면 ipa hbacrule-add-host 명령을 사용합니다.예를 들어 단일 호스트를 추가하려면 다음을 수행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여러 호스트 또는 그룹을 추가하려면--hosts 및 --hostgroups옵션을 사용합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 모든 호스트에 HBAC 규칙을 적용하려면 ipa hbacrule-mod 명령을 사용하고
모든호스트 카테고리를 지정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고HBAC 규칙이 개별 호스트 또는 그룹과 연결된 경우 ipa hbacrule-mod --hostcat=all 이 실패합니다. 이 경우 ipa hbacrule-remove-host 명령을 사용하여 호스트 및 그룹을 제거합니다.자세한 내용은--help옵션을 사용하여 ipa hbacrule-remove-host 를 실행합니다.
- 대상 HBAC 서비스를 지정합니다.
- 지정된 서비스 또는 그룹에만 HBAC 규칙을 적용하려면 ipa hbacrule-add-service 명령을 사용합니다.예를 들어 단일 서비스를 추가하려면 다음을 수행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여러 서비스 또는 그룹을 추가하려면--hbacsvcs 및옵션을 사용하면 됩니다.--hbacsvcgroupsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고HBAC 규칙에 대해 가장 일반적인 서비스 및 서비스 그룹만 구성됩니다. 자세한 내용은 31.3절. “사용자 지정 HBAC 서비스에 대한 HBAC 서비스 항목 추가” 및 31.4절. “HBAC 서비스 그룹 추가” 을 참조하십시오. - 모든 서비스에 HBAC 규칙을 적용하려면 ipa hbacrule-mod 명령을 사용하고
모든서비스 카테고리를 지정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고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 아래의 사용자
- 사용자가 액세스를 시도하는 호스트
- 사용자가 사용하려는 서비스
예를 들어 이러한 값을 대화형으로 지정하는 경우 다음을 수행합니다.
기본적으로 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
$ ipa hbactest --user=user1 --host=example.com --service=sudo --rules=rule1
---------------------
Access granted: False
---------------------
Not matched rules: rule1
예 31.4. 명령줄에서 여러 HBAC 규칙 테스트
여러 HBAC 규칙을 테스트할 때 하나 이상의 규칙이 사용자에게 성공적인 액세스를 허용하는 경우 테스트가 통과합니다.
출력에서 다음을 수행합니다.
일치하는 규칙에는 성공적인 액세스를 허용하는 규칙이 나열됩니다.규칙이 일치하지 않음으로, 액세스를 방지하는 규칙이 나열됩니다.
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" ------------------------------
$ ipa hbacrule-disable allow_all
------------------------------
Disabled HBAC rule "allow_all"
------------------------------