1. SNMP (Simple Network Management Protocol)
ICMP의 ping, tracert와 같은 명령어는 장비간 연결상태를 파악할 수 있었지만 네트워크가 점점 복잡해지고 연결되는 호스트역시 증가되자 ICMP만으로는 관리, 점검이 어려워져 SGMP라는 프로토콜을 발전시켜 SNMP를 표준으로 만들었습니다.
SNMP는 IP 네트워크에서 장치로부터 정기적으로 여러 정보를 자동으로 수집하여 네트워크를 관리하기 위한 프로토콜입니다. 네트워크를 관리하기위해 모니터링이나 환경설정 등의 운영을 할때 사용되며 UDP에 정의된 응용계층 프로토콜이므로 관리 정보를 얻기 위해 프로그램이 준비되어야 합니다.
말이 복잡한데 그냥 관리해야할 장비가 많으니, 중앙집중식으로 관리를 편하게 하기위해 NMS라는 소프트웨어를 사용하고, SNMP는 장비의 관리를 위한 정보운반 프로토콜에 불과합니다.
일반적으로는 NMS 소프트웨어를 중점으로 다루기 때문에 SNMP에 대해 엄청나게 상세하게 알 필요까지는 없고, 몇몇 기능과 장비 구성 설정만 확인할 수 있으면 충분합니다.
2. 구성 요소
구분 | 설명 |
NMS (Network Management System) |
네트워크를 모니터링하고 관리하는데 사용되는 소프트웨어, 하드웨어 시스템. |
Manager (NMS, Network Management Station) |
관리 시스템. 관리자에게서 실행되는 소프트웨어. 관리용 메시지를 에이전트에 쿼리 요청 및 모니터링. |
Agent (Managed Device) |
관리되는 장비들 (허브, 라우터, 스위치, 브리지, 호스트 등). 관리되는 장치안에 탑재되는 소프트웨어. |
MIB (Management Information Base) |
관리 장치의 정보가 집합된 데이터베이스. 리소스가 저장된 저장소. 관리자가 조회하고 설정할 수 있는 정보. |
용어가 좀 명확히 구분되어서 사용되지 않고 혼용되는 경우가 있는 것 같습니다. NMS 라고 하면 관리되는 시스템 전체를 말하기도 하고, 관리, 관제용 소프트웨어를 NMS라고 부르기도 합니다. NMS니 Manager니 Station이니.. 같은 뜻이지만 혼용되며 헷갈릴 수 있으니 주의하세요.
SNMP 기능
GET : SNMP 스테이션이 에이전트의 오브젝트값 검색 (Manager가 Agent에게 특정 정보를 요청함) / UDP port 161
SET : SNMP 스테이션이 에이전트의 오브젝트값 설정 (Manager가 Agent에게 특정 정보를 설정함) / UDP port 161
TRAP : 에이전트가 SNMP 스테이션에 중요한 이벤트를 알림 (Agent 가 Manager 에게 정보를 알림) / UDP port 162
기본적으로 Manager 가 Agent 에게 주기적으로 상태와 같은 정보들을 질의, 요청 합니다. 이 방식을 Polling이라고 하는데, 관리되는 장비가 많으면 지연시간이 생기거나 여러 문제가 발생할 수 있으므로 TRAP이라는 비동기식 함수를 만들어 장비가 꺼졌다 켜지거나, 포트가 다운될 시에 Agent가 자의적으로 송신하는 메시지를 따로 정해두었습니다.
TRAP은 특정 이벤트가 생겼을때 자동으로 알리기 때문에 이벤트 리포팅 방식이라고 부르기도 합니다.
3. SNMP 버전
SNMP는 v1, v2, v3까지 3가지 버전이 존재합니다.
Community String : 매니저와 에이전트가 데이터 교환전 MIB라는 정보를 주고받기 위해 인증과정에서 일종의 비밀번호인 커뮤니티 스트링을 사용함. 초기값으로 public, private가 설정되어있고 SNMP에서는 RO(Read-Only)와 RW(Read-Write)모드를 제공함. 쓰기권한이 있을때는 중요 설정을 수정할 수 있는 등 심각한 보안문제를 유발할 수 있으므로 사용 자제를 권고함.
버전에 대해서는 저도 상세한 내용을 잘 모르지만, 어쨌던 이 SNMP는 보안취약점이 많은 프로토콜이므로 RO(Read-Only)로 설정하는것이 권고된다는 내용만 기억하셔도 될 것 같습니다.
4. 보안 취약점
SNMP 취약점은 해커가 선호하는 취약점 중 하나입니다. SNMP v1, v2는 비밀번호와도 같은 Community String이 암호화되지 않아 간단히 스니핑이 가능하고, 쓰기 권한이 있다면 해커가 네트워크를 쉽게 장악할 수 있으며 쓰기 권한이 없더라도 너무 많은 정보를 해커에게 제공한다는 문제점이 있습니다.
또한 UDP 프로토콜 때문에 DoS 공격(Denial of Service attack)에 취약하고, 비정상적인 메시지가 수신되면 보안장비의 성능저하, 크래쉬, 리로드 등의 문제가 발생할 수 있습니다. 따라서 다음 보안 지침들을 지켜 사용해야합니다. 1
1. 불필요한 SNMP 서비스 중지
2. Community String을 유추할 수 없는 문자열로 변경하고 RO 모드만을 사용
3. SNMP 서비스 관련 포트의 필터링
4. 인증되지 않은 내부 서버로부터의 SNMP 트래픽 차단
5. 내부 네트워크로부터 SNMP 트래픽 분리
6. 외부 네트워크로부터의 트래픽 필터링
5. 여담
LINK 벤더별 SNMP 설정 명령어
SNMP는 기초적인 내용만 알고 있었고 주로 NMS를 사용하다보니, 최대한 줄이고 줄인건데도 내용이 이렇게 광범위하고 복잡할줄 몰랐네요. Cisco Syslog를 다루기 전에 다뤄야 할 내용인 것 같아서 쓰긴 했습니다만,, 응용계층이라 그런지 아는 내용보다 모르는 내용이 더 많아서 공부가 많이 된 것 같습니다.
MIB Browser 를 사용하여 테스트 하는 방법도 기회가 된다면 포스팅하도록 해보겠습니다.
- 시스템 악의적 공격으로 시스템 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게하는 공격으로 서버에 수많은 접속 시도를 만들어 다른 이용자가 서비스를 이용할 수 없게 하거나 서버의 TCP 연결을 바닥내는 공격이 이 범위에 포함됨. [본문으로]
'네트워크, 보안' 카테고리의 다른 글
네트워크 기초 - 매체접근제어 (Media Access Control) (0) | 2021.10.20 |
---|---|
네트워크 - Syslog (0) | 2021.08.31 |
네트워크 기초 - ICMP (1) | 2021.08.19 |
네트워크 기초 - 하드웨어와 케이블, GBIC (0) | 2021.08.17 |
네트워크 기초 - DNS (Domain Name System) (0) | 2021.08.16 |