SNMP(Simple Network Management Protocol)는 애플리케이션 계층 프로토콜로, 하드웨어나 소프트웨어의 종류에 관계없이 네트워크 장치들이 서로 정보를 공유할 수 있도록 해주는 표준 프로토콜입니다. SNMP가 없다면 네트워크 관리 도구는 장치를 식별하거나, 네트워크 변경 사항을 기록하거나, 네트워크 성능을 모니터링하거나, 네트워크 장치의 상태를 실시간으로 파악하는 것이 불가능합니다.
예전에는 제어판의 'Windows 기능 켜기/끄기' 메뉴를 통해 SNMP를 손쉽게 활성화하거나 비활성화할 수 있었습니다. 그러나 Windows 10 버전 1803부터 Microsoft는 보안상의 위험 때문에 이 기능을 지원 중단(deprecated) 처리하고, 대신 CIM(Common Information Model) 사용을 권장하고 있습니다. 그럼에도 불구하고 PC에 SNMP를 설치하고 활성화해야 한다면, 아래 방법을 따라 진행하면 됩니다.
설정에서 SNMP 활성화하기
SNMP는 Windows 10에서 선택적 기능(Optional Feature)으로 제공됩니다. 설정 > 앱 > 앱 및 기능 > 선택적 기능으로 이동한 뒤, 기능 추가를 클릭하고 검색창에 'snmp'를 입력하세요. 목록에서 SNMP(Simple Network Management Protocol)와 WMI SNMP 공급자(WMI SNMP Provider)를 선택한 후 설치를 클릭합니다.
설치가 완료되면 서비스 콘솔(services.msc)에서 SNMP 항목이 정상적으로 나타나는지 확인하세요.
PowerShell로 SNMP 활성화하기
PowerShell을 통해 SNMP를 설치하려면 먼저 컴퓨터가 인터넷에 연결되어 있는지 확인해야 합니다. 연결되어 있다면 Win + X 키를 누르고 Windows PowerShell(관리자)을 선택하여 관리자 권한 PowerShell을 실행합니다. 그런 다음 아래 명령어를 입력하여 Microsoft 서버에서 SNMP 구성 요소를 설치합니다.
Add-WindowsCapability -Online -Name "SNMP.Client~~~~0.0.1.0"
또는 DISM 도구를 사용하여 다음 명령어로도 SNMP를 설치할 수 있습니다.
DISM /online /add-capability /capabilityname:SNMP.Client~~~~0.0.1.0
위 명령어(Add-WindowsCapability 또는 DISM) 중 하나를 성공적으로 실행했다면, 다음 명령어로 SNMP 서비스가 정상적으로 설치되었는지 확인합니다.
Get-WindowsCapability -Online -Name "SNMP*"
오류 코드 0x800f0954 해결 방법
명령어 실행 시 'Add-WindowsCapability failed error. Error code = 0x800f0954'라는 오류 메시지가 나타난다면, 컴퓨터가 Microsoft 업데이트 서버가 아닌 내부 WSUS 서버에서 Windows 업데이트를 받도록 설정되어 있기 때문일 가능성이 높습니다.
이 오류는 WSUS를 일시적으로 우회하여 Microsoft 업데이트 서버에서 직접 SNMP 설치 파일을 받도록 설정하면 해결할 수 있습니다. 다음 단계를 따라 진행하세요.
- 아래 명령어를 실행하여 WSUS를 우회합니다.
이 명령은 레지스트리 경로에 DWORD 값을 추가하고 그 값을 0으로 설정합니다.reg add "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdateAU" /v UseWUServer /t REG_DWORD /d 0 /f - 다음 세 가지 명령어를 순서대로 실행하여 Windows Update 서비스를 재시작합니다.
netsh winhttp reset policy
net stop wuauserv
net start wuauserv - Add-WindowsCapability 명령어로 SNMP를 다시 설치해 봅니다. 설치에 성공했다면, 1단계에서 변경한 레지스트리 값을 원래대로 되돌립니다.
reg add "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdateAU" /v UseWUServer /t REG_DWORD /d 1 /f - 2단계의 명령어를 다시 실행하여 Windows Update 서비스를 재시작합니다.
서비스 패널에서 SNMP 구성하기
PC에 SNMP 서비스가 설치되었다면 이제 본격적으로 구성을 시작해 보겠습니다.
먼저 SNMP 서비스(SNMP Service와 SNMP Trap)가 실행 중인지 확인합니다. Win + R 키를 누르고 services.msc를 입력한 후 Enter 키를 눌러 서비스 창을 열고, 두 개의 SNMP 서비스가 목록에 있는지 확인하세요.
또한 SNMP Service가 실행 중인지 확인합니다. 실행 중이 아니라면 해당 서비스를 더블클릭하고 시작 버튼을 클릭하세요. 부팅 시 자동으로 서비스가 실행되도록 시작 유형을 자동으로 변경하는 것도 잊지 마세요.
다음으로 에이전트(Agent) 탭으로 이동하여 연락처(Contact)와 위치(Location) 필드에 자신의 이름과 위치를 입력합니다. 서비스(Service) 섹션에서는 모니터링 장치로 전달할 데이터를 수집할 서비스 유형의 체크박스를 선택합니다.
이제 보안(Security) 탭으로 이동합니다.
수락된 커뮤니티 이름(Accepted community names) 목록에 인증하려는 SNMP 호스트의 이름을 추가합니다. 각 커뮤니티에는 없음(None), 알림(NOTIFY), 읽기 전용(READ ONLY), 읽기/쓰기(READ WRITE), 읽기/생성(READ CREATE) 중 하나의 권한을 부여할 수 있습니다.
그다음, SNMP 패킷을 수신할 서버 주소를 아래 입력란에 추가하고 이 호스트에서 SNMP 패킷 허용(Accept SNMP packets from these hosts) 옵션이 선택되어 있는지 확인하세요. 반면 모든 호스트에서 SNMP 패킷 허용(Accept SNMP packets from any host) 옵션은 IP 제한을 전부 해제하여 모든 호스트가 SNMP 패킷을 보낼 수 있게 만듭니다. 특히 공용 컴퓨터에서는 보안상 매우 위험하므로 이 옵션은 신중하게 사용해야 합니다.
설정을 마쳤으면 적용(Apply)을 클릭하고, 일반(General) 탭으로 돌아가 서비스를 재시작(중지 후 시작)한 뒤 확인(OK)을 눌러 창을 닫습니다. 마지막 단계는 SNMP 포트인 UDP 161(SNMP)과 UDP 162(SNMPTRAP)를 여는 것입니다. 아래 명령어를 실행하세요.
netsh advfirewall firewall add rule name="SNMP UDP Port 161 In" dir=in action=allow protocol=UDP localport=161
netsh advfirewall firewall add rule name="SNMPTRAP UDP Port 162 In" dir=in action=allow protocol=UDP localport=162
netsh advfirewall firewall add rule name="SNMP UDP Port 161 Out" dir=out action=allow protocol=UDP localport=161
netsh advfirewall firewall add rule name="SNMPTRAP UDP Port 162 Out" dir=out action=allow protocol=UDP localport=162
그룹 정책 편집기에서 SNMP 구성하기
GPO(Group Policy Object) 매개변수를 수정하면 여러 대의 컴퓨터에 대해 SNMP 설정을 중앙 집중식으로 관리할 수 있습니다. 로컬 그룹 정책 편집기를 실행한 후 컴퓨터 구성 > 관리 템플릿 > 네트워크 > SNMP로 이동하여 매개변수를 구성합니다.
오른쪽 창에서 다음과 같은 정책 항목들을 확인할 수 있습니다.
- 커뮤니티 지정(Specify communities): SNMP 요청을 보낼 수 있는 커뮤니티를 추가하고 인증할 수 있습니다.
- 허용된 관리자 지정(Specify permitted managers): 내 컴퓨터로 SNMP 패킷을 보낼 수 있는 호스트를 추가할 수 있습니다.
- 공용 커뮤니티 트랩 지정(Specify traps for public community): SNMP 서비스가 보내는 트랩(trap) 메시지를 수신할 호스트 이름을 구성할 수 있습니다.
이제 SNMP 서비스가 정상적으로 작동합니다
과정이 순조롭게 진행되어 컴퓨터에 SNMP를 성공적으로 설치하고 구성하셨기를 바랍니다. 설정 과정이 다소 복잡하게 느껴질 수 있지만, 위에서 소개한 방법 중 하나는 분명 도움이 될 것입니다.
네트워크 모니터링은 회사에서든 집에서든 매우 중요합니다. 가족 중 누군가 데이터 용량을 과도하게 사용하고 있다고 생각되거나, 맬웨어가 컴퓨터에 침투했을 가능성이 의심된다면 네트워크를 오가는 데이터 흐름을 추적하는 도구를 활용해 문제의 원인을 빠르게 잡아낼 수 있습니다.