원격 WMI 연결 보안

WMI를 사용하여 원격 컴퓨터에 연결하려면 연결에 올바른 DCOM 설정 및 WMI 네임스페이스 보안 설정이 사용되도록 설정되어 있는지 확인합니다.

WMI에는 원격 연결의 대상 컴퓨터에 필요한 기본 가장, 인증 및 인증 서비스(NTLM 또는 Kerberos) 설정이 있습니다. 로컬 컴퓨터는 대상 시스템에서 허용하지 않는 다른 기본값을 사용할 수 있습니다. 연결 호출에서 해당 설정을 변경할 수 있습니다.

이 항목에서 다루는 섹션은 다음과 같습니다.

WMI에 대한 DCOM 가장 및 인증 설정

WMI에는 원격 시스템에 필요한 기본 DCOM 가장, 인증 및 인증 서비스(NTLM 또는 Kerberos) 설정이 있습니다. 로컬 시스템은 대상 원격 시스템에서 허용하지 않는 다른 기본값을 사용할 수 있습니다. 연결 호출에서 해당 설정을 변경할 수 있습니다. 자세한 내용은 클라이언트 애플리케이션 프로세스 보안 설정을 참조하세요. 그러나 인증 서비스의 경우 RPC_C_AUTHN_DEFAULT를 지정하고 DCOM이 대상 컴퓨터에 적합한 서비스를 선택하도록 허용하는 것이 좋습니다.

C++에서 CoInitializeSecurity 또는 CoSetProxyBlanket 호출에 대한 매개 변수에 설정을 제공할 수 있습니다. 스크립트에서는 SWbemLocator.ConnectServer 호출, SWbemSecurity 개체 또는 스크립팅 모니커 문자열에서 보안 설정을 설정할 수 있습니다.

모든 C++ 가장 상수 목록은 C++를 사용하여 기본 프로세스 보안 수준 설정을 참조하세요. 모니커 연결을 사용하기 위한 Visual Basic 상수 및 스크립팅 문자열은 VBScript를 사용하여 기본 프로세스 보안 수준 설정을 참조하세요.

다음 표에는 원격 연결의 대상 컴퓨터(컴퓨터 B)에 필요한 기본 DCOM 가장, 인증 및 인증 서비스 설정이 나와 있습니다. 자세한 내용은 원격 WMI 연결 보안을 참조하세요.

컴퓨터 B 운영 체제 가장 수준 스크립팅 문자열 인증 수준 스크립팅 문자열 인증 서비스
Windows Vista 이상 Impersonate Pkt Kerberos

 

WMI 원격 연결은 UAC(사용자 계정 컨트롤) 및 Windows 방화벽의 영향을 받습니다. 자세한 내용은 Vista에서 원격으로 시작하여 WMI에 연결Windows 방화벽을 통한 연결을 참조하세요.

로컬 컴퓨터에서 WMI에 연결하는 경우 PktPrivacy의 기본 인증 수준이 있다는 것에 유의합니다.

사용자가 원격으로 컴퓨터에 액세스할 수 있도록 DCOM 보안 설정

WMI의 보안은 WMI 네임스페이스에 연결하는 작업과 관련이 있습니다. WMI는 DCOM을 사용하여 원격 호출을 처리합니다. 원격 컴퓨터에 연결하지 못한 이유 중 하나는 DCOM 오류(오류 “DCOM 액세스 거부됨” 10진수 -2147024891 또는 16진수 0x80070005)로 인한 것입니다. C++ 애플리케이션용 WMI의 DCOM 보안에 대한 자세한 내용은 클라이언트 애플리케이션 프로세스 보안 설정을 참조하세요.

제어판관리 도구에 있는 DCOM 구성 유틸리티(DCOMCnfg.exe)를 사용하여 WMI에 대한 DCOM 설정을 구성할 수 있습니다. 이 유틸리티는 특정 사용자가 DCOM을 통해 원격으로 컴퓨터에 연결할 수 있도록 하는 설정을 노출합니다. 관리자 그룹의 구성원은 기본적으로 컴퓨터에 원격으로 연결할 수 있습니다. 이 유틸리티를 사용하면 WMI 서비스를 시작, 액세스 및 구성하도록 보안을 설정할 수 있습니다.

다음 절차에서는 특정 사용자 및 그룹에 대해 DCOM 원격 시작 및 활성화 권한을 부여하는 방법을 설명합니다. 컴퓨터 A가 컴퓨터 B에 원격으로 연결하는 경우 컴퓨터 B의 관리자 그룹에 속하지 않은 사용자 또는 그룹이 컴퓨터 B에서 DCOM 시작 및 활성화 호출을 실행할 수 있도록 컴퓨터 B에서 해당 권한을 설정할 수 있습니다.

