JavaScript is required to for searching.
탐색 링크 건너뛰기
인쇄 보기 종료
Oracle Solaris 11.1 관리: 보안 서비스     Oracle Solaris 11.1 Information Library (한국어)
search filter icon
search icon

문서 정보

머리말

제1부보안 개요

1.  보안 서비스(개요)

제2부시스템, 파일 및 장치 보안

2.  시스템 보안 관리(개요)

3.  시스템에 대한 액세스 제어(작업)

4.  바이러스 검사 서비스(작업)

5.  장치에 대한 액세스 제어(작업)

6.  BART를 사용하여 파일 무결성 확인(작업)

7.  파일에 대한 액세스 제어(작업)

제3부역할, 권한 프로파일 및 권한

8.  역할 및 권한 사용(개요)

9.  역할 기반 액세스 제어 사용(작업)

10.  Oracle Solaris의 보안 속성(참조)

제4부암호화 서비스

11.  암호화 프레임워크(개요)

12.  암호화 프레임워크(작업)

13.  키 관리 프레임워크

제5부인증 서비스 및 보안 통신

14.  플러그 가능한 인증 모듈 사용

15.  Secure Shell 사용

16.  Secure Shell(참조)

17.  단순 인증 및 보안 계층 사용

18.  네트워크 서비스 인증(작업)

제6부Kerberos 서비스

19.  Kerberos 서비스 소개

20.  Kerberos 서비스 계획

21.  Kerberos 서비스 구성(작업)

Kerberos 서비스 구성(작업 맵)

추가 Kerberos 서비스 구성(작업 맵)

KDC 서버 구성

자동으로 마스터 KDC를 구성하는 방법

대화식으로 마스터 KDC를 구성하는 방법

수동으로 마스터 KDC를 구성하는 방법

LDAP 데이터 서버를 사용하도록 KDC를 구성하는 방법

자동으로 슬레이브 KDC를 구성하는 방법

대화식으로 슬레이브 KDC를 구성하는 방법

수동으로 슬레이브 KDC를 구성하는 방법

마스터 서버에서 TGS(티켓 부여 서비스) 키를 새로 고치는 방법

영역 간 인증 구성

계층 영역 간 인증 설정 방법

직접 영역 간 인증 설정 방법

Kerberos 네트워크 애플리케이션 서버 구성

Kerberos 네트워크 애플리케이션 서버 구성 방법

FTP 실행 시 Kerberos를 통한 일반 보안 서비스 사용 방법

Kerberos NFS 서버 구성

Kerberos NFS 서버 구성 방법

자격 증명 테이블을 만드는 방법

자격 증명 테이블에 단일 항목 추가 방법

영역 간 자격 증명 매핑 제공 방법

Kerberos 보안 모드가 여러 개인 보안 NFS 환경 설정 방법

Kerberos 클라이언트 구성

Kerberos 클라이언트 구성(작업 맵)

Kerberos 클라이언트 설치 프로파일을 만드는 방법

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

대화식으로 Kerberos 클라이언트를 구성하는 방법

Active Directory 서버에 대한 Kerberos 클라이언트 구성 방법

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

TGT(티켓 부여 티켓) 확인을 사용 안함으로 설정하는 방법

Kerberos로 보호된 NFS 파일 시스템에 root 사용자로 액세스하는 방법

Kerberos 영역에서 사용자의 자동 마이그레이션을 구성하는 방법

계정 잠금 구성 방법

모든 TGT(티켓 부여 티켓)를 자동으로 갱신하는 방법

KDC와 Kerberos 클라이언트 간의 클럭 동기화

마스터 KDC와 슬레이브 KDC 교체

교체 가능한 슬레이브 KDC 구성 방법

마스터 KDC와 슬레이브 KDC 교체 방법

Kerberos 데이터베이스 관리

Kerberos 데이터베이스 백업 및 전파

kpropd.acl 파일

kprop_script 명령

Kerberos 데이터베이스 백업 방법

Kerberos 데이터베이스 복원 방법

서버 업그레이드 후 Kerberos 데이터베이스 변환 방법

증분 전파를 사용하도록 마스터 KDC를 재구성하는 방법

증분 전파를 사용하도록 슬레이브 KDC를 재구성하는 방법

전체 전파를 사용하도록 슬레이브 KDC를 구성하는 방법

KDC 서버 동기화 여부 확인 방법

수동으로 슬레이브 KDC에 Kerberos 데이터베이스를 전파하는 방법

병렬 전파 설정

병렬 전파 설정을 위한 구성 단계

stash 파일 관리

stash 파일 제거 방법

새 마스터 키 사용 방법

LDAP 디렉토리 서버에서 KDC 관리

비Kerberos 객체 클래스 유형에서 Kerberos 주체 속성을 함께 사용하는 방법

LDAP 디렉토리 서버에서 영역 삭제 방법

Kerberos 서버에서 보안 수준 향상

KDC 서버에 대한 액세스 제한 방법

사전 파일을 사용하여 암호 보안 수준을 향상시키는 방법

22.  Kerberos 오류 메시지 및 문제 해결

23.  Kerberos 주체 및 정책 관리(작업)

24.  Kerberos 응용 프로그램 사용(작업)

25.  Kerberos 서비스(참조)

제7부Oracle Solaris에서 감사

26.  감사(개요)

27.  감사 계획

