Oracle® Solaris 11.2의 Kerberos 및 기타 인증 서비스 관리

인쇄 보기 종료

업데이트 날짜: 2014년 8월
 
 

수동으로 Kerberos 클라이언트를 구성하는 방법

    이 절차에서는 다음 구성 매개변수를 사용합니다.

  • 영역 이름 = EXAMPLE.COM

  • DNS 도메인 이름 = example.com

  • 마스터 KDC = kdc1.example.com

  • 슬레이브 KDC = kdc2.example.com

  • NFS 서버 = denver.example.com

  • 클라이언트 = client.example.com

  • admin 주체 = kws/admin

  • 사용자 주체 = mre

  • 온라인 도움말 URL = http://docs.oracle.com/cd/E23824_01/html/821-1456/aadmin-23.html

시작하기 전에

root 역할을 맡아야 합니다. 자세한 내용은 Oracle Solaris 11.2의 사용자 및 프로세스 보안 의 지정된 관리 권한 사용을 참조하십시오.

  1. Kerberos 구성 파일(krb5.conf)을 편집합니다.

    Kerberos 구성 파일에서 영역 이름 및 서버 이름을 변경합니다. gkadmin에 대한 도움말 파일의 경로도 지정할 수 있습니다.

    kdc1 # pfedit /etc/krb5/krb5.conf
    [libdefaults]
    default_realm = EXAMPLE.COM
    
    [realms]
    EXAMPLE.COM = {
    kdc = kdc1.example.com
    kdc = kdc2.example.com
    admin_server = kdc1.example.com
    }
    
    [domain_realm]
    .example.com = EXAMPLE.COM
    #
    # if the domain name and realm name are equivalent,
    # this entry is not needed
    #
    [logging]
    default = FILE:/var/krb5/kdc.log
    kdc = FILE:/var/krb5/kdc.log
    
    [appdefaults]
    gkadmin = {
    help_url = http://www.example.com/doclib/OSMKA/aadmin-23.html

    주 -  이전 Kerberos 시스템과 통신해야 하는 경우에는 암호화 유형을 제한해야 할 수도 있습니다. 암호화 유형 제한과 관련된 문제에 대한 설명은 Kerberos 암호화 유형을 참조하십시오.
  2. (옵션) KDC를 찾는 데 사용되는 프로세스를 변경합니다.

      기본적으로 Kerberos 영역과 KDC 간의 매핑은 다음 순서로 확인됩니다.

    • krb5.confrealms 절에 있는 정의

    • DNS에서 SRV 레코드 조회

    dns_lookup_kdc 또는 dns_fallbackkrb5.conf 파일의 libdefaults 섹션에 추가하여 이 동작을 변경할 수 있습니다. 자세한 내용은 krb5.conf(4)를 참조하십시오. 항상 참조가 먼저 시도됩니다.

  3. (옵션) 호스트에 대한 영역을 확인하는 데 사용되는 프로세스를 변경합니다.

      기본적으로 호스트와 영역 간의 매핑은 다음 순서로 확인됩니다.

    • KDC가 참조를 지원하는 경우 KDC가 클라이언트에 호스트가 속한 영역을 알릴 수 있음

    • krb5.conf 파일의 domain_realm 정의

    • 호스트의 DNS 도메인 이름

    • 기본 영역

    dns_lookup_kdc 또는 dns_fallbackkrb5.conf 파일의 libdefaults 섹션에 추가하여 이 동작을 변경할 수 있습니다. 자세한 내용은 krb5.conf(4) 매뉴얼 페이지를 참조하십시오. 항상 참조가 먼저 시도됩니다.

  4. NTP 또는 다른 클럭 동기화 방식을 사용하여 클라이언트의 클럭을 마스터 KDC의 클럭과 동기화합니다.

    인증이 성공하려면 모든 클럭이 krb5.conf 파일의 clockskew 관계에 정의된 최대 차이 범위 내에서 KDC 서버의 시간과 동기화되어야 합니다. 자세한 내용은 krb5.conf(4) 매뉴얼 페이지를 참조하십시오. NTP(Network Time Protocol)에 대한 자세한 내용은 KDC와 Kerberos 클라이언트 간의 클럭 동기화를 참조하십시오.

  5. Kerberos 주체를 만듭니다.
    denver # /usr/sbin/kadmin -p kws/admin
    Enter password: xxxxxxxx
    kadmin: 

    자세한 내용은 kadmin(1M) 매뉴얼 페이지를 참조하십시오.

    1. (옵션) 사용자 주체가 존재하지 않을 경우 사용자 주체를 만듭니다.

      이 호스트에 연결된 사용자에게 주체가 지정되지 않은 경우에만 사용자 주체를 만들어야 합니다.

      kadmin: addprinc mre
      Enter password for principal mre@EXAMPLE.COM:/** Type strong password **/
      Re-enter password for principal mre@EXAMPLE.COM: xxxxxxxx
      kadmin: 
    2. (옵션) root 주체를 만들고 서버의 keytab 파일에 주체를 추가합니다.

      주 -  클라이언트가 NFS 마운트된 원격 파일 시스템에 대한 root 액세스를 필요로 하지 않을 경우 이 단계를 건너 뛸 수 있습니다.

      cron 작업을 root로 실행하는 등 비대화식 root 액세스가 필요한 경우 이 단계를 수행합니다.

      root 주체는 두 개의 구성 요소로 이루어진 주체여야 합니다. 영역 차원의 root 주체가 생성되지 않도록 두번째 구성 요소는 Kerberos 클라이언트 시스템의 호스트 이름이어야 합니다. 주체 인스턴스가 호스트 이름인 경우 FQDN은 이름 서비스의 도메인 이름 대소문자에 관계없이 소문자로 지정되어야 합니다.

      kadmin: addprinc -randkey root/client.example.com
      Principal "root/client.example.com" created.
      kadmin: ktadd root/client.example.com
      Entry for principal root/client.example.com with kvno 3, encryption type AES-256 CTS mode
      with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal root/client.example.com with kvno 3, encryption type AES-128 CTS mode
      with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal root/client.example.com with kvno 3, encryption type Triple DES cbc
      mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      kadmin: 
    3. host 주체를 만들고 서버의 keytab 파일에 주체를 추가합니다.

      host 주체는 원격 액세스 서비스가 인증을 제공하는 데 사용합니다. 이 주체는 keytab 파일에 아직 자격 증명이 없을 경우 root가 자격 증명을 확보할 수 있도록 합니다.

      kadmin: addprinc -randkey host/denver.example.com
      Principal "host/denver.example.com@EXAMPLE.COM" created.
      kadmin: ktadd host/denver.example.com
      Entry for principal host/denver.example.com with kvno 3, encryption type AES-256 CTS mode
      with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal host/denver.example.com with kvno 3, encryption type AES-128 CTS mode
      with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal host/denver.example.com with kvno 3, encryption type Triple DES cbc
      mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      kadmin:
    4. (옵션) 서버의 keytab 파일에 서버의 NFS 서비스 주체를 추가합니다.

      클라이언트가 Kerberos 인증을 사용하여 NFS 파일 시스템에 액세스해야 하는 경우에만 이 단계를 수행해야 합니다.

      kadmin: ktadd nfs/denver.example.com
      Entry for principal nfs/denver.example.com with kvno 3, encryption type AES-256 CTS mode
      with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal nfs/denver.example.com with kvno 3, encryption type AES-128 CTS mode
      with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal nfs/denver.example.com with kvno 3, encryption type Triple DES cbc
      mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      kadmin: 
    5. kadmin을 종료합니다.
      kadmin: quit
  6. (옵션) NFS에서 Kerberos를 사용으로 설정합니다.
    1. /etc/nfssec.conf 파일에서 Kerberos 보안 모드를 사용으로 설정합니다.

      /etc/nfssec.conf 파일에서 Kerberos 보안 모드를 주석 처리하는 "#"을 제거합니다.

      # pfedit /etc/nfssec.conf
      .
      .
      #
      # Uncomment the following lines to use Kerberos V5 with NFS
      #
      krb5            390003  kerberos_v5     default -               # RPCSEC_GSS
      krb5i           390004  kerberos_v5     default integrity       # RPCSEC_GSS
      krb5p           390005  kerberos_v5     default privacy         # RPCSEC_GSS
    2. DNS를 사용으로 설정합니다.

      svc:/network/dns/client:default 서비스가 사용으로 설정되지 않은 경우 사용으로 설정합니다. 자세한 내용은 resolv.conf(4) 매뉴얼 페이지를 참조하십시오.

      # svcadm enable network/dns/client:default
    3. gss 서비스를 다시 시작합니다.
      # svcadm restart network/rpc/gss
  7. (옵션) 클라이언트가 TGT를 자동으로 갱신하도록 하거나 사용자에게 Kerberos 티켓 만료를 경고하려면 /etc/krb5/warn.conf 파일에서 항목을 만듭니다.

    자세한 내용은 warn.conf(4) 매뉴얼 페이지 및 모든 TGT(티켓 부여 티켓) 자동 갱신을 참조하십시오.

예 4-4  다중 마스터 KDC에서 작동하도록 Oracle Solaris 클라이언트 구성

Microsoft Active Directory(AD) Kerberos 서비스는 여러 마스터 서버에서 실행되는 KDC를 제공합니다. Oracle Solaris 클라이언트가 정보를 업데이트하도록 하려면 /etc/krb5/krb5.conf 파일의 admin_server 또는 kpasswd_server 선언에서 모든 서버를 나열해야 합니다. 이 예에서는 kdc1kdc2 사이에 공유되는 KDC 정보를 클라이언트가 업데이트하도록 허용하는 방법을 보여줍니다.

[realms]
EXAMPLE.COM = {
kdc = kdc1.example.com
kdc = kdc2.example.com
admin_server = kdc1.example.com
admin_server = kdc2.example.com
}
예 4-5  비Oracle Solaris KDC에 대해 Kerberos 클라이언트 구성

/etc/krb5/krb5.conf 파일의 realms 섹션에 라인을 추가하여 비Oracle Solaris KDC에서 작동하도록 Kerberos 클라이언트를 설정할 수 있습니다. 이 행은 클라이언트가 Kerberos 암호 변경 서버와 통신하는 동안 사용되는 프로토콜을 변경합니다. 다음 발췌 부분은 이 라인의 형식을 보여 줍니다.

[realms]
EXAMPLE.COM = {
kdc = kdc1.example.com
kdc = kdc2.example.com
admin_server = kdc1.example.com
kpasswd_protocol = SET_CHANGE
}
예 4-6  호스트 및 도메인 이름과 Kerberos 영역 간의 매핑에 대한 DNS TXT 레코드
@ IN SOA kdc1.example.com root.kdc1.example.com (
1989020501   ;serial
10800        ;refresh
3600         ;retry
3600000      ;expire
86400 )      ;minimum

IN      NS      kdc1.example.com.
kdc1                    IN      A       192.146.86.20
kdc2                    IN      A       192.146.86.21

_kerberos.example.com.             IN      TXT     "EXAMPLE.COM"
_kerberos.kdc1.example.com.        IN      TXT     "EXAMPLE.COM"
_kerberos.kdc2.example.com.        IN      TXT     "EXAMPLE.COM"
예 4-7  Kerberos 서버 위치에 대한 DNS SRV 레코드

이 예에서는 KDC, admin 서버 및 kpasswd 서버 각각에 대한 레코드를 정의합니다.

@ IN SOA kdc1.example.com root.kdc1.example.com (
1989020501   ;serial
10800        ;refresh
3600         ;retry
3600000      ;expire
86400 )      ;minimum

IN      NS      kdc1.example.com.
kdc1                               IN      A       192.146.86.20
kdc2                               IN      A       192.146.86.21

_kerberos._udp.EXAMPLE.COM         IN      SRV 0 0 88  kdc2.example.com
_kerberos._tcp.EXAMPLE.COM         IN      SRV 0 0 88  kdc2.example.com
_kerberos._udp.EXAMPLE.COM         IN      SRV 1 0 88  kdc1.example.com
_kerberos._tcp.EXAMPLE.COM         IN      SRV 1 0 88  kdc1.example.com
_kerberos-adm._tcp.EXAMPLE.COM     IN      SRV 0 0 464 kdc1.example.com
_kpasswd._udp.EXAMPLE.COM          IN      SRV 0 0 464 kdc1.example.com