Ntdsutil.exe 사용하여 Active Directory에서 LDAP 정책 보기 및 설정

이 문서에서는 Ntdsutil.exe 도구를 사용하여 LDAP(Lightweight Directory Access Protocol) 정책을 관리하는 방법을 설명합니다.

적용 대상: Windows Server 2019, Windows Server 2016, Windows Server 2012 R2
원본 KB 번호: 315071

요약

도메인 컨트롤러가 서비스 수준 보장을 지원할 수 있도록 하려면 많은 LDAP 작업에 대한 운영 제한을 지정해야 합니다. 이러한 제한은 특정 작업이 서버 성능에 부정적인 영향을 주지 않도록 방지합니다. 또한 일부 유형의 공격에 서버의 복원력을 높입니다.

LDAP 정책은 클래스의 개체를 사용하여 구현됩니다 queryPolicy . 쿼리 정책 개체는 구성 명명 컨텍스트에서 디렉터리 서비스 컨테이너의 자식인 쿼리 정책 컨테이너에서 만들 수 있습니다. 예를 들어 cn=Query-Policies,cn=Directory Service,cn=Windows NT,cn=Services 구성 명명 컨텍스트입니다.

LDAP 관리 제한

LDAP 관리 제한은 다음과 같습니다.

  • InitRecvTimeout - 이 값은 도메인 컨트롤러가 도메인 컨트롤러가 새 연결을 받은 후 클라이언트가 첫 번째 요청을 보낼 때까지 대기하는 최대 시간(초)을 정의합니다. 클라이언트가 이 시간 동안 첫 번째 요청을 보내지 않으면 서버는 클라이언트의 연결을 끊습니다.

    기본값: 120초

  • MaxActiveQueries - 도메인 컨트롤러에서 동시에 실행할 수 있는 동시 LDAP 검색 작업의 최대 수입니다. 이 제한에 도달하면 LDAP 서버는 사용 중 오류를 반환합니다.

    기본값: 20

    참고

    이 컨트롤은 MaxPoolThreads 값과 잘못된 상호 작용을 합니다. MaxPoolThreads는 프로세서별 컨트롤이고 MaxActiveQueries는 절대 숫자를 정의합니다. Windows Server 2003부터 MaxActiveQueries는 더 이상 적용되지 않습니다. 또한 MaxActiveQueries는 Windows Server 2003 버전의 NTDSUTIL에 표시되지 않습니다.

    기본값: 20

  • MaxConnections - 도메인 컨트롤러가 허용할 최대 동시 LDAP 연결 수입니다. 도메인 컨트롤러가 이 제한에 도달한 후 연결이 들어오면 도메인 컨트롤러는 다른 연결을 삭제합니다.

    기본값: 5000

  • MaxConnIdleTime - LDAP 서버가 연결을 닫기 전에 클라이언트가 유휴 상태가 될 수 있는 최대 시간(초)입니다. 이 시간 이상 연결이 유휴 상태이면 LDAP 서버는 LDAP 연결 끊기 알림을 반환합니다.

    기본값: 900초

  • MaxDatagramRecv - 도메인 컨트롤러가 처리할 데이터그램 요청의 최대 크기입니다. MaxDatagramRecv 값보다 큰 요청은 무시됩니다.

    기본값: 4,096바이트

  • MaxNotificationPerConnection - 단일 연결에서 허용되는 최대 미해결 알림 요청 수입니다. 이 제한에 도달하면 서버는 해당 연결에서 수행되는 모든 새 알림 검색에 사용 중 오류를 반환합니다.

    기본값: 5

  • MaxPageSize - 이 값은 반환된 각 개체의 크기와 관계없이 단일 검색 결과에서 반환되는 개체의 최대 수를 제어합니다. 결과가 이 개체 수를 초과할 수 있는 검색을 수행하려면 클라이언트가 페이징된 검색 컨트롤을 지정해야 합니다. 반환된 결과를 MaxPageSize 값보다 크지 않은 그룹으로 그룹화합니다. 요약하자면 MaxPageSize는 단일 검색 결과에서 반환되는 개체 수를 제어합니다.

    기본값: 1,000

  • MaxPoolThreads - 도메인 컨트롤러가 네트워크 입력 또는 출력(I/O)을 수신 대기하는 데 전념하는 프로세서당 최대 스레드 수입니다. 또한 이 값은 LDAP 요청에서 동시에 작업할 수 있는 프로세서당 최대 스레드 수를 결정합니다.

    기본값: 프로세서당 스레드 4개

  • MaxResultSetSize - 페이징된 결과 검색을 구성하는 개별 검색 간에 도메인 컨트롤러는 클라이언트에 대한 중간 데이터를 저장할 수 있습니다. 도메인 컨트롤러는 페이징된 결과 검색의 다음 부분을 가속화하기 위해 이 데이터를 저장합니다. MaxResultSize 값은 도메인 컨트롤러가 이러한 종류의 검색을 위해 저장하는 총 데이터 양을 제어합니다. 이 제한에 도달하면 도메인 컨트롤러는 이러한 중간 결과 중 가장 오래된 결과를 삭제하여 새 중간 결과를 저장할 공간을 확보합니다.

    기본값: 262,144바이트

  • MaxQueryDuration - 도메인 컨트롤러가 단일 검색에 소비하는 최대 시간(초)입니다. 이 제한에 도달하면 도메인 컨트롤러는 "timeLimitExceeded" 오류를 반환합니다. 시간이 더 필요한 검색은 페이징된 결과 컨트롤을 지정해야 합니다.

    기본값: 120초

  • MaxTempTableSize - 쿼리가 처리되는 동안 에서 dblayer 중간 결과를 정렬하고 선택하는 임시 데이터베이스 테이블을 만들려고 할 수 있습니다. MaxTempTableSize 제한은 이 임시 데이터베이스 테이블의 크기를 제어합니다. 임시 데이터베이스 테이블에 MaxTempTableSize 값보다 더 많은 개체가 포함된 경우 는 dblayer 전체 DS 데이터베이스와 DS 데이터베이스의 모든 개체를 훨씬 덜 효율적으로 구문 분석합니다.

    기본값: 10,000개 레코드

  • MaxValRange - 이 값은 개체가 있는 특성 수 또는 검색 결과에 있는 개체 수와 관계없이 개체의 특성에 대해 반환되는 값 수를 제어합니다. Windows 2000에서 이 컨트롤은 1,000으로 하드 코딩됩니다. 특성에 MaxValRange 값으로 지정된 값 수보다 많은 경우 LDAP의 값 범위 컨트롤을 사용하여 MaxValRange 값을 초과하는 값을 검색해야 합니다. MaxValueRange는 단일 개체의 단일 특성에 반환되는 값의 수를 제어합니다.

    • 최소값: 30
    • 기본값: 1500

