큰 시간 오프셋을 방지하기 위한 Windows 시간 서비스 구성 방법

이 문서에서는 큰 시간 오프셋에 대해 Windows 시간 서비스를 구성하는 방법을 설명합니다.

적용 대상: Windows 10 - 모든 버전, Windows Server 2012 R2
원래 KB 번호: 884776

소개

Windows 운영 체제에는 Kerberos 인증 프로토콜에서 사용하는 시간 서비스 도구(W32Time 서비스)가 포함됩니다. Kerberos 인증은 관련 컴퓨터 간의 시간 간격이 최대 사용 시간 기울이기 내에 있는 경우 작동합니다. 기본값은 5분입니다. 시간 서비스 도구를 끌 수도 있습니다. 그런 다음 타사 시간 서비스를 설치할 수 있습니다.

시간 서비스 도구의 목적은 Microsoft Windows 2000 이상 버전의 Windows 운영 체제를 실행하는 organization 모든 컴퓨터가 일반적인 시간을 사용하는지 확인하는 것입니다. 적절한 공용 시간 사용량이 있는지 확인하기 위해 Time Service는 기관을 제어하는 계층 관계를 사용합니다. Windows 기반 컴퓨터는 기본적으로 다음과 같은 계층 구조를 사용합니다.

  • 모든 클라이언트 데스크톱 컴퓨터는 인증 도메인 컨트롤러를 신뢰할 수 있는 시간 원본으로 지정합니다.

  • 도메인에서 모든 서버는 클라이언트 데스크톱 컴퓨터가 따르는 것과 동일한 프로세스를 따릅니다.

  • 도메인의 모든 도메인 컨트롤러는 master 주 도메인 컨트롤러(PDC) 작업을 시간 원본으로 지정합니다.

  • 모든 PDC 작업 마스터는 시간 원본을 선택할 때 도메인의 계층 구조를 따릅니다. 그러나 PDC 작업 마스터는 계층 번호 매기기를 기반으로 하는 부모 도메인 컨트롤러를 사용할 수 있습니다.

    참고

    계층 번호는 시간 서버가 기본 참조 원본에 얼마나 가까운지를 정의합니다.

숫자가 작을수록 서버가 기본 시간 원본에 더 가깝습니다. 이 계층 구조에서 포리스트의 루트에 master PDC 작업은 organization 대한 신뢰할 수 있는 시간 서버가 됩니다. 하드웨어 원본에서 시간을 수집하도록 신뢰할 수 있는 시간 서버를 구성하는 것이 좋습니다. 신뢰할 수 있는 시간 서버를 인터넷 시간 원본과 동기화하도록 구성하려고 하면 인증이 없습니다. 또한 서버 및 독립 실행형 클라이언트에 대한 시간 수정 설정을 줄이는 것이 좋습니다. 이러한 권장 사항을 따르면 도메인에 더 정확한 시간이 제공됩니다.

추가 정보

시간 롤백을 검토한 결과 컴퓨터는 미래 또는 과거에 며칠, 월, 연도 또는 수십 년이 될 수 있는 시간을 채택할 수 있습니다. 컴퓨터가 롤 포워드되거나 뒤로 롤백되는 경우 다음과 같은 문제가 발생할 수 있습니다.

  • 컴퓨터 계정, 사용자 계정 및 트러스트 관계의 암호를 조기에 업데이트할 수 있습니다.
  • 격리는 Active Directory 디렉터리 서비스 복제에서 NTDS 복제 이벤트 2042로 식별할 수 있습니다.
  • 암호 불일치는 컴퓨터 계정, 사용자 계정 또는 트러스트 관계에 대해 신뢰할 수 있는 복원됩니다. 이러한 불일치에서 복구하려면 영향을 받는 모든 계정 및 트러스트에서 수동 암호 재설정이 필요할 수 있습니다.

앞으로 롤백되는 시간 및 시간 롤백으로부터 보호하는 방법

컴퓨터 및 전원 주기를 다시 시작하면 BIOS는 컴퓨터의 마더보드에 있는 로컬 EPROM에서 시간을 유지합니다. Windows가 시작되면 커널은 BIOS에서 현재 시간을 가져옵니다. 이 현재 시간은 W32Time 서비스가 다른 시간 원본과 동기화할 수 있는 초기 시간으로 사용됩니다.

Windows 32 시간 서비스는 및 MaxNegPhaseCorrection의 두 레지스트리 항목을 지원합니다MaxPosPhaseCorrection. 이러한 항목은 원격 컴퓨터에서 해당 샘플을 보낼 때 시간 서비스가 로컬 컴퓨터에서 허용하는 샘플을 제한합니다.

