HOWTO: IIS에서 Kerberos 관련 문제 해결

기술 자료 번역 기술 자료 번역
기술 자료: 326985 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

요약

이 문서에서는 인터넷 정보 서비스(IIS) 서버에서 Kerberos 인증 문제를 해결하는 방법을 설명합니다. 이 문서는 완전한 설명서가 아니지만 발생할 수 있는 대부분의 Kerberos 문제를 해결하는 데 도움이 될 수 있는 많은 참조 자료를 포함하고 있습니다.

기본적으로 Microsoft Windows 2000 Server에서 IIS를 설치하면 메타베이스의 NTAuthenticationProviders 키가 Negotiate, NTLM으로 설정됩니다. Microsoft Internet Explorer 5.0 이상의 클라이언트가 웹 사이트에 연결하면 IIS가 WWW-Authenticate 헤더에 이 두 값을 반환합니다. 이렇게 되면 클라이언트가 연결할 수 있는 인증 방법을 확인합니다. 클라이언트가 협상 방법을 사용하여 연결하기로 결정하면 인증에 Kerberos나 NTLM을 사용할지를 결정하기 위해 서버와 협상합니다. 클라이언트가 협상 방법을 지원하지 않으면 인증에 NTLM을 사용합니다.

이것은 이 프로세스가 이루어지는 방식에 대한 매우 일반적인 설명입니다. Kerberos가 관련될 때 발생하는 현상 중에는 확인할 수 없는 것도 많습니다.

Internet Explorer 클라이언트가 Kerberos 프로토콜을 사용하여 연결할 수 있으면 추가 보안 검사가 수행됩니다. 예를 들어 클라이언트가 TGS(Ticket Granting Service)에서 티켓을 얻은 다음 인증에 사용할 수 있습니다.

이 프로세스가 이루어지는 방식에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
217098 Windows 2000 Kerberos 사용자 인증 프로토콜의 기본 개요
자세한 내용은 다음 Microsoft 웹 사이트를 참조하십시오.
인증(영문)http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/default.mspx?mfr=true
Kerberos 문제를 해결하려면 이러한 참조 자료를 숙독해야 합니다.

참고: 최근에 Internet Explorer 6.0으로 업그레이드한 경우 통합된 Windows 인증 사용 확인란이 기본적으로 선택되어 있지 않기 때문에 Kerberos 문제가 발생할 수 있습니다. 이 옵션을 제대로 설정하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
299838 Internet Explorer 6으로 업그레이드한 후에 Kerberos 인증을 처리할 수 없다

인증 방법 확인

올바른 인증 방법이 IIS 서버나 특정 웹 사이트에 대한 메타베이스에 표시되는지 확인하십시오. 서버가 Microsoft Windows NT 4.0에서 Windows 2000으로 업그레이드되었으면 협상 인증 방법을 사용할 수 없으므로 수동으로 추가해야 합니다. Windows NT 4.0에서 Windows 2000으로 업그레이드하지 않은 경우에는 적절한 인증 방법을 사용할 수 있는지 확인하십시오. 협상 인증 방법을 사용할 수 있는지 확인하고 없는 경우 추가하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
248350 IIS 4.0에서 IIS 5.0으로 업그레이드하면 Kerberos 인증이 실패한다
협상 인증 방법은 전체 IIS 서버에 대해 설정할 수 없고 웹 사이트 수준에서만 설정할 수 있습니다. 이렇게 하려면 Adsutil.vbs 스크립트를 사용하여 웹 사이트의 번호를 추가하십시오. 예를 들어 기본 웹 사이트에만 협상 인증 방법을 설정하려면 다음 명령을 사용하십시오.

cscript adsutil.vbs set w3svc/1/NTAuthenticationProviders "Negotiate,NTLM"
"w3svc" 뒤에 있는 1은 ISM(인터넷 서비스 관리자)에 표시되는 웹 사이트 번호입니다.

서버 이름 확인