시작 Ntdsutil.exe

Ntdsutil.exe Windows 설치 CD-ROM의 지원 도구 폴더에 있습니다. 기본적으로 Ntdsutil.exe System32 폴더에 설치됩니다.

  1. 시작을 클릭한 다음 실행을 클릭합니다.
  2. 열기 텍스트 상자에 ntdsutil을 입력한 다음 Enter 키를 누릅니다. 언제든지 도움말을 보려면 명령 프롬프트에 를 입력 ? 합니다.

현재 정책 설정 보기

  1. Ntdsutil.exe 명령 프롬프트에서 를 입력 LDAP policies한 다음 Enter 키를 누릅니다.
  2. LDAP 정책 명령 프롬프트에서 를 입력 connections한 다음 Enter 키를 누릅니다.
  3. 서버 연결 명령 프롬프트에서 를 입력 connect to server <DNS name of server>한 다음 Enter 키를 누릅니다. 현재 작업 중인 서버에 연결하려고 합니다.
  4. 서버 연결 명령 프롬프트에서 를 입력 q한 다음 Enter 키를 눌러 이전 메뉴로 돌아갑니다.
  5. LDAP 정책 명령 프롬프트에서 를 입력 Show Values한 다음 Enter 키를 누릅니다.

정책의 표시가 존재할 때 표시됩니다.

정책 설정 수정

  1. Ntdsutil.exe 명령 프롬프트에서 를 입력 LDAP policies한 다음 Enter 키를 누릅니다.

  2. LDAP 정책 명령 프롬프트에서 를 입력 Set <setting> to <variable>한 다음 Enter 키를 누릅니다. 예를 들어 MaxPoolThreads를 8로 설정합니다.

    서버에 다른 프로세서를 추가하면 이 설정이 변경됩니다.

  3. 명령을 사용하여 Show Values 변경 내용을 확인할 수 있습니다.

    변경 내용을 저장하려면 변경 내용 커밋을 사용합니다.

  4. 완료되면 를 입력 q한 다음 Enter 키를 누릅니다.

  5. Ntdsutil.exe 종료하려면 명령 프롬프트에서 를 입력 q한 다음 Enter 키를 누릅니다.

참고

이 절차에서는 기본 도메인 정책 설정만 표시합니다. 사용자 고유의 정책 설정을 적용하면 볼 수 없습니다.

다시 부팅 요구 사항

도메인 컨트롤러가 현재 사용 중인 쿼리 정책의 값을 변경하면 다시 부팅하지 않고 변경 내용이 적용됩니다. 그러나 새 쿼리 정책을 만드는 경우 새 쿼리 정책을 적용하려면 다시 부팅이 필요합니다.

쿼리 값 변경에 대한 고려 사항

도메인 서버 복원력을 유지하려면 시간 제한 값을 120초로 늘리지 않는 것이 좋습니다. 보다 효율적인 쿼리를 구성하는 것이 기본 솔루션입니다. 효율적인 쿼리를 만드는 방법에 대한 자세한 내용은 보다 효율적인 Microsoft Active Directory-Enabled 애플리케이션 만들기를 참조하세요.

