Programming

Window에서 SNMP 써보기 (추가 업 예정)

콜러스 XXII 2007. 5. 10. 10:57

 


*** 다음 내용은 계속 Update할 예정이다. ***

 

[net-snmp]

 

많은 문서들이 Linux를 기준으로 되어 있다보니 Windows자료는 별로 없었다.

다음은 문서에 기인한것이 아니라 삽질에 의한 결과임을 밝힌다. -.-

글고 아직 계속 시ㄹ험하는 중이라...

따라서 틀린 부분이 있으면 연락을 ... 버젼은 5.4를 기준으로 한다.

 

1. 기본적인 snmpd.conf 설정

  보통 snmpconf로 생성을 하게 되는데 좀 삐리리 했다.
  대빵은 Juno로 되어 있다. 유저 생성을 위한 Password가 있다.
 
  [예제] 
 
 rwuser  juno auth
 rouser  tester auth .1.3.6.1.4.1.8072
 rocommunity  public  127.0.0.1
 rwcommunity  private 127.0.0.1 .1.3.6.1.2.1.1

 syslocation  "Juno's realm"
 syscontact  "Juno Chang"

 com2sec  local     localhost       private
 com2sec  public    default         public

 group rw   v1         local
 group rw   v2c        local
 group rw   usm        local
 group ro  v1         public
 group ro  v2c        public
 group ro  usm        public

 view all    included  .1                               80
 view system included  system                           fe
 view mib2   included  .iso.org.dod.internet.mgmt.mib-2 fc

 access public  ""      any       noauth    exact  system none  none
 access local   ""      any       noauth    exact  all    all   all

 # for SNMPv3
 # 다음은 라인들은 최초에 한번하고 지워야 한다.
 # VACM configuration entries
 rwuser juno
 # USM configuration entries
 createUser juno MD5 1234567890 DES

 

2. snmp V3를 위한 유저 조작

 

 맨처음 Root 유저를 만든뒤에는 snmpd.conf의 유저 부분을 지워서 Password 노출을 없애야 한다.
 C:\usr\snmp\persist 에 해당 내역이 저장되므로 걱정말고 하자...
 이걸해야 V3 모드일때는 No securityName 에러가 뜨지 않을 것이다.
 
 Juno에서 속성을 받은 Julia생성
 
  snmpusm -v3 -u juno -n "" -l authNoPriv -a MD5 -A 1234567890 localhost create julia juno 
 
 Julia지우기
 
  snmpusm -v3 -u juno -n "" -l authNoPriv -a MD5 -A 1234567890 localhost delete julia
 
 Julia password 바꾸기 (1234567890 -> 1234)
 
  snmpusm -v 3 -u julia -n "" -l authNoPriv -a MD5 -A 1234567890 localhost passwd 1234567890 1234

 

3. SNMP Version 3을 쓰기 위해서는 모든 Command의 [Option]을

 

 -v 3 -u julia -n "" -l authNoPriv -a MD5 -A 1234567890 <---- Auth 된 Object만 얻을 수 있다.
 -v 3 -u juno -n "" -l authNoPriv -a MD5 -A 1234567890 <---- 모든 Object을 얻는다.

 

 로 기본적으로 주도록 해야 할거 같다.

 

4. Agent에 나만의 MIB추가

 

  <이것을 하기전에 반드시 소스를 구해야 한다.>

 

 * MIB를 만든다.
 
 * MIB를 Compile하고 프로젝트를 VS2005로 연다.
 
 * netsnmplibs에 Compile한 소스를 붙인다.
 
 * win32\mib_module_includes.h에 소스 헤더를 붙인다.
 
 * win32\mib_module_inits.h에 다음의 코드를 붙인다.
  if (should_init("my")) init_my();
  
 * VS2005를 Rebuild한다.
 
 * Test 한다.

 

[WinSNMP 이용]

 

1. SNMP를 설치한다. 그리고 Window의 보안 패치를 받는다. (불안하자나.)

 