다음으로 서버의 실제 NetBIOS 이름이나 DNS 이름(예: www.microsoft.com)과 같은 별칭 이름을 사용하여 웹 사이트에 연결하고 있는지 확인해야 합니다. 서버의 실제 이름이 아닌 이름을 사용하여 웹 서버에 액세스하고 있으면 새로운 SPN(서비스 사용자 이름)이 Windows 2000 Server Resource Kit에서 Setspn 도구를 사용하여 등록되었을 것입니다. Active Directory가 이 서비스 이름을 모르기 때문에 TGS는 사용자를 인증할 티켓을 제공하지 않습니다. 이렇게 되면 클라이언트가 다음으로 사용 가능한 인증 방법인 NTLM을 사용하여 다시 협상합니다. 웹 서버가 www.microsoft.com이라는 DNS(Domain Name System) 이름에 응답하지만 서버의 이름이 webserver1.development.microsoft.com으로 지정되어 있으면 각 IIS 서버의 Active Directory에서 www.microsoft.com을 등록해야 합니다. 이렇게 하려면 Setspn 유틸리티를 다운로드하여 IIS 서버에 설치해야 합니다.

Setspn 유틸리티를 다운로드하는 방법에 대한 자세한 내용은 다음 Microsoft 웹 사이트를 방문하십시오.
Setspn.exe(영문)http://www.microsoft.com/downloads/details.aspx?FamilyID=4e3a58be-29f6-49f6-85be-e866af8e7a88&displaylang=en 실제 이름을 사용하여 연결하는지 확인하려면 DNS 이름 대신 실제 이름을 사용하여 서버에 연결해보십시오. 서버에 연결할 수 없으면 컴퓨터가 위임에 트러스트되었는지 확인 절로 이동하십시오. 서버에 연결할 수 있으면 다음과 같이 서버에 연결하는 데 사용하는 DNS 이름에 대한 SPN을 설정하십시오.
  1. Setspn 유틸리티를 설치합니다.
  2. IIS 서버에서 명령 프롬프트를 연 다음 C:\Program Files\Resource Kit 디렉터리로 변경합니다.
  3. 다음 명령을 실행하여 서버의 Active Directory에 새 SPN(www.microsoft.com)을 추가합니다. 여기서 webserver1은 서버의 NetBIOS 이름입니다.
    Setspn -A HTTP/www.microsoft.com webserver1
    다음과 유사한 출력이 표시됩니다.
    Registering ServicePrincipalNames for CN=webserver1,OU=Domain Controllers,DC=microsoft,DC=com
    HTTP/www.microsoft.com
    Updated object
    							
  4. 서버의 SPN 목록에서 이 새 값을 확인하려면 IIS 서버에서 다음을 입력하십시오. Setspn -L webservername
모든 서비스를 등록할 필요는 없습니다. HTTP, W3SVC, WWW, RPC, CIFS(파일 액세스), WINS 및 UPS(무정전 전원 장치)와 같은 많은 서비스 형식이 HOST라는 기본 서비스 형식으로 매핑됩니다. 예를 들어 클라이언트 소프트웨어가 HTTP/webserver1.microsoft.com의 SPN을 사용하여 webserver1.microsoft.com 서버에서 웹 서버에 대한 HTTP 연결을 수행하지만 이 SPN이 서버에 등록되어 있지 않으면 Windows 2000 도메인 컨트롤러가 자동으로 이것을 HOST/webserver1.microsoft.com으로 매핑합니다. 이 매핑은 웹 서비스가 로컬 시스템 계정에서 실행되고 있는 경우에만 적용됩니다.

컴퓨터가 위임에 트러스트되었는지 확인

