net-snmp서버는 2007년 1월 현재, 5.4버젼까지 릴리즈 되어있습니다.
http://www.net-snmp.org 의 다운로드 페이지 또는 소스포지에서 다운로드를 받을 수 있습니다.
SNMP 서버의 LAYOUT
+ /sbin
- /snmpd
- /snmptrapd
+ /etc/snmp
- snmpd.conf
- snmp.conf
- snmptrapd.conf
+ /mibs
- *.txt (MIB파일)
~/sbin 에는 데몬의 실행파일들이 있고,
snmpd의 실행으로 기본적인 snmpd 서버를 동작시킬 수 있습니다.
~/etc/snmp 에는 서버와 어플리케이션의 환경설정 파일들이 있습니다.
snmpd.conf 는 snmpd 데몬의 설정정보가 있는 파일입니다.
snmp.conf 는 snmpd의 어플리케이션의 설정정보가 있는 파일입니다.
snmptrapd.conf 는 SNMP의 trap기능을 사용하고자 할 때, 설정해야하는 파일입니다.
~/etc/snmp 디렉토리에는 자동생성되지 않으므로 직접 디렉토리를 만들어줘야 하고,
각각의 conf파일도 기본생성이 아니되므로 직접 만들어줘야 합니다.
~/mibs 디렉토리에는 SNMP에서 사용되는 MIB정보들이 있습니다.
기본적으로 제공되는 MIB파일이 있고, 내가 만들 정보도 여기에 복사해 놓으면 됩니다.
SNMP서버의 실행
./snmpd <== 이 명령 하나만으로도 snmp 서버는 실행이 되며, 몇 개의 옵션을 더해,
master agent도 동작하게 할 수 있습니다.
./snmpd -x localhost:2000 -p /var/agentx/master <=== 요렇게,
-x 옵션은 서브에이젼트가 접속할 수 있도록 listen하는 정보를
-p 옵션은 소켓파일의 경로르 나타냅니다.
/var/agentx/master 라고 소켓이름을 적어주려면, /var/agentx 라는 디렉토리를 생성해 놔야 합니다.
또한 snmpd.conf 파일에
master agentx
라고 적어줘야 합니다.
[snmpd.conf의 예제]
com2sec company 192.168.1.0/24 public
group rw v1 local
group rw v2c local
group rw usm local
group ro v1 company
group ro v2c company
group ro usm company
access ro "" any noauth exact all all none
access rw "" any noauth exact all all none
view all included .1 80
master agentx
# sec.name source community
com2sec local localhost public
com2sec company 192.168.1.0/24 public
snmpd.conf 파일을 보면 com2sec 라는 것이 있는데,
이것은 SNMP 정보를 받아갈 수 있는 영역과 통신에 사용되는 커뮤니티 이름을 지정해준다고 생각하면 됩니다.
local 이란 이름으로 localhost 에서 public 이란 커뮤니티를 사용해서 SNMP 정보를 받아갈 수 있습니다.
company 란 이름으로 192.168.1.1~ 192.168.1.255 아이피 주소에서 public 이란 커뮤니티 이름으로 SNMP 정보를 받아갈 수 있습니다.
local과 company에 SNMP 버젼별로 그룹이름을 만들 수 있습니다.
그룹이름은 클라이언트가 MIB정보에 접근할 수 있는지의 여부와 읽기만 가능한 그룹인지 쓰기도 가능한지 그룹인지를 나타낼 때 필요합니다.
위에서는 rw와 ro라는 그룹이름을 줬습니다.
그룹별로 MIB정보에 접근 권한을 줍니다.
SNMP는 버젼1 부터 버젼3 까지 있고, 버젼3을 사용할 경우,
암호화된 유져를 생성해서 권한체크를 할 수가 있습니다.
위에서는 모든 그룹에 SNMP의 모든 버젼을 권한없이 읽을 수 있게 했습니다.
SNMP는 MIB 정보를 다음과 같이 tree형태로 인식하게 됩니다.
저렇게 숫자로 MIB 정보를 나타내는 것을 OID라고 하는데,
+1
+ 2
- 1
- 2
+ 3
- 1
- 2
위의 트리는 다음과 같이 7개의 정보를 갖습니다.
1
1.2
1.2.1
1.2.2
1.3
1.3.1
1.3.2
왜 갑자기 MIB 얘기를 꺼내는고 하니, view 권한을 줄 때,
1 밑으로 모두 보기, 1.2 밑으로는 보기 권한 막기. 등등을 지정할 수 있기 때문입니다.
위에서는 모든 그룹이 1 밑의 모든 하위 정보를 다 볼 수 있게 해놓게 설정을 한 것입니다.
그리고 마지막에
master agentx 는
좀전에 잠깐 얘기했지만 master agent로 실행시키는 옵션입니다.
직접 만들 subagent가 접속할 agent가 된느 것이지요.
좀더 자세한 설정 내용을 보시려면
man snmpd.conf 를 해보세요.
[snmp.conf 예제]
snmp.conf 파일은 어플리케이션의 설정 정보를 갖는 파일입니다.
위에서는 내가 만든 TEST-MIB이라는 모듈을 실행하기 전에 snmp 서버가 파싱해서 알고 있으라는 내용입니다.
저 내용이 없다면 snmp서버는 MIB파일을 ~/mibs 디렉토리에 복사해놨다고 해도 인식하지 못 할 것입니다.