Active Directory 사용자에 대한 인증 및 권한 부여 구성

Oracle Cloud Infrastructure ID 및 접근 관리를 설정하고, AD(Active Directory) 인증 및 권한 부여를 구성하고, NFS 익스포트를 구성하고, Unix 권한을 설정합니다.

Oracle Cloud Infrastructure Identity and Access Management 정책 설정

Oracle Cloud Infrastructure(OCI) Identity and Access Management에서 동적 그룹을 생성하고 마운트 대상이 LDAP 및 Kerberos 암호에 액세스할 수 있도록 정책을 추가합니다. Kerberos 및 LDAP 구성 모두에 필요합니다.

  1. OCI에 로그온합니다.
  2. 탐색 메뉴를 열고 ID 및 보안을 누릅니다.
  3. 동적 그룹을 누릅니다.
  4. 동적 그룹 생성을 누르고 이름설명을 입력합니다.
    이름은 테넌시의 모든 그룹(동적 그룹 및 사용자 그룹)에서 고유해야 합니다. 나중에 이름을 변경할 수 없습니다. 기밀 정보를 입력하지 마십시오.
    이 예에서는 ad-kerberos 구획의 모든 마운트 대상에 대해 ad-kerberos-mt-group 그룹을 사용합니다.
  5. 일치 규칙을 입력하여 그룹의 멤버를 정의합니다.
    예를 들어 다음과 같습니다.
    ALL { resource.type='mounttarget', resource.compartment.id = '<mount_target_compartment_ocid>' }
  6. 생성을 누릅니다.
  7. 탐색 메뉴를 열고 ID 및 보안을 누릅니다. ID에서 정책을 누릅니다.
  8. 정책 생성을 누릅니다.
  9. 새 정책의 이름, 설명 및 구획을 입력합니다.
    이름은 테넌시의 모든 정책에서 고유해야 합니다. 나중에 변경할 수 없습니다. 기밀 정보를 입력하지 마십시오.
  10. 정책 작성기를 사용하여 구획의 암호에 대한 마운트 대상 액세스를 허용하는 정책을 생성합니다.
    이 예에서는 ad-kerberos 구획의 모든 마운트 대상에 대해 ad-kerberos-mt-group 그룹을 사용합니다.
    allow dynamic-group ad-kerberos-mt-group to read secret-family in compartment ad-kerberos
  11. 생성을 누릅니다.

Kerberos로 Active Directory 인증 구성

Oracle Cloud Infrastructure Identity and Access Management를 구성한 후 Active Directory를 구성합니다. Kerberos 구성에는 마운트 대상을 Microsoft의 Active Directory에 연결하고 마운트 대상 설정을 Kerberos 구성으로 업데이트하는 두 단계가 포함됩니다.

Active Directory에 마운트 대상 연결