28.  감사 관리(작업)

29.  감사(참조)

용어집

색인

KDC 서버 구성

Kerberos 소프트웨어를 설치한 후에는 KDC 서버를 구성해야 합니다. 마스터 KDC와 하나 이상의 슬레이브 KDC를 구성하면 자격 증명을 발행하는 서비스가 제공됩니다. 이러한 자격 증명은 Kerberos 서비스의 기본 사항이므로 다른 작업을 시도하기 전에 KDC를 설치해야 합니다.

마스터 KDC와 슬레이브 KDC의 가장 큰 차이점은 마스터 KDC만 데이터베이스 관리 요청을 처리할 수 있다는 것입니다. 예를 들어, 암호 변경 또는 새 주체 추가 작업은 마스터 KDC에서 완료해야 합니다. 그런 다음 해당 변경 사항을 KDC로 전파할 수 있습니다. 슬레이브 KDC와 마스터 KDC는 모두 자격 증명을 생성합니다. 이 기능은 마스터 KDC가 응답할 수 없는 경우 중복을 제공합니다.

표 21-1 KDC 서버 구성(작업 맵)

작업
설명
수행 방법
마스터 KDC를 구성합니다.
스크립트에 적합한 자동 프로세스를 사용하여 영역에 대한 마스터 KDC 서버와 데이터베이스를 구성하고 구축합니다.
대부분의 설치에 적합한 대화식 프로세스를 사용하여 영역에 대한 마스터 KDC 서버와 데이터베이스를 구성하고 구축합니다.
보다 복잡한 설치에 필요한 수동 프로세스를 사용하여 영역에 대한 마스터 KDC 서버와 데이터베이스를 구성하고 구축합니다.
수동 프로세스와 KDC용 LDAP을 사용하여 영역에 대한 마스터 KDC 서버와 데이터베이스를 구성하고 구축합니다.
슬레이브 KDC 서버를 구성합니다.
스크립트에 적합한 자동 프로세스를 사용하여 영역에 대한 슬레이브 KDC 서버를 구성하고 구축합니다.
대부분의 설치에 적합한 대화식 프로세스를 사용하여 영역에 대한 슬레이브 KDC 서버를 구성하고 구축합니다.
보다 복잡한 설치에 필요한 수동 프로세스를 사용하여 영역에 대한 슬레이브 KDC 서버를 구성하고 구축합니다.
KDC 서버에서 주체 키를 새로 고칩니다.
새 암호화 유형이 사용되도록 KDC 서버에서 세션 키를 업데이트합니다.

자동으로 마스터 KDC를 구성하는 방법

Oracle Solaris 11 릴리스에서는 다음 절차를 사용하여 자동으로 마스터 KDC를 구성할 수 있습니다.

시작하기 전에

root 역할을 맡아야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.

대화식으로 마스터 KDC를 구성하는 방법

Oracle Solaris 릴리스에서는 다음 절차를 사용하여 대화식으로 마스터 KDC를 구성할 수 있습니다.

시작하기 전에

root 역할을 맡아야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.

예 21-1 KDC 서버 상태 표시

kdcmgr status 명령을 사용하여 마스터 또는 슬레이브 KDC 서버에 대한 정보를 표시할 수 있습니다.

수동으로 마스터 KDC를 구성하는 방법

이 절차에서는 증분 전파가 구성됩니다. 또한 다음 구성 매개변수가 사용됩니다.

시작하기 전에

이 절차를 수행하려면 호스트가 DNS를 사용하도록 구성되어 있어야 합니다. 이 마스터를 교체 가능한 것으로 설정하려는 경우 구체적인 이름 지정 지침은 마스터 KDC와 슬레이브 KDC 교체를 참조하십시오.