안정적인 상태로 실행 중인 컴퓨터가 시간 원본에서 시간 샘플을 받으면 및 레지스트리 항목이 적용하는 단계 수정 경계에 대해 샘플이 MaxPosPhaseCorrectionMaxNegPhaseCorrection 검사됩니다. 시간 샘플이 두 레지스트리 항목이 적용하는 제한에 속하는 경우 이 샘플은 추가 처리를 위해 허용됩니다. 시간 샘플이 이러한 제한에 속하지 않으면 시간 샘플은 무시되고 시간 서비스는 W32Time 프라이빗 로그 파일에 다음 메시지를 기록합니다.

너무 큼

관리자가 양수 및 음수 단계 수정에 대한 값을 줄이면 관리자는 컴퓨터가 Windows 기반 컴퓨터에 대한 잘못된 시간 샘플로부터 시간을 받을 수 있다는 위협을 줄일 수 있습니다. 반면에 관리자가 값을 줄이면 관리자가 이러한 값이 적용하는 한도를 초과하여 컴퓨터가 현재 시간보다 앞당기거나 뒤처지는 것을 방지할 수 있습니다.

참고

양수 및 음수 수정에 대한 레지스트리 항목 값이 감소하면 시간이 늘어나거나 줄어듭니다.

Windows 2000, Windows XP, Windows Server 2003 및 Windows Vista의 및 MaxNegPhaseCorrection 레지스트리 항목에 대한 MaxPosPhaseCorrection 기본값은 다음과 같습니다.
0xFFFFFFF

이 값을 사용하면 컴퓨터가 부정확한 경우 언제든지 샘플에 포함된 시간을 받을 수 있습니다.

Windows Server 2008에서는 MaxPosPhaseCorrection 및 MaxNegPhaseCorrection 레지스트리 항목에 대한 새 기본값이 채택되었습니다. 이 새 기본값은 48시간입니다. 이 48시간 값은 다음 값 중 하나로 나타낼 수 있습니다.

  • 2a300(16진수)
  • 172800(10진수)

MaxNegPhaseCorrection 레지스트리 항목은 다음 값이 아닌 값으로 설정하는 것이 좋습니다MaxPosPhaseCorrection.
MAX(0xFFFFFFFF)

참고

