[04. SNMP]
개요
- TCP/IP 기반 네트워크 상의 각 호스트로부터 정기적으로 여러 관리 정보를 자동으로 수집하거나 실시간으로 상태를 모니터링 및 설정할 수 있는 서비스로 NSMP는 프로토콜일 뿐이며 이를 활용하여 실제 네트워크 관리 정보를 얻기 위해서는 관련 프로그램이 준비되어야 한다.
- 시스템이나 네트워크 관리자로 하여금 원격으로 네트워크 장비를 모니터링하고 환경설정 등의 운영을 할 수 있도록 하는 네트워크 관리 프로토콜이다.
- 관리의 편의성을 주지만 여러 취약점들이 존재하여 서비스 거부 공격, 버퍼 오버플로우, 비인가 접속 등 여러가지 문제점들이 발생할 수 있다.
- SNMP 구성 요소는 기본적으로 관리 시스템과 관리 대상으로 나뉘는데, 관리 시스템을 Manager, 관리 대상을 Agent라고 부른다.
- SNMP Manager는 Agent에 필요한 정보를 요청하는 모듈이고 SNMP Agent는 관리 대상 시스템에 설치되어 필요한 정보를 수집하고 Manager에게 전달해주는 역할을 수행하는 모듈이다.
- 네트워크 관리를 위한 목적으로 주로 서버나 네트워크 장비에서 SNMP를 설정한 후 MRTG 프로그램을 이용하여 트래픽 관리 등을 위해 사용된다.
- MRTG는 SNMP 기반의 장비 모니터링 프로그램으로 주 용도는 네트워크 트래픽 사용량 모니터링이지만 벤더에서 제공하는 SNMP MIB값을 사용하여 다양한 정보를 수집할 수 있다.
- SNMP는 OSI 7계층의 Application 계층 프로토콜이며, 메시지는 단순히 요청과 응답 형식의 프로토콜에 의해 교환되기 때문에 전송계층 프로토콜로 UDP 프로토콜을 사용한다.
동작 방식
- 관리 시스템은 162/udp 포트를 이용하고 대행자는 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.fkrh gkau, 콜백 함수와 같은 역할을 한다. Trap을 제외하고는 모두 동기적으로 작동한다.
- Get Bulk Request : SNMPv2에 추가된 PDU, 요청할 객체의 범위를 지정하여 한 번에 요청(Manager -> Agent)
- InformRequest : SNMPv2에 추가된 PDU, 관리 시스템간의 정보 전달 목적으로 사용
- SNMP 데이터 수집 방식
- Polling 방식 : Manager가 Agent에게 정보를 요청하면 응답해주는 방식으로 Agent가 161/udp 포트를 사용한다.
- Event Reporting 방식 : Agent가 이벤트 발생 시 이를 Manager에게 알리는 방식(Trap 메시지)으로 Manager가 162/udp 포트를 사용한다.
주요 용어
- MIB(Management Information Base)
- 관리되어야 할 특정한 정보, 자원을 객체라 하고 이러한 객체들은 모아놓은 집합체를 MIB라 한다. 즉 관리자가 조회하거나 설정할 수 있는 객체들의 데이터베이스이다.
- MIB는 객체별로 트리 형식의 구조를 이룬다.
- SMI(Structure Management Information)
- MIB를 정의하기 위한 일반적인 구조를 의미한다.
- ASN.1 언어를 사용한다. ASN.1은 데이터와 데이터의 속성들을 설명하기 위한 공식 언어로 대부분의 고수준 프로그램 언어에서와 같이 데이터를 데이터 유형과 값으로 표현한다.
- 정의된 모든 객체는 name, syntax, encoding을 가진다. name은 해당 객체를 식별하기 위한 식별자, syntax는 객체의 데이터 유형, encoding은 메시지 전송 시 비트 변환 규칙으로 SNMP는 ASN.1의 encoding rule중 BER을 사용
SNMP 접근 제한 설정
- 보안 설정
- SNMP는 트래픽 정보 뿐만 아니라 각종 하드웨어 정보까지 제공하는 등 관리자 입장에서는 매우 중요한 정보를 제공하므로 보안에 주의하여야 한다.
- SNMP에 대한 읽기 권한 뿐 아니라 쓰기 권한까지 있을 경우에는 설정 파일을 열람하거나 직접 네트워크 설정을 변경할 수 있다.
'공부 > 정보보안기사 실기' 카테고리의 다른 글
[Section 08] 웹 어플리케이션 취약점 (383~ 386pg) (0) | 2022.05.07 |
---|---|
[Section 08] 웹 어플리케이션 취약점 (356~ 374pg) (0) | 2022.05.05 |
[Section 07] 어플리케이션 기본 학습 (342~ 349pg) (0) | 2022.05.03 |
[Section 07] 어플리케이션 기본 학습 (333~ 341pg) (0) | 2022.05.01 |
[Section 07] 어플리케이션 기본 학습 (315~ 332pg) (0) | 2022.04.29 |