SNMP 서비스 점검

SNMP(Simple Network Management Protocol)은 네트워크 장치 및 서버에서 정보를 수집하고 관리하기 위한 프로토콜입니다. SNMP는 네트워크 기기 간에 효과적으로 통신하고 모니터링하기 위한 표준화된 방법을 제공합니다. 초기 버전인 SNMPv1 및 SNMPv2c는 통신이 평문으로 이루어져 정보 유출이나 위변조의 위험이 있고, 커뮤니티 문자열이라는 간단한 문자열을 사용하여 인증을 수행하는 등 보안상 취약한 구조입니다.

점검 내용
  • SNMP 서비스 활성화 여부 점검
  • SNMP Community String 복잡성 설정 여부 점검
점검 목적
  • 불필요한 SNMP 서비스 활성화로 인해 필요 이상의 정보가 노출되는 것을 막기 위해 SNMP 서비스를 중지해야함
  • Community String 기본 설정인 Public, Private는 공개된 내용으로 공격자가 이를 이용하여 SNMP 서비스를 통해 시스템 정보를 얻을 수 있기 때문에 Community String을 유추하지 못하도록 설정해야함
보안 위협
  • SNMP 서비스로 인하여 시스템의 주요 정보 유출 및 정보의 불법수정이 발생할 수 있음
  • Community String은 Default로 public, private로 설정된 경우가 많으며, 이를 변경하지 않으면 이 String을 악용하여 환경설정 파일 열람 및 수정을 통한 공격, 간단한 정보수집에서부터 관리자 권한 획득 및 Dos공격까지 다양한 형태의 공격이 가능함
점검 대상
  • Linux : Rocky 9
판단 기준
  • 양호 :
    – SNMP 서비스를 사용하지 않는 경우
    – SNMP Community 이름이 public, private 이 아닌 경우
  • 취약 :
    – 필요없는 SNMP 서비스를 사용하는 경우
    – SNMP Community 이름이 public, private 인 경우
조치 방법
  1. SNMP 서비스가 필요없는 경우
    • SNMP 서비스를 제공하는 핵심 패키지(net-snmp)가 설치되지 않았거나, 설치되었더라도 SNMP 서비스 데몬(snmpd, snmptrapd)이 활성화되지 않았으면 “양호”로 판단
      dnf list installed net-snmp
      systemctl status snmpd snmptrapd
      
    • SNMP 서비스 데몬(snmpd, snmptrapd)이 활성화되었다면 비활성화 조치
      systemctl disable --now snmpd snmptrapd
      
  2. SNMP 서비스를 사용하는 경우는 SNMP Community 이름 점검
    • SNMP 서비스 설정 파일(/etc/snmp/snmpd.conf)에서 SNMP Community 이름이 “public”이면 “취약”으로 판단
      [root@rocky9u2 ~]# vi /etc/snmp/snmpd.conf
      ..... MORE ..... # sec.name source community com2sec notConfigUser default public ..... MORE .....
    • SNMP Community 이름을 추측하기 어려운 값으로 설정
      [root@rocky9u2 ~]# vi /etc/snmp/snmpd.conf
      ..... MORE ..... # sec.name source community com2sec notConfigUser default hard_to_guess ..... MORE .....
◁ DNS 서비스(named) 점검 | 웹 서비스(httpd) 점검 ▷