값을 MAX(0xFFFFFFFF 이외의 값으로 설정하면 컴퓨터가 다시 시작되거나 외부 시간 원본에 대한 연결이 중단되는 시나리오에서 컴퓨터가 매우 부정확한 시간을 채택하지 못하도록 방지할 수 있습니다. 예를 들어 포리스트의 모든 도메인 컨트롤러에서 MaxPosPhaseCorrection 및 MaxNegPhaseCorrection 레지스트리 항목이 48시간 동안 설정된 경우를 고려합니다. 단일 도메인 컨트롤러가 48시간 이상 비정상적인 시간 점프를 경험하는 경우 MaxPosPhaseCorrection 및 MaxNegPhaseCorrection 레지스트리 항목에 대해 설정한 값으로 인해 다른 컴퓨터가 동일한 시간 점프를 수행하지 못하게 됩니다. 따라서 동기화되지 않은 컴퓨터는 관리자가 조사하고 수정 작업을 수행할 수 있을 때까지 다른 컴퓨터와 분리할 수 있습니다.

시간 정확도는 포리스트 루트 PDC(기본 도메인 컨트롤러)에서 특히 중요합니다. PDC는 도메인의 루트 시간 원본이므로 PDC의 부정확한 시간 변경으로 인해 도메인 전체 시간 점프가 발생할 수 있습니다. PDC에 단계 수정 제한을 적용하는 경우 포리스트의 다른 도메인 컨트롤러가 새 시간을 수락하지 못하도록 방지할 수 있습니다.

기본값인 5분 또는 15분 대신 48시간의 기본값은 다음과 같은 이유를 기반으로 합니다.

  • W32TM 유틸리티의 출력은 읽기 어렵습니다.
  • W32TM은 현재 멤버 컴퓨터 및 멤버 서버의 시간을 대상으로 하지 않습니다.
  • Windows 운영 체제 및 독립 실행형 타사 애플리케이션 로그가 기록하는 오류 및 이벤트는 매우 일관성이 없습니다. 가능한 오류에는 다음과 유사한 반환 코드가 포함됩니다.
    • 액세스 거부됨
    • RPC Server를 사용할 수 없음

    참고

    이러한 오류는 Windows 기반 컴퓨터가 정확한 시간 값을 채택하지 못하도록 방지할 수 있으므로 시간 오차와 상관 관계가 낮습니다.

  • 일광 절약 시간 버그로 인해 1시간의 시간 차이가 발생할 수 있습니다.
  • AM 또는 PM의 잘못된 구성으로 인해 12시간의 시차가 발생할 수 있습니다.
  • 일 또는 날짜 실수로 인해 24시간 시차가 발생할 수 있습니다.

따라서 48시간은 25시간 또는 36시간 후에 다음으로 명백한 시간 오프셋이었습니다. 관리자는 인프라 및 테스트를 보고하는 올바른 도구를 사용하여 값을 줄일 수도 있습니다.

운영 체제 버전 및 컴퓨터 역할에 따른 특정 권장 사항은 다음 섹션에 설명되어 있습니다.

Windows XP Professional 및 모든 버전의 Windows Server 2003

도메인 서버

포리스트 루트 PDC(신뢰할 수 있는 시간 서버)

하드웨어 원본에서 시간을 수집하도록 신뢰할 수 있는 시간 서버를 구성하는 것이 좋습니다. 인터넷 시간 원본과 동기화하도록 신뢰할 수 있는 시간 서버를 구성하는 경우 인증이 없습니다. 다음 레지스트리 항목을 다시 구성해야 합니다.

  • MaxPosPhaseCorrection
  • MaxNegPhaseCorrection

이러한 두 레지스트리 항목의 기본값은 0xFFFFFFFF. 이 기본값은 "언제든지 변경 수락"을 의미합니다. 48시간 값을 사용하는 것이 좋습니다. 레지스트리에 2a300(16진수) 또는 172800(10진수)으로 표시됩니다. MaxPollInterval 레지스트리 항목의 값을 10 이하로 설정하거나 SpecialPollInterval 레지스트리 항목의 값을 3600(1시간) 이하로 설정하는 것이 좋습니다.

도메인 내의 도메인 컨트롤러 및 멤버 서버

MaxNegPhaseCorrection 레지스트리 항목의 MaxPosPhaseCorrection 기본값은 0xFFFFFFFF. 이 기본값은 "언제든지 변경 수락"을 의미합니다. 모든 도메인 컨트롤러에서 이 값을 48시간으로 설정하는 것이 좋습니다. 48시간 값은 시간에 민감한 기반 애플리케이션을 실행하는 멤버 서버에서도 설정할 수 있습니다.

참고

이러한 레지스트리 항목에 대한 자세한 내용은 Windows Server 2003 및 Windows XP Time Service 레지스트리 항목 섹션을 참조하세요 .

독립 실행형 클라이언트

MaxNegPhaseCorrection 레지스트리 항목의 기본값은 MaxPosPhaseCorrection 54,000(15시간)입니다. 보안 모범 사례로 이 기본값을 줄이는 것이 좋습니다. 또한 시간 원본, 네트워크 조건, 설문 조사 간격 및 보안 요구 사항에 따라 값을 3600(1시간) 또는 더 작은 값으로 설정하는 것이 좋습니다.

Windows Server 2003 및 Windows XP Time Service 레지스트리 항목

유형 세부 정보
레지스트리 항목 MaxPosPhaseCorrection
값 형식 DWORD
하위 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
참고 이 항목은 서비스에서 수행할 수 있는 가장 큰 양의 시간 수정 시간(초)을 지정합니다. 서비스에서 필요한 것보다 큰 변경 내용이 확인되면 대신 이벤트를 기록합니다. 특수 사례: 0xFFFFFFFF 항상 시간을 수정하는 것을 의미합니다. 도메인 멤버의 기본값은 0xFFFFFFFF. 독립 실행형 클라이언트 및 서버의 기본값은 54,000(15시간)입니다.
레지스트리 항목 MaxNegPhaseCorrection
값 형식 DWORD
하위 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
참고 이 항목은 서비스에서 수행할 수 있는 가장 큰 음수 시간 수정 시간(초)을 지정합니다. 서비스에서 이보다 큰 변경이 필요하다고 판단하면 대신 이벤트를 기록합니다. 특수 사례: -1은 항상 시간을 수정하는 것을 의미합니다. 도메인 멤버의 기본값은 0xFFFFFFFF. 독립 실행형 클라이언트 및 서버의 기본값은 54,000(15시간)입니다.
레지스트리 항목 MaxPollInterval
값 형식 DWORD
하위 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
참고 이 항목은 시스템 폴링 간격에 대해 사용하도록 설정된 가장 큰 간격(초)을 지정합니다. 시스템이 예약된 간격에 따라 폴링해야 하지만 공급자는 샘플이 요청될 때 샘플 생성을 거부할 수 있습니다. 도메인 멤버의 기본값은 10입니다. 독립 실행형 클라이언트 및 서버의 기본값은 15입니다.
레지스트리 항목 SpecialPollInterval
값 형식 DWORD
하위 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient
참고 이 항목은 수동 피어에 대한 특수 폴링 간격(초)을 지정합니다. SpecialInterval 0x1 플래그를 사용하도록 설정하면 W32Time은 운영 체제에서 결정하는 폴링 간격 대신 이 폴링 간격을 사용합니다. 도메인 멤버의 기본값은 3,600입니다. 독립 실행형 클라이언트 및 서버의 기본값은 604,800입니다.

참고

전역 정책 개체 편집기 사용하여 이러한 설정을 배포하는 것이 좋습니다. Windows Server 2003 기반 포리스트의 Windows 시간 서비스에 대한 자세한 내용은 Windows 시간 서비스(W32Time)를 참조하세요.

GPO(그룹 정책 개체)에 정의된 기본 Windows Time 서비스 매개 변수 값은 Windows Server 2003 기반 도메인 컨트롤러의 레지스트리에 정의된 기본값과 일치하지 않을 수 있습니다. GPO를 사용하여 Windows Server 2003 도메인 컨트롤러에 MaxPosPhaseCorrection 및 MaxNegPhaseCorrection 값을 배포하는 경우 GPO가 레지스트리의 다른 Windows 시간 서비스 매개 변수 값을 변경하지 않는지 확인합니다. 다른 Windows 시간 서비스 매개 변수 값은 도메인 컨트롤러의 기본 레지스트리 값과 일치하도록 GPO에서 변경해야 할 수도 있습니다.

모든 버전의 Windows 2000 SP4(서비스 팩 4)

도메인 서버

포리스트 루트 PDC(신뢰할 수 있는 시간 서버)

하드웨어 원본에서 시간을 수집하도록 신뢰할 수 있는 시간 서버를 구성하는 것이 좋습니다. 인터넷 시간 원본과 동기화하도록 신뢰할 수 있는 시간 서버를 구성하는 경우 수동 모드에서는 인증이 없습니다. 레지스트리 항목을 다시 구성할 MaxAllowedClockErrInSecs 수 있습니다. 기본값은 43,200입니다. 권장 값은 시간 원본, 네트워크 조건 및 보안 요구 사항에 따라 900(15분) 또는 더 작은 값입니다. 또한 폴링 간격에 따라 달라집니다. 폴링 간격 값은 24시간마다 1시간으로 설정하는 것이 좋습니다.

참고

이 레지스트리 항목에 대한 자세한 내용은 Windows Server 2000 SP 4 레지스트리 항목 섹션을 참조하세요.

도메인 내의 도메인 컨트롤러 및 멤버 서버

동기화 유형은 NT5DS입니다. 시간 서비스는 도메인 계층 구조에서 동기화되고 시간 서비스는 항상 변경 내용을 허용합니다. NT5DS는 시간 오프셋을 고려하지 않고 시간 변경을 허용하므로 시간 동기화 서브넷에서 신뢰할 수 있는 포리스트 루트 시간 원본을 설정하는 것이 중요합니다.

참고

NT5DS 값은 레지스트리 항목에서 동기화 유형을 가져옵니다.

독립 실행형 클라이언트

레지스트리 항목의 MaxAllowedClockErrInSecs 기본값은 43,200(12시간)입니다. 보안 모범 사례로 이 기본값을 줄이는 것이 좋습니다. 시간 원본, 네트워크 조건, 설문 조사 간격 및 보안 요구 사항에 따라 값을 3600(1시간) 또는 더 작은 값으로 설정하는 것이 좋습니다.

Windows Server 2000 SP 4 레지스트리 항목

유형 세부 정보
레지스트리 항목 MaxAllowedClockErrInSecs
값 형식 DWORD
하위 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
참고 초 단위로 사용하도록 설정된 최대 클록 변경을 지정합니다. 이벤트가 기록되면 값에 따라 시간이 조정되지 않습니다. 이 동작은 의심스러운 타임스탬프 활동으로부터 보호하기 위해 발생합니다. 도메인 멤버의 기본값은 43,200입니다.