이 IIS 서버가 도메인의 구성원이지만 도메인 컨트롤러는 아닌 경우 Kerberos가 제대로 작동하려면 컴퓨터가 위임에 트러스트되어야 합니다. 이렇게 하려면 다음 단계를 수행하십시오.
  1. 도메인 컨트롤러에서 시작을 누르고 설정을 가리킨 다음 제어판을 누릅니다.
  2. 관리 도구 폴더를 두 번 누른 다음 Active Directory 사용자 및 컴퓨터를 두 번 누릅니다.
  3. 도메인에서 Computers 폴더를 누릅니다.
  4. 목록에서 IIS 서버를 찾습니다. 서버 이름을 마우스 오른쪽 단추로 누른 다음 등록 정보를 누릅니다.
  5. 일반 탭을 누르고 위임용으로 트러스트 확인란을 선택한 다음 확인을 누릅니다.

Kerbtray 사용

Kerberos 문제 해결에 매우 유용한 또 다른 유틸리티는 Windows 2000 Resource Kit에 포함되어 있는 Kerbtray.exe입니다. Kerbtray를 사용하여 로컬 캐시에서 부여된 Kerberos 티켓을 확인할 수 있습니다. 이 유틸리티를 다운로드하려면 다음 Microsoft 웹 사이트를 방문하십시오.
Kerbtray.exe: Kerberos Tray(영문)http://www.microsoft.com/downloads/details.aspx?FamilyID=4e3a58be-29f6-49f6-85be-e866af8e7a88&displaylang=en
이 도구에 대한 자세한 내용과 Kerberos 문제 해결에 대한 유용한 정보는 다음 Microsoft 웹 사이트를 참조하십시오.
관리 권한 인증(영문)http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/bestprac/authent.mspx

보안 이벤트 로깅 설정

보안 이벤트 로깅은 Kerberos 인증 실패 문제를 해결할 때 매우 유용할 수 있습니다. 보안 이벤트 로깅이 설정되어 있으면 사용자가 IIS를 통해 인증하려고 할 때의 로그온 실패를 확인할 수 있습니다. 이 경우 인증 프로세스 중 발생할 수 있는 것과 인증 프로세스가 실패한 이유에 대한 설명을 얻을 수 있습니다.

이 절의 나머지 정보는 Michael Howard가 작성한 Desiging Secure Web Based Applications for Windows 2000에서 직접 인용한 것입니다. Windows 2000에서 연결이 인증되기 때문에 로그온 이벤트를 읽는 방법을 이해해야 합니다. 이 절의 목적은 로그온 이벤트를 구성하는 다양한 변수를 설명하는 것입니다.

로그온/로그오프 감사 설정

Microsoft Windows NT에는 로그온 및 로그오프에 대한 한 가지 감사 범주만 포함되어 있습니다. Windows 2000에는 두 번째 감사 범주가 도입되었습니다. 두 가지 범주인 로그온/로그오프 및 계정 로그온에 대해서는 다음 절에서 설명합니다.

계정 로그온 이벤트 감사(로그온/로그오프 범주)

Windows NT와 Windows 2000의 모든 버전에서 사용할 수 있는 이 이벤트 범주는 로그온되거나 로그오프된 계정이 컴퓨터에 네트워크 연결을 설정한 것을 나타냅니다. 즉, 이 감사 이벤트는 로그온이 발생하는 컴퓨터에서 시작됩니다. 로그온/로그오프 범주는 IIS, SQL Server 및 COM+를 사용할 때 대부분의 정보를 제공하기 때문에 중요합니다.

로그온/로그오프 범주에서 가장 중요한 이벤트는 다음과 같습니다.
  • 로그온/로그오프 이벤트 529(로그온 실패)
  • 로그온/로그오프 이벤트 528(로그온 성공)
  • 로그온/로그오프 이벤트 540(네트워크 로그온 성공)
다음 절에서는 이러한 이벤트를 보여주며 표 1에는 이벤트의 각 필드에 대한 설명이 나와 있습니다.

로그온/로그오프 이벤트 529(로그온 실패)

