4.5. RHEL에서 그룹 정책 개체 액세스 제어 적용

GPO( 그룹 정책 개체 )는 AD 환경의 컴퓨터와 사용자에게 적용할 수 있는 AD(Active Directory)에 저장된 액세스 제어 설정 모음입니다. 관리자는 AD에 GPO를 지정하여 AD에 가입된 Windows 클라이언트 및 RHEL(Red Hat Enterprise Linux) 호스트가 모두 준수하는 로그인 정책을 정의할 수 있습니다.

다음 섹션에서는 사용자 환경에서 GPO를 관리하는 방법을 설명합니다.

4.5.1. SSSD에서 GPO 액세스 제어 규칙을 해석하는 방법

기본적으로 SSSD는 AD(Active Directory) 도메인 컨트롤러에서 GPO(그룹 정책 개체)를 검색하고 이를 평가하여 사용자가 AD에 연결된 특정 RHEL 호스트에 로그인할 수 있는지 확인합니다.

SSSD는 GNU/Linux 환경에서 권한을 적용하기 위해 AD Windows Logon authority를 PAM(Pluggable Authentication Module) 서비스 이름에 매핑합니다.

AD Administrator는 보안 필터에 나열하여 GPO 규칙의 범위를 특정 사용자, 그룹 또는 호스트로 제한할 수 있습니다.

호스트별 필터링 제한

이전 버전의 SSSD는 AD GPO 보안 필터의 호스트를 평가하지 않습니다.

  • RHEL 8.3.0 이상: SSSD는 보안 필터에서 사용자, 그룹 및 호스트를 지원합니다.
  • 8.3.0 이전 RHEL 버전: SSSD는 호스트 항목을 무시하고 보안 필터의 사용자 및 그룹만 지원합니다.
    SSSD가 특정 호스트에 GPO 기반 액세스 제어를 적용하도록 하려면 AD 도메인에서 새 조직 단위(OU)를 생성하고 시스템을 새 OU로 이동한 다음 이 OU에 GPO를 연결합니다.

그룹별 필터링 제한 사항

SSSD는 현재 SID(Security Identifier) S-1-5-32-544 를 사용하는 관리자와 같은 Active Directory의 기본 제공 그룹을 지원하지 않습니다. Red Hat은 RHEL 호스트를 대상으로 하는 AD GPO에 AD 기본 제공 그룹을 사용하지 않도록 권장합니다.

추가 리소스

4.5.2. SSSD에서 지원하는 GPO 설정 목록

다음 표는 Windows의 Group Policy Management Editor 에 지정된 대로 Active Directory GPO 옵션에 해당하는 SSSD 옵션을 보여줍니다.

표 4.1. SSSD에서 검색한 GPO 액세스 제어 옵션

GPO 옵션해당 sssd.conf 옵션

로컬에서 로그 허용
로컬로 로그 거부

ad_gpo_map_interactive

원격 데스크탑 서비스를 통한 로그 허용
원격 데스크탑 서비스를 통한 로그 거부

ad_gpo_map_remote_interactive

네트워크에서 이 컴퓨터에 액세스합니다.
네트워크에서이 컴퓨터에 대한 액세스가 거부됩니다.

ad_gpo_map_network

배치 작업으로 로그 허용
배치 작업으로 로그 거부

ad_gpo_map_batch

service로 로그 허용
서비스로 로그 거부

ad_gpo_map_service

추가 리소스

  • GPO 옵션에 매핑되는 PAM(Pluggable Authentication Module) 서비스와 같은 sssd.conf 설정에 대한 자세한 내용은 sssd-ad(5) 매뉴얼 페이지 항목을 참조하십시오.

4.5.3. GPO 적용을 제어하기 위한 SSSD 옵션 목록

다음 SSSD 옵션을 설정하여 EgressIP 규칙의 범위를 제한할 수 있습니다.

ad_gpo_access_control 옵션

/etc/sssd/sssd.conf 파일에서 ad_gpo_access_control 옵션을 설정하여 GPO 기반 액세스 제어가 작동하는 세 가지 모드를 선택할 수 있습니다.

표 4.2. ad_gpo_access_control 값 테이블


ad_gpo_access_control
동작

강제

CloudEvent 기반 액세스 제어 규칙이 평가되고 적용됩니다.
이는 RHEL 8의 기본 설정입니다.

