Kerberos 인증 설치 문제 해결
Kerberos 인증을 사용할 경우 다음 항목을 고려하십시오.
casso128kkr
Kerberos 인증을 사용할 경우 다음 항목을 고려하십시오.
2
시스템 설정 및 모니터링 고려 사항
- 정책 서버 시스템 클록을 KDC 시스템 클록에 동기화합니다(2분 이내). 그렇지 않으면 클록 차이 오류로 인해 Kerberos 인증이 실패합니다.
- DNS 또는 /etc/hosts 파일에 모든 호스트의 적절한 항목이 있는지 확인합니다. 호스트 파일의 각 항목에는 IP 주소, FQDN(정규화된 도메인 이름) 및 호스트 이름이 포함되어야 합니다. 일부 경우에는 이러한 항목의 순서가 중요할 수 있습니다. 여러 항목은 공백 한 칸으로 구분하십시오.IP_addressFQDN hostname
- 워크스테이션에 네트워크 패킷 추적 유틸리티를 설치하여 브라우저와 웹 서버 간에 교환되는 Kerberos 토큰을 확인합니다. TIR로 시작하는 토큰은 NTLM 토큰을 나타내고, YII로 시작하는 토큰은 Kerberos 토큰을 나타냅니다.
- 정책 서버 및 웹 에이전트 로그를 항상 사용하도록 설정하여 인증 오류 메시지를 기록하십시오.
- 정책 서버 및CA Access Gateway가 작동 중단되지 않도록KRB5RCACHETYPE매개 변수를 구성해야 합니다.WindowsKRB5RCACHETYPE을 환경 변수로 추가하고 값을none으로 설정합니다.UNIXKRB5RCACHETYPE환경 변수를none으로 설정하고 내보냅니다.
- KDC에서 암호화 유형을 변경한 후에는 워크스테이션에서 로그오프하십시오.
Kerberos 환경을 관리하기 위한 클라이언트 유틸리티
klist
(UNIX KDC에만 연결되는 클라이언트 응용 프로그램의 경우)
klist를 사용하여 keytab 파일의 내용을 나열합니다. 자격 증명 캐시에 있는 Kerberos 티켓 또는 keytab 파일에 있는 키도 나열됩니다.
-f
플래그를 사용하면 티켓 플래그에 대한 정보가 제공됩니다. 이러한 티켓은 Kerberos 인증 프로세스를 완료하기 위해 전달됩니다. 다음 텍스트는 샘플 klist 출력입니다.
bash-2.05$ klist Ticket cache: /tmp/krb5cc_1002 Default principal: HTTP/[email protected] Valid starting Expires Service principal Mon Dec 22 15:00:03 2014 Mon Dec 22 21:40:03 2014 krbtgt/[email protected]
kinit
kinit 프로그램을 사용하여 UNIX KDC 호스트 및 KDC 클라이언트에서 사용자 및 서비스 프린서펄에 대한 초기 티켓 부여 티켓을 가져오고 캐시합니다.
사용자 프린서펄에 대한 kinit 구문은 다음과 같습니다.
textkinitprincipal_name
이 명령은 사용자 프린서펄을 생성하는 동안 사용되는 암호를 묻습니다.
서비스 프린서펄에 대한 kinit 구문은 다음과 같습니다(호스트에 따라 다를 수 있음).
textkinit -k [-tkeytab_file]principal_name
keytab_file
은 서비스 프린서펄 이름이 포함된 keytab 파일의 위치를 지정합니다.principal_name
은 서비스 프린서펄의 이름입니다. kinit 명령은 keytab 파일을 사용하여 서비스 프린서펄을 인증하므로 암호를 요구하지 않습니다.
- 브라우저와 웹 서버 간에 교환되는 Kerberos 토큰을 확인하려면 워크스테이션에 네트워크 패킷 추적 유틸리티를 설치하십시오. TIR로 시작하는 토큰은 NTLM 토큰을 나타내고, YII로 시작하는 토큰은 Kerberos 토큰을 나타냅니다.
ktpass
ktpass 유틸리티의 버전을 확인하십시오. ktpass 명령 도구 유틸리티는 Windows 지원 도구에 포함되어 있으며 MSDN에서 다운로드하여 설치할 수 있습니다.
kvno
키 버전 번호(kvno)를 확인합니다. 서비스 프린서펄의 kvno는 keytab 파일의 kvno와 일치해야 합니다. keytab의 kvno 번호는 keytab이 생성될 때 표시됩니다.
Windows Active Directory에 대한 서비스 계정의 버전 번호를 확인하려면 다음과 같이 ADSI Edit을 사용하십시오.
- 명령 프롬프트에서 adsiedit.msc를 실행합니다.
- 왼쪽의 "Domain [fqdn_ADhost]" 드롭다운에서 CN=Users, DC=domain, DC=com 아래의 서비스 계정으로 이동합니다.
- 서비스 계정을 마우스 오른쪽 단추로 클릭하고 "속성"을 클릭합니다.
- msDs-KeyVersionNumber 특성의 값이 서비스 계정에 대한 keytab 파일을 생성할 때 표시된 값과 일치하는지 확인합니다.
사용자 계정에 대한 kvno는 암호가 변경될 때마다 변경됩니다. 버전 번호가 일치하지 않으면 계정과 keytab을 생성하거나, kvno가 keytab의 kvno와 일치하도록 암호를 변경하십시오.
UNIX MIT KDC에 대한 서비스 계정의 버전 번호를 확인하려면 다음 명령을 입력합니다.
kvnoprincipal_name
Keytab 문제
- 모든 호스트에 대한 keytab 파일의 이름 및 위치가 krb5.conf 파일에 지정된 이름 및 위치와 일치하는지 확인하십시오.
- 정책 서버 및 웹 서버 호스트에 대한 krb5.keytab 파일에는 호스트 및 서비스 프린서펄이 포함되어 있어야 합니다.
- keytab 파일을 생성하는 동안 사용된 암호화 유형을 항상 확인하십시오. Windows는 기본적으로 RC4-HMAC 암호화를 지원합니다.
- 또한 Kerberos 구성이나 keytab 파일을 변경한 후에는 정책 서버 및 웹 서버 서비스를 다시 시작하십시오.
- keytab 파일이 유효한지 확인하십시오.Windows:keytab 파일이 유효한지 여부를 확인합니다. 정책 서버 및 웹 에이전트에서 Windows 지원 도구를 사용하십시오. 다음 명령을 실행합니다.kinit -k -tkeytab_file_locationrespective_spn예를 들면 다음과 같습니다.kinit -k -t C:\Windows\webserver.keytab HTTP/[email protected]keytab 파일이 유효하면 이 명령은 오류를 반환하지 않습니다.UNIX:다음 명령을 실행하여 정책 서버 및 웹 에이전트에서 keytab 파일이 유효한지 확인합니다.kinit -k -tkeytab_fileservice_principal_name예를 들면 다음과 같습니다.kinit -k -t krbsvc-smps.keytab smps/[email protected]kinit -k -t krbsv-smwa.keytab HTTP/[email protected]오류가 발생하지 않으면 keytab 파일이 정상이고 krb.conf 파일의 값이 유효한 것입니다. 오류가 발생하면 다음 명령을 사용하여 SPN이 KDC에서 유효한지 확인하십시오.kinit host/이 명령은 일반적으로 암호를 요구합니다. 유효한 암호를 제공하면 오류 메시지가 표시되지 않습니다. 이 명령이 암호를 요구하지 않으면 SPN이 식별되지 않은 것입니다. 해당 개체의 속성을 확인하십시오. SPN 항목은 "계정" 탭에 있습니다(예:host/fqdn). 다른 개체에 SPN과 동일한 항목 집합이 있으면 안 됩니다.
암호화 유형에 대한 KDC 지원 확인
Linux에서 Kerberos 인증 설정이 Linux에서 실패하고 다음 오류 메시지가 표시되는 경우:
kinit: KDC가 최초 자격 증명을 가져오는 동안 암호화 유형을 지원하지 않음
다음 작업을 수행하십시오.
- KDC 설정이 특정 암호화 유형을 제한하는지 확인합니다.
- 서비스 계정에서 "이 계정에 DES 암호화 유형 사용"을 선택했는지 확인합니다. 이 경우 서비스 계정은 DES 암호화 유형만 사용하도록 제한됩니다. 모든 암호화 유형을 지원하려면 이 옵션을 선택 취소합니다.
더 자세한 문제 해결 정보는 CA 커뮤니티에서 Kerberos 문제 해결 문서를 참조하십시오.