이벤트 종류:     실패 감사
이벤트 원본:   Security
이벤트 범주: 로그온/로그오프
이벤트 ID:       529
날짜:           9/3/1999
시간:           오후 8:57:21
사용자:           NT AUTHORITY\SYSTEM
컴퓨터:       CHERYL-LAPTOP
설명:
로그온 실패:
   원인:           알 수 없는 사용자 이름 또는 잘못된 암호
   사용자 이름:        Administrator
   도메인:           CHERYL-LAPTOP
   로그온 유형:       2
   로그온 프로세스:    seclogon
   인증 패키지: Negotiate
   워크스테이션 이름: CHERYL-LAPTOP

				

로그온/로그오프 이벤트 528(로그온 성공) 및 로그온/로그오프 이벤트 540(네트워크 로그온 성공)

이벤트 종류:     성공 감사
이벤트 원본:   Security
이벤트 범주: 로그온/로그오프
이벤트 ID:       540
날짜:           1/23/2000
시간:           오후 5:41:39
사용자:           EXAIR\Cheryl
컴퓨터:       CHERYL-LAPTOP
설명:
성공적 네트워크 로그온:
   사용자 이름:        cheryl
   도메인:           EXAIR
   로그온 ID:         (0x0,0x17872A8)
   로그온 유형:       3
   로그온 프로세스:    Kerberos
   인증 패키지: Kerberos
   워크스테이션 이름:

				
표 축소표 확대
필드 설명
이벤트 종류, 원본, 범주, ID, 날짜 및 시간별도의 설명 없음
사용자
로그온을 수행하는 사용자 계정 (예: 많은 Windows 2000 서비스를 시작하는 데 사용되는 LocalSystem 계정인 NT AUTHORITY\SYSTEM)
컴퓨터 이벤트가 발생한 컴퓨터
원인 로그온 실패에만 적용됩니다. 계정이 로그온에 실패한 원인입니다.
사용자 이름로그온을 시도하는 사용자 계정의 이름
도메인 로그온을 시도하는 사용자 계정의 도메인
로그온 유형 시도된 로그온의 유형을 나타내는 숫자 값. 가능한 값은 다음과 같습니다.
2 - 대화형(대화형으로 로그온)
3 - 네트워크(네트워크를 통해 시스템 액세스)
4 - 일괄(일괄 작업으로 시작)
5 - 서비스(서비스 컨트롤러가 Windows 서비스 시작)
6 - 프록시(프록시 로그온, Windows NT나 Windows 2000에서는 사용되지 않음)
7 - 잠금 해제(워크스테이션 잠금 해제)
8 - 네트워크 암호화되지 않은 텍스트(일반 텍스트 자격 증명으로 네트워크 로그온)
9 - 새 자격 증명(/netonly 옵션이 사용될 때 RunAs가 사용)
로그온 프로세스로그온을 수행하는 프로세스. 다음은 예제 로그온 프로세스입니다.
- Advapi: LogonUser에 대한 호출로 시작됩니다. LogonUser는 LsaLogonUser를 호출하고 LsaLogonUser에 대한 인수 중 하나인 OriginName이 로그온 시도를 시작한 곳을 나타냅니다.
- User32: WinLogon을 사용하는 일반적인 Windows 2000 로그온
- SCMgr: 서비스 제어 관리자가 서비스 시작
- KsecDD: SMB 서버에 대한 네트워크 연결(예: NET USE 명령을 사용하는 경우)
- Kerberos: Kerberos 보안 지원 공급자(SSP)
- NtlmSsp: NTLM SSP
- Seclogon: Secondary Logon, 즉 RunAs 명령
- IIS: IIS가 로그온 수행. IUSR_machinename 계정에 로그온하거나 다이제스트 인증이나 기본 인증을 사용할 때 생성됩니다.
인증 패키지 계정에 로그온을 시도할 때 호출된 보안 패키지. 인증 패키지는 로그온 데이터를 분석하고 계정을 인증할지 결정하는 DLL(동적 연결 라이브러리)입니다. 가장 일반적인 예는 Kerberos, Negotiate, NTLM 및 MICROSOFT_AUTHENTICATION_PACKAGE_V1_0입니다. MSV1_0이라고도 하는 MICROSOFT_AUTHENTICATION_PACKAGE_V1_0은 SAM 데이터베이스에서 사용자를 인증하고, 신뢰할 수 있는 도메인에서 계정에 대한 창구 인증을 지원하며, 하위 인증 패키지를 지원합니다.
워크스테이션 이름로그온 중 사용자가 사용하는 워크스테이션 이름(알려진 경우)