root 역할을 맡아야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.

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

    영역 이름 및 서버 이름을 변경해야 합니다. 이 파일에 대한 자세한 설명은 krb5.conf(4) 매뉴얼 페이지를 참조하십시오.

    kdc1 # cat /etc/krb5/krb5.conf
    [libdefaults]
            default_realm = EXAMPLE.COM
    
    [realms]
            EXAMPLE.COM = {
            kdc = kdc1.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://docs.oracle.com/cd/E23824_01/html/821-1456/aadmin-23.html
            }

    이 예에서는 default_realm, kdc, admin_server 및 모든 domain_realm 항목에 대한 행이 변경되었습니다. 또한 help_url을 정의하는 행이 편집되었습니다.


    주 - 암호화 유형을 제한하려는 경우 default_tkt_enctypes 또는 default_tgs_enctypes 행을 설정할 수 있습니다. 암호화 유형 제한과 관련된 문제에 대한 설명은 Kerberos 암호화 유형 사용을 참조하십시오.


  2. KDC 구성 파일(kdc.conf)을 편집합니다.

    영역 이름을 변경해야 합니다. 이 파일에 대한 자세한 설명은 kdc.conf(4) 매뉴얼 페이지를 참조하십시오.

    kdc1 # cat /etc/krb5/kdc.conf
    [kdcdefaults]
            kdc_ports = 88,750
    
    [realms]
            EXAMPLE.COM = {
                    profile = /etc/krb5/krb5.conf
                    database_name = /var/krb5/principal
                    acl_file = /etc/krb5/kadm5.acl
                    kadmind_port = 749
                    max_life = 8h 0m 0s
                    max_renewable_life = 7d 0h 0m 0s
                    sunw_dbprop_enable = true
                    sunw_dbprop_master_ulogsize = 1000
                    }

    이 예에서는 realms 섹션의 영역 이름 정의가 변경되었습니다. 또한 realms 섹션에서 증분 전파를 사용으로 설정하고 KDC 마스터가 로그에 유지할 업데이트 수를 선택하는 행이 추가되었습니다.


    주 - 암호화 유형을 제한하려는 경우 permitted_enctypes, supported_enctypes 또는 master_key_type 행을 설정할 수 있습니다. 암호화 유형 제한과 관련된 문제에 대한 설명은 Kerberos 암호화 유형 사용을 참조하십시오.


  3. kdb5_util 명령을 사용하여 KDC 데이터베이스를 만듭니다.

    kdb5_util 명령은 KDC 데이터베이스를 만듭니다. 또한 -s 옵션과 함께 사용할 경우 이 명령은 kadmindkrb5kdc 데몬이 시작되기 전에 KDC를 자체적으로 인증하는 데 사용되는 stash 파일을 만듭니다.

    kdc1 # /usr/sbin/kdb5_util create -s
    Initializing database '/var/krb5/principal' for realm 'EXAMPLE.COM'
    master key name 'K/M@EXAMPLE.COM'
    You will be prompted for the database Master Password.
    It is important that you NOT FORGET this password.
    Enter KDC database master key: <Type the key>
    Re-enter KDC database master key to verify: <Type it again>
  4. Kerberos 액세스 제어 목록 파일(kadm5.acl)을 편집합니다.

    채워진 /etc/krb5/kadm5.acl 파일에는 KDC를 관리할 수 있도록 허용된 모든 주체 이름이 포함되어야 합니다.

    kws/admin@EXAMPLE.COM   *

    이 항목은 EXAMPLE.COM 영역의 kws/admin 주체가 KDC의 주체 또는 정책을 수정할 수 있도록 합니다. 기본 설치에는 모든 admin 주체와 일치하는 별표(*)가 포함됩니다. 이 기본 설치의 경우 보안 위험이 있을 수 있으므로 모든 admin 주체의 목록을 포함하는 것이 더 안전합니다. 자세한 내용은 kadm5.acl(4) 매뉴얼 페이지를 참조하십시오.

  5. 데이터베이스에 관리 주체를 추가합니다.

    admin 주체는 필요에 따라 여러 개 추가할 수 있습니다. KDC 구성 프로세스를 완료하려면 admin 주체를 하나 이상 추가해야 합니다. 이 예에서는 kws/admin 주체가 추가됩니다. “kws” 대신 적절한 주체 이름으로 대체할 수 있습니다.

    kadmin.local: addprinc kws/admin
    Enter password for principal kws/admin@EXAMPLE.COM:<Type the password>
    Re-enter password for principal kws/admin@EXAMPLE.COM: <Type it again>
    Principal "kws/admin@EXAMPLE.COM" created.
    kadmin.local: 
  6. Kerberos 데몬을 시작합니다.
    kdc1 # svcadm enable -r network/security/krb5kdc
    kdc1 # svcadm enable -r network/security/kadmin
  7. kadmin을 시작하고 주체를 더 추가합니다.

    이 단계에서 그래픽 Kerberos 관리 도구를 사용하여 주체를 추가할 수 있습니다. 이 작업을 수행하려면 이 절차의 앞부분에서 만든 admin 주체 이름 중 하나로 로그인해야 합니다. 하지만 간소화를 위해 다음 명령줄 예가 제공됩니다.

    kdc1 # /usr/sbin/kadmin -p kws/admin
    Enter password: <Type kws/admin password>
    kadmin: 
    1. 마스터 KDC host 주체를 만듭니다.

      host 주체는 Kerberos화된 응용 프로그램(예: kprop)이 변경 사항을 슬레이브 KDC에 전파하는 데 사용합니다. 또한 이 주체는 ssh 등의 응용 프로그램을 사용하여 KDC 서버에 대한 보안 원격 액세스를 제공하는 데 사용됩니다. 주체 인스턴스가 호스트 이름인 경우 FQDN은 이름 서비스의 도메인 이름 대소문자에 관계없이 소문자로 지정되어야 합니다.

      kadmin: addprinc -randkey host/kdc1.example.com
      Principal "host/kdc1.example.com@EXAMPLE.COM" created.
      kadmin: 
    2. (옵션) kclient 주체를 만듭니다.

      이 주체는 kclient 유틸리티가 Kerberos 클라이언트를 설치하는 동안 사용합니다. 이 유틸리티를 사용하지 않으려는 경우 주체를 추가할 필요가 없습니다. kclient 유틸리티 사용자가 이 암호를 사용해야 합니다.

      kadmin: addprinc clntconfig/admin
      Enter password for principal clntconfig/admin@EXAMPLE.COM:<Type the password>
      Re-enter password for principal clntconfig/admin@EXAMPLE.COM: <Type it again>
      Principal "clntconfig/admin@EXAMPLE.COM" created.
      kadmin: 
    3. 마스터 KDC의 keytab 파일에 마스터 KDC의 host 주체를 추가합니다.

      keytab 파일에 host 주체를 추가하면 sshd 등의 애플리케이션 서버가 자동으로 이 주체를 사용할 수 있습니다.

      kadmin: ktadd host/kdc1.example.com
      Entry for principal host/kdc1.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/kdc1.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/kdc1.example.com with kvno 3, encryption type Triple DES cbc
                mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal host/kdc1.example.com with kvno 3, encryption type ArcFour
                with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal host/kdc1.example.com with kvno 3, encryption type DES cbc mode
                with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      kadmin: 
    4. kadmin을 종료합니다.
      kadmin: quit
  8. (옵션) NTP 또는 다른 클럭 동기화 방식을 사용하여 마스터 KDC의 클럭을 동기화합니다.

    NTP(Network Time Protocol)를 설치하여 사용할 필요가 없습니다. 하지만 인증이 성공하려면 모든 클럭이 krb5.conf 파일의 libdefaults 섹션에 정의된 기본 시간에 속해야 합니다. NTP에 대한 자세한 내용은 KDC와 Kerberos 클라이언트 간의 클럭 동기화를 참조하십시오.

  9. 슬레이브 KDC를 구성합니다.

    중복을 제공하려면 슬레이브 KDC를 하나 이상 설치해야 합니다. 구체적인 지침은 수동으로 슬레이브 KDC를 구성하는 방법을 참조하십시오.