허용

GPO 기반 액세스 제어 규칙은 평가되지만 강제 되지 않습니다. syslog 메시지는 액세스가 거부될 때마다 기록됩니다. RHEL 7의 기본 설정입니다.
이 모드는 사용자가 계속 로그인할 수 있는 동시에 정책 조정 테스트에 이상적입니다.

비활성화됨

GPO 기반 액세스 제어 규칙은 평가 또는 시행되지 않습니다.

ad_gpo_implicit_deny 옵션

ad_gpo_implicit_deny 옵션은 기본적으로 False 로 설정됩니다. 이 기본 상태에서는 해당하는 GPO를 찾을 수 없는 경우 사용자에게 액세스가 허용됩니다. 이 옵션을 True 로 설정하면 사용자가 GPO 규칙을 사용하여 액세스할 수 있도록 명시적으로 허용해야 합니다.

이 기능을 사용하여 보안을 강화할 수 있지만 의도하지 않게 액세스를 거부하지 않도록 주의하십시오. Red Hat은 이 기능을 테스트하는 것을 권장하고 ad_gpo_access_control허용 으로 설정합니다.

다음 두 표는 AD 서버 측 및 ad_gpo_implicit_deny 에 정의된 로그인 권한 허용 및 거부에 따라 사용자가 허용되거나 거부되는 액세스를 보여줍니다.

표 4.3. ad_gpo_implicit_denyFalse (기본값)로 설정하여 로그인 동작

allow-rulesdeny-rules결과

누락

누락

모든 사용자가 허용됩니다

누락

존재

거부 규칙에서 아닌 사용자만 허용됩니다.

존재

누락

허용 규칙의 사용자만 허용됩니다

존재

존재

allow-rules에 있고 거부 규칙에서 아닌 사용자만 허용됩니다.

표 4.4. ad_gpo_implicit_denyTrue로 설정하여 로그인 동작

allow-rulesdeny-rules결과

누락

누락

사용자는 허용되지 않습니다

누락

존재

사용자는 허용되지 않습니다

존재

누락

허용 규칙의 사용자만 허용됩니다

존재

존재

allow-rules에 있고 거부 규칙에서 아닌 사용자만 허용됩니다.

추가 리소스

  • SSSD에서 GPO 적용 모드를 변경하는 절차는 GPO 액세스 제어 모드 변경을 참조하십시오.
  • 다양한 작업 GPO 모드에 대한 자세한 내용은 sssd-ad(5) 매뉴얼 페이지에서 ad_gpo_access_control 항목을 참조하십시오.

4.5.4. GPO 액세스 제어 모드 변경

이 절차에서는 AD(Active Directory) 환경에 연결된 RHEL 호스트에서 GPO 기반 액세스 제어 규칙을 평가 및 적용하는 방법을 변경합니다.

이 예제에서는 테스트 목적으로 GPO 작업 모드를 강제 (기본값)에서 허용 으로 변경합니다.

중요

다음 오류가 표시되면 Active Directory 사용자는 GPO 기반 액세스 제어로 인해 로그인할 수 없습니다.

  • /var/log/secure 에서 :

    Oct 31 03:00:13 client1 sshd[124914]: pam_sss(sshd:account): Access denied for user aduser1: 6 (Permission denied)
    Oct 31 03:00:13 client1 sshd[124914]: Failed password for aduser1 from 127.0.0.1 port 60509 ssh2
    Oct 31 03:00:13 client1 sshd[124914]: fatal: Access denied for user aduser1 by PAM account configuration [preauth]
  • /var/log/sssd/sssd__example.com_.log 에서 :

    (Sat Oct 31 03:00:13 2020) [sssd[be[example.com]]] [ad_gpo_perform_hbac_processing] (0x0040): GPO access check failed: [1432158236](Host Access Denied)
    (Sat Oct 31 03:00:13 2020) [sssd[be[example.com]]] [ad_gpo_cse_done] (0x0040): HBAC processing failed: [1432158236](Host Access Denied}
    (Sat Oct 31 03:00:13 2020) [sssd[be[example.com]]] [ad_gpo_access_done] (0x0040): GPO-based access control failed.

이 동작이 바람직하지 않은 경우 AD에서 적절한 GPO 설정 문제를 해결하는 동안 이 절차에 설명된 대로 ad_gpo_access_control 을 일시적으로 허용 으로 설정할 수 있습니다.