계정 로그온 이벤트 감사(계정 로그온 범주)

이 이벤트 범주는 계정이 로그온되거나 로그오프된 것과 컴퓨터가 계정의 유효성 확인에 사용된 것을 나타냅니다. 이 감사 이벤트는 계정이 있는 컴퓨터에서 시작됩니다. 이 감사 범주가 설정되어 있으면 티켓 발행을 비롯한 많은 Kerberos 관련 이벤트가 기록됩니다.

다음 절에서는 흔히 볼 수 있는 두 가지 계정 로그온 실패 이벤트를 보여 줍니다.

계정 로그온 이벤트 676(로그온 실패): 인증 티켓 요청 실패됨
이벤트 종류:     실패 감사
이벤트 원본:   Security
이벤트 범주: 계정 로그온
이벤트 ID:       676
날짜:           5/11/2000
시간:           오후 8:47:01
사용자:           NT AUTHORITY\SYSTEM
컴퓨터:       DBSERVER
설명:
인증 티켓 요청 실패됨:
   사용자 이름:  Major
   제공된 도메인 이름:    EXPLORATIONAIR.COM
   서비스 이름:     krbtgt/EXPLORATIONAIR.COM
   티켓 옵션:   0x40810010
   오류 코드:     6
   클라이언트 주소:   172.100.100.12

				
참고: NT AUTHORITY\SYSTEM 계정은 일반적으로 LocalSystem이라고 하며 대부분의 서비스가 실행되는 계정입니다. 보안 이벤트 로그에서 이 계정에 대한 참조를 많이 볼 수 있습니다.

이벤트 676은 Major가 KDC(키 배포 센터)에서 초기 TGT(Ticket Granting Ticket)를 얻을 수 없다는 것을 나타냅니다. 이 이벤트의 가장 중요한 부분은 오류 코드입니다. 오류 코드는 MIT Kerberos 코드와 같습니다. 표 2에서는 가장 일반적인 오류 코드에 대해 설명합니다. 전체 목록은 Kerberos Request For Comments: RFC 1510(영문)에 나와 있습니다.

표 2 - 일반적인 Kerberos 오류 코드
표 축소표 확대
오류 코드 설명
6 Kerberos 데이터베이스에서 클라이언트를 찾을 수 없습니다.
7 Kerberos 데이터베이스에서 서버를 찾을 수 없습니다. 일반적으로 이것은 서비스에 SPN이 등록되지 않았다는 것을 나타냅니다.
23 암호가 만료되었습니다.
32 티켓이 만료되었습니다.
33 티켓이 유효하지 않습니다.
34 요청이 재생됩니다. 누군가가 Kerberos 클라이언트의 응답을 재생하려고 합니다. 공격받고 있을 수 있습니다.
37 클럭이 크게 불일치합니다. Kerberos는 시간에 크게 좌우되므로 모든 클럭이 동기화되어야 합니다.


오류 코드가 큰 수를 나타내는 계정 로그온 이벤트 681(로그온 실패)

경우에 따라 다음과 같은 오류가 나타날 수 있습니다. 문제는 오류 코드가 거의 소용이 없다는 것입니다.
이벤트 종류:     실패 감사
이벤트 원본:   Security
이벤트 범주: 계정 로그온
이벤트 ID:       681
날짜:           5/11/2000
시간:           오후 8:47:01
사용자:           NT AUTHORITY\SYSTEM
컴퓨터:       DBSERVER
설명:
다음 계정으로의 로그온이: Major
 다음 이가: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
 다음 워크스테이션에서: WEBSERVER
 실패했습니다. 오류 코드: 3221225572

				
