리셋 되지 말자

[SNMP] centos 7 설치 및 실습 (두 가상머신간의 snmp 통신) 본문

SNMP

[SNMP] centos 7 설치 및 실습 (두 가상머신간의 snmp 통신)

kyeongjun-dev 2020. 1. 16. 16:01

$ systemctl stop firewalld

$ systemctl disable firewalld

우선 두 가상머신 모두 방화벽을 꺼준다. (selinux는 안꺼도 되었던것 같은데, 그냥 꺼준다...)

 

설치되어 있는 패키지 목록들이다. 이걸 보고 똑같이 설치하면 된다.

 

$ vi /etc/snmp/snmpd.conf

net-snmp를 잘 설치하면 생기는 conf 파일이다. 위의 명령으로 편집을 해주자. 여기부터가 중요하다.

 

가상머신1

※ vi로 편집들어가자마자 : (쌍따옴표)를 누르고, 'set number'를 입력해주면, 쓴이처럼 왼쪽에 줄번호가 생김

41번째줄만 #(주석처리)가 안된 채로 있을텐데, 주석처리를 해준다.

그리고 41, 42번째 줄처럼 입력해준다. 여기가 중요한데,

맨 왼쪽 com2sec은 그냥 써준다.

mynetwork, local은 group을 정해주기 위한 명칭이다.

192.168.43.0/24는 snmp로 정보를 주고 받을 수 있는 네트워크 대역(?) (자세히는 모르겠는데, 일단 실습을 다 끝내면 이해할 수 있을테니 일단은 넘어가시길. 쓴이의 가상머신 두 개의 네트워크는 enp0s3 : 192.168.43.0/24을 사용한다.)

 

localhost는 자기 자신을 나타내는 것이라고 보면 된다. (아래에서 쓰는 이유가 나오니 일단 넘어가시길...)

Serverworld는 음... id라고 생각하면 편할 듯!? (이것도 일단 넘어가주세요 ㅠㅠ)

 

 

가상머신2

가상머신1의 conf 파일이랑 다른건 sec.name과 community 뿐이다. default는 localhost와 같다고 보면 된다.(localhost라고 써도 상관없음. 아닐수도 있는데 차이를 아시는분은 댓글 부탁드립니다...)

 

 

가상머신1

49번째 줄과 50번째 줄은 지워도 되고, 주석처리해도 된다. 아무런 상관 없음.(사실 지워야 했는데 못지운거임...)

가상머신1 conf의 First, 부분에서 사용한 sec.name인 local, mynetwork를 각각 MyRWGroup, MyROGroup로 묶는다.

여기서 v1, v2c 이건 snmp의 버전을 말하는건데, v1은 거의 사용안하고, v2c를 많이 사용하다. v3도 있는데 이것도 많이 안쓴다고 한다. 우리는 v2c를 사용하자!

 

가상머신2

여기도 49, 50번째 줄은 지워도 된다.... 

51~53번 줄처럼 v1, v2c, usm을 다 사용하면 snmp 버전을 모두 사용할 수 있는데 어차피 v2c만 사용할 것이므로 v2c를 제외한 나머지는 삭제해도 된다.

sec.name으로 사용한 kkjs를 kkjsgroup로 묶어 준다.

 

 

Third 부분에는 위에처럼 나머지는 주석처리를 해주고, 

view all included .1

만 추가해준다. view 띄어쓰기 all 띄어쓰기 included 띄어쓰기 .1

가상머신1, 2 모두 동일하게 추가해 주면 된다.

 

가상머신1

71, 72번 처럼만 적어 주면 된다. 

all none none은 외부에서의 수정을 금하기 위해서(?) 인것 같은데, 수정하는 법은 모르겠다. all all all로 해도 실습에는 문제가 없다. (MyROGroup는 192.168.43.0 네트워크이고, MyRWGroup는 localhost이니 외부로는 값이 읽히도록만 한다고 생각하면 될듯.)

 

가상머신2

가상머신2에는 그룹이 하나밖에 없으므로 67번째 줄만 추가를 해주었다. 70번은 지워도 되고 안지워도 되지만 지우는 것을 추천. (67번 줄에 잘못 추가했네... 따라하시는 분들은 69번줄 내용 아래에 추가하시기를...)

 

$ systemctl restart snmpd

설정이 모두 끝났다. 위의 commnad를 사용해서 snmpd를 재시작 해주자!!

이제는 테스트다.

 

가사머신1 에서의 테스트

$ snmpwalk -v2c -c Serverworld localhost system

위의 command를 입력하면 정보가 쫘르르륵 출력 될 것이다.

가상머신1(localhost)의 정보들을 snmp로 출력한 것이다.

 

$ snmpwalk -v2c -c Serverworld 192.168.43.100 ip

가상머신1의 ip 주소인 192.168.43.100의 ip 정보를 snmp로 출력한 모습이다.

이건 자신의 정보를 가져오는 거라서 막힐게 없다. 그럼 같은 네트워크에 있는 가상머신2 의 정보를 snmp로 가져와 보자. 어떻게? 가상머신2 의 ip 주소를 대신 넣어보자~

 

안된다. 당연하다. community Serverworld에는 가상머신2가 속해있지 않으니까.

 

$ snmpwalk -v2c -c public 192.168.43.101 system

가상머신2의 community 이름인 'public'과 ip주소를 적어서 위의 command처럼 사용하면 출력이 잘 된다.

이래서 위의 그냥 넘어가라고 설명했던 부분에서 community가 약간 id 처럼 사용된다고 했던 것이다.

snmp를 사용해서 자신 혹은 다른 곳의 정보를 가져올 때에는 community 이름과 ip 주소가 필요함을 알 수 있다.

 

번외로, 가상머신2의 conf파일에서 추가해 주었던 'com2sec kkjs default public'을 주석처리한 뒤 snmp를 재시작 하고 

가상머신2에서 

$ snmpwalk -v2c -c public localhost system

를 사용하면, 

위와 같이 안된다.

 

 

centos 7에 snmp를 설치하여 가상머신간의 snmp 통신 실습은 이만 마치도록 하겠습니다.

Comments