에이전트 없는 인벤토리를 위해 Windows PC 준비하기
아무것도 설치하지 않고 NetBlade가 읽을 수 있도록 Windows PC를 준비하세요. 관리자 계정, WMI, SMB, 방화벽, 원격 UAC, 활성화 스크립트, 파일럿 PC를 다룹니다.
NetBlade는 Windows PC를 네트워크로, Windows 자체의 관리 인터페이스로 읽으며, 그것에 아무것도 설치하지 않습니다. 그 대가로 각 PC는 NetBlade를 실행하는 PC로부터의 관리자 로그인을 받아들이고 그 트래픽을 방화벽으로 통과시켜야 합니다. 이 글은 정확히 무엇이 필요한지, 도메인과 워크그룹에서 어떻게 다른지, NetBlade의 활성화 스크립트가 무엇을 바꾸고 어떻게 되돌리는지, 그리고 나머지를 건드리기 전에 PC 한 대에서 이 모두를 증명하는 법을 설명합니다.
시작하기 전에
- NetBlade가 설치되어 있고 첫 스캔을 마쳐서 PC가 기기에 있을 것(시작하기).
- 읽으려는 PC에 대한 관리자 계정: 로컬 관리자인 도메인 계정, 또는 각 PC의 로컬 관리자 계정.
- 관리자로 무언가를 실행할 수 있는, 파일럿으로 쓸 PC 한 대에 대한 물리적 또는 원격 접근.
- NetBlade를 실행하는 PC의 IP 주소. 바뀌면 안 됩니다: DHCP에서 오면 DHCP 서버에서 예약을 주세요(이유는 7단계 참고).
1. 읽기가 무엇을 사용하는지 알기
Windows PC의 읽기(기기 카드의 심층 스캔, 또는 기기 목록의 심층 인벤토리)는 Windows 관리를 통하며, NetBlade는 파일 공유도 그것을 향해 열려 있기를 요청합니다.
| 무엇 | 포트 | 무엇을 위한 것 |
|---|---|---|
| Windows 관리(WMI) | TCP 135 및 WMI 서비스의 동적 RPC 포트 | 읽기 자체: 하드웨어, 시스템, 업데이트, 서비스, 방어 |
| 파일 공유(SMB) | TCP 445 | WMI와 함께 열림; PsExec의 진입로이기도 함 |
| WinRM | TCP 5985 | 원격 작업만, 읽기는 아님 |
또한 그 PC에 대한 Windows 관리자 자격 증명이 필요합니다. 특히 BitLocker와 TPM은 관리자만 읽을 수 있습니다. 없으면 카드가 관리자가 필요하다고 합니다.
그것으로 NetBlade는 이름, 도메인, 운영 체제와 빌드, 제조사, 모델과 일련번호, 프로세서, 메모리, 로그인한 사용자, 드라이브와 물리 디스크, 네트워크 어댑터, 모니터, 프린터, 배터리, 결함 있는 기기와 USB, 설치된 업데이트, 자동으로 시작된 서비스, Windows와 함께 시작되는 프로그램, 선택적 기능, 프로필, 로컬 관리자와 계정, 열린 세션, 공유 폴더와 누가 쓸 수 있는지, 설치된 프로그램, 그리고 방어를 읽습니다: 백신, 프로필별 방화벽, BitLocker, TPM, 보안 부팅, UAC, 원격 데스크톱, SMBv1, 대기 중인 재시작.
참고: NetBlade를 실행하는 PC는 어떤 자격 증명이나 준비 없이도 자신을 읽습니다.
2. 도메인이냐 워크그룹이냐: 무엇이 달라지는가
| 도메인에서 | 워크그룹에서 | |
|---|---|---|
| 계정 | PC의 로컬 관리자인 도메인 계정 | 각 PC의 로컬 관리자 계정 |
| 원격 UAC | 도메인 계정에는 문제 없음 | 로컬 계정에는 완화해야 함(5단계) |
| 원격 작업용 WinRM | Kerberos, 이 PC에 추가할 것 없음 | 이 PC가 대상을 TrustedHosts에 나열해야 함 |
도메인에는 편의가 하나 더 있습니다. 저장된 자격 증명이 하나도 들어가지 못하면 NetBlade는 자신이 실행되는 Windows 계정을 시도합니다. PC의 로컬 관리자인 도메인 계정으로 NetBlade PC에 로그인하면, 그 PC들은 자격 증명을 저장하지 않고도 읽을 수 있습니다. 깔끔한 설정을 위해 그래도 전용 계정을 저장하세요(자격 증명을 올바르게 참고).
3. 계정을 고르고 저장하기
- NetBlade가 사용할 계정을 정합니다. 도메인에서는 워크스테이션의 로컬 Administrators 그룹의 구성원인 전용 IT 계정이 흔한 선택입니다. 워크그룹에서는 각 PC의 로컬 관리자 계정입니다.
- NetBlade에서 자격 증명을 열고 **추가…**를 누릅니다.
- 프로토콜을 **Windows(WMI)**로 설정하고 앱이 보여 주는 형식으로 사용자 이름을 입력합니다: 도메인 계정은
DOMAIN\user, 로컬 계정은.\Administrator. - 비밀번호를 입력하고, 적용 범위를 고르고(지금은 파일럿 PC에 대해 한 사이트나 한 기기), 레이블을 추가합니다.
- 저장을 누릅니다.
4. 파일럿 PC 한 대 시도하기
스무 대의 PC를 준비한 뒤에야 계정이 틀렸음을 알게 되지 마세요. 한 대를 고르세요.
- 자격 증명 페이지에서 시도할 머신에 파일럿 PC의 주소를 입력하고 테스트를 누릅니다. 마지막 테스트 열에 «동작함» 또는 «실패»가 나옵니다.
- 기기에서 파일럿 PC의 카드를 열고 심층 스캔을 누릅니다.
- 기기 이름 바로 아래의 읽기 상태를 봅니다. «… 를 통해 … 읽음»은 성공했다는 뜻입니다. «한 번도 읽지 않음»이나 «읽기 실패»는 이유와 대처 방법이 있는 패널을 엽니다.
성공했으면 7단계로 건너뛰세요. 패널이 방화벽이 읽기를 차단한다고 하면, 예를 들어 «Windows PC이지만 방화벽이 읽기를 차단합니다: … 포트에서만 응답합니다», 5단계로 계속하세요.
5. 활성화 스크립트로 PC 열기
Windows PC를 읽을 수 없을 때, 그 카드는 NetBlade가 필요로 하는 것을 정확히, 오직 NetBlade를 실행하는 PC를 향해서만 여는 스크립트를 제공합니다.
- 파일럿 PC의 카드에서 읽기 상태(한 번도 읽지 않음 또는 읽기 실패)를 클릭합니다.
- 활성화 스크립트 다운로드를 누르고 파일을 저장합니다.
- 같은 패널에서 지금 변경을 되돌리는 스크립트도 저장하고 다른 것과 함께 보관합니다.
- 활성화 스크립트를 파일럿 PC로 복사하고 더블 클릭합니다.
.cmd파일입니다: 스스로 관리자 권한을 요청하고 무엇을 하는지 한 줄씩 알려 줍니다. - NetBlade로 돌아와 지금 다시 읽기를 누릅니다.
경고: 활성화와 되돌리기 버튼은 PC가 성공적으로 읽히지 않은 동안에만 카드에 나타납니다. 일단 읽기가 되면 사라지므로, 되돌리기 스크립트를 활성화 스크립트와 동시에 저장하세요.
스크립트가 그 PC에서 바꾸는 것:
- NetBlade PC의 IPv4 주소에서만 허용되는 방화벽 규칙을 추가합니다.
NetBlade - WMI (135),NetBlade - WMI (RPC),NetBlade - Services (RPC),NetBlade - SMB (445),NetBlade - WinRM (5985)라는 이름입니다. Services 규칙은 원격 서비스 관리를 열어, PsExec가 기다리지 않고 바로 시작하게 합니다. - WMI 서비스를 자동으로 시작하도록 설정하고 시작합니다.
- 원격 작업을 위해
Enable-PSRemoting -Force -SkipNetworkProfileCheck로 WinRM을 켭니다. - PC가 도메인에 없을 때만,
LocalAccountTokenFilterPolicy를 1로 설정합니다(6단계에서 이유 설명).
두 번 실행해도 무해합니다: 자신의 규칙을 먼저 제거하므로 결국 하나의 세트만 남습니다.
6. 원격 UAC와 LocalAccountTokenFilterPolicy 이해하기
기본적으로 로컬 관리자가 네트워크로 PC에 연결하면, Windows는 그 로그인에서 관리자 권한을 벗겨 냅니다. 이것이 사용자 계정 컨트롤의 원격 제한입니다. 결과는 혼란스럽습니다. 포트는 열려 있고 비밀번호는 맞는데 읽기가 여전히 «WMI: 접근 거부됨(0x80070005)»으로 거부됩니다.
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System 아래에 1로 설정된 레지스트리 값 LocalAccountTokenFilterPolicy는 그 제한을 해제해서 로컬 관리자가 원격으로도 권한을 유지하게 합니다. 활성화 스크립트는 도메인 계정은 이렇게 필터링되지 않으므로 도메인 밖의 PC에서만 이를 설정합니다.
PC를 대신 손으로 준비한다면, 앱의 원격 작업 가이드가 그 PC에서 PowerShell을 관리자로 실행할 이 명령을 제공합니다.
New-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name LocalAccountTokenFilterPolicy -Value 1 -PropertyType DWord -Force
경고: 이는 그 PC의 보호를 약간 낮춥니다: 이제 어떤 로컬 관리자 계정이든 네트워크로 사용될 수 있습니다. 필요한 곳에서만, 각 PC에 강력하고 고유한 로컬 관리자 비밀번호와 함께 사용하세요. 되돌리기 스크립트가 이를 제거하며, 원격 작업 «UAC 원격 제한 복원»도 그렇게 합니다.
7. 다른 PC로 확대 적용하기
파일럿이 올바르게 읽히면 나머지에 대해 반복합니다.
- PC별로, 스크립트로. 각 PC의 카드에서 활성화 스크립트를 다운로드해 거기서 실행합니다. 스크립트는 NetBlade PC의 현재 IP 주소에 맞춰 만들어집니다. 그래서 그 주소가 바뀌면 안 됩니다: 바뀌면 방화벽 규칙이 더 이상 맞지 않아, 새 스크립트를 실행할 때까지 읽기가 멈춥니다.
- 도메인에서, 그룹 정책으로. NetBlade는 정책을 생성하지 않지만, 같은 결과를 중앙에서 얻을 수 있습니다. WinRM의 경우 앱 자체가 이를 가리킵니다: 컴퓨터 구성 › 관리 템플릿 › Windows 구성 요소 › Windows 원격 관리 › WinRM 서비스 › «원격 서버 관리 허용». WMI와 SMB의 경우 흔한 접근은 TCP 135, WMI 서비스의 RPC 포트, TCP 445에 대한 인바운드 방화벽 규칙을 NetBlade PC의 주소로 제한하는 것입니다. 이는 일반적인 Windows 관리이므로 먼저 PC 한 대에서 테스트하세요.
- 자격 증명 넓히기. 파일럿이 되면 자격 증명을 열고 그 자격 증명에서 **적용 범위…**를 눌러 한 사이트나 어디서나로 확장합니다.
그런 다음 모두 읽으세요: 기기, 심층 인벤토리, 또는 사이트, 모든 기기 읽기. 사이트는 몇 대가 읽혔고 몇 대에 적용되는 자격 증명이 없었는지 보고합니다.
8. 원격 작업도 준비하기(선택 사항)
읽기는 WinRM을 쓰지 않지만 원격 작업은 씁니다. 사용할 계획이라면 카드에서 원격 작업을 열고 원격 머신에 필요한 것을 펼치세요. 앱은 보통 빠져 있는 순서대로 나열합니다.
- 자격 증명에 저장된, 그 머신의 관리자 계정.
- 원격 머신에서 WinRM 켜짐:
Enable-PSRemoting -Force -SkipNetworkProfileCheck. - 공용이 아니라 개인 또는 도메인 네트워크. 원격 머신에서 관리자로:
Get-NetConnectionProfile | Set-NetConnectionProfile -NetworkCategory Private
- 도메인 밖에서는 이 PC에서 머신을 신뢰합니다(예시 대신 그 IP를 넣으세요):
Set-Item WSMan:\localhost\Client\TrustedHosts -Value '192.168.1.50' -Concatenate -Force
- 도메인 밖에서 로컬 계정으로는, 6단계의
LocalAccountTokenFilterPolicy키. - WinRM이 없을 때 PsExec: 원격 머신에서 포트 445가 열려 있고 ADMIN$ 공유가 켜져 있을 것. 445를 열려면:
Enable-NetFirewallRule -Name 'FPS-SMB-In-TCP'
자세한 내용은 안전한 원격 작업에 있습니다.
9. 모든 것을 되돌리는 법
스크립트로 준비한 어떤 PC에서든, 저장해 둔 변경을 되돌리는 스크립트를 실행하세요. NetBlade의 방화벽 규칙과 로컬 계정에 대한 원격 관리 접근을 제거합니다. WinRM은 켜진 채로 둡니다. 필요 없으면 PowerShell을 관리자로 실행해 끄세요.
Disable-PSRemoting
되돌리기 스크립트를 보관하지 않았다면, 같은 결과를 동작하는 NetBlade에서 원격 작업으로 쓸 수 있습니다: «UAC 원격 제한 복원», 5단계에 나열된 각 NetBlade - … 규칙에 대한 «방화벽 규칙 삭제», 그리고 «WinRM 비활성화». 이들은 사용자가 제거하는 바로 그 접근을 통해 이동하므로, «UAC 원격 제한 복원»은 맨 마지막으로 남기세요. 되돌리기 스크립트를 보관하는 편이 더 간단합니다.
제대로 되었는지 확인하기
- 카드의 읽기 상태가 «… 를 통해 … 읽음»이라고 하고, 하드웨어, 소프트웨어, 시스템, 보안 탭이 채워집니다.
- 보안 탭이 «관리자 필요» 대신 BitLocker와 TPM 상태를 보여 줍니다.
- 대시보드에서 읽은 머신이 올라가고 커버리지 줄이 몇 대가 심층으로 읽혔는지 알려 줍니다.
문제가 생기면
- «WMI: 접근 거부됨(0x80070005)». 계정이 인가되지 않았습니다. 로컬 계정이나 Microsoft 계정에서는
LocalAccountTokenFilterPolicy가 켜져 있어야 합니다(활성화 스크립트가 이를 합니다). 도메인에서는 계정이 PC의 로컬 Administrators 그룹에 있는지 확인하세요. - «WMI: 로그온 실패(0x8007052E)». 사용자 이름이나 비밀번호가 틀렸습니다. 형식을 확인하세요:
DOMAIN\user또는.\Administrator. - «WMI: 접근 거부됨(0x80041003)». 계정에 WMI 네임스페이스에 대한 권한이 없습니다. 관리자 계정을 사용하세요.
- «WMI: 로그온 유형이 부여되지 않음(0x80070569)». 그 PC의 로컬 보안 정책이 그 로그온 유형을 거부합니다. 그 PC의 로컬 보안 정책을 확인하세요.
- «WMI에서 응답 없음(방화벽, 또는 Windows 아님)». 방화벽이 WMI를 차단하거나 기기가 Windows가 아닙니다. 활성화 스크립트를 실행하세요.
- «이 기기에 적용되는 자격 증명이 없습니다». 그것을 포함하는 Windows 자격 증명이 없습니다. 기기, 사이트, 또는 어디서나에 대해 하나 저장하세요.
- «이 계정에서는 저장된 비밀번호를 읽을 수 없습니다». 자격 증명이 이 PC의 다른 Windows 사용자에 의해 저장되었습니다. NetBlade를 실행하는 사용자로 로그인한 채 다시 저장하세요.
- 되다가 모든 PC에서 한꺼번에 멈췄습니다. NetBlade PC의 IP 주소가 아마 바뀌어서 규칙이 더 이상 맞지 않습니다. 그 주소를 예약하고 새 스크립트를 실행하세요.
- 원격 작업이 30초 넘게 걸렸습니다. 그 PC의 방화벽이 원격 서비스 관리를 차단해서 PsExec가 대체로 넘어가기 전에 기다립니다. 활성화 스크립트를 다시 다운로드해 실행하세요: 현재 버전은 여전히 이 PC에 대해서만 그것도 엽니다.
다음 단계
PC를 읽을 수 있게 되었으니 계정을 제대로 설정하세요: 자격 증명을 올바르게. 그런 다음 SNMP로 네트워크 장비를 읽으세요.