LDAP 데이터 서버를 사용하도록 KDC를 구성하는 방법

다음 절차에 따라 LDAP 데이터 서버를 사용하도록 KDC를 구성할 수 있습니다.

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

시작하기 전에

또한 이 절차를 수행하려면 호스트가 DNS를 사용하도록 구성되어 있어야 합니다. 성능을 향상시키려면 KDC 및 LDAP 디렉토리 서비스를 동일한 서버에 설치하십시오. 또한 디렉토리 서버가 실행 중이어야 합니다. 다음 절차는 Sun Directory Server Enterprise Edition 7.0 릴리스를 사용하는 서버에서 작동합니다.

KDC 서버에서 root 역할을 맡아야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.

  1. SSL을 사용하여 디렉토리 서버에 연결하도록 마스터 KDC를 구성합니다.

    다음 단계에서는 디렉토리 서버의 자체 서명된 인증서를 사용하도록 릴리스 KDC를 구성합니다. 인증서가 만료된 경우 To Manage Self-Signed Certificates의 인증서 갱신 절차를 따르십시오.

    1. 디렉토리 서버에서 자체 서명된 디렉토리 서버 인증서를 내보냅니다.
      # /export/sun-ds6.1/ds6/bin/dsadm show-cert -F der /export/sun-ds6.1/directory2 \
              defaultCert > /tmp/defaultCert.cert.der
    2. 마스터 KDC에서 디렉토리 서버 인증서를 가져옵니다.
      # pktool setpin keystore=nss dir=/var/ldap
      # chmod a+r /var/ldap/*.db
      # pktool import keystore=nss objtype=cert trust="CT" infile=/tmp/defaultCert.certutil.der \
              label=defaultCert dir=/var/ldap
    3. 마스터 KDC에서 SSL이 작동 중인지 테스트합니다.

      이 예에서는 cn=directory manager 항목에 관리 권한이 있는 것으로 간주합니다.

      /usr/bin/ldapsearch -Z -P /var/ldap -D "cn=directory manager" \
              -h dsserver.example.com -b "" -s base objectclass='*'
      Subject:
          "CN=dsserver.example.com,CN=636,CN=Directory Server,O=Example Corporation

      CN=dsserver.example.com 항목에는 간단한 버전이 아닌 정규화된 호스트 이름이 포함되어야 합니다.

  2. 필요한 경우 LDAP 디렉토리를 채웁니다.
  3. 기존 스키마에 Kerberos 스키마를 추가합니다.
    # ldapmodify -h dsserver.example.com -D "cn=directory manager" -f /usr/share/lib/ldif/kerberos.ldif
  4. LDAP 디렉토리에 Kerberos 컨테이너를 만듭니다.

    krb5.conf 파일에 다음 항목을 추가합니다.

    1. 데이터베이스 유형을 정의합니다.

      realms 섹션에 database_module을 정의하는 항목을 추가합니다.

      database_module = LDAP
    2. 데이터베이스 모듈을 정의합니다.
      [dbmodules]
          LDAP = {
              ldap_kerberos_container_dn = "cn=krbcontainer,dc=example,dc=com"
              db_library = kldap
              ldap_kdc_dn = "cn=kdc service,ou=profile,dc=example,dc=com"
              ldap_kadmind_dn = "cn=kadmin service,ou=profile,dc=example,dc=com"
              ldap_cert_path = /var/ldap
              ldap_servers = ldaps://dsserver.example.com
          }
    3. LDAP 디렉토리에 KDC를 만듭니다.

      이 명령은 krbcontainer 및 여러 개의 다른 객체를 만듭니다. 또한 /var/krb5/.k5.EXAMPLE.COM 마스터 키 stash 파일을 만듭니다.

      # kdb5_ldap_util -D "cn=directory manager" create -P abcd1234 -r EXAMPLE.COM -s
  5. KDC 바인드 고유 이름(DN) 암호를 숨깁니다.

    해당 암호는 KDC가 DS에 바인드할 때 사용합니다. KDC는 KDC가 사용 중인 액세스의 유형에 따라 다른 역할을 사용합니다.

    # kdb5_ldap_util stashsrvpw "cn=kdc service,ou=profile,dc=example,dc=com"
    # kdb5_ldap_util stashsrvpw "cn=kadmin service,ou=profile,dc=example,dc=com"
  6. KDC 서비스 역할을 추가합니다.
    1. 다음과 같은 내용으로 kdc_roles.ldif 파일을 만듭니다.
      dn: cn=kdc service,ou=profile,dc=example,dc=com
      cn: kdc service
      sn: kdc service
      objectclass: top
      objectclass: person
      userpassword: test123
      
      dn: cn=kadmin service,ou=profile,dc=example,dc=com
      cn: kadmin service
      sn: kadmin service
      objectclass: top
      objectclass: person
      userpassword: test123
    2. LDAP 디렉토리에 역할 항목을 만듭니다.
      # ldapmodify -a -h dsserver.example.com -D "cn=directory manager" -f kdc_roles.ldif
  7. KDC 관련 역할에 대한 ACL을 설정합니다.
    # cat << EOF | ldapmodify -h dsserver.example.com -D "cn=directory manager" 
    # Set kadmin ACL for everything under krbcontainer.
    dn: cn=krbcontainer,dc=example,dc=com
    changetype: modify
    add: aci
    aci: (target="ldap:///cn=krbcontainer,dc=example,dc=com")(targetattr="krb*")(version 3.0;\
          acl kadmin_ACL; allow (all)\
          userdn = "ldap:///cn=kadmin service,ou=profile,dc=example,dc=com";)
    
    # Set kadmin ACL for everything under the people subtree if there are
    # mix-in entries for krb princs:
    dn: ou=people,dc=example,dc=com
    changetype: modify
    add: aci
    aci: (target="ldap:///ou=people,dc=example,dc=com")(targetattr="krb*")(version 3.0;\
          acl kadmin_ACL; allow (all)\
          userdn = "ldap:///cn=kadmin service,ou=profile,dc=example,dc=com";)
    EOF
  8. Kerberos 구성 파일(krb5.conf)을 편집합니다.

    영역 이름 및 서버 이름을 변경해야 합니다. 이 파일에 대한 자세한 설명은 krb5.conf(4) 매뉴얼 페이지를 참조하십시오.

    kdc1 # cat /etc/krb5/krb5.conf
    [libdefaults]
            default_realm = EXAMPLE.COM
    
    [realms]
            EXAMPLE.COM = {
            kdc = kdc1.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://docs.oracle.com/cd/E23824_01/html/821-1456/aadmin-23.html
            }

    이 예에서는 default_realm, kdc, admin_server 및 모든 domain_realm 항목에 대한 행이 변경되었습니다. 또한 help_url을 정의하는 행이 편집되었습니다.


    주 - 암호화 유형을 제한하려는 경우 default_tkt_enctypes 또는 default_tgs_enctypes 행을 설정할 수 있습니다. 암호화 유형 제한과 관련된 문제에 대한 설명은 Kerberos 암호화 유형 사용을 참조하십시오.


  9. KDC 구성 파일(kdc.conf)을 편집합니다.

    영역 이름을 변경해야 합니다. 이 파일에 대한 자세한 설명은 kdc.conf(4) 매뉴얼 페이지를 참조하십시오.

    kdc1 # cat /etc/krb5/kdc.conf
    [kdcdefaults]
            kdc_ports = 88,750
    
    [realms]
            EXAMPLE.COM = {
                    profile = /etc/krb5/krb5.conf
                    database_name = /var/krb5/principal
                    acl_file = /etc/krb5/kadm5.acl
                    kadmind_port = 749
                    max_life = 8h 0m 0s
                    max_renewable_life = 7d 0h 0m 0s
                    sunw_dbprop_enable = true
                    sunw_dbprop_master_ulogsize = 1000
                    }

    이 예에서는 realms 섹션의 영역 이름 정의가 변경되었습니다. 또한 realms 섹션에서 증분 전파를 사용으로 설정하고 KDC 마스터가 로그에 유지할 업데이트 수를 선택하는 행이 추가되었습니다.


    주 - 암호화 유형을 제한하려는 경우 permitted_enctypes, supported_enctypes 또는 master_key_type 행을 설정할 수 있습니다. 암호화 유형 제한과 관련된 문제에 대한 설명은 Kerberos 암호화 유형 사용을 참조하십시오.


  10. 액세스 제어 목록 파일(kadm5.acl)을 편집합니다.

    채워진 /etc/krb5/kadm5.acl 파일에는 KDC를 관리할 수 있도록 허용된 모든 주체 이름이 포함되어야 합니다.

    kws/admin@EXAMPLE.COM   *

    이 항목은 EXAMPLE.COM 영역의 kws/admin 주체가 KDC의 주체 또는 정책을 수정할 수 있도록 합니다. 기본 설치에는 모든 admin 주체와 일치하는 별표(*)가 포함됩니다. 이 기본 설치의 경우 보안 위험이 있을 수 있으므로 모든 admin 주체의 목록을 포함하는 것이 더 안전합니다. 자세한 내용은 kadm5.acl(4) 매뉴얼 페이지를 참조하십시오.

  11. kadmin.local 명령을 시작하고 주체를 추가합니다.

    다음 하위 단계에서 Kerberos 서비스에 사용되는 주체를 만듭니다.

    kdc1 # /usr/sbin/kadmin.local
    kadmin.local: 
    1. 데이터베이스에 관리 주체를 추가합니다.

      admin 주체는 필요에 따라 여러 개 추가할 수 있습니다. KDC 구성 프로세스를 완료하려면 admin 주체를 하나 이상 추가해야 합니다. 이 예에서는 kws/admin 주체가 추가됩니다. "kws" 대신 적절한 주체 이름으로 대체할 수 있습니다.

      kadmin.local: addprinc kws/admin
      Enter password for principal kws/admin@EXAMPLE.COM:<Type the password>
      Re-enter password for principal kws/admin@EXAMPLE.COM: <Type it again>
      Principal "kws/admin@EXAMPLE.COM" created.
      kadmin.local: 
    2. kadmin.local을 종료합니다.

      다음 단계에 필요한 모든 주체를 추가한 것입니다.

      kadmin.local: quit
  12. (옵션) Kerberos 서비스에 대한 LDAP 종속성을 구성합니다.

    LDAP 및 KDC 서버가 동일한 호스트에서 실행되고 있으며 LDAP 서비스가 SMF FMRI로 구성된 경우 Kerberos 데몬에 대한 LDAP 서비스에 종속성을 추가합니다. LDAP 서비스가 다시 시작되는 경우 이 종속성이 KDC 서비스를 다시 시작합니다.

    1. krb5kdc 서비스에 종속성을 추가합니다.
      # svccfg -s security/krb5kdc
      svc:/network/security/krb5kdc> addpg dsins1 dependency
      svc:/network/security/krb5kdc> setprop dsins1/entities = \
          fmri: "svc:/application/sun/ds:ds--var-opt-SUNWdsee-dsins1"
      svc:/network/security/krb5kdc> setprop dsins1/grouping = astring: "require_all"
      svc:/network/security/krb5kdc> setprop dsins1/restart_on = astring: "restart"
      svc:/network/security/krb5kdc> setprop dsins1/type = astring: "service"
      svc:/network/security/krb5kdc> exit
    2. kadmin 서비스에 종속성을 추가합니다.
      # svccfg -s security/kadmin
      svc:/network/security/kadmin> addpg dsins1 dependency
      svc:/network/security/kadmin> setprop dsins1/entities =\
          fmri: "svc:/application/sun/ds:ds--var-opt-SUNWdsee-dsins1"
      svc:/network/security/kadmin> setprop dsins1/grouping = astring: "require_all"
      svc:/network/security/kadmin> setprop dsins1/restart_on = astring: "restart"
      svc:/network/security/kadmin> setprop dsins1/type = astring: "service"
      svc:/network/security/kadmin> exit
  13. Kerberos 데몬을 시작합니다.
    kdc1 # svcadm enable -r network/security/krb5kdc
    kdc1 # svcadm enable -r network/security/kadmin
  14. kadmin을 시작하고 주체를 더 추가합니다.

    이 단계에서 GUI Kerberos 관리 도구를 사용하여 주체를 추가할 수 있습니다. 이 작업을 수행하려면 이 절차의 앞부분에서 만든 admin 주체 이름 중 하나로 로그인해야 합니다. 하지만 간소화를 위해 다음 명령줄 예가 제공됩니다.

    kdc1 # /usr/sbin/kadmin -p kws/admin
    Enter password: <Type kws/admin password>
    kadmin: 
    1. 마스터 KDC host 주체를 만듭니다.

      host 주체는 Kerberos화된 응용 프로그램(예: klistkprop)에 사용됩니다. 클라이언트는 인증된 NFS 파일 시스템을 마운트할 때 이 주체를 사용합니다. 주체 인스턴스가 호스트 이름인 경우 FQDN은 이름 서비스의 도메인 이름 대소문자에 관계없이 소문자로 지정되어야 합니다.

      kadmin: addprinc -randkey host/kdc1.example.com
      Principal "host/kdc1.example.com@EXAMPLE.COM" created.
      kadmin: 
    2. (옵션) kclient 주체를 만듭니다.

      이 주체는 kclient 유틸리티가 Kerberos 클라이언트를 설치하는 동안 사용합니다. 이 유틸리티를 사용하지 않으려는 경우 주체를 추가할 필요가 없습니다. kclient 유틸리티 사용자가 이 암호를 사용해야 합니다.

      kadmin: addprinc clntconfig/admin
      Enter password for principal clntconfig/admin@EXAMPLE.COM:<Type the password>
      Re-enter password for principal clntconfig/admin@EXAMPLE.COM: <Type it again>
      Principal "clntconfig/admin@EXAMPLE.COM" created.
      kadmin: 
    3. 마스터 KDC의 keytab 파일에 마스터 KDC의 host 주체를 추가합니다.

      keytab 파일에 host 주체를 추가하면 이 주체가 자동으로 사용될 수 있습니다.

      kadmin: ktadd host/kdc1.example.com
      Entry for principal host/kdc1.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/kdc1.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/kdc1.example.com with kvno 3, encryption type Triple DES cbc
                mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal host/kdc1.example.com with kvno 3, encryption type ArcFour
                with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal host/kdc1.example.com with kvno 3, encryption type DES cbc mode
                with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      kadmin: 
    4. kadmin을 종료합니다.
      kadmin: quit
  15. (옵션) NTP 또는 다른 클럭 동기화 방식을 사용하여 마스터 KDC 클럭을 동기화합니다.

    NTP(Network Time Protocol)를 설치하여 사용할 필요가 없습니다. 하지만 인증이 성공하려면 모든 클럭이 krb5.conf 파일의 libdefaults 절에 정의된 기본 시간에 속해야 합니다. NTP에 대한 자세한 내용은 KDC와 Kerberos 클라이언트 간의 클럭 동기화를 참조하십시오.

  16. 슬레이브 KDC를 구성합니다.

    중복을 제공하려면 슬레이브 KDC를 하나 이상 설치해야 합니다. 구체적인 지침은 수동으로 슬레이브 KDC를 구성하는 방법을 참조하십시오.