표 3 - 예제 계정 로그온 오류 코드

표 축소표 확대
오류 코드(10진수)오류 코드(16진수)설명
32212255720xC0000064 지정한 사용자가 없습니다.
3221225570 0xC0000062 입력한 이름은 제대로 구성된 계정 이름이 아닙니다.
32212255690xC0000061클라이언트가 필요한 권한을 가지고 있지 않습니다.
32212255780xC000006A암호를 업데이트할 때, 이 반환 상태는 현재 암호에 제공한 값이 잘못되었음을 나타냅니다.
32212255800xC000006C 암호가 잘못되었습니다. 암호를 업데이트할 때, 이 상태는 일부 암호 규칙을 위반했음을 나타냅니다. 예를 들어 암호 길이가 설정된 기준과 맞지 않을 수도 있습니다.
32212255850xC0000071 사용자 계정 암호가 만료되었습니다.
32212255860xC0000072 현재 참조한 계정을 사용할 수 없습니다.

로그인을 시도할 때 Major의 초기 TGT 요청이 오류 6(Kerberos 데이터베이스에서 클라이언트를 찾을 수 없습니다.) 때문에 실패하고 오류 3221225572(지정한 사용자가 없습니다.) 때문에 일반 로그온 실패가 발생한 것으로 나타나는 앞의 두 보안 실패 이벤트를 서로 관련시키면 오류가 무엇인지 명확해집니다. 즉, Major가 유효한 계정이 아니라는 사실을 알 수 있습니다.

참조

Kerberos에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
266080 Kerberos에 대한 질문과 대답
244474 Kerberos가 강제로 UDP 대신 TCP를 사용하도록 하는 방법
262177 HOWTO: Kerberos 이벤트 로깅 설정
287537 기본 인증을 사용하여 Kerberos 토큰 생성
277741 충분하지 않은 Kerberos용 버퍼로 인한 Internet Explorer 로그온 실패
269643 IIS에 연결할 때 버퍼가 충분하지 않기 때문에 Internet Explorer Kerberos 인증이 이루어지지 않는다
264921 INFO: IIS가 브라우저 클라이언트를 인증하는 방법
248350 IIS 4.0에서 IIS 5.0으로 업그레이드하면 Kerberos 인증이 실패한다
294382 웹 사이트의 "호스트 헤더"가 서버의 NetBIOS 이름과 다른 경우 "401.3" 오류가 나타나면서 인증이 실패할 수 있다
217098 Windows 2000 Kerberos 사용자 인증 프로토콜의 기본 개요
283201 HOWTO: COM+가 설치된 Windows 2000에서 위임 사용
299838 Internet Explorer 6으로 업그레이드한 후에 Kerberos 인증을 처리할 수 없다
230476 Windows 2000에서 일반적인 Kerberos 관련 오류에 대한 설명
320903 TCP를 통한 Kerberos를 사용하여 클라이언트가 로그온할 수 없다
235529 Windows 2000 기반 서버 클러스터에서 Kerberos 지원
Kerberos FAQ에는 Kerberos 프로토콜에 대한 자세한 내용이 들어 있습니다.
Kerberos FAQ, v2.0(영문)




Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

속성

기술 자료: 326985 - 마지막 검토: 2007년 3월 2일 금요일 - 수정: 10.1
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Internet Information Services 5.0
키워드:?
kbhowtomaster KB326985
더 이상 지원되지 않는 제품의 KB 내용에 대한 고지 사항
이 문서에서는 Microsoft에서 더 이상 지원하지 않는 제품에 대해 설명합니다. 따라서 이 문서는 "있는 그대로" 제공되며 업데이트되지 않습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com