사전 요구 사항

  • SSSD를 사용하여 RHEL 호스트를 AD 환경에 연결했습니다.
  • /etc/sssd/sssd.conf 구성 파일을 편집하려면 루트 권한이 필요합니다.

절차

  1. SSSD 서비스를 중지합니다.

    [root@server ~]# systemctl stop sssd
  2. 텍스트 편집기에서 /etc/sssd/sssd.conf 파일을 엽니다.
  3. AD 도메인의 도메인 섹션에서 ad_gpo_access_control허용 으로 설정합니다.

    [domain/example.com]
    ad_gpo_access_control=permissive
    ...
  4. /etc/sssd/sssd.conf 파일을 저장합니다.
  5. SSSD 서비스를 다시 시작하여 구성 변경 사항을 로드합니다.

    [root@server ~]# systemctl restart sssd

추가 리소스

4.5.5. AD GUI에서 RHEL 호스트용 GPO 생성 및 구성

그룹 정책 개체(GPO)는 AD(Microsoft Active Directory)에 저장된 액세스 제어 설정 컬렉션입니다. 다음 절차에서는 AD GUI(그래픽 사용자 인터페이스)에 EgressIP을 생성하여 AD 도메인에 직접 통합된 RHEL 호스트에 대한 로그온 액세스를 제어합니다.

사전 요구 사항

  • SSSD를 사용하여 RHEL 호스트를 AD 환경에 연결했습니다.
  • GUI를 사용하여 AD를 변경할 수 있는 AD Administrator 권한이 있습니다.

절차

  1. Active Directory 사용자 및 컴퓨터 내에서 새 GPO와 연결할 조직 단위(OU)를 생성합니다.

    1. 도메인을 마우스 오른쪽 버튼으로 클릭합니다.
    2. New (새로 만들기)를 선택합니다.
    3. Organizational Unit (조직 단위)을 선택합니다.
  2. RHEL 호스트(Active Directory에 가입할 때 생성)를 나타내는 Computer Object(컴퓨터 오브젝트)를 클릭하고 새 OU로 끌어옵니다. 자체 OU에 RHEL 호스트를 보유하면 GPO는 이 호스트를 대상으로 합니다.
  3. Group Policy Management Editor 내에서 생성한 OU에 대한 새 GPO를 만듭니다.

    1. 확대.
    2. 도메인 확장.
    3. 도메인을 확장합니다.
    4. 새 OU를 마우스 오른쪽 버튼으로 클릭합니다.
    5. 이 도메인에서 Create a GPO를 선택합니다.
  4. 새 GPO의 이름을 지정합니다(예: SSH 액세스 허용 또는 콘솔/GUI 액세스 허용 ) OK(확인 )를 클릭합니다.
  5. 새 GPO를 편집합니다.

    1. Group Policy Management (그룹 정책 관리) 편집기에서 OU를 선택합니다.
    2. 마우스 오른쪽 버튼을 클릭하고 Edit(편집 ).
    3. User rights Assignment(사용자 권한 할당) 를 선택합니다.
    4. 컴퓨터 설정선택
    5. Policies (정책)를 선택합니다.
    6. Windows 설정을 선택합니다.
    7. Security Settings (보안 설정)를 선택합니다.
    8. Local Policies (로컬 정책)를 선택합니다.
    9. User rights Assignment(사용자 권한 할당) 를 선택합니다.
  6. 로그인 권한 할당:

    1. 로컬에서 Allow log on local을 두 번 클릭하여 로컬 콘솔/GUI 액세스 권한을 부여합니다.
    2. 원격 데스크탑 서비스를 통해 Allow log on( 로그 허용)을 두 번 클릭하여 SSH 액세스 권한을 부여합니다.
  7. 이러한 정책 중 하나에 액세스하려는 사용자를 정책 자체에 추가합니다.

    1. Add User(사용자 추가) 또는 Group (그룹)을 클릭합니다.
    2. 빈 필드에 사용자 이름을 입력합니다.
    3. OK(확인)를 클릭합니다.

추가 리소스

  • 그룹 정책 오브젝트에 대한 자세한 내용은 Microsoft 문서의 그룹 정책 개체를 참조하십시오.

4.5.6. 추가 리소스