자동으로 슬레이브 KDC를 구성하는 방법

Oracle Solaris 릴리스에서는 다음 절차를 사용하여 자동으로 슬레이브 KDC를 구성할 수 있습니다.

시작하기 전에

root 역할을 맡아야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.

대화식으로 슬레이브 KDC를 구성하는 방법

다음 절차에 따라 대화식으로 슬레이브 KDC를 구성할 수 있습니다.

시작하기 전에

root 역할을 맡아야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.

수동으로 슬레이브 KDC를 구성하는 방법

이 절차에서는 이름이 kdc2인 새 슬레이브 KDC가 구성됩니다. 또한 증분 전파가 구성됩니다. 이 절차에서는 다음 구성 매개변수를 사용합니다.

시작하기 전에

마스터 KDC를 구성해야 합니다. 이 슬레이브를 교체 가능한 것으로 설정하려는 경우 구체적인 지침은 마스터 KDC와 슬레이브 KDC 교체를 참조하십시오.

KDC 서버에서 root 역할을 맡아야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.

  1. 마스터 KDC에서 kadmin을 시작합니다.

    마스터 KDC를 구성할 때 만든 admin 주체 이름 중 하나로 로그인해야 합니다.

    kdc1 # /usr/sbin/kadmin -p kws/admin
    Enter password: <Type kws/admin password>
    kadmin: 
    1. 마스터 KDC에서 데이터베이스에 슬레이브 host 주체를 추가합니다(아직 추가하지 않은 경우).

      슬레이브가 작동하려면 host 주체가 있어야 합니다. 주체 인스턴스가 호스트 이름인 경우 FQDN은 이름 서비스의 도메인 이름 대소문자에 관계없이 소문자로 지정되어야 합니다.

      kadmin: addprinc -randkey host/kdc2.example.com
      Principal "host/kdc2.example.com@EXAMPLE.COM" created.
      kadmin: 
    2. 마스터 KDC에서 kiprop 주체를 만듭니다.

      kiprop 주체는 마스터 KDC로부터의 증분 전파를 허가하는 데 사용됩니다.

      kadmin: addprinc -randkey kiprop/kdc2.example.com
      Principal "kiprop/kdc2.example.com@EXAMPLE.COM" created.
      kadmin:
    3. kadmin을 종료합니다.
      kadmin: quit
  2. 마스터 KDC에서 Kerberos 구성 파일(krb5.conf)을 편집합니다.

    슬레이브마다 항목을 하나씩 추가해야 합니다. 이 파일에 대한 자세한 설명은 krb5.conf(4) 매뉴얼 페이지를 참조하십시오.

    kdc1 # cat /etc/krb5/krb5.conf
     .
     .
    [realms]
                    EXAMPLE.COM = {
                    kdc = kdc1.example.com
                    kdc = kdc2.example.com
                    admin_server = kdc1.example.com
            }
  3. 마스터 KDC에서 kadm5.aclkiprop 항목을 추가합니다.

    이 항목은 마스터 KDC가 kdc2 서버에 대한 증분 전파 요청을 수신할 수 있도록 합니다.

    kdc1 # cat /etc/krb5/kadm5.acl
    */admin@EXAMPLE.COM *
    kiprop/kdc2.example.com@EXAMPLE.COM p
  4. kadm5.acl 파일의 새 항목이 사용되도록 마스터 KDC에서 kadmind를 다시 시작합니다.
    kdc1 # svcadm restart network/security/kadmin
  5. 모든 슬레이브 KDC에서 마스터 KDC 서버의 KDC 관리 파일을 복사합니다.

    마스터 KDC 서버가 각 KDC 서버에 필요한 정보를 업데이트했으므로 모든 슬레이브 KDC에서 이 단계를 수행해야 합니다. ftp 또는 유사한 전송 방식을 사용하여 마스터 KDC의 다음 파일을 복사할 수 있습니다.

    • /etc/krb5/krb5.conf

    • /etc/krb5/kdc.conf

  6. 모든 슬레이브 KDC에서 마스터 KDC에 대한 항목과 각 슬레이브 KDC를 데이터베이스 전파 구성 파일 kpropd.acl에 추가합니다.

    모든 슬레이브 KDC 서버에서 이 정보를 업데이트해야 합니다.

    kdc2 # cat /etc/krb5/kpropd.acl
    host/kdc1.example.com@EXAMPLE.COM
    host/kdc2.example.com@EXAMPLE.COM
  7. 모든 슬레이브 KDC에서 Kerberos 액세스 제어 목록 파일 kadm5.acl이 채워져 있지 않은지 확인합니다.

    수정되지 않은 kadm5.acl 파일은 다음과 같이 표시됩니다.

    kdc2 # cat /etc/krb5/kadm5.acl
    */admin@___default_realm___ *

    파일에 kiprop 항목이 있을 경우 제거합니다.

  8. 새 슬레이브에서 kdc.conf의 항목을 변경합니다.

    sunw_dbprop_master_ulogsize 항목을 sunw_dbprop_slave_poll을 정의하는 항목으로 바꿉니다. 이 항목은 폴링 시간을 2분으로 설정합니다.

    kdc1 # cat /etc/krb5/kdc.conf
    [kdcdefaults]
            kdc_ports = 88,750
    
    [realms]
            EXAMPLE.COM= {
                    profile = /etc/krb5/krb5.conf
                    database_name = /var/krb5/principal
                    acl_file = /etc/krb5/kadm5.acl
                    kadmind_port = 749
                    max_life = 8h 0m 0s
                    max_renewable_life = 7d 0h 0m 0s
                    sunw_dbprop_enable = true
                    sunw_dbprop_slave_poll = 2m
            }
  9. 새 슬레이브에서 kadmin 명령을 시작합니다.

    마스터 KDC를 구성할 때 만든 admin 주체 이름 중 하나로 로그인해야 합니다.

    kdc2 # /usr/sbin/kadmin -p kws/admin
    Enter password: <Type kws/admin password>
    kadmin: 
    1. kadmin을 사용하여 슬레이브의 keytab 파일에 슬레이브의 host 주체를 추가합니다.

      이 항목은 kprop 및 기타 Kerberos화된 응용 프로그램이 작동할 수 있도록 합니다. 주체 인스턴스가 호스트 이름인 경우 FQDN은 이름 서비스의 도메인 이름 대소문자에 관계없이 소문자로 지정되어야 합니다.

      kadmin: ktadd host/kdc2.example.com
      Entry for principal host/kdc2.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/kdc2.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/kdc2.example.com with kvno 3, encryption type Triple DES cbc
                mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal host/kdc2.example.com with kvno 3, encryption type ArcFour
                with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal host/kdc2.example.com with kvno 3, encryption type DES cbc mode
                with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      kadmin: 
    2. 슬레이브 KDC의 keytab 파일에 kiprop 주체를 추가합니다.

      krb5.keytab 파일에 kiprop 주체를 추가하면 증분 전파가 시작될 때 kpropd 명령이 자체적으로 인증할 수 있습니다.

      kadmin: ktadd kiprop/kdc2.example.com
      Entry for principal kiprop/kdc2.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 kiprop/kdc2.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 kiprop/kdc2.example.com with kvno 3, encryption type Triple DES cbc
                mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal kiprop/kdc2.example.com with kvno 3, encryption type ArcFour
                with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal kiprop/kdc2.example.com with kvno 3, encryption type DES cbc mode
                with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      kadmin: 
    3. kadmin을 종료합니다.
      kadmin: quit
  10. 새 슬레이브에서 Kerberos 전파 데몬을 시작합니다.
    kdc2 # svcadm enable network/security/krb5_prop
  11. 새 슬레이브에서 kdb5_util을 사용하여 stash 파일을 만듭니다.
    kdc2 # /usr/sbin/kdb5_util stash
    kdb5_util: Cannot find/read stored master key while reading master key
    kdb5_util: Warning: proceeding without master key
    
    Enter KDC database master key: <Type the key>
  12. (옵션) 새 슬레이브 KDC에서 NTP 또는 다른 클럭 동기화 방식을 사용하여 마스터 KDC 클럭을 동기화합니다.

    NTP(Network Time Protocol)를 설치하여 사용할 필요가 없습니다. 하지만 인증이 성공하려면 모든 클럭이 krb5.conf 파일의 libdefaults 섹션에 정의된 기본 시간에 속해야 합니다. NTP에 대한 자세한 내용은 KDC와 Kerberos 클라이언트 간의 클럭 동기화를 참조하십시오.

  13. 새 슬레이브에서 KDC 데몬(krb5kdc)을 시작합니다.
    kdc2 # svcadm enable network/security/krb5kdc

마스터 서버에서 TGS(티켓 부여 서비스) 키를 새로 고치는 방법

KDC 서버가 Solaris 10 릴리스 이전에 만들어져서 TGS(티켓 부여 서비스) 주체에 DES 키만 있을 경우 이 키는 TGT(티켓 부여 티켓) 세션 키의 암호화 유형을 DES로 제한합니다. KDC가 더 강력한 암호화 유형을 추가로 지원하는 릴리스로 업데이트되면 관리자는 KDC가 생성한 모든 세션 키에 더 강력한 암호화가 사용되도록 할 수 있습니다. 하지만 기존 TGS 주체의 키가 새 암호화 유형을 포함하도록 새로 고쳐지지 않을 경우 TGT 세션 키가 계속 DES로 제한됩니다. 다음 절차에서는 추가 암호화 유형을 사용할 수 있도록 키를 새로 고칩니다.

예 21-2 마스터 서버에서 주체 키 새로 고침

root로 KDC 마스터에 로그온하면 다음 명령을 사용하여 TGS 서비스 주체를 새로 고칠 수 있습니다.

kdc1 # kadmin.local -q 'cpw -randkey krbtgt/EXAMPLE.COM@EXAMPLE.COM'