사용자 또는 그룹에 대한 DCOM 원격 시작 및 활성화 권한을 부여하려면

  1. 시작, 실행을 차례로 클릭하고 DCOMCNFG를 입력한 다음 확인을 클릭합니다.

  2. 구성 요소 서비스 대화 상자에서 구성 요소 서비스를 확장하고 컴퓨터를 확장한 다음 내 컴퓨터를 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.

  3. 내 컴퓨터 속성 대화 상자에서 COM 보안 탭을 클릭합니다.

  4. 시작 및 활성화 권한에서 제한 편집을 클릭합니다.

  5. 시작 권한 대화 상자에서 이름 또는 그룹이 그룹 또는 사용자 이름 목록에 표시되지 않는 경우 다음 단계를 수행합니다.

    1. 시작 권한 대화 상자에서 추가를 클릭합니다.
    2. 사용자, 컴퓨터 또는 그룹 선택 대화 상자에서 선택할 개체 이름 입력 상자에 이름 및 그룹을 추가한 다음 확인을 클릭합니다.
  6. 시작 권한 대화 상자의 그룹 또는 사용자 이름 상자에서 사용자 및 그룹을 선택합니다. 사용자 권한허용 열에서 원격 시작원격 활성화를 선택한 다음 확인을 클릭합니다.

다음 절차에서는 특정 사용자 및 그룹에 대해 DCOM 원격 액세스 권한을 부여하는 방법을 설명합니다. 컴퓨터 A가 컴퓨터 B에 원격으로 연결하는 경우 컴퓨터 B의 관리자 그룹에 속하지 않은 사용자 또는 그룹이 컴퓨터 B에 연결할 수 있도록 컴퓨터 B에서 해당 권한을 설정할 수 있습니다.

DCOM 원격 액세스 권한을 부여하려면

  1. 시작, 실행을 차례로 클릭하고 DCOMCNFG를 입력한 다음 확인을 클릭합니다.
  2. 구성 요소 서비스 대화 상자에서 구성 요소 서비스를 확장하고 컴퓨터를 확장한 다음 내 컴퓨터를 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.
  3. 내 컴퓨터 속성 대화 상자에서 COM 보안 탭을 클릭합니다.
  4. 액세스 권한에서 제한 편집을 클릭합니다.
  5. 액세스 권한 대화 상자의 그룹 또는 사용자 이름 상자에서 익명 로그온 이름을 선택합니다. 사용자 권한허용 열에서 원격 액세스를 선택한 다음 확인을 클릭합니다.

사용자가 특정 WMI 네임스페이스에 액세스할 수 있도록 허용

네임스페이스에 대한 WMI 컨트롤에서 “원격 사용” 권한을 설정하여 사용자가 특정 WMI 네임스페이스에 액세스하도록 허용하거나 허용하지 않을 수 있습니다. 사용자가 액세스할 수 없는 네임스페이스에 연결하려고 하면 오류 0x80041003이 수신됩니다. 기본적으로 이 권한은 관리자만 사용할 수 있습니다. 관리자는 비관리자 사용자에 대해 특정 WMI 네임스페이스에 대한 원격 액세스를 사용하도록 설정할 수 있습니다.

다음 절차에서는 관리자가 아닌 사용자에 대한 원격 사용 권한을 설정합니다.

원격 사용 권한을 설정하려면

  1. WMI 컨트롤을 사용하여 원격 컴퓨터에 연결합니다.

    WMI 컨트롤에 대한 자세한 내용은 WMI 컨트롤을 사용하여 네임스페이스 보안 설정을 참조하세요.

  2. 보안 탭에서 네임스페이스를 선택하고 보안을 클릭합니다.

  3. 적절한 계정을 찾고 권한 목록에서 원격 사용을 체크합니다.

원격 연결에 대한 데이터 암호화가 필요하도록 네임스페이스 보안 설정

관리자 또는 MOF 파일은 해당 네임스페이스에 대한 연결에서 패킷 개인 정보(스크립트의 모니커로 RPC_C_AUTHN_LEVEL_PKT_PRIVACY 또는 PktPrivacy)를 사용하지 않는 한 데이터가 반환되지 않도록 WMI 네임스페이스를 구성할 수 있습니다. 이렇게 하면 네트워크를 교차할 때 데이터가 암호화됩니다. 더 낮은 인증 수준을 설정하려고 하면 액세스 거부 메시지가 표시됩니다. 자세한 내용은 네임스페이스에 대한 암호화된 연결 필요를 참조하세요.

다음 VBScript 코드 예제에서는 “pktPrivacy”를 사용하여 암호화된 네임스페이스에 연결하는 방법을 보여줍니다.

strComputer = "RemoteComputer"
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate,authenticationLevel=pktPrivacy}!\\" _
                              & strComputer & "\root\EncryptedNamespace")

WMI를 사용하여 위임

WMI를 사용하여 원격으로 프로세스 만들기

C++ 클라이언트 및 공급자 보안

스크립팅 클라이언트 보안