간이 망 관리 프로토콜(Simple Network Management Protocol, SNMP)이란?
개념 및 개요
- IP 기반 네트워크상의 각 호스트로부터 정기적으로 여러 관리 정보를 자동으로 수집하거나 실시간으로 상태를 모니터링 및 설정할 수 있는 서비스로 SNMP는 프로토콜일 뿐이며 이를 활용하여 실제 네트워크 관리정보를 얻기 위해서는 관련 프로그램이 준비되어야 한다.
- 시스템이나 네트워크 관리자로 하여금 원격으로 네트워크 장비를 모니터링하고 환경설정 등의 운영을 할 수 있도록 하는 네트워크 관리 프로토콜이다.
- UDP통신환경을 사용하는 서버를 테스팅 할 때에 주로 사용하거나, 네트워크 장비들을 효율적으로 관리하도록 모니터링하도록 나오게된 규약이다.
구성요소
- SNMP 구성 요소는 기본적으로 관리 시스템과 관리 대사응로 나뉘는데, 관리 시스템을 Manager, 관리 대상을 Agent라고 부른다.
- SNMP Manager는 Agent에 필요한 정보를 요청하는 모듈이고 SMAP Agent는 관리 대상 시스템에 설치되어 필요한 정보를 수집하고 Manager에게 전달해주는 역할을 수행하는 모듈이다.
- 네트워크 관리를 위한 목적으로 주로 서버나 네트워크 장비에서 SNMP를 설정한 MRGT프로그램을 이용하여 트래픽 관리 등을 위해 사용된다. MRTG란 Multiple Router Traffic Grapher)의 약자로 SNMP 기반의 장비 모니터링 프로그램으로 주 용도는 네트워크 트래픽 사용량 모니터링이지만 벤더에서 제공하는 SNMP MIB값을 사용하여 다양한 정보를 수집할 수 있다.
프로토콜 정보
- SNMP는 OSI 7계층의 Application 계층 프로토콜이며, 메시지는 단순히 요청과 응답 형식의 프로토콜에 의해 교환되기 때문에 전송계층 프로토콜로 UDP 프로토콜을 사용한다.
동작 방식
1. 관리 시스템(Manager)은 162/udp 포트를 이용하고 Agent는 161/udp 포트를 이용한다.
- Manager : Agent에 필요한 정보를 요청하는 역할
- Agent : Agent가 설치된 시스템의 정보나 네트워크 정보 등을 수집하여 MIB 형태로 보관, Manager에 전달해주는 역할 수행
- 관리 시스템과 대행자간에 통신하기 위해서는 최소 다음 3가지 사항이 일치되어야 한다.
- SNMP 버전 : Manager와 Agent간 SNMP 버전이 일치해야 한다.
- Community String : 상호간에 설정한 Community String이 일치해야 한다.
- PDU(Protocol Data Unit) : 통신하기 위한 메시지 유형
- PDU 타입은 아래와 같다.
- Get Request : 관리시스템이 에이전트로 원하는 객체의 특정 정보를 요청한다.
- Get Next Request : 관리시스템이 에이전트로 이미 요청한 정보의 다음 정보를 요청한다.
- Set Request : 관리 시스템이 에이전트로 특정한 값을 설정하기 위해 사용한다.
- Get Response : 에이전트가 관리시스템에 해당 변수 값을 전송한다.
- Trap : 에이전트가 관리 시스템에 어떤 정보를 비동기적으로 알리기 위해 사용한다. notify라고 하며, 콜백 함수와 같은 역할을 한다. Trap을 제외하고는 모두 동기적으로 동작한다.
- SNMP 데이터 수집 방식
- Polling 방식 : Manager가 Agent에게 정보를 요청하면 응답해주는 방식으로 Agent가 161/udp 포트를 사용
Get, Set PDU사용 - Event Reporting 방식 : Agent가 이벤트 발생 시 이를 Manager에게 알리는 방식으로 Manager가 162/udp 포트를 사용한다.
Trap PDU사용
주요용어
- MIB : 관리 되어야 할 특정한 정보, 자원을 객체라 하고 이러한 객체들을 모아놓은 집합체를 MIB라 한다. 즉 관리자가 조회하거나 설정할 수 있는 객체들의 데이터베이스이다. MIB는 객체별로 트리 형식의 구조를 이룬다.
- SMI : MIB를 저으이하기 위한 일반적인 구조를 의미하며 ASN.1(Abstract Syntax Notation) 언어를 사용한다. ASN.1은 데이터와 데이터의 속성들을 설명하기 위한 공식 언어로 대부분의 고수준 프로그램 언어에서와 같이 데이터를 데이터 유형과 값으로 표현한다.
- Community String : SNMP 데몬(Manager)과 클라이언트(Agent)가 데이터를 교환하기 전에 인증을 위해 사용하는 일종의 패스워드로, 초기값으로 public 또는 private가 설정되어 있다. SNMP에서는 RO(Read Only)와 RW(Read Write)모드를 제공한다.
쓰기 권한이 있을 경우에는 중요 설정을 수정할 수 있는 등 심각한 보안 문제를 유발할 수 있으므로 가급적 사용 자제를 권고한다.
간이 망 관리 프로토콜(Simple Network Management Protocol, SNMP)이란?
개념 및 개요
- IP 기반 네트워크상의 각 호스트로부터 정기적으로 여러 관리 정보를 자동으로 수집하거나 실시간으로 상태를 모니터링 및 설정할 수 있는 서비스로 SNMP는 프로토콜일 뿐이며 이를 활용하여 실제 네트워크 관리정보를 얻기 위해서는 관련 프로그램이 준비되어야 한다.
- 시스템이나 네트워크 관리자로 하여금 원격으로 네트워크 장비를 모니터링하고 환경설정 등의 운영을 할 수 있도록 하는 네트워크 관리 프로토콜이다.
- UDP통신환경을 사용하는 서버를 테스팅 할 때에 주로 사용하거나, 네트워크 장비들을 효율적으로 관리하도록 모니터링하도록 나오게된 규약이다.
취약점
- 관리의 편의성을 주지만 여러 취약점들이 존재하여 서비스 거부 공격(DoS), 버퍼 오버플로우, 비인가 접속 등 여러가지 문제점들이 발생할 수 있다.
구성요소
- SNMP 구성 요소는 기본적으로 관리 시스템과 관리 대사응로 나뉘는데, 관리 시스템을 Manager, 관리 대상을 Agent라고 부른다.
- SNMP Manager는 Agent에 필요한 정보를 요청하는 모듈이고 SMAP Agent는 관리 대상 시스템에 설치되어 필요한 정보를 수집하고 Manager에게 전달해주는 역할을 수행하는 모듈이다.
- 네트워크 관리를 위한 목적으로 주로 서버나 네트워크 장비에서 SNMP를 설정한 MRGT프로그램을 이용하여 트래픽 관리 등을 위해 사용된다. MRTG란 Multiple Router Traffic Grapher)의 약자로 SNMP 기반의 장비 모니터링 프로그램으로 주 용도는 네트워크 트래픽 사용량 모니터링이지만 벤더에서 제공하는 SNMP MIB값을 사용하여 다양한 정보를 수집할 수 있다.
프로토콜 정보
- SNMP는 OSI 7계층의 Application 계층 프로토콜이며, 메시지는 단순히 요청과 응답 형식의 프로토콜에 의해 교환되기 때문에 전송계층 프로토콜로 UDP 프로토콜을 사용한다.
동작 방식
1. 관리 시스템(Manager)은 162/udp 포트를 이용하고 Agent는 161/udp 포트를 이용한다.
- Manager : Agent에 필요한 정보를 요청하는 역할
- Agent : Agent가 설치된 시스템의 정보나 네트워크 정보 등을 수집하여 MIB 형태로 보관, Manager에 전달해주는 역할 수행
- 관리 시스템과 대행자간에 통신하기 위해서는 최소 다음 3가지 사항이 일치되어야 한다.
- SNMP 버전 : Manager와 Agent간 SNMP 버전이 일치해야 한다.
- Community String : 상호간에 설정한 Community String이 일치해야 한다.
- PDU(Protocol Data Unit) : 통신하기 위한 메시지 유형
- PDU 타입은 아래와 같다.
- Get Request : 관리시스템이 에이전트로 원하는 객체의 특정 정보를 요청한다.
- Get Next Request : 관리시스템이 에이전트로 이미 요청한 정보의 다음 정보를 요청한다.
- Set Request : 관리 시스템이 에이전트로 특정한 값을 설정하기 위해 사용한다.
- Get Response : 에이전트가 관리시스템에 해당 변수 값을 전송한다.
- Trap : 에이전트가 관리 시스템에 어떤 정보를 비동기적으로 알리기 위해 사용한다. notify라고 하며, 콜백 함수와 같은 역할을 한다. Trap을 제외하고는 모두 동기적으로 동작한다.
- SNMP 데이터 수집 방식
- Polling 방식 : Manager가 Agent에게 정보를 요청하면 응답해주는 방식으로 Agent가 161/udp 포트를 사용
Get, Set PDU사용 - Event Reporting 방식 : Agent가 이벤트 발생 시 이를 Manager에게 알리는 방식으로 Manager가 162/udp 포트를 사용한다.
Trap PDU사용
주요용어
- MIB : 관리 되어야 할 특정한 정보, 자원을 객체라 하고 이러한 객체들을 모아놓은 집합체를 MIB라 한다. 즉 관리자가 조회하거나 설정할 수 있는 객체들의 데이터베이스이다. MIB는 객체별로 트리 형식의 구조를 이룬다.
- SMI : MIB를 저으이하기 위한 일반적인 구조를 의미하며 ASN.1(Abstract Syntax Notation) 언어를 사용한다. ASN.1은 데이터와 데이터의 속성들을 설명하기 위한 공식 언어로 대부분의 고수준 프로그램 언어에서와 같이 데이터를 데이터 유형과 값으로 표현한다.
- Community String : SNMP 데몬(Manager)과 클라이언트(Agent)가 데이터를 교환하기 전에 인증을 위해 사용하는 일종의 패스워드로, 초기값으로 public 또는 private가 설정되어 있다. SNMP에서는 RO(Read Only)와 RW(Read Write)모드를 제공한다.
쓰기 권한이 있을 경우에는 중요 설정을 수정할 수 있는 등 심각한 보안 문제를 유발할 수 있으므로 가급적 사용 자제를 권고한다.
2. SNMP 동작 원리
< snmp 동작 >
- 관리 시스템 (Manager)
: 162/UDP 포트를 이용하고 Agent는 161/UDP 포트를 이용합니다.
Manager : Agent에 필요한 정보를 요청하는 역할
Agent : Agent가 설치된 시스템의 정보나 네트워크 정보 등을 수집하여 MIB 형태로 보관 Manager에 전달해주는 역할 수행
- 관리 시스템과 대행자간에 통신하기 위해서는 최소 다음 3가지 사항이 일치되어야 합니다.
SNMP 버전 : Manager와 Agent간 SNMP 버전이 일치해야 합니다.
Community String : 상호간에 설정한 Community String이 일치해야 합니다.
PDU(Protocol Data Unit) : 통신하기 위한 메시지 유형
- Manager : agent에게 정보를 요청하거나 수정을 요청하는 시스템
- ( 관리자가 필요로 하는 정보를 요청하는 역할의 어플리케이션 혹은 장비)
- Agent : 일반적으로 관리 대상에 해당하는 네트워크 장비들을 의미하며 , Manager가 요청한 정보를 수집하여 제공함
- MIB : 관리 되어야 할 특정한 정보, 자원을 객체라 하고 이러한 객체들을 모아놓은 집합체를 MIB라 한다. 즉 관리자가 조회하거나 설정할 수 있는 객체들의 데이터베이스이다. MIB는 객체별로 트리 형식의 구조를 이룬다.
- SMI : MIB를 적용하기 위한 일반적인 구조를 의미하며 ASN.1(Abstract Syntax Notation) 언어를 사용. ASN.1은 데이터와 데이터의 속성들을 설명하기 위한 공식 언어로 대부분의 고수준 프로그램 언어에서와 같이 데이터를 데이터 유형과 값으로 표현합니다.
- Community String : SNMP 데몬(Manager)과 클라이언트(Agent)가 데이터를 교환하기 전에 인증을 위해 사용하는 일종의 패스워드로, 초기값으로 public 또는 private가 설정되어 있습니다. SNMP에서는 RO(Read Only)와 RW(Read Write) 모드를 제공한다. 쓰기 권한이 있을 경우에는 중요 설정을 수정할 수 있는 등 심각한 보안 문제를 유발할 수 있으므로 가급적 사용 자제를 권고합니다.
[ SNMP를 사용하여 확인 가능한 내용들 ]
1. 서버들의 시스템정보 (CPU , Memory , Disk)의 사용량 정보 확인
2. 네트워크 장비들의 트래픽 사용량 , 에러량 , 처리속도 , 인터페이스 정보
장비의 통신 이상 유무 체크 확인
3. NMS / SMS 프로그램을 통해서 망 장애 탐지 / 모니터링 / 통합관리가 가능
'개발 > Linux' 카테고리의 다른 글
dmesg 실시간 보기 (0) | 2023.02.19 |
---|---|
우분투 최적화 하기 (하드 드라이브에 쓰기 캐시 활성화) (0) | 2023.02.16 |
gsjava 리눅스 계정 정보 (0) | 2023.01.05 |
웹 취약점 처리 (SCP) (0) | 2022.12.27 |
시간 kst 변경 (0) | 2022.12.15 |