2. 보안 설정

 

 http://support.microsoft.com/kb/324261/ko
 
 HOWTO: Windows Server 2003에서 SNMP 서비스의 네트워크 보안 구성

 

 기술 자료 ID : 324261
 마지막 검토 : 2006년 6월 7일 수요일
 수정 : 7.0

 

 요약

 필터 목록 만들기

 IPSec 정책 만들기

 

 이 문서에서는 Windows Server 2003에서 SNMP(Simple Network Management Protocol)

 서비스에 대한 네트워크 보안을 구성하는 방법을 단계별로 설명합니다.
 SNMP 서비스는 SNMP 관리 스테이션이나 콘솔에 보고될 수 있는 정보를 수집하는 에이전트의

 역할을 합니다. SNMP 서비스를 사용하면 회사 네트워크 전체의 Windows Server 2003, Microsoft

 Windows XP 및 Microsoft Windows 2000 기반 컴퓨터를 관리하고 데이터를 수집할 수 있습니다.
 SNMP 에이전트와 SNMP 관리 스테이션 간의 통신은 대개 에이전트와 관리 스테이션에 공유

 커뮤니티 이름을 지정하여 보호됩니다. SNMP 관리 스테이션이 SNMP 서비스로 쿼리를 보내면

 요청자의 커뮤니티 이름이 에이전트의 커뮤니티 이름과 비교됩니다. 둘이 일치하면 해당 SNMP 관리

 스테이션은 이미 인증된 것입니다. 일치하지 않으면 SNMP 에이전트는 해당 요청을 "실패한 액세스"

 시도로 간주하고 SNMP 트랩 메시지를 보낼 수 있습니다.
 SNMP 메시지는 일반 텍스트로 전송됩니다. 이러한 일반 텍스트 메시지는 Microsoft 네트워크 모니터

 와 같은 네트워크 분석기에서 쉽게 가로채고 디코딩합니다. 권한이 없는 사람이 네트워크 리소스에 대

 한 유용한 정보를 얻을 목적으로 커뮤니티 이름을 캡처하여 사용할 수 있습니다.
 IPSec(IP 보안 프로토콜)를 사용하여 SNMP 통신을 보호할 수 있습니다. SNMP 트랜잭션을 보호하기

 위해 TCP 및 UDP 포트 161과 162의 통신을 보호하는 IPSec 정책을 만들 수 있습니다.

 

 필터 목록 만들기

 

 SNMP 메시지를 보호하기 위한 IPSec 정책을 만들려면 먼저 필터 목록을 만듭니다. 이렇게 하려면

 다음과 같이 하십시오.


 1. 시작을 누르고 관리 도구를 가리킨 다음 로컬 보안 정책을 누릅니다.
 2. 보안 설정을 확장하고 IP 보안 정책(위치: 로컬 컴퓨터)을 마우스 오른쪽 단추로 누른 다음 IP 필터

    목록 및 필터 동작 관리를 누릅니다.
 3. IP 필터 목록 관리 탭을 누른 다음 추가를 누릅니다.
 4. IP 필터 목록 대화 상자의 이름 상자에 SNMP Messages (161/162)를 입력한 다음 설명 상자에

     Filter for TCP and UDP ports 161을 입력합니다.
 5. 추가 마법사 사용 확인란 선택을 취소한 다음 추가를 누릅니다. 
 6. 나타나는 IP 필터 속성 대화 상자의 주소 탭에 있는 원본 주소 상자에서 모든 IP 주소를 누릅니다.

    대상 주소 상자에서 내 IP 주소를 누릅니다. 미러됨. 원본과 대상 주소가 정반대되는 패킷 연결 확인

    란을 선택합니다.
 7. 프로토콜 탭을 누릅니다. 프로토콜 종류 선택 상자에서 UDP를 누릅니다. IP 프로토콜 포트 설정 상자

    에서 이 포트에서를 누른 다음 상자에 161을 입력합니다. 이 포트로를 누른 다음 상자에 161을 입력합

    니다.
 8. 확인을 누릅니다.
 9. IP 필터 목록 대화 상자에서 추가를 누릅니다.
 10. 나타나는 IP 필터 속성 대화 상자의 주소 탭에 있는 원본 주소 상자에서 모든 IP 주소를 누릅니다. 대

     상 주소 상자에서 내 IP 주소를 누릅니다. 미러됨. 원본과 대상 주소가 정반대되는 패킷 연결 확인란

     을 선택합니다.
 11. 프로토콜 탭을 누릅니다. 프로토콜 종류 선택 상자에서 TCP를 누릅니다. IP 프로토콜 포트 설정 상

      자에서 이 포트에서를 누른 다음 상자에 161을 입력합니다. 이 포트로를 누른 다음 상자에 161을 입

      력합니다.
 12. 확인을 누릅니다.
 13. IP 필터 목록 대화 상자에서 추가를 누릅니다.
 14. 나타나는 IP 필터 속성 대화 상자의 주소 탭에 있는 원본 주소 상자에서 모든 IP 주소를 누릅니다. 대

      상 주소 상자에서 내 IP 주소를 누릅니다. 미러됨. 원본과 대상 주소가 정반대되는 패킷 연결 확인란

      을 선택합니다.
 15. 프로토콜 탭을 누릅니다. 프로토콜 종류 선택 상자에서 UDP를 누릅니다. IP 프로토콜 포트 설정 상

      자에서 이 포트에서를 누른 다음 상자에 162를 입력합니다. 이 포트로를 누른 다음 상자에 162를 입

      력합니다. 
 16. 확인을 누릅니다.
 17. IP 필터 목록 대화 상자에서 추가를 누릅니다.
 18. 나타나는 IP 필터 속성 대화 상자의 주소 탭에 있는 원본 주소 상자에서 모든 IP 주소를 누릅니다. 대

     상 주소 상자에서 내 IP 주소를 누릅니다. 미러됨. 원본과 대상 주소가 정반대되는 패킷 연결 확인란

     을 선택합니다.
 19. 프로토콜 탭을 누릅니다. 프로토콜 종류 선택 상자에서 TCP를 누릅니다. IP 프로토콜 포트 설정 상

      자에서 이 포트에서를 누른 다음 상자에 162를 입력합니다. 이 포트로를 누른 다음 상자에 162를 입

      력합니다.
 20. 확인을 누릅니다.
 21. IP 필터 목록 대화 상자에서 확인을 누른 다음 IP 필터 목록 및 필터 동작 관리 대화 상자에서 확인

      을 누릅니다.

 

 IPSec 정책 만들기
 
 SNMP 통신에 IPSec을 적용하기 위한 IPSec 정책을 만들려면 다음과 같이 하십시오.


 1. 왼쪽 창에서 IP 보안 정책(위치: 로컬 컴퓨터)을 마우스 오른쪽 단추로 누른 다음 IP 보안 정책 만들기

    를 누릅니다. IP 보안 정책 마법사가 시작됩니다.
 2. 다음을 누릅니다.
 3. IP 보안 정책 이름 페이지에서 이름 상자에 Secure SNMP를 입력합니다. 설명 상자에 Force IPSec

    for SNMP Communications를 입력한 후 다음을 누릅니다.
 4. 기본 응답 규칙 활성화 확인란 선택을 취소하고 다음을 누릅니다.
 5. IP 보안 정책 마법사 완료 페이지에서 속성 편집 확인란이 선택되었는지 확인한 다음 마침을 누릅니

    다.
 6. Secure SNMP 속성 대화 상자에서 추가 마법사 사용 확인란 선택을 취소한 다음 추가를 누릅니다.
 7. IP 필터 목록 탭을 누른 다음 SNMP Messages (161/162)를 누릅니다. 
 8. 필터 동작 탭을 누른 다음 보안 필요를 누릅니다.
 9. 인증 방법 탭을 누릅니다. 기본 인증 방법은 Kerberos입니다. 대체 인증 방법이 필요하면 추가를 누

    릅니다. 새 인증 방법 속성 대화 상자의 다음 목록에서 원하는 인증 방법을 선택한 다음 확인을 누릅

    니다.


   + Active Directory 기본값(Kerberos V5 프로토콜)
   + 다음 인증 기관(CA)의 인증서 사용
   + 이 문자열 사용(미리 공유한 키) 


 10. 새 규칙 속성 대화 상자에서 적용을 누른 다음 확인을 누릅니다.
 11. SNMP 속성 대화 상자에서 SNMP Messages (161/162) 확인란이 선택되어 있는지 확인한 다음

      확인을 누릅니다.
 12. 로컬 보안 설정 콘솔의 오른쪽 창에서 Secure SNMP 규칙을 마우스 오른쪽 단추로 누른 다음 지정

      을 누릅니다.


SNMP 서비스를 실행 중인 모든 Windows 기반 컴퓨터에서 이 절차를 완료하십시오. 이 IPSec 정책은 SNMP 관리 스테이션에서도 구성해야 합니다.
 
3. WMI Administrative Tool을 다운받아 설치한다.


 http://www.microsoft.com/downloads/details.aspx?FamilyId=6430F853-1120-48DB-8CC5-F2ABDC3ED314&displaylang=en 
 http://www.mongmonge.pe.kr/test/html/wmi/doc4.htm <-- 여기엔 유용한 설명이 ...
 
4. Agent 만들기


   WinSNMP Agent는 DLL로 만들어서 Registry에 등록을 해야 한다. 그전에 Platform SDK를 설치해야

   한다.