탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
![]() |
Oracle Solaris 관리: 보안 서비스 Oracle Solaris 11 Information Library (한국어) |
LDAP 데이터 서버를 사용하도록 KDC를 구성하는 방법
마스터 서버에서 TGS(티켓 부여 서비스) 키를 새로 고치는 방법
FTP 실행 시 Kerberos를 통한 일반 보안 서비스 사용 방법
Kerberos 보안 모드가 여러 개인 보안 NFS 환경 설정 방법
Kerberos 클라이언트 설치 프로파일을 만드는 방법
Active Directory 서버에 대한 Kerberos 클라이언트 구성 방법
TGT(티켓 부여 티켓) 확인을 사용 안함으로 설정하는 방법
Kerberos로 보호된 NFS 파일 시스템에 root 사용자로 액세스하는 방법
서버 업그레이드 후 Kerberos 데이터베이스 변환 방법
증분 전파를 사용하도록 마스터 KDC를 재구성하는 방법
증분 전파를 사용하도록 슬레이브 KDC를 재구성하는 방법
전체 전파를 사용하도록 슬레이브 KDC를 구성하는 방법
수동으로 슬레이브 KDC에 Kerberos 데이터베이스를 전파하는 방법
비Kerberos 객체 클래스 유형에서 Kerberos 주체 속성을 함께 사용하는 방법
Kerberos화된 응용 프로그램만 사용으로 설정하는 방법
Kerberos 클라이언트에는 Kerberos 서비스를 사용해야 하는 네트워크의 KDC 서버가 아닌 호스트가 포함됩니다. 이 절에서는 root 인증을 사용하여 NFS 파일 시스템을 마운트하는 자세한 내용과 함께 Kerberos 클라이언트 설치 절차를 제공합니다.
다음 작업 맵에는 Kerberos 클라이언트 설정과 관련된 모든 절차가 포함되어 있습니다. 각 행에서는 작업 식별자, 해당 작업을 수행하고자 하는 이유 설명, 작업에 대한 링크를 차례로 제공합니다.
|
이 절차에서는 Kerberos 클라이언트를 설치할 때 사용할 수 있는 kclient 프로파일을 만듭니다. kclient 프로파일을 사용하면 입력 오류 발생 가능성이 줄어듭니다. 또한 이 프로파일을 사용하면 대화식 프로세스에 비해 사용자 개입이 줄어듭니다.
샘플 kclient 프로파일은 다음과 같이 표시될 수 있습니다.
client# cat /net/denver.example.com/export/install/profile REALM EXAMPLE.COM KDC kdc1.example.com ADMIN clntconfig FILEPATH /net/denver.example.com/export/install/krb5.conf NFS 1 DNSLOOKUP none
시작하기 전에
이 절차에서는 설치 프로파일을 사용합니다. Kerberos 클라이언트 설치 프로파일을 만드는 방법을 참조하십시오.
자세한 내용은 관리 권한을 얻는 방법을 참조하십시오.
프로세스를 완료하려면 clntconfig 주체에 대한 암호를 제공해야 합니다.
client# /usr/sbin/kclient -p /net/denver.example.com/export/install/profile Starting client setup --------------------------------------------------- kdc1.example.com Setting up /etc/krb5/krb5.conf. Obtaining TGT for clntconfig/admin ... Password for clntconfig/admin@EXAMPLE.COM: <Type the password> nfs/client.example.com entry ADDED to KDC database. nfs/client.example.com entry ADDED to keytab. host/client.example.com entry ADDED to KDC database. host/client.example.com entry ADDED to keytab. Copied /net/denver.example.com/export/install/krb5.conf. --------------------------------------------------- Setup COMPLETE. client#
예 21-8 명령줄 대체를 사용하여 자동으로 Kerberos 클라이언트 구성
다음 예에서는 설치 프로파일에 설정된 DNSARG 및 KDC 매개변수를 대체합니다.
# /usr/sbin/kclient -p /net/denver.example.com/export/install/profile\ -d dns_fallback -k kdc2.example.com Starting client setup --------------------------------------------------- kdc1.example.com Setting up /etc/krb5/krb5.conf. Obtaining TGT for clntconfig/admin ... Password for clntconfig/admin@EXAMPLE.COM: <Type the password> nfs/client.example.com entry ADDED to KDC database. nfs/client.example.com entry ADDED to keytab. host/client.example.com entry ADDED to KDC database. host/client.example.com entry ADDED to keytab. Copied /net/denver.example.com/export/install/krb5.conf. --------------------------------------------------- Setup COMPLETE. client#
이 절차에서는 설치 프로파일 없이 kclient 설치 유틸리티를 사용합니다. Oracle Solaris 11 릴리스에서는 kclient 유틸리티가 향상되어 사용이 간편해지고 Active Directory 서버에서 작동할 수 있게 되었습니다. 자세한 내용은 Active Directory 서버에 대한 Kerberos 클라이언트 구성 방법을 참조하십시오. 이전 릴리스에서 kclient를 실행하는 예는 예 21-10을 참조하십시오.
자세한 내용은 관리 권한을 얻는 방법을 참조하십시오.
다음 정보를 제공해야 합니다.
Kerberos 영역 이름
KDC 마스터 호스트 이름
KDC 슬레이브 호스트 이름
로컬 영역에 매핑할 도메인
Kerberos 인증에 사용할 PAM 서비스 이름 및 옵션
이 시스템이 Oracle Solaris 릴리스를 실행하고 있지 않은 KDC 서버의 클라이언트인 경우 KDC를 실행하고 있는 서버의 유형을 정의해야 합니다. 사용 가능한 서버는 Microsoft Active Directory, MIT KDC 서버, Heimdal KDC 서버 및 Shishi KDC 서버입니다.
Kerberos 조회에 DNS를 사용할 경우 사용하려는 DNS 조회 옵션을 입력해야 합니다. 유효한 옵션은 dns_lookup_kdc, dns_lookup_realm 및 dns_fallback입니다. 이러한 값에 대한 자세한 내용은 krb5.conf(4) 매뉴얼 페이지를 참조하십시오.
이 정보는 /etc/krb5/krb5.conf 구성 파일에 추가됩니다.
영역에 슬레이브 KDC가 있을 경우 슬레이브 KDC 호스트 이름을 입력해야 합니다. 이 정보는 클라이언트의 구성 파일에 추가 KDC 항목을 만드는 데 사용됩니다.
일반적으로 클라이언트 시스템이 Kerberos화된 서비스를 호스트하는 경우 서비스 또는 호스트 키가 필요하지 않습니다.
클라이언트가 클러스터의 구성원인 경우 클러스터의 논리적 이름을 제공해야 합니다. 논리적 호스트 이름은 서비스 키를 만들 때 사용되며, 클러스터에서 Kerberos 서비스를 호스트하는 경우 필요합니다.
이 매핑은 다른 도메인이 클라이언트의 기본 영역에 속할 수 있도록 합니다.
클라이언트가 Kerberos를 사용하는 NFS 서비스를 호스트할 경우 NFS 서비스 키를 만들어야 합니다.
이를 통해 인증에 Kerberos를 사용할 PAM 서비스를 설정할 수 있습니다. 서비스 이름 및 Kerberos 인증을 사용할 방식을 나타내는 플래그를 입력해야 합니다. 유효한 플래그 옵션은 다음과 같습니다.
first – Kerberos 인증을 먼저 사용하고 Kerberos 인증을 실패한 경우에만 UNIX를 사용합니다.
only – Kerberos 인증만 사용합니다.
optional – 선택적으로 Kerberos 인증을 사용합니다.
이 옵션을 설정하면 kclient에 대한 인수가 충분하지 않을 경우 특정 구성 정보를 사용할 수 있습니다.
예 21-9 kclient 설치 유틸리티 실행
client# /usr/sbin/kclient Starting client setup --------------------------------------------------- Is this a client of a non-Solaris KDC ? [y/n]: n No action performed. Do you want to use DNS for kerveros lookups ? [y/n]: n No action performed. Enter the Kerberos realm: EXAMPLE.COM Specify the KDC hostname for the above realm: kdc1.example.com Note, this system and the KDC's time must be within 5 minutes of each other for Kerberos to function. Both systems should run some form of time synchronization system like Network Time Protocol (NTP). Do you have any slave KDC(s) ? [y/n]: y Enter a comma-separated list of slave KDC host names: kdc2.example.com Will this client need service keys ? [y/n]: n No action performed. Is this client a member of a cluster that uses a logical host name ? [y/n]: n No action performed. Do you have multiple domains/hosts to map to realm ? [y/n]: y Enter a comma-separated list of domain/hosts to map to the default realm: engineering.example.com, \ example.com Setting up /etc/krb5/krb5.conf. Do you plan on doing Kerberized nfs ? [y/n]: y Do you want to update /etc/pam.conf ? [y/n]: y Enter a comma-separated list of PAM service names in the following format: service:{first|only|optional}: xscreensaver:first Configuring /etc/pam.conf. Do you want to copy over the master krb5.conf file ? [y/n]: n No action performed. --------------------------------------------------- Setup COMPLETE.
예 21-10 Oracle Solaris 10 릴리스에서 kclient 설치 유틸리티 실행
다음 출력에서는 kclient 명령 실행 결과를 보여 줍니다.
client# /usr/sbin/kclient Starting client setup --------------------------------------------------- Do you want to use DNS for kerberos lookups ? [y/n]: n No action performed. Enter the Kerberos realm: EXAMPLE.COM Specify the KDC hostname for the above realm: kdc1.example.com Setting up /etc/krb5/krb5.conf. Enter the krb5 administrative principal to be used: clntconfig/admin Obtaining TGT for clntconfig/admin ... Password for clntconfig/admin@EXAMPLE.COM: <Type the password> Do you plan on doing Kerberized nfs ? [y/n]: n host/client.example.com entry ADDED to KDC database. host/client.example.com entry ADDED to keytab. Do you want to copy over the master krb5.conf file ? [y/n]: y Enter the pathname of the file to be copied: \ /net/denver.example.com/export/install/krb5.conf Copied /net/denver.example.com/export/install/krb5.conf. --------------------------------------------------- Setup COMPLETE ! #
이 절차에서는 설치 프로파일 없이 kclient 설치 유틸리티를 사용합니다.
client# sharectl set -p ddns_enable=true smb
-T 옵션을 사용하면 KDC 서버 유형이 선택됩니다. 이 경우 Active Directory 서버가 선택됩니다.
client# kclient -T ms_ad
기본적으로 관리자 주체에 대한 암호를 제공해야 합니다.
예 21-11 kclient를 사용하여 Active Directory 서버에 대한 Kerberos 클라이언트 구성
다음 출력에서는 ms_ad(Microsoft Active Directory) 서버 유형 인수를 사용하여 kclient 명령을 실행한 결과를 보여 줍니다. 이름이 EXAMPLE.COM인 Active Directory 도메인에 클라이언트가 결합됩니다.
client# /usr/sbin/kclient -T ms_ad Starting client setup --------------------------------------------------- Attempting to join 'CLIENT' to the 'EXAMPLE.COM' domain. Password for Administrator@EXAMPLE.COM: <Type the password> Forest name found: example.com Looking for local KDCs, DCs and global catalog servers (SVR RRs). Setting up /etc/krb5/krb5.conf Creating the machine account in AD via LDAP. --------------------------------------------------- Setup COMPLETE. #
이 절차에서는 다음 구성 매개변수가 사용됩니다.
영역 이름 = 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://download.oracle.com/docs/cd/E23824_01/html/821-1456/aadmin-23.html
Kerberos 기본 버전에서 파일을 변경하려면 영역 이름 및 서버 이름을 변경해야 합니다. gkadmin에 대한 도움말 파일의 경로도 식별해야 합니다.
kdc1 # cat /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://download.oracle.com/docs/cd/E23824_01/html/821-1456/aadmin-23.html
주 - 암호화 유형을 제한하려는 경우 default_tkt_enctypes 또는 default_tgs_enctypes 행을 설정할 수 있습니다. 암호화 유형 제한과 관련된 문제에 대한 설명은 Kerberos 암호화 유형 사용을 참조하십시오.
기본적으로 Kerberos 영역과 KDC 간의 매핑은 다음 순서로 확인됩니다.
krb5.conf의 realms 섹션에 있는 정의
DNS에서 SRV 레코드 조회
dns_lookup_kdc 또는 dns_fallback을 krb5.conf 파일의 libdefaults 섹션에 추가하여 이 동작을 변경할 수 있습니다. 자세한 내용은 krb5.conf(4) 매뉴얼 페이지를 참조하십시오. 항상 참조가 먼저 시도됩니다.
기본적으로 호스트와 영역 간의 매핑은 다음 순서로 확인됩니다.
KDC가 참조를 지원하는 경우 KDC가 클라이언트에 호스트가 속한 영역을 알릴 수 있음
krb5.conf 파일의 domain_realm 정의
호스트의 DNS 도메인 이름
기본 영역
dns_lookup_kdc 또는 dns_fallback을 krb5.conf 파일의 libdefaults 섹션에 추가하여 이 동작을 변경할 수 있습니다. 자세한 내용은 krb5.conf(4) 매뉴얼 페이지를 참조하십시오. 항상 참조가 먼저 시도됩니다.
NTP(Network Time Protocol)를 설치하여 사용할 필요가 없습니다. 하지만 인증이 성공하려면 모든 클럭이 krb5.conf 파일의 clockskew 관계에 정의된 최대 차이 범위 내에서 KDC 서버의 시간과 동기화되어야 합니다. NTP에 대한 자세한 내용은 KDC와 Kerberos 클라이언트 간의 클럭 동기화를 참조하십시오.
새 Kerberos 주체를 만드는 방법에 설명된 대로 그래픽 Kerberos 관리 도구를 사용하여 주체를 추가할 수 있습니다. 이 작업을 수행하려면 마스터 KDC를 구성할 때 만든 admin 주체 이름 중 하나로 로그인해야 합니다. 하지만 다음 예에서는 명령줄을 사용하여 필요한 주체를 추가하는 방법을 보여 줍니다.
denver # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin:
이 호스트에 연결된 사용자에게 주체가 지정되지 않은 경우에만 사용자 주체를 만들어야 합니다.
kadmin: addprinc mre Enter password for principal mre@EXAMPLE.COM: <Type the password> Re-enter password for principal mre@EXAMPLE.COM: <Type it again> kadmin:
클라이언트가 NFS 서비스를 사용하여 마운트된 파일 시스템에 대해 root 액세스를 실행할 수 있도록 이 단계를 수행해야 합니다. cron 작업을 root로 실행하는 등 비대화식 root 액세스가 필요한 경우에도 이 단계를 수행해야 합니다.
클라이언트가 NFS 서비스를 사용하여 마운트된 원격 파일 시스템에 대한 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. Entry for principal root/client.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal root/client.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab. kadmin:
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. Entry for principal host/denver.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal host/denver.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab. kadmin:
클라이언트가 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. Entry for principal nfs/denver.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal nfs/denver.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab. kadmin:
kadmin: quit
/etc/nfssec.conf 파일을 편집하고 Kerberos 보안 모드 앞에 배치된 "#"을 제거합니다.
# cat /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
svc:/network/dns/client:default 서비스가 사용으로 설정되지 않은 경우 사용으로 설정합니다. 자세한 내용은 resolv.conf(4) 매뉴얼 페이지를 참조하십시오.
# svcadm restart network/rpc/gss
자세한 내용은 warn.conf(4) 매뉴얼 페이지를 참조하십시오.
예 21-12 비Solaris KDC를 사용하는 Kerberos 클라이언트 설정
비Solaris KDC에서 작동하도록 Kerberos 클라이언트를 설정할 수 있습니다. 이 경우 /etc/krb5/krb5.conf 파일의 realms 섹션에 행이 포함되어야 합니다. 이 행은 클라이언트가 Kerberos 암호 변경 서버와 통신하는 동안 사용되는 프로토콜을 변경합니다. 이 행의 형식은 다음과 같습니다.
[realms] EXAMPLE.COM = { kdc = kdc1.example.com kdc = kdc2.example.com admin_server = kdc1.example.com kpasswd_protocol = SET_CHANGE }
예 21-13 호스트 및 도메인 이름과 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"
예 21-14 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 749 kdc1.example.com _kpasswd._udp.EXAMPLE.COM IN SRV 0 0 749 kdc1.example.com
이 절차에서는 로컬 /etc/krb5/krb5.keytab 파일에 저장된 host 주체의 KDC와 TGT(티켓 부여 티켓)를 발행한 KDC가 동일한지 확인하는 보안 점검을 사용 안함으로 설정합니다. 이 점검은 DNS 스푸핑 공격을 방지합니다. 하지만 일부 클라이언트 구성의 경우 host 주체를 사용하지 못할 수 있으므로 클라이언트가 작동하려면 이 점검을 사용 안함으로 설정해야 합니다. 다음은 이 점검을 사용 안함으로 설정해야 할 구성입니다.
클라이언트 IP 주소는 동적으로 지정됩니다. DHCP 클라이언트를 예로 들 수 있습니다.
클라이언트는 서비스를 호스트하도록 구성되지 않으므로 만들어진 host 주체가 없습니다.
호스트 키는 클라이언트에 저장되지 않습니다.
verify_ap_req_nofail 옵션이 false로 설정된 경우 TGT 확인 프로세스가 사용으로 설정되지 않습니다. 이 옵션에 대한 자세한 내용은 krb5.conf(4) 매뉴얼 페이지를 참조하십시오.
client # cat /etc/krb5/krb5.conf [libdefaults] default_realm = EXAMPLE.COM verify_ap_req_nofail = false ...
주 - verify_ap_req_nofail 옵션은 krb5.conf 파일의 [libdefaults] 또는 [realms] 섹션에 입력할 수 있습니다. [libdefaults] 섹션에 옵션을 입력할 경우 모든 영역에 설정이 사용됩니다. [realms] 섹션에 옵션을 입력할 경우 정의된 영역에만 설정이 적용됩니다.
이 절차를 수행하면 클라이언트가 Kerberos 인증을 필요로 하는 NFS 파일 시스템에 root ID 권한으로 액세스할 수 있습니다. 특히 NFS 파일 시스템이 -o sec=krb5,root=client1.sun.com 등의 옵션과 공유되는 경우 이 절차를 수행하십시오.
새 Kerberos 주체를 만드는 방법에 설명된 대로 GUI Kerberos 관리 도구를 사용하여 주체를 추가할 수 있습니다. 이 작업을 수행하려면 마스터 KDC를 구성할 때 만든 admin 주체 이름 중 하나로 로그인해야 합니다. 하지만 다음 예에서는 명령줄을 사용하여 필요한 주체를 추가하는 방법을 보여 줍니다.
denver # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin:
이 주체는 Kerberos 인증이 필요한 NFS 마운트된 파일 시스템에 대해 root와 동등한 액세스를 제공하는 데 사용됩니다. 영역 차원의 root 주체가 만들어지지 않도록 하려면 root 주체가 두번째 구성 요소(Kerberos 클라이언트 시스템의 호스트 이름)와 쌍으로 구성된 구성 요소 주체여야 합니다. 주체 인스턴스가 호스트 이름인 경우 FQDN은 이름 서비스의 도메인 이름 대소문자에 관계없이 소문자로 지정되어야 합니다.
kadmin: addprinc -randkey root/client.example.com Principal "root/client.example.com" created. kadmin:
클라이언트가 NFS 서비스를 사용하여 마운트된 파일 시스템에 대해 root 액세스를 실행할 수 있도록 root 주체를 추가한 경우 이 단계를 수행해야 합니다. cron 작업을 root로 실행하는 등 비대화식 root 액세스가 필요한 경우에도 이 단계를 수행해야 합니다.
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. Entry for principal root/client.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal root/client.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab. kadmin:
kadmin: quit
Kerberos 주체가 없는 사용자는 기존 Kerberos 영역으로 자동 마이그레이션될 수 있습니다. 마이그레이션을 수행하려면 /etc/pam.conf의 서비스 인증 스택에서 pam_krb5_migrate 모듈을 스택으로 구성하여 사용 중인 서비스에 PAM 프레임워크를 사용합니다.
이 예에서는 gdm 및 other PAM 서비스 이름이 자동 마이그레이션을 사용하도록 구성됩니다. 사용되는 구성 매개변수는 다음과 같습니다.
영역 이름 = EXAMPLE.COM
마스터 KDC = kdc1.example.com
마이그레이션 서비스를 호스트하는 시스템 = server1.example.com
마이그레이션 서비스 주체 = host/server1.example.com
시작하기 전에
server1을 EXAMPLE.COM 영역의 Kerberos 클라이언트로 설정합니다. 자세한 내용은 Kerberos 클라이언트 구성을 참조하십시오.
server1의 keytab 파일에 있는 호스트 서비스 주체는 마스터 KDC에 대해 서버를 인증하는 데 사용됩니다.
server1 # klist -k Keytab name: FILE:/etc/krb5/krb5.keytab KVNO Principal ---- ------------------------------------------------ 3 host/server1.example.com@EXAMPLE.COM 3 host/server1.example.com@EXAMPLE.COM 3 host/server1.example.com@EXAMPLE.COM 3 host/server1.example.com@EXAMPLE.COM
# cat /etc/pam.conf . . # # gdm service # gdm auth requisite pam_authtok_get.so.1 gdm auth required pam_dhkeys.so.1 gdm auth required pam_unix_cred.so.1 gdm auth sufficient pam_krb5.so.1 gdm auth requisite pam_unix_auth.so.1 gdm auth optional pam_krb5_migrate.so.1
강제로 Kerberos 암호를 즉시 변경하려는 경우 새로 만들어진 Kerberos 계정의 암호 만료 시간을 현재 시간으로 설정할 수 있습니다. 만료 시간을 현재 시간으로 설정하려면 pam_krb5_migrate 모듈을 사용하는 행에 expire_pw 옵션을 추가합니다. 자세한 내용은 pam_krb5_migrate(5) 매뉴얼 페이지를 참조하십시오.
# cat /etc/pam.conf . . gdm auth optional pam_krb5_migrate.so.1 expire_pw
그러면 Kerberos의 암호가 만료될 때 액세스가 차단됩니다.
# cat /etc/pam.conf . . # # Default definition for Account management # Used when service name is not explicitly mentioned for account management # other account requisite pam_roles.so.1 other account required pam_krb5.so.1 other account required pam_unix_account.so.1
그러면 암호가 만료될 때 암호가 업데이트됩니다.
# cat /etc/pam.conf . . # # Default definition for Password management # Used when service name is not explicitly mentioned for password management # other password required pam_dhkeys.so.1 other password requisite pam_authtok_get.so.1 other password requisite pam_authtok_check.so.1 other password sufficient pam_krb5.so.1 other password required pam_authtok_store.so.1
다음 항목은 root 사용자를 제외한 모든 사용자에 대한 host/server1.example.com 서비스 주체에 마이그레이션 및 조회 권한을 허가합니다. 마이그레이션되지 않아야 하는 사용자는 U 권한을 사용하여 kadm5.acl 파일에 나열되어야 합니다. 이러한 항목은 전체 또는 ui 허가 항목 앞에 와야 합니다. 자세한 내용은 kadm5.acl(4) 매뉴얼 페이지를 참조하십시오.
kdc1 # cat /etc/krb5/kadm5.acl host/server1.example.com@EXAMPLE.COM U root host/server1.example.com@EXAMPLE.COM ui * */admin@EXAMPLE.COM *
이 단계를 수행하면 kadmind 데몬이 새 kadm5.acl 항목을 사용할 수 있습니다.
kdc1 # svcadm restart network/security/kadmin
다음 항목은 kadmind 데몬이 k5migrate PAM 서비스를 사용하고 마이그레이션해야 할 계정에 대해 UNIX 사용자 암호를 검증할 수 있도록 합니다.
# grep k5migrate /etc/pam.conf k5migrate auth required pam_unix_auth.so.1 k5migrate account required pam_unix_account.so.1
denver # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin:
다음 예에서는 이름이 default인 정책을 만드는 데 add_policy 하위 명령이 사용됩니다. 300초의 범위 동안 인증이 세 번 실패하면 900초 동안의 계정 잠금이 트리거됩니다.
kadmin: add_policy -maxfailure 3 -failurecountinterval "300 seconds"\ -lockoutduration "900 seconds" default
kadmin: quit
예 21-15 잠긴 주체의 잠금 해제
다음 예에서는 사용자 주체의 잠금이 해제됩니다.
# kadmin kadmin: add_policy -unlock principal