Computer >> 컴퓨터 >  >> 체계 >> Windows Server

관리자가 아닌 사용자에게 SCManager에 대한 원격 액세스 권한 부여

로컬 관리자 권한이 없는 도메인 사용자에게 원격 서버에서 실행 중인 서비스 목록을 열거하는 원격 접근 권한을 부여하는 특징을 살펴보자. 실제로 작업은 서비스 제어 관리자에 원격 연결을 제공하는 것입니다. (SCManager ).

문제는 다음과 같습니다. 원격 사용자 또는 모니터링 시스템이 일부 서버의 서비스 상태를 쿼리할 수 있기를 원한다고 가정합니다. 분명한 이유로 이 원격 사용자는 관리 권한과 로컬에서 서버에 액세스할 수 있는 권한이 없습니다.

services.msc 콘솔을 사용하여 원격 컴퓨터에 연결하고 서비스 목록을 가져오려고 하면 사용자에게 다음 오류가 표시됩니다.

Windows에서 computer_name

에서 서비스 제어 관리자 데이터베이스를 열 수 없습니다.

오류 5:액세스가 거부되었습니다.

관리자가 아닌 사용자에게 SCManager에 대한 원격 액세스 권한 부여

sc.exe를 사용하여 원격 서버의 서비스 목록을 얻으려고 하면 다음과 같은 오류가 발생합니다.

C:\Windows\system32>sc \\lonts-01 query

[SC] OpenSCManager FAILED 5:
액세스가 거부되었습니다.

관리자가 아닌 사용자에게 SCManager에 대한 원격 액세스 권한 부여

서비스 목록에 대한 액세스는 Service Control Manager 데이터베이스의 보안 설명자에 의해 제어되며, Windows 2003 SP1에서는 이미 "인증된 사용자"에서 사용자의 원격 액세스가 제한되었습니다(매우 논리적임). Local Administrators 그룹의 구성원만 이 서비스에 원격으로 액세스할 수 있는 권한이 있습니다.

서비스 제어 관리자에 원격 액세스 권한을 부여하여 서버의 서비스 목록을 가져오는 방법과 일반 사용자(관리 권한 없이)가 Windows Server 2012 R2에서 이러한 서비스의 상태를 얻을 수 있는 방법을 고려해 보겠습니다.

현재 SCM(서비스 제어 관리자) 권한은 sc.exe를 사용하여 얻을 수 있습니다. 명령 프롬프트에서 다음 명령을 실행하여 관리자 권한으로 실행:

sc sdshow scmanager

이 명령은 유사한 SDDL 문자열을 반환합니다.

D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)(A;;CC;;;AC)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)

관리자가 아닌 사용자에게 SCManager에 대한 원격 액세스 권한 부여

이 경우 기본적으로 인증된 사용자(AU) 그룹은 SCM을 사용하여 연결할 수만 있고 서비스를 폴링(LC)할 수 없음을 알 수 있습니다. 이 문자열을 텍스트 편집기에 복사하십시오.

다음 단계는 SCM에 대한 원격 액세스 권한을 부여하려는 사용자 또는 그룹의 SID를 가져오는 것입니다(사용자 이름으로 사용자 SID를 얻는 방법). 예를 들어, AD 그룹 lon-hd의 SID를 얻습니다.

Get-ADgroup -Identity lon-hd | select SID
SID
---
S-1-5-21-2470146451-39123456388-2999995117-23338978

텍스트 편집기의 SDDL 문자열에서 블록(A;;CCLCRPRC;;;IU)을 복사하고, 복사된 블록의 IU를 사용자/그룹의 SID로 바꾸고 이전에 얻은 문자열을 붙여넣습니다. 여:

우리의 경우 다음 문자열이 있습니다:

D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)(A;;CC;;;AC)(A;;CCLCRPRC;;;S-1-5-21-2470146451-39123456388-2999995117-23338978)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)

이제 Service Control Manager 보안 설명자의 매개변수를 변경해 보겠습니다.

sc sdset scmanager “D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)(A;;CC;;;AC)(A;;CCLCRPRC;;;S-1-5-21-2470146451-39123456388-2999995117-23338978)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)“

관리자가 아닌 사용자에게 SCManager에 대한 원격 액세스 권한 부여

문자열 [SC] SetServiceObjectSecurity SUCCESS 새 보안 매개변수가 성공적으로 적용되었으며 사용자가 로컬로 인증된 사용자와 유사한 권한을 가졌음을 알려줍니다:SC_MANAGER_CONNECT, SC_MANAGER_ENUMERATE_SERVICE, SC_MANAGER_QUERY_LOCK_STATUS 및 STANDARD_RIGHTS_READ.

원격 사용자가 sc \\srv-name1 쿼리를 사용하여 services.msc 콘솔에서 서비스 목록과 해당 상태를 가져올 수 있는지 확인하십시오.

관리자가 아닌 사용자에게 SCManager에 대한 원격 액세스 권한 부여

당연히 각 서비스에 대한 액세스는 개별 ACL에 의해 제어되기 때문에 서비스를 관리할 권한이 없습니다. 사용자에게 서버 서비스를 시작/중지할 수 있는 권한을 부여하려면 사용자에게 Windows 서비스를 관리(시작, 중지 또는 다시 시작)할 수 있는 권한을 부여하는 방법 문서의 지침을 따르십시오.

도움말 . 일반적인 권한과 다른 SCManager 권한을 할당하면 HKLM\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder\Security에 저장됩니다. 레지스트리의 분기. Anf SDDL 문자열을 준비할 때 실수를 한 경우 이 분기를 삭제하고 컴퓨터를 다시 시작하여 현재 권한을 기본 권한으로 재설정할 수 있습니다. 관리자가 아닌 사용자에게 SCManager에 대한 원격 액세스 권한 부여