그러나 쿼리를 변경하는 것이 옵션이 아닌 경우 한 도메인 컨트롤러 또는 한 사이트에서만 시간 제한 값을 늘입니다. 자세한 내용은 다음 섹션을 참조하세요. 설정이 하나의 도메인 컨트롤러에 적용되는 경우 클라이언트가 인증에 서버를 사용할 가능성이 낮아지도록 도메인 컨트롤러에서 DNS LDAP 우선 순위를 줄입니다. 우선 순위가 증가하는 도메인 컨트롤러에서 다음 레지스트리 설정을 사용하여 를 설정합니다 LdapSrvPriority.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters

편집 메뉴에서 값 추가를 선택한 다음, 다음 레지스트리 값을 추가합니다.

  • 항목 이름: LdapSrvPriority
  • 데이터 형식: REG_DWORD
  • 값: 값을 원하는 우선 순위 값으로 설정합니다.

자세한 내용은 클라이언트 사이트 외부에 있는 도메인 컨트롤러 또는 글로벌 카탈로그의 위치를 최적화하는 방법을 참조하세요.

도메인 컨트롤러당 또는 사이트 정책별로 구성하기 위한 지침

  1. CN=Query-Policies,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration, 포리스트 루트 아래에 새 쿼리 정책을 만듭니다.

  2. Query-Policy-Object 특성에 새 정책의 고유 이름을 입력하여 새 정책을 가리키도록 도메인 컨트롤러 또는 사이트를 설정합니다. 특성의 위치는 다음과 같습니다.

    • 도메인 컨트롤러의 위치는 CN=NTDS 설정, CN= DomainControllerName, CN=Servers,CN= 사이트 이름,CN=Sites,CN=Configuration, 포리스트 루트입니다.

    • 사이트의 위치는 CN=NTDS 사이트 설정,CN= 사이트 이름, CN=사이트,CN=구성, 포리스트 루트입니다.

예제 스크립트

다음 텍스트를 사용하여 Ldifde 파일을 만들 수 있습니다. 이 파일을 가져와 시간 제한 값이 10분인 정책을 만들 수 있습니다. 이 텍스트를 Ldappolicy.ldf에 복사한 다음 다음 명령을 실행합니다. 여기서 포리스트 루트는 포 리스트 루트의 고유 이름입니다. DC=X를 있는 그대로 둡니다. 스크립트가 실행될 때 포리스트 루트 이름으로 대체되는 상수입니다. 상수 X는 도메인 컨트롤러 이름을 나타내지 않습니다.

ldifde -i -f ldappolicy.ldf -v -c DC=X DC= forest root

Ldifde 스크립트 시작

dn: CN=Extended Timeout,CN=Query-Policies,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=X  
changetype: add  
instanceType: 4  
lDAPAdminLimits: MaxReceiveBuffer=10485760  
lDAPAdminLimits: MaxDatagramRecv=1024  
lDAPAdminLimits: MaxPoolThreads=4  
lDAPAdminLimits: MaxResultSetSize=262144  
lDAPAdminLimits: MaxTempTableSize=10000  
lDAPAdminLimits: MaxQueryDuration=300  
lDAPAdminLimits: MaxPageSize=1000  
lDAPAdminLimits: MaxNotificationPerConn=5  
lDAPAdminLimits: MaxActiveQueries=20  
lDAPAdminLimits: MaxConnIdleTime=900  
lDAPAdminLimits: InitRecvTimeout=120  
lDAPAdminLimits: MaxConnections=5000  
objectClass: queryPolicy  
showInAdvancedViewOnly: TRUE

파일을 가져온 후 Adsiedit.msc 또는 Ldp.exe 사용하여 쿼리 값을 변경할 수 있습니다. 이 스크립트의 MaxQueryDuration 설정은 5분입니다.

정책을 DC에 연결하려면 다음과 같이 LDIF 가져오기 파일을 사용합니다.

dn: CN=NTDS  
Settings,CN=DC1,CN=Servers,CN=site1,CN=Sites,CN=Configuration, DC=X  
changetype: modify  
add: queryPolicyobject  
queryPolicyobject: CN=Extended Timeout,CN=Query-Policies,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=X

다음 명령을 사용하여 가져옵니다.

ldifde -i -f link-policy-dc.ldf -v -c DC=X DC= **forest root**

사이트의 경우 LDIF 가져오기 파일에는 다음이 포함됨

dn: CN=NTDS Site Settings,CN=site1,CN=Sites,CN=Configuration, DC=X  
changetype: modify  
add: queryPolicyobject  
queryPolicyobject: CN=Extended Timeout,CN=Query-Policies,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=X

참고

Ntdsutil.exe 기본 쿼리 정책의 값만 표시합니다. 사용자 지정 정책이 정의된 경우 Ntdsutil.exe 표시되지 않습니다.