탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle Solaris 11.1 관리: 보안 서비스 Oracle Solaris 11.1 Information Library (한국어) |
FTP 실행 시 Kerberos를 통한 일반 보안 서비스 사용 방법
Kerberos 보안 모드가 여러 개인 보안 NFS 환경 설정 방법
Kerberos 클라이언트 설치 프로파일을 만드는 방법
Active Directory 서버에 대한 Kerberos 클라이언트 구성 방법
TGT(티켓 부여 티켓) 확인을 사용 안함으로 설정하는 방법
Kerberos로 보호된 NFS 파일 시스템에 root 사용자로 액세스하는 방법
Kerberos 영역에서 사용자의 자동 마이그레이션을 구성하는 방법
모든 TGT(티켓 부여 티켓)를 자동으로 갱신하는 방법
서버 업그레이드 후 Kerberos 데이터베이스 변환 방법
증분 전파를 사용하도록 마스터 KDC를 재구성하는 방법
증분 전파를 사용하도록 슬레이브 KDC를 재구성하는 방법
전체 전파를 사용하도록 슬레이브 KDC를 구성하는 방법
수동으로 슬레이브 KDC에 Kerberos 데이터베이스를 전파하는 방법
비Kerberos 객체 클래스 유형에서 Kerberos 주체 속성을 함께 사용하는 방법
Kerberos 소프트웨어를 설치한 후에는 KDC 서버를 구성해야 합니다. 마스터 KDC와 하나 이상의 슬레이브 KDC를 구성하면 자격 증명을 발행하는 서비스가 제공됩니다. 이러한 자격 증명은 Kerberos 서비스의 기본 사항이므로 다른 작업을 시도하기 전에 KDC를 설치해야 합니다.
마스터 KDC와 슬레이브 KDC의 가장 큰 차이점은 마스터 KDC만 데이터베이스 관리 요청을 처리할 수 있다는 것입니다. 예를 들어, 암호 변경 또는 새 주체 추가 작업은 마스터 KDC에서 완료해야 합니다. 그런 다음 해당 변경 사항을 KDC로 전파할 수 있습니다. 슬레이브 KDC와 마스터 KDC는 모두 자격 증명을 생성합니다. 이 기능은 마스터 KDC가 응답할 수 없는 경우 중복을 제공합니다.
표 21-1 KDC 서버 구성(작업 맵)
|
Oracle Solaris 11 릴리스에서는 다음 절차를 사용하여 자동으로 마스터 KDC를 구성할 수 있습니다.
시작하기 전에
root 역할을 맡아야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.
kdcmgr 유틸리티를 실행하여 KDC를 만듭니다. 마스터 키 암호와 관리 주체에 대한 암호를 모두 제공해야 합니다.
kdc1# kdcmgr -a kws/admin -r EXAMPLE.COM create master Starting server setup --------------------------------------- Setting up /etc/krb5/kdc.conf Setting up /etc/krb5/krb5.conf 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 password> Re-enter KDC database master key to verify: <Type it again> Authenticating as principal root/admin@EXAMPLE.COM with password. WARNING: no policy specified for kws/admin@EXAMPLE.COM; defaulting to no policy 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. Setting up /etc/krb5/kadm5.acl. --------------------------------------------------- Setup COMPLETE. kdc1#
Oracle Solaris 릴리스에서는 다음 절차를 사용하여 대화식으로 마스터 KDC를 구성할 수 있습니다.
시작하기 전에
root 역할을 맡아야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.
kdcmgr 유틸리티를 실행하여 KDC를 만듭니다. 마스터 키 암호와 관리 주체에 대한 암호를 모두 제공해야 합니다.
kdc1# kdcmgr create master Starting server setup --------------------------------------- Enter the Kerberos realm: EXAMPLE.COM Setting up /etc/krb5/kdc.conf Setting up /etc/krb5/krb5.conf 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 password> Re-enter KDC database master key to verify: <Type it again> Enter the krb5 administrative principal to be created: kws/admin Authenticating as principal root/admin@EXAMPLE.COM with password. WARNING: no policy specified for kws/admin@EXAMPLE.COM; defaulting to no policy 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. Setting up /etc/krb5/kadm5.acl. --------------------------------------------------- Setup COMPLETE. kdc1#
예 21-1 KDC 서버 상태 표시
kdcmgr status 명령을 사용하여 마스터 또는 슬레이브 KDC 서버에 대한 정보를 표시할 수 있습니다.
이 절차에서는 증분 전파가 구성됩니다. 또한 다음 구성 매개변수가 사용됩니다.
영역 이름 = EXAMPLE.COM
DNS 도메인 이름 = example.com
마스터 KDC = kdc1.example.com
admin 주체 = kws/admin
온라인 도움말 URL = http://docs.oracle.com/cd/E23824_01/html/821-1456/aadmin-23.html
시작하기 전에
이 절차를 수행하려면 호스트가 DNS를 사용하도록 구성되어 있어야 합니다. 이 마스터를 교체 가능한 것으로 설정하려는 경우 구체적인 이름 지정 지침은 마스터 KDC와 슬레이브 KDC 교체를 참조하십시오.
root 역할을 맡아야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.
영역 이름 및 서버 이름을 변경해야 합니다. 이 파일에 대한 자세한 설명은 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 암호화 유형 사용을 참조하십시오.
영역 이름을 변경해야 합니다. 이 파일에 대한 자세한 설명은 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 암호화 유형 사용을 참조하십시오.
kdb5_util 명령은 KDC 데이터베이스를 만듭니다. 또한 -s 옵션과 함께 사용할 경우 이 명령은 kadmind 및 krb5kdc 데몬이 시작되기 전에 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>
채워진 /etc/krb5/kadm5.acl 파일에는 KDC를 관리할 수 있도록 허용된 모든 주체 이름이 포함되어야 합니다.
kws/admin@EXAMPLE.COM *
이 항목은 EXAMPLE.COM 영역의 kws/admin 주체가 KDC의 주체 또는 정책을 수정할 수 있도록 합니다. 기본 설치에는 모든 admin 주체와 일치하는 별표(*)가 포함됩니다. 이 기본 설치의 경우 보안 위험이 있을 수 있으므로 모든 admin 주체의 목록을 포함하는 것이 더 안전합니다. 자세한 내용은 kadm5.acl(4) 매뉴얼 페이지를 참조하십시오.
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:
kdc1 # svcadm enable -r network/security/krb5kdc kdc1 # svcadm enable -r network/security/kadmin
이 단계에서 그래픽 Kerberos 관리 도구를 사용하여 주체를 추가할 수 있습니다. 이 작업을 수행하려면 이 절차의 앞부분에서 만든 admin 주체 이름 중 하나로 로그인해야 합니다. 하지만 간소화를 위해 다음 명령줄 예가 제공됩니다.
kdc1 # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin:
host 주체는 Kerberos화된 응용 프로그램(예: kprop)이 변경 사항을 슬레이브 KDC에 전파하는 데 사용합니다. 또한 이 주체는 ssh 등의 응용 프로그램을 사용하여 KDC 서버에 대한 보안 원격 액세스를 제공하는 데 사용됩니다. 주체 인스턴스가 호스트 이름인 경우 FQDN은 이름 서비스의 도메인 이름 대소문자에 관계없이 소문자로 지정되어야 합니다.
kadmin: addprinc -randkey host/kdc1.example.com Principal "host/kdc1.example.com@EXAMPLE.COM" created. kadmin:
이 주체는 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:
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:
kadmin: quit
NTP(Network Time Protocol)를 설치하여 사용할 필요가 없습니다. 하지만 인증이 성공하려면 모든 클럭이 krb5.conf 파일의 libdefaults 섹션에 정의된 기본 시간에 속해야 합니다. NTP에 대한 자세한 내용은 KDC와 Kerberos 클라이언트 간의 클럭 동기화를 참조하십시오.
중복을 제공하려면 슬레이브 KDC를 하나 이상 설치해야 합니다. 구체적인 지침은 수동으로 슬레이브 KDC를 구성하는 방법을 참조하십시오.
다음 절차에 따라 LDAP 데이터 서버를 사용하도록 KDC를 구성할 수 있습니다.
이 절차에서는 다음 구성 매개변수가 사용됩니다.
영역 이름 = EXAMPLE.COM
DNS 도메인 이름 = example.com
마스터 KDC = kdc1.example.com
디렉토리 서버 = dsserver.example.com
admin 주체 = kws/admin
LDAP 서비스의 FMRI = svc:/application/sun/ds:ds--var-opt-SUNWdsee-dsins1
온라인 도움말 URL = http://docs.oracle.com/cd/E23824_01/html/821-1456/aadmin-23.html
시작하기 전에
또한 이 절차를 수행하려면 호스트가 DNS를 사용하도록 구성되어 있어야 합니다. 성능을 향상시키려면 KDC 및 LDAP 디렉토리 서비스를 동일한 서버에 설치하십시오. 또한 디렉토리 서버가 실행 중이어야 합니다. 다음 절차는 Sun Directory Server Enterprise Edition 7.0 릴리스를 사용하는 서버에서 작동합니다.
KDC 서버에서 root 역할을 맡아야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.
다음 단계에서는 디렉토리 서버의 자체 서명된 인증서를 사용하도록 릴리스 KDC를 구성합니다. 인증서가 만료된 경우 To Manage Self-Signed Certificates의 인증서 갱신 절차를 따르십시오.
# /export/sun-ds6.1/ds6/bin/dsadm show-cert -F der /export/sun-ds6.1/directory2 \ defaultCert > /tmp/defaultCert.cert.der
# 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
이 예에서는 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 항목에는 간단한 버전이 아닌 정규화된 호스트 이름이 포함되어야 합니다.
# ldapmodify -h dsserver.example.com -D "cn=directory manager" -f /usr/share/lib/ldif/kerberos.ldif
krb5.conf 파일에 다음 항목을 추가합니다.
realms 섹션에 database_module을 정의하는 항목을 추가합니다.
database_module = LDAP
[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 }
이 명령은 krbcontainer 및 여러 개의 다른 객체를 만듭니다. 또한 /var/krb5/.k5.EXAMPLE.COM 마스터 키 stash 파일을 만듭니다.
# kdb5_ldap_util -D "cn=directory manager" create -P abcd1234 -r EXAMPLE.COM -s
해당 암호는 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"
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
# ldapmodify -a -h dsserver.example.com -D "cn=directory manager" -f kdc_roles.ldif
# 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
영역 이름 및 서버 이름을 변경해야 합니다. 이 파일에 대한 자세한 설명은 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 암호화 유형 사용을 참조하십시오.
영역 이름을 변경해야 합니다. 이 파일에 대한 자세한 설명은 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 암호화 유형 사용을 참조하십시오.
채워진 /etc/krb5/kadm5.acl 파일에는 KDC를 관리할 수 있도록 허용된 모든 주체 이름이 포함되어야 합니다.
kws/admin@EXAMPLE.COM *
이 항목은 EXAMPLE.COM 영역의 kws/admin 주체가 KDC의 주체 또는 정책을 수정할 수 있도록 합니다. 기본 설치에는 모든 admin 주체와 일치하는 별표(*)가 포함됩니다. 이 기본 설치의 경우 보안 위험이 있을 수 있으므로 모든 admin 주체의 목록을 포함하는 것이 더 안전합니다. 자세한 내용은 kadm5.acl(4) 매뉴얼 페이지를 참조하십시오.
다음 하위 단계에서 Kerberos 서비스에 사용되는 주체를 만듭니다.
kdc1 # /usr/sbin/kadmin.local kadmin.local:
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:
다음 단계에 필요한 모든 주체를 추가한 것입니다.
kadmin.local: quit
LDAP 및 KDC 서버가 동일한 호스트에서 실행되고 있으며 LDAP 서비스가 SMF FMRI로 구성된 경우 Kerberos 데몬에 대한 LDAP 서비스에 종속성을 추가합니다. LDAP 서비스가 다시 시작되는 경우 이 종속성이 KDC 서비스를 다시 시작합니다.
# 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
# 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
kdc1 # svcadm enable -r network/security/krb5kdc kdc1 # svcadm enable -r network/security/kadmin
이 단계에서 GUI Kerberos 관리 도구를 사용하여 주체를 추가할 수 있습니다. 이 작업을 수행하려면 이 절차의 앞부분에서 만든 admin 주체 이름 중 하나로 로그인해야 합니다. 하지만 간소화를 위해 다음 명령줄 예가 제공됩니다.
kdc1 # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin:
host 주체는 Kerberos화된 응용 프로그램(예: klist 및 kprop)에 사용됩니다. 클라이언트는 인증된 NFS 파일 시스템을 마운트할 때 이 주체를 사용합니다. 주체 인스턴스가 호스트 이름인 경우 FQDN은 이름 서비스의 도메인 이름 대소문자에 관계없이 소문자로 지정되어야 합니다.
kadmin: addprinc -randkey host/kdc1.example.com Principal "host/kdc1.example.com@EXAMPLE.COM" created. kadmin:
이 주체는 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:
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:
kadmin: quit
NTP(Network Time Protocol)를 설치하여 사용할 필요가 없습니다. 하지만 인증이 성공하려면 모든 클럭이 krb5.conf 파일의 libdefaults 절에 정의된 기본 시간에 속해야 합니다. NTP에 대한 자세한 내용은 KDC와 Kerberos 클라이언트 간의 클럭 동기화를 참조하십시오.
중복을 제공하려면 슬레이브 KDC를 하나 이상 설치해야 합니다. 구체적인 지침은 수동으로 슬레이브 KDC를 구성하는 방법을 참조하십시오.
Oracle Solaris 릴리스에서는 다음 절차를 사용하여 자동으로 슬레이브 KDC를 구성할 수 있습니다.
시작하기 전에
root 역할을 맡아야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.
kdcmgr 유틸리티를 실행하여 KDC를 만듭니다. 마스터 키 암호와 관리 주체에 대한 암호를 모두 제공해야 합니다.
kdc2# kdcmgr -a kws/admin -r EXAMPLE.COM create -m kdc1 slave Starting server setup --------------------------------------- Setting up /etc/krb5/kdc.conf Setting up /etc/krb5/krb5.conf Obtaining TGT for kws/admin ... Password for kws/admin@EXAMPLE.COM: <Type the password> Setting up /etc/krb5/kadm5.acl. Setting up /etc/krb5/kpropd.acl. Waiting for database from master... Waiting for database from master... Waiting for database from master... 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 password> --------------------------------------------------- Setup COMPLETE. kdc2#
다음 절차에 따라 대화식으로 슬레이브 KDC를 구성할 수 있습니다.
시작하기 전에
root 역할을 맡아야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.
kdcmgr 유틸리티를 실행하여 KDC를 만듭니다. 마스터 키 암호와 관리 주체에 대한 암호를 모두 제공해야 합니다.
kdc1# kdcmgr create slave Starting server setup --------------------------------------- Enter the Kerberos realm: EXAMPLE.COM What is the master KDC's host name?: kdc1 Setting up /etc/krb5/kdc.conf Setting up /etc/krb5/krb5.conf Obtaining TGT for kws/admin ... Password for kws/admin@EXAMPLE.COM: <Type the password> Setting up /etc/krb5/kadm5.acl. Setting up /etc/krb5/kpropd.acl. Waiting for database from master... Waiting for database from master... Waiting for database from master... 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 password> --------------------------------------------------- Setup COMPLETE. kdc2#
이 절차에서는 이름이 kdc2인 새 슬레이브 KDC가 구성됩니다. 또한 증분 전파가 구성됩니다. 이 절차에서는 다음 구성 매개변수를 사용합니다.
영역 이름 = EXAMPLE.COM
DNS 도메인 이름 = example.com
마스터 KDC = kdc1.example.com
슬레이브 KDC = kdc2.example.com
admin 주체 = kws/admin
시작하기 전에
마스터 KDC를 구성해야 합니다. 이 슬레이브를 교체 가능한 것으로 설정하려는 경우 구체적인 지침은 마스터 KDC와 슬레이브 KDC 교체를 참조하십시오.
KDC 서버에서 root 역할을 맡아야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.
마스터 KDC를 구성할 때 만든 admin 주체 이름 중 하나로 로그인해야 합니다.
kdc1 # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin:
슬레이브가 작동하려면 host 주체가 있어야 합니다. 주체 인스턴스가 호스트 이름인 경우 FQDN은 이름 서비스의 도메인 이름 대소문자에 관계없이 소문자로 지정되어야 합니다.
kadmin: addprinc -randkey host/kdc2.example.com Principal "host/kdc2.example.com@EXAMPLE.COM" created. kadmin:
kiprop 주체는 마스터 KDC로부터의 증분 전파를 허가하는 데 사용됩니다.
kadmin: addprinc -randkey kiprop/kdc2.example.com Principal "kiprop/kdc2.example.com@EXAMPLE.COM" created. kadmin:
kadmin: quit
슬레이브마다 항목을 하나씩 추가해야 합니다. 이 파일에 대한 자세한 설명은 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 }
이 항목은 마스터 KDC가 kdc2 서버에 대한 증분 전파 요청을 수신할 수 있도록 합니다.
kdc1 # cat /etc/krb5/kadm5.acl */admin@EXAMPLE.COM * kiprop/kdc2.example.com@EXAMPLE.COM p
kdc1 # svcadm restart network/security/kadmin
마스터 KDC 서버가 각 KDC 서버에 필요한 정보를 업데이트했으므로 모든 슬레이브 KDC에서 이 단계를 수행해야 합니다. ftp 또는 유사한 전송 방식을 사용하여 마스터 KDC의 다음 파일을 복사할 수 있습니다.
/etc/krb5/krb5.conf
/etc/krb5/kdc.conf
모든 슬레이브 KDC 서버에서 이 정보를 업데이트해야 합니다.
kdc2 # cat /etc/krb5/kpropd.acl host/kdc1.example.com@EXAMPLE.COM host/kdc2.example.com@EXAMPLE.COM
수정되지 않은 kadm5.acl 파일은 다음과 같이 표시됩니다.
kdc2 # cat /etc/krb5/kadm5.acl */admin@___default_realm___ *
파일에 kiprop 항목이 있을 경우 제거합니다.
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 }
마스터 KDC를 구성할 때 만든 admin 주체 이름 중 하나로 로그인해야 합니다.
kdc2 # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin:
이 항목은 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:
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:
kadmin: quit
kdc2 # svcadm enable network/security/krb5_prop
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>
NTP(Network Time Protocol)를 설치하여 사용할 필요가 없습니다. 하지만 인증이 성공하려면 모든 클럭이 krb5.conf 파일의 libdefaults 섹션에 정의된 기본 시간에 속해야 합니다. NTP에 대한 자세한 내용은 KDC와 Kerberos 클라이언트 간의 클럭 동기화를 참조하십시오.
kdc2 # svcadm enable network/security/krb5kdc
KDC 서버가 Solaris 10 릴리스 이전에 만들어져서 TGS(티켓 부여 서비스) 주체에 DES 키만 있을 경우 이 키는 TGT(티켓 부여 티켓) 세션 키의 암호화 유형을 DES로 제한합니다. KDC가 더 강력한 암호화 유형을 추가로 지원하는 릴리스로 업데이트되면 관리자는 KDC가 생성한 모든 세션 키에 더 강력한 암호화가 사용되도록 할 수 있습니다. 하지만 기존 TGS 주체의 키가 새 암호화 유형을 포함하도록 새로 고쳐지지 않을 경우 TGT 세션 키가 계속 DES로 제한됩니다. 다음 절차에서는 추가 암호화 유형을 사용할 수 있도록 키를 새로 고칩니다.
kdc1 % /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin: cpw -randkey krbtgt/EXAMPLE.COM@EXAMPLE.COM
예 21-2 마스터 서버에서 주체 키 새로 고침
root로 KDC 마스터에 로그온하면 다음 명령을 사용하여 TGS 서비스 주체를 새로 고칠 수 있습니다.
kdc1 # kadmin.local -q 'cpw -randkey krbtgt/EXAMPLE.COM@EXAMPLE.COM'