Active Directory 사용자에게 인증이 필요한 경우 이 작업을 완료합니다. 이 프로세스는 Oracle Cloud Infrastructure File Storage 서비스 외부에서 수행되는 수동 프로세스입니다. 마운트 대상을 Microsoft의 Active Directory에 연결하려면 컴퓨터 계정을 Active Directory에 추가하고, 올바른 암호를 설정하고, keytab을 추출하고, 마운트 대상을 DNS에 추가하는 작업이 포함됩니다.

  1. Active Directory에서 마운트 대상(MT)에 대한 컴퓨터 계정을 만듭니다.
    명령줄에서 계정을 만들거나 Active Directory Users and Computers 스냅인을 사용하여 새 컴퓨터 계정을 만들 수 있습니다.
    Command-Line
    C:\Users\administrator>djoin /provision /domain fss-ad.com /machine fss-mt-ad-1 /savefile offlinedomainjoin.txt
    Provisioning the computer...
    Successfully provisioned [fss-mt-ad-1] in the domain [fss-ad.com].
    …
    The operation completed successfully.
    Active Directory Users and Computers
    1. Active Directory Users and Computers 디렉토리로 이동하여 fs-ad.com을 확장하고 컴퓨터를 선택합니다.
    2. 새로 만들기, 컴퓨터를 차례로 누릅니다.
    3. fss-mt-ad-1를 추가합니다.

      이 작업이 완료되면 Active Directory Users and Computers 스냅인의 Computers 트리 아래에 FSS-MT-AD-1가 나타납니다.

  2. ktpass.exe를 사용하여 keytab을 생성합니다.

    주:

    ktpass.exe를 실행하려면 관리자로 명령 프롬프트를 열어야 합니다. 그렇지 않으면 오류가 발생합니다. AES256-SHA1aes256-cts-hmac-sha1-96입니다.
    C:\>ktpass -princ nfs/fss-mt-ad-1.fss-ad.com@FSS-AD.COM -mapuser FSS-AD\fss-mt-ad-1 -crypto AES256-SHA1 +rndpass -ptype KRB5_NT_SRV_HST  -out fss-mt-ad-1.keytab
    Targeting domain controller: ad-server.fss-ad.com
    Successfully mapped nfs/fss-mt-ad-1.fss-ad.com to FSS-MT-AD-1$.
    WARNING: Account FSS-MT-AD-1$ is not a user account (uacflags=0x1001).
    WARNING: Resetting FSS-MT-AD-1$'s password may cause authentication problems if FSS-MT-AD-1$ is being used as a server.
    
    Reset AD-FSS-MT-2$'s password [y/n]?  y
    Password successfully set!
    Key created.
    Output keytab to fss-mt-ad-1.keytab:
    Keytab version: 0x502
    keysize 88 nfs/fss-mt-ad-1.fss-ad.com@FSS-AD.COM ptype 3 (KRB5_NT_SRV_HST) vno 2 etype 0x12 (AES256-SHA1) keylength 32
    
  3. 마운트 대상에서 Kerberos를 구성할 때 keytab과 함께 사용하려면 keytab을 base64로 변환합니다.
    C:\>certutil.exe -encode fss-mt-ad-1.keytab keytab.txt
    Input Length = 94
    Output Length = 188
    CertUtil: -encode command completed successfully.
    
    C:\>notepad keytab.txt
    1. 메모장에서 keytab.txt 파일을 엽니다.
    2. BEGINEND CERTIFICATE 행을 제거합니다.
    3. base64 텍스트를 한 행에 공백 없이 연속 긴 행 하나로 복사합니다.
      나중에 Kerberos에 대한 마운트 대상에 대한 암호를 구성할 때는 base64 텍스트가 필요합니다.
  4. 보다 안전한 암호화를 사용하도록 Active Directory에서 MT(마운트 대상) 속성을 수정합니다. MT 계정을 찾아 aes256-cts-hmac-sha1-96에 대해 msDS-SupportedEncryptionTypes 속성 값을 24로 변경합니다.
    Active Directory는 기본적으로 티켓에 RC4 암호를 제공합니다. msDS-SupportedEncryptionTypes 속성이 없으면 속성을 생성하고 값을 설정합니다.
  5. DNS 관리자를 열고 DNS 서버 트리를 확장합니다.
  6. 마운트 대상에 대한 앞으로 조회 영역을 추가합니다. IP 주소를 입력하고 연관된 포인터(PTR) 레코드 생성을 선택한 다음 호스트 추가를 누릅니다.

Kerberos에 대한 마운트 대상 구성

keytab에 대한 암호를 만듭니다. 암호 컨텐츠는 Active Directory를 사용하여 마운트 대상에 연결할 때 복사한 base64 인코딩 Keytab입니다.

다음은 Kerberos에 대한 마운트 대상을 구성하는 데 필요한 기본 단계입니다.

  • 마운트 대상을 Active Directory에 조인합니다(이전 단계).
  • Keytab 저장소 암호를 구성합니다.
  • 마운트 대상에서 Kerberos를 구성합니다.
  1. Oracle Cloud Infrastructure(OCI) 콘솔로 이동하고 탐색 메뉴를 엽니다.
  2. ID 및 보안을 누른 다음 저장소를 누릅니다.
  3. 목록 범위에서 암호를 만들 구획을 선택합니다.
    이 예에서는 ad-kerberos 구획을 사용합니다.
  4. 리소스에서 암호를 누른 다음 암호 생성을 누릅니다.
  5. 암호 생성 패널에 다음 정보를 입력합니다.
    기밀 정보는 입력하지 마십시오.
    1. 이름: 암호를 식별하는 이름을 입력합니다. 예: fss-mt-ad-1-keytab-secret.
    2. 설명: 암호를 식별할 수 있는 간단한 설명을 입력합니다. 예를 들어, fss-mt-ad-1의 Keytab입니다.
    3. 암호화 키: 보안 콘텐츠가 저장소로 임포트되는 동안 암호화하는 데 사용할 마스터 암호화 키를 선택합니다. 예: mount-target-secrets.
      키는 동일한 저장소에 속해야 합니다. 또한 키는 대칭 키여야 합니다. 비대칭 키로 저장소 암호를 암호화할 수 없습니다.
    4. 비밀 유형 템플리트: Base64.
    5. 비밀 콘텐츠: 암호의 콘텐츠를 입력합니다.
      마운트 대상을 Active Directory에 결합하는 과정에서 이전에 Keytab을 base64로 변환할 때 저장한 base64 인코딩 keytab입니다.
  6. 암호 생성을 누릅니다.
  7. 마운트 대상에 대한 NFS 탭으로 이동합니다.
    1. 탐색 메뉴에서 스토리지를 누릅니다.
    2. File Storage에서 Mount Targets를 누릅니다.
    3. 목록 범위 섹션의 구획에서 구획을 선택합니다.
      예: ad-kerberos
    4. 마운트 대상을 찾은 다음 NFS 탭을 누릅니다.
  8. NFS 탭에서 Kerberos 옆에 있는 Manage(관리)를 누릅니다.
  9. keytab 암호 및 버전을 선택한 다음 keytab 검증을 누르고 결과를 확인한 다음 저장합니다. Kerberos 사용을 선택합니다.
    이 예에서 Ad-kerberos 구획의 Keytab 암호fss-mt-ad-1-keytab-secret이고 Current keytab Secret version은 1입니다.

Kerberos를 사용하여 NFS 내보내기 마운트

Kerberos NFS는 다음 세 가지 보안 방식을 지원합니다.

  • krb5: Kerberos(인증 전용)
  • krb5i: 인증되었으며 각 트랜잭션과 함께 암호화 해시를 사용하여 무결성을 보장합니다. 트래픽은 계속 가로채고 검사할 수 있지만 트래픽을 수정할 수는 없습니다.
  • krb5p: 클라이언트와 서버 간의 모든 트래픽을 인증하고 암호화합니다. 트래픽은 검사할 수 없으며 수정할 수 없습니다.
C:\Users\fss-user-1>mount -o sec=krb5 fss-mt-ad-1.fss-ad.com:/krb-fs-1 T:
T: is now successfully connected to fss-mt-ad-1.fss-ad.com:/krb-fs-1

The command completed successfully.
마운트 중 보안 종류(sys, krb5, krb5ikrb5p)가 제공되지 않은 경우 Windows는 내보내기에 설정된 우수한 보안 종류를 선택합니다. mount 명령을 사용하여 드라이브가 마운트될 때 선택된 flavor Windows를 확인합니다.
C:\Users\fss-user-1>mount

Local    Remote                                 Properties
-------------------------------------------------------------------------------
T:       \\fss-mt-ad-1.fss-ad.com\krb-fs-1      UID=0, GID=0
                                                rsize=1048576, wsize=1048576
                                                mount=soft, timeout=0.8
                                                retry=1, locking=yes
                                                fileaccess=755, lang=ANSI
                                                casesensitive=no
                                                sec=krb5


C:\Users\fss-user-1>whoami
fss-ad\fss-user-1

이제 Windows 탐색기에서 드라이브에 액세스할 수 있습니다. 드라이브 매핑은 사용자별로 수행되며 OCI File Storage 공유에 액세스하는 모든 사용자는 공유를 각 드라이브 문자에 매핑해야 합니다.

LDAP에 대한 Active Directory 권한 부여 구성

Active Directory 사용자에게 LDAP 권한 부여가 필요한 경우 이 작업을 완료합니다. Active Directory에서 필요한 정보를 수집하고, File Storage에 액세스하는 모든 사용자 및 그룹에 대해 RFC2307 속성을 설정한 다음 마운트 대상에서 LDAP를 구성합니다.

다음은 LDAP에 대한 Active Directory 권한 부여를 구성하는 데 필요한 기본 단계입니다.

  • Active Directory에서 LDAP 구성 세부정보를 가져옵니다.
  • LDAP 바인드 사용자 암호를 구성합니다.
  • 아웃바운드 커넥터를 생성합니다.
  • 마운트 대상에서 LDAP를 구성합니다.

주:

마운트 대상은 자체 서명된 LDAP 인증서를 사용할 수 없습니다.
  1. DNS에서 LDAP를 호스트하는 시스템을 가져온 다음 이후 단계를 위해 저장하십시오.
    이 예에서 시스템은 fss-ad.com입니다.
    C:\Users\administrator>nslookup -type=srv _ldap._tcp.fss-ad.com
    Server:  localhost
    Address:  ::1
    _ldap._tcp.fss-ad.com   SRV service location:
              priority       = 0
              weight         = 100
              port           = 389
              svr hostname   = ad-server.fss-ad.com
        ad-server.fss-ad.com    internet address = 10.9.1.194
  2. Active Directory에서 사용자 및 그룹에 대한 distinguishedName(DN) 속성 검색 기준을 찾습니다.
    1. Active Directory Users and Computers 디렉토리로 이동하여 fs-ad.com을 확장합니다.
    2. 사용자를 누릅니다.
  3. LDAP 바인드 사용자 DN을 가져옵니다.

    주:

    이 사용자는 디렉토리 검색 기능이 있는 최소 권한의 사용자일 수 있습니다. 나중에 아웃바운드 커넥터를 구성하려면 이 사용자의 비밀번호도 필요합니다.
    1. ldap-user을 선택합니다.
    2. 속성 편집기 탭을 누릅니다.
    3. distinguishedName 속성을 선택합니다.
    4. 값을 복사하고 이후 단계를 위해 저장합니다.
  4. OCI File Storage에 액세스하는 모든 사용자 및 그룹의 RFC2307 속성을 확인합니다.
    지침 및 RFC2307 속성 표는 "Configure RFC2307 Attributes in Active Directory"를 참조하십시오.
  5. 위의 3단계에서 검색된 LDAP 바인드 사용자에 대한 암호를 만듭니다.
    암호는 LDAP 사용자가 바인드할 암호를 보유합니다. 형식은 일반 텍스트여야 합니다.
  6. 아웃바운드 커넥터를 구성합니다. 아웃바운드 커넥터는 파일 스토리지 페이지의 추가 리소스에서 사용할 수 있습니다. 마운트 대상과 동일한 AD에 아웃바운드가 생성됩니다.
    1. DNS 이름을 입력합니다.
      예: ad-server.fss.ad.com
    2. LDAP 서비스의 DSAPS 포트를 입력합니다.
      예를 들어 다음과 같습니다. 636.
    3. 바인드 식별 이름을 입력합니다.
      LDAP 서버에 로그인할 LDAP 사용자입니다. 예: CN=ldap-user,CN=Users, DC=fss-ad, DC=com
    4. 암호가 보관되는 구획에서 저장소를 선택합니다.
      예를 들어, ad-kerberos 구획의 krb-vault를 예로 들 수 있습니다.
    5. 구획에서 암호를 선택합니다.
      예를 들어, ad-kerberos 구획의 fss-mt-ad-1-ldap-password입니다.
    6. 암호 버전을 선택합니다.
      예를 들어 다음과 같습니다. 1.
    7. 생성을 누릅니다.
  7. 마운트 대상에 대한 LDAP를 구성합니다.
    이전 단계의 아웃바운드 커넥터를 사용합니다.
    1. 탐색 메뉴에서 스토리지를 누릅니다. File Storage에서 Mount Targets를 누릅니다.
    2. 구획을 선택합니다.
      예: ad-kerberos
    3. 마운트 대상을 찾고 NFS 탭을 누른 다음 Manage LDAP를 누릅니다.
    4. 사용자에 대한 검색 기준그룹에 대한 검색 기준 필드에 검색 기준을 입력합니다.

      주:

      사용자 및 그룹에 대한 검색 기준은 Active Directory 사용자 및 그룹 컨테이너에서 가져온 DN입니다.

      예: 사용자 검색 기준: CN=Users,DC=fss-ad,DC=com그룹에 대한 검색 기준: CN=Users,DC=fss-ad,DC=com
    5. 캐시 간격을 입력한 다음 아웃바운드 커넥터 1 필드에서 생성된 아웃바운드 커넥터를 선택합니다.
      이 예에서 Cache refresh interval, Cache lifetimeNegative cache lifetime은 각각 300초입니다. 아웃바운드 커넥터 1의 LDAP 계정은 fss-ad-ob-1입니다.
    6. 설정을 저장합니다.

NFS 익스포트 구성

권한 부여 요구 사항에 따라 내보내기 설정을 구성합니다.

  • LDAP 권한 부여가 필요하지 않고 인증된 모든 사용자를 단일 UID/GID에 매핑하려면 모든 사용자를 스쿼시하도록 다음 설정을 구성합니다. NFS 클라이언트 익스포트 옵션을 사용하여 클라이언트가 파일 시스템에 액세스할 수 있는 방법을 제어합니다. 다음 설정을 편집하여 모든 사용자를 스쿼시합니다.
    1. 익명 액세스: Not allowed를 선택합니다.
    2. 스쿼시: 예 선택
    3. 스쿼시 UID: 99를 입력합니다.
    4. 스쿼시 GID: 99를 입력합니다.
    이러한 설정을 사용하면 인증된 모든 사용자에게 사용자 ID 99 및 그룹 ID 99가 제공됩니다. LDAP 조회가 수행되지 않습니다.
  • LDAP를 사용하여 사용자에게 권한을 부여하려면 NFS 내보내기 옵션을 사용하여 Kerberos 주체를 Unix 사용자에게 매핑합니다.
    1. 익명 액세스: Allowed를 선택합니다.
    2. 스쿼시: 없음 선택
    3. 스쿼시 UID: 199를 입력합니다.
    4. 스쿼시 GID: 199를 입력합니다.
    이러한 설정을 사용하면 모든 Kerberos 사용자가 LDAP에서 Unix 사용자 ID, 그룹 ID 및 그룹 멤버쉽에 매핑됩니다. 사용자가 LDAP에 없는 경우 익명 매핑이 사용되고 사용자가 Unix 사용자 ID 199 및 그룹 ID 199에 매핑됩니다. 익명 액세스가 사용 안함으로 설정되고 Kerberos 사용자가 LDAP에 없는 경우 공유에 액세스하는 사용자에게 액세스 거부 오류가 표시됩니다.

Windows의 Unix 권한

Oracle Cloud Infrastructure File Storage는 NFSv3 프로토콜을 사용하여 액세스합니다. 권한 부여는 Unix 권한을 사용하여 수행됩니다.

ldp.exe 도구를 사용하여 사용자 및 그룹의 RFC2307 속성을 질의하여 uid, gid 및 그룹 멤버쉽을 확인할 수 있습니다. Unix 권한은 LDAP에 저장된 uid, gid 및 그룹 멤버쉽에 따라 확인됩니다.
Tool: ldp.exe
Search Base: CN=Users,DC=fss-ad,DC=com 
Filter: (&(objectClass=posixAccount)(uid=fss-user-1))
Attributes: uidNumber;gidNumber

Windows 탐색기를 사용하여 파일 또는 폴더를 소유하는 소유자 및 그룹과 파일 또는 폴더에 설정된 권한을 확인합니다. 파일 또는 폴더의 등록 정보에서 NFS 속성(Unix 속성)에 액세스할 수 있습니다.

fss-user-1 사용자의 기본 그룹이 500이지만 OCI File Storage는 사용자가 권한 검사의 멤버인 모든 그룹을 고려합니다. 다음 질의를 사용하여 fss-user-1 사용자의 그룹 멤버쉽을 찾습니다.
Tool: ldp.exe
Search Base: CN=Users,DC=fss-ad,DC=com 
Filter: (&(objectClass=posixGroup)(memberUid=fss-user-1))' gidNumber
Attributes: gidNumber

초기 폴더 권한 생성

구현 시 폴더 권한을 고려하십시오.

OCI File Storage 루트 디렉토리는 uid 0의 소유이며 755(root의 경우 rwx, root의 경우 r-x, 기타의 경우 r-x) 권한이 있습니다. 사용자를 위해 추가 폴더를 생성하거나 권한을 변경하려면 루트 액세스 권한이 필요합니다. 요구 사항에 맞는 초기 권한을 만들고 설정하기 위한 관리자 작업입니다.

다음 방법 중 하나를 사용하여 파일 시스템에 대한 관리 액세스 권한을 얻을 수 있습니다.

  • uidNumber 0에 매핑되고 루트가 스쿼시되지 않는 한 모든 사용자는 일반 사용자일 뿐입니다. 관리 사용자를 사용자의 LDAP 속성에서 uidNumber 0에 매핑합니다.
  • SYS 인증을 사용하여 파일 시스템을 보안 Linux 워크스테이션으로 내보냅니다. root 사용자를 사용하여 권한을 생성하고 관리합니다.