이 문서에서는 단순 네트워크 관리 프로토콜(SNMP) 보안 설정 방법에 대해 설명합니다.
이 문서에 대한 특정 요건이 없습니다.
이 문서의 정보는 Cisco IOS® 소프트웨어 릴리스에 도입된 SNMP 보기 및 SNMP 버전 3(SNMPv3)과 같은 SNMP 기능을 기반으로 합니다. 일부 구성 예 및 명령 구문은 Cisco IOS®를 기반으로 하지만 핵심 SNMP 보안 개념은 최신 Cisco IOS XE 플랫폼에도 적용됩니다. 명령 구문, 지원되는 인증 및 개인 정보 보호 알고리즘, 플랫폼 기능 및 관리 플레인 보호 기능은 Cisco IOS 및 Cisco IOS XE 릴리스에 따라 다를 수 있습니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
무단 SNMP 액세스는 디바이스 정보를 노출하거나, 읽기/쓰기 액세스가 활성화된 경우 컨피그레이션 변경을 허용하거나, DoS(서비스 거부) 조건에 영향을 줄 수 있으므로 SNMP를 보호하는 것이 중요합니다.
SNMPv1 및 SNMPv2c와 같은 이전 SNMP 버전은 액세스 제어를 위해 커뮤니티 문자열을 사용합니다. 이러한 커뮤니티 문자열은 공유 비밀번호와 비슷하게 작동하지만 일반 텍스트로 전송되며 강력한 인증 또는 암호화를 제공하지 않습니다. 커뮤니티 문자열이 재사용되거나, 컨피그레이션 파일에 노출되거나, 네트워크에서 캡처되는 경우 권한이 없는 사용자가 디바이스 정보를 폴링하거나, 읽기/쓰기 커뮤니티의 경우 디바이스 설정을 수정할 수 있습니다.
가장 일반적인 SNMPv1/v2c 보안 제한 사항은 다음과 같습니다.
보안 구축의 경우 지원되는 경우 SNMPv3를 인증 및 프라이버시와 함께 사용합니다. SNMPv3는 액세스 제어 및 관리 데이터를 모두 보호하는 사용자 기반 인증 및 암호화를 제공합니다. 또한 신뢰할 수 있는 관리 스테이션에 대한 SNMP 액세스를 제한하고, 불필요한 읽기-쓰기 액세스를 방지하며, SNMP 보기로 액세스 가능한 MIB 개체를 제한할 수 있습니다.
참고: 프로덕션 네트워크에 구축하기 전에 특정 플랫폼 및 소프트웨어 릴리스에 대한 정확한 CLI(Command Line Interface) 컨피그레이션, 기능 지원 및 확인 명령을 확인합니다.
퍼블릭 또는 프라이빗과 같이 잘 알려진 커뮤니티 문자열을 사용하지 마십시오. 호환성을 위해 SNMPv1 또는 SNMPv2c가 필요한 경우, 고유하고 명확하지 않은 커뮤니티 문자열을 사용하고, ACL로 제한하며, 특정 운영 요구 사항이 없는 한 읽기-쓰기 커뮤니티를 피하십시오.
참고: 보안 구축을 위해 authPriv를 사용하는 SNMPv3를 선호합니다. authPriv 레벨은 인증과 암호화를 모두 제공합니다. 인증은 SNMP 메시지가 유효한 SNMPv3 사용자로부터 왔는지 확인하고, 프라이버시는 SNMP 페이로드를 암호화하여 관리 데이터가 일반 텍스트로 전송되지 않도록 합니다.
SNMP 보기는 특정 MIB 하위 트리에 대한 액세스를 제한합니다. 보기가 커뮤니티 또는 SNMPv3 그룹에 적용될 경우 포함된 MIB 개체만 액세스할 수 있습니다. 포함되지 않은 MIB 하위 트리는 암시적으로 거부됩니다. 또한 더 광범위한 포함된 하위 트리에서 특정 하위 트리를 명시적으로 제외할 수 있습니다.
SNMP 보기 항목을 만들거나 업데이트하려면 snmp-server view 글로벌 컨피그레이션 명령을 사용합니다. 지정된 SNMP 서버 보기 항목을 제거하려면 이 명령의 no 형식을 사용합니다.
snmp-server viewno snmp-server view {included | excluded}
구문 설명:
myview-name — 업데이트하거나 생성하는 뷰 레코드의 레이블입니다. 이름은 레코드를 참조하는 데 사용됩니다.
oid-tree — 뷰에 포함하거나 제외할 ASN.1(Abstract Syntax Notation One) 하위 트리의 OID(객체 식별자) 하위 트리를 식별하려면 1.3.6.2.4와 같은 숫자 또는 system과 같은 단어로 구성된 텍스트 문자열을 지정합니다. 단일 하위 식별자를 별표(*) 와일드카드로 대체하여 하위 트리 패밀리를 지정합니다. 예: 1.3.*.4.
included or excluded — 보기의 유형입니다. included 또는 excluded를 지정해야 합니다.
RFC 1447을 비롯한 레거시 SNMP 문서에서는 MIB 트리의 어떤 부분이 SNMP 액세스에서 포함되거나 제외되는지를 제어하기 위해 MIB 보기의 개념을 도입했습니다. RFC 1447 및 해당 파티 기반 SNMPv2 보안 모델은 사용되지 않지만 MIB 뷰 개념은 RFC 3415에 정의된 VACM(View-based Access Control Model)을 통해 최신 SNMP에서 적용됩니다. Cisco SNMP 보기는 이 개념을 사용하여 특정 MIB 하위 트리에 대한 액세스를 제한합니다. SNMP 보기는 SNMPv1/v2c 커뮤니티 또는 SNMPv3 그룹에 적용할 수 있습니다.
이 예시에서는 sysServices(시스템 7)를 제외하고 MIB-II 시스템 그룹의 모든 개체와 MIB-II 인터페이스 그룹의 인터페이스 1에 대한 모든 개체를 포함하는 보기를 생성합니다.
snmp-server view agon system included snmp-server view agon system.7 excluded snmp-server view agon ifEntry.*.1 included
이 예에서 보기는 MIB-II 및 Cisco private MIB 객체에 대한 액세스를 허용하지만 atEntry로 표시되는 ARP 테이블은 제외합니다.
snmp-server view myview mib-2 included snmp-server view myview atEntry excluded snmp-server view myview cisco included snmp-server community C1sc03xample view myview RO 11 snmp-server community C1sc03xample2 view myview RW 11 snmp-server contact ciscouser@cisco.com
참고: 이러한 예제 중 일부는 atTable 또는 atEntry와 같은 Cisco IOS 릴리스의 이전 MIB 개체를 참조할 수 있습니다. 최신 Cisco IOS XE 플랫폼에서는 동일한 데이터에 서로 다른 MIB 개체 또는 OID를 사용할 수 있습니다.
참고: SNMP 보기를 배포하기 전에 대상 플랫폼 및 소프트웨어 릴리스에 MIB 개체 이름 또는 OID가 있는지 확인합니다. 자세한 내용은 SNMP Object Navigator를 참조하십시오.
SNMPv1 또는 SNMPv2c가 필요한 경우 각 커뮤니티 문자열을 ACL이 있는 신뢰할 수 있는 NMS(Network Management System) 주소로 제한합니다. SNMP 커뮤니티와 연결된 ACL은 해당 커뮤니티 문자열을 사용하여 디바이스에 SNMP 요청을 보낼 수 있는 소스 IP 주소를 제어합니다.
SNMP 통신에는 일반적으로 두 가지 트래픽 유형이 있습니다.
폴링 요청 및 트랩 알림에 다른 커뮤니티 문자열을 사용합니다. 이 분리는 하나의 커뮤니티 문자열이 검색될 경우 노출을 제한합니다. 예를 들어, 공격자가 알림 패킷에서 트랩 커뮤니티 문자열을 학습하는 경우 해당 문자열은 디바이스에 대한 SNMP 폴링 액세스도 허용하지 않아야 합니다.
access-list 10 permit
snmp-server community RO 10
snmp-server host version 2c
이 예에서는 다음을 수행합니다.
트랩 커뮤니티 문자열이 구성된 경우 의도치 않게 SNMP 폴링 액세스가 허용되지 않는지 확인합니다. 일부 Cisco IOS 소프트웨어 릴리스에서는 트랩에 사용되는 커뮤니티 문자열을 명시적으로 제한하거나 비활성화하지 않는 한 SNMP 액세스에 사용할 수도 있습니다.
트랩 커뮤니티 문자열로 폴링 액세스를 방지하려면 SNMP 커뮤니티로의 사용을 명시적으로 거부합니다.
access-list 99 deny any
snmp-server community RO 99
특정 운영 요구 사항이 없는 한 읽기/쓰기 커뮤니티를 구성하지 마십시오. 읽기-쓰기 액세스가 필요한 경우 전용 관리 스테이션으로 제한하고 별도의 커뮤니티 문자열을 사용하며 제한적인 ACL을 적용합니다. 안전한 구축을 위해 인증 및 프라이버시가 포함된 SNMPv3를 선호합니다.
보안 SNMP 구축을 위해 인증 및 개인 정보와 함께 SNMPv3를 사용합니다. SNMPv3는 커뮤니티 문자열에 의존하는 SNMPv1 및 SNMPv2c와 달리 사용자 기반 인증 및 암호화를 제공합니다.
보안 구축의 경우 SNMPv3 authPriv 보안 수준을 사용합니다.
참고: 알고리즘 지원은 Cisco 플랫폼 및 소프트웨어 릴리스에 따라 다릅니다. 디바이스에서 지원하는 가장 강력한 인증 및 프라이버시 알고리즘을 사용합니다(예: 인증에는 SHA 또는 SHA-2, 프라이버시에는 AES).
SNMPv3 컨피그레이션 단계
디바이스를 폴링할 수 있는 네트워크 관리 시스템을 결정합니다.
값 예:
참고: 신뢰할 수 있는 관리 스테이션만 SNMP 서비스에 액세스할 수 있어야 합니다.
신뢰할 수 있는 NMS에서만 SNMP 액세스를 허용하는 ACL을 생성합니다.
예:
access-list 10 permit access-list 10 deny any log
이 ACL은 SNMPv3 그룹을 사용할 수 있는 소스 IP 주소를 제한합니다. deny any log 항목은 syslog에서 무단 SNMP 액세스 시도를 식별하는 데 도움이 됩니다.
SNMPv3 사용자가 액세스할 수 있는 MIB 개체를 제한하기 위해 SNMP 보기를 생성합니다.
예:
snmp-server view mib-2 included
snmp-server view cisco included
이 예에서는 MIB-II 하위 트리 및 Cisco 프라이빗 MIB 객체에 액세스할 수 있습니다. 좀 더 제한적인 보기가 필요한 경우 민감하거나 불필요한 MIB 하위 트리를 명시적으로 제외합니다.
예:
snmp-server view excluded
참고: SNMP 보기는 NMS가 모니터링에 필요한 MIB 객체에만 액세스하도록 허용함으로써 노출을 줄입니다.
프라이빗 보안 수준을 사용하고 SNMP 보기 및 ACL을 참조하는 SNMPv3 그룹을 생성합니다.
예:
snmp-server group v3 priv read access 10
이 명령은 다음 세 가지 중요한 작업을 수행합니다.
참고: 대부분의 모니터링 활용 사례에서는 읽기 전용 액세스만 있으면 됩니다. 특정 운영 요구 사항이 있을 때만 쓰기 액세스를 구성합니다.
SNMPv3 사용자를 생성하고 SNMPv3 그룹에 할당합니다.
예:
snmp-server user v3 auth sha priv aes 256
이 명령은 다음과 같은 사용자를 생성합니다.
참고: 인증 및 개인 정보 보호를 위해 강력하고 고유한 비밀번호를 사용합니다. 두 값에 동일한 비밀번호를 재사용하지 마십시오.
참고: 최신 플랫폼이 SHA-2 또는 더 강력한 AES 변형과 같은 더 강력한 옵션을 지원하는 경우 디바이스와 NMS에서 지원하는 가장 강력한 옵션을 사용합니다.
디바이스에서 NMS에 알림을 보내야 하는 경우 SNMPv3과 함께 SNMP 호스트를 구성합니다.
예:
snmp-server host version 3 priv
트랩 및 알림은 디바이스에서 NMS로 전송되는 알림입니다. NMS가 디바이스에 SNMP 쿼리를 전송하는 폴링 요청과는 다릅니다. 트래픽을 트랩하거나 알림으로써 인증과 개인 정보의 이점을 얻을 수 있도록 SNMPv3 알림을 사용합니다.
필요한 경우 트랩 소스 인터페이스도 구성합니다.
snmp-server trap-source
참고: 일관된 트랩 소스를 사용하면 NMS가 디바이스를 식별하고 방화벽 또는 ACL이 예측 가능한 소스 주소와 일치할 수 있습니다.
SNMPv1 또는 SNMPv2c가 필요하지 않은 경우 커뮤니티 문자열을 구성하거나 사용하지 않는 커뮤니티 문자열을 제거하지 마십시오.
예:
no snmp-server community
참고: 따라서 일반 텍스트 커뮤니티 문자열을 통해 무단 SNMP 액세스의 위험이 줄어듭니다.
다음 컨피그레이션 코드 조각은 NMS 10.189.5.161에서만 SNMPv3 폴링을 허용하고 SNMP 보기로 읽을 수 있는 MIB 개체를 제한하며 인증 및 암호화가 필요한 예를 보여줍니다.
Router#configure terminal
Router(config)#access-list 10 permit 10.189.5.161
Router(config)#access-list 10 deny any log
Router(config)#!
Router(config)#snmp-server view ciscoview mib-2 included
Router(config)#snmp-server view ciscoview cisco included
Router(config)#snmp-server view ciscoview ipNetToMediaEntry.2 excluded
Router(config)#snmp-server group myciscogroup v3 priv read ciscoview access 10
Router(config)#snmp-server user ciscouser myciscogroup v3 auth sha C1sc03xampl3 priv aes 256 C1sc03xampl32
다음 명령을 사용하여 로컬 SNMP 컨피그레이션을 확인합니다.
snmp 사용자 표시
snmp 그룹 표시
snmp 보기 표시
snmp 표시
ip 액세스 목록 표시
show running-config | 섹션 snmp
ISP-C#show snmp user
User name: ciscouser
Engine ID: 80000009030000A38EB6F800
storage-type: nonvolatile active
Authentication Protocol: SHA
Privacy Protocol: AES256
Group-name: myciscogroup
ISP-C#show snmp group
groupname: ILMI security model:v1
contextname: storage-type: permanent
readview : *ilmi writeview: *ilmi
notifyview:
row status: active
groupname: ILMI security model:v2c
contextname: storage-type: permanent
readview : *ilmi writeview: *ilmi
notifyview:
row status: active
groupname: myciscogroup security model:v3 priv
contextname: storage-type: nonvolatile
readview : ciscoview writeview:
notifyview:
row status: active access-list: 10
ISP-C#show snmp view
*ilmi system - included permanent active
*ilmi atmForumUni - included permanent active
cac_view pimMIB - included read-only active
cac_view msdpMIB - included read-only active
cac_view system - included read-only active
cac_view interfaces - included read-only active
cac_view ip - included read-only active
cac_view ospf - included read-only active
cac_view bgp - included read-only active
cac_view ifMIB - included read-only active
cac_view nhrpMIB - included read-only active
cac_view ipMRouteStdMIB - included read-only active
cac_view igmpStdMIB - included read-only active
cac_view pimStdMIB - included read-only active
cac_view mgmdStdMIB - included read-only active
cac_view ospfv3MIB - included read-only active
cac_view ipForward - included read-only active
cac_view ipTrafficStats - included read-only active
cac_view ospfTrap - included read-only active
cac_view sysUpTime.0 - included read-only active
cac_view ciscoPingMIB - included read-only active
cac_view ciscoPimMIB - included read-only active
cac_view ciscoBgp4MIB - included read-only active
cac_view ciscoIfExtensionMIB - included read-only active
cac_view ciscoEigrpMIB - included read-only active
cac_view ciscoCefMIB - included read-only active
cac_view ciscoNhrpExtMIB - included read-only active
cac_view ciscoIpMRouteMIB - included read-only active
cac_view ciscoDlcSwitchMIB - included read-only active
cac_view ciscoExperiment.101 - included read-only active
cac_view ciscoIetfIsisMIB - included read-only active
cac_view ifIndex - included read-only active
cac_view ifDescr - included read-only active
cac_view ifType - included read-only active
cac_view ifAdminStatus - included read-only active
cac_view ifOperStatus - included read-only active
cac_view snmpTraps.3 - included read-only active
cac_view snmpTraps.4 - included read-only active
cac_view snmpTrapOID.0 - included read-only active
cac_view snmpMIB.1.4.3.0 - included read-only active
cac_view lifEntry.20 - included read-only active
cac_view cciDescriptionEntry.1 - included read-only active
ciscoview mib-2 - included nonvolatile active
ciscoview cisco - included nonvolatile active
ciscoview ipNetToMediaEntry.2 - excluded nonvolatile active
v1default iso - included permanent active
v1default internet - included permanent active
v1default snmpUsmMIB - excluded permanent active
v1default snmpVacmMIB - excluded permanent active
v1default snmpCommunityMIB - excluded permanent active
ISP-C#show ip access-lists
Standard IP access list 10
10 permit 10.189.5.161 (26 matches)
20 deny any log (6 matches)
Extended IP access list meraki-fqdn-dns
ISP-C#show running-config | section snmp
snmp-server group myciscogroup v3 priv read ciscoview access 10
snmp-server view ciscoview mib-2 included
snmp-server view ciscoview cisco included
snmp-server view ciscoview ipNetToMediaEntry.2 excluded
MIB-II 시스템 트리에 대해 SNMP 워크도 수행할 수 있습니다.
ciscouser@Desktop % snmpwalk -v3 -l authPriv -u ciscouser -a SHA -A 'C1sc03xampl3' -x AES -X 'C1sc03xampl32' 10.207.214.25 system
SNMPv2-MIB::sysDescr.0 = STRING: Cisco IOS Software [Cupertino], ASR1000 Software (X86_64_LINUX_IOSD-UNIVERSALK9-M), Version 17.9.4, RELEASE SOFTWARE (fc5)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2023 by Cisco Systems, Inc.
Compiled Wed 26-Jul-23 10:29 b
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.9.1.2348
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (107487239) 12 days, 10:34:32.39
SNMPv2-MIB::sysContact.0 = STRING:
SNMPv2-MIB::sysName.0 = STRING: ISP-C
SNMPv2-MIB::sysLocation.0 = STRING:
SNMPv2-MIB::sysServices.0 = INTEGER: 78
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00
다음 명령 및 출력에서는 ipNetToMediaEntry.2 그룹을 가져올 수 없음을 보여 줍니다.
ciscouser@Desktop % snmpwalk -v3 -l authPriv -u ciscouser -a SHA -A 'C1sc03xampl3' -x AES -X 'C1sc03xampl32' 10.207.214.25 ipNetToMediaEntry.2
IP-MIB::ipNetToMediaPhysAddress = No Such Object available on this agent at this OID
다음 명령 및 출력 결과는 Cisco Local System 그룹에 대한 것입니다.
ciscouser@Desktop % snmpwalk -v3 -l authPriv -u ciscouser -a SHA -A 'C1sc03xampl3' -x AES -X 'C1sc03xampl32' 10.207.214.25 .1.3.6.1.4.1.9.2.1
SNMPv2-SMI::enterprises.9.2.1.1.0 = STRING: "
17.15(4r)
"
SNMPv2-SMI::enterprises.9.2.1.2.0 = STRING: "LocalSoft"
SNMPv2-SMI::enterprises.9.2.1.3.0 = STRING: "ISP-C"
SNMPv2-SMI::enterprises.9.2.1.4.0 = ""
SNMPv2-SMI::enterprises.9.2.1.5.0 = IpAddress: 10.189.5.161
SNMPv2-SMI::enterprises.9.2.1.6.0 = IpAddress: 0.0.0.0
SNMPv2-SMI::enterprises.9.2.1.8.0 = INTEGER: -796648892
SNMPv2-SMI::enterprises.9.2.1.9.0 = INTEGER: 1646
SNMPv2-SMI::enterprises.9.2.1.10.0 = INTEGER: 1000
SNMPv2-SMI::enterprises.9.2.1.11.0 = INTEGER: 1557645
SNMPv2-SMI::enterprises.9.2.1.12.0 = INTEGER: 0
SNMPv2-SMI::enterprises.9.2.1.13.0 = INTEGER: 0
SNMPv2-SMI::enterprises.9.2.1.14.0 = INTEGER: 104
SNMPv2-SMI::enterprises.9.2.1.15.0 = INTEGER: 1200
SNMPv2-SMI::enterprises.9.2.1.16.0 = INTEGER: 1200
SNMPv2-SMI::enterprises.9.2.1.17.0 = INTEGER: 2500
SNMPv2-SMI::enterprises.9.2.1.18.0 = INTEGER: 2684018
SNMPv2-SMI::enterprises.9.2.1.19.0 = INTEGER: 0
SNMPv2-SMI::enterprises.9.2.1.20.0 = INTEGER: 0
SNMPv2-SMI::enterprises.9.2.1.21.0 = INTEGER: 0
SNMPv2-SMI::enterprises.9.2.1.22.0 = INTEGER: 600
SNMPv2-SMI::enterprises.9.2.1.23.0 = INTEGER: 900
SNMPv2-SMI::enterprises.9.2.1.24.0 = INTEGER: 900
SNMPv2-SMI::enterprises.9.2.1.25.0 = INTEGER: 2000
SNMPv2-SMI::enterprises.9.2.1.26.0 = INTEGER: 26757370
SNMPv2-SMI::enterprises.9.2.1.27.0 = INTEGER: 0
SNMPv2-SMI::enterprises.9.2.1.28.0 = INTEGER: 0
SNMPv2-SMI::enterprises.9.2.1.29.0 = INTEGER: 0
SNMPv2-SMI::enterprises.9.2.1.30.0 = INTEGER: 1536
SNMPv2-SMI::enterprises.9.2.1.31.0 = INTEGER: 900
SNMPv2-SMI::enterprises.9.2.1.32.0 = INTEGER: 899
SNMPv2-SMI::enterprises.9.2.1.33.0 = INTEGER: 1800
SNMPv2-SMI::enterprises.9.2.1.34.0 = INTEGER: 8891131
SNMPv2-SMI::enterprises.9.2.1.35.0 = INTEGER: 0
SNMPv2-SMI::enterprises.9.2.1.36.0 = INTEGER: 1
SNMPv2-SMI::enterprises.9.2.1.37.0 = INTEGER: 1
SNMPv2-SMI::enterprises.9.2.1.38.0 = INTEGER: 5024
SNMPv2-SMI::enterprises.9.2.1.39.0 = INTEGER: 100
SNMPv2-SMI::enterprises.9.2.1.40.0 = INTEGER: 100
SNMPv2-SMI::enterprises.9.2.1.41.0 = INTEGER: 300
SNMPv2-SMI::enterprises.9.2.1.42.0 = INTEGER: 0
SNMPv2-SMI::enterprises.9.2.1.43.0 = INTEGER: 0
SNMPv2-SMI::enterprises.9.2.1.44.0 = INTEGER: 1
SNMPv2-SMI::enterprises.9.2.1.45.0 = INTEGER: 1
SNMPv2-SMI::enterprises.9.2.1.46.0 = INTEGER: 0
SNMPv2-SMI::enterprises.9.2.1.47.0 = INTEGER: 0
SNMPv2-SMI::enterprises.9.2.1.48.0 = IpAddress: 0.0.0.0
SNMPv2-SMI::enterprises.9.2.1.49.0 = ""
SNMPv2-SMI::enterprises.9.2.1.51.0 = IpAddress: 0.0.0.0
SNMPv2-SMI::enterprises.9.2.1.52.0 = ""
SNMPv2-SMI::enterprises.9.2.1.56.0 = INTEGER: 0
SNMPv2-SMI::enterprises.9.2.1.57.0 = INTEGER: 0
SNMPv2-SMI::enterprises.9.2.1.58.0 = INTEGER: 0
SNMPv2-SMI::enterprises.9.2.1.59.0 = INTEGER: 4972
SNMPv2-SMI::enterprises.9.2.1.60.0 = INTEGER: 0
SNMPv2-SMI::enterprises.9.2.1.61.0 = STRING: "cisco Systems, Inc.
170 West Tasman Dr.
San Jose, CA 95134-1706
U.S.A.
Ph +1-408-526-4000
Customer service 1-800-553-6387 or +1-408-526-7208
24HR Emergency 1-800-553-2447 or +1-408-526-7209
Email Address tac@cisco.com
World Wide Web http://www.cisco.com"
SNMPv2-SMI::enterprises.9.2.1.62.0 = INTEGER: 18024
SNMPv2-SMI::enterprises.9.2.1.63.0 = INTEGER: 20
SNMPv2-SMI::enterprises.9.2.1.64.0 = INTEGER: 20
SNMPv2-SMI::enterprises.9.2.1.65.0 = INTEGER: 33
SNMPv2-SMI::enterprises.9.2.1.66.0 = INTEGER: 0
SNMPv2-SMI::enterprises.9.2.1.67.0 = INTEGER: 0
SNMPv2-SMI::enterprises.9.2.1.68.0 = INTEGER: 1
SNMPv2-SMI::enterprises.9.2.1.69.0 = INTEGER: 1
SNMPv2-SMI::enterprises.9.2.1.70.0 = INTEGER: 0
SNMPv2-SMI::enterprises.9.2.1.71.0 = INTEGER: 0
SNMPv2-SMI::enterprises.9.2.1.72.0 = IpAddress: 0.0.0.0
SNMPv2-SMI::enterprises.9.2.1.73.0 = STRING: "bootflash:asr1000-universalk9.17.09.04.SPA.bin"
SNMPv2-SMI::enterprises.9.2.1.74.0 = INTEGER: 3
인터페이스 ACL은 어떤 호스트가 SNMP 트래픽을 디바이스 인터페이스로 전송할 수 있는지를 제한하는 추가 보호 레이어로 유용할 수 있습니다. 특히 CoPP(Control Plane Policing) 또는 관리 플레인 ACL과 같이 더 표적화된 컨트롤 플레인 보호 기능을 지원하지 않는 플랫폼에서 유용합니다.
인터페이스 ACL은 디바이스에 의해 처리되기 전에 무단 SNMP 패킷을 차단하여 원치 않는 폴링, 무작위 강제 커뮤니티 문자열 시도 또는 신뢰할 수 없는 소스에서 과도한 SNMP 트래픽에 대한 노출을 줄일 수 있습니다.
주의: 인터페이스 ACL을 적용할 때는 주의하십시오. ip access-group과 함께 적용된 ACL은 선택한 방향으로 트래픽을 필터링하며 라우터로 향하는 트래픽과 트랜짓 트래픽에 모두 영향을 줄 수 있습니다. 프로덕션 구축 전에 항상 모든 필수 permit 문을 포함하고 유지 관리 창 또는 랩에서 ACL을 검증합니다.
ip access-list extended SNMP-MGMT-IN permit udp host host eq snmp deny udp any host eq snmp log permit ip any any
그런 다음 ACL을 다음 컨피그레이션 명령을 사용하는 모든 인터페이스에 적용해야 합니다.
interface ip access-group SNMP-MGMT-IN in
이 예에서는 다음을 수행합니다.
참고: 이 예를 네트워크 설계에 적용할 수 있습니다. 플랫폼이 CoPP, iACL 또는 관리 플레인 ACL을 지원하는 경우, 이러한 옵션은 더 표적화된 컨트롤 플레인 보호를 제공할 수 있습니다. 구성된 IP 주소가 많은 디바이스 또는 라우터와 통신해야 하는 호스트가 많은 경우 이 솔루션이 항상 확장 가능한 솔루션은 아닙니다. 핵심 보호: Infrastructure Protection Access Control Lists 문서는 ACL에 대한 지침 및 권장 구축 기술을 제공합니다.
log 키워드를 사용하여 SNMP 커뮤니티 ACL을 설정합니다. 표시된 대로 syslog에서 실패한 시도를 모니터링합니다.
access-list 10 deny any log snmp-server communityRO 10
누군가가 커뮤니티 퍼블릭을 사용하여 라우터에 액세스하려고 하면 다음과 비슷한 syslog 내용이 표시됩니다.
%SEC-6-IPACCESSLOGS: list 10 denied 172.16.1.15 packet
이 출력은 access-list 10이 호스트 172.16.1.15로부터의 SNMP 패킷 5개를 거부했음을 의미합니다.
다음 그림과 같이 정기적으로 SNMP에서 show snmp 명령의 오류를 확인합니다.
ISP-C#show snmp
Chassis: TKM21110169
186 SNMP packets input
0 Bad SNMP version errors 58 Unknown community name
0 Illegal operation for community name supplied
0 Encoding errors 115 Number of requested variables
0 Number of altered variables
2 Get-request PDUs
113 Get-next PDUs
0 Set-request PDUs
0 Input queue packet drops (Maximum queue size 1000)
126 SNMP packets output
0 Too big errors (Maximum packet size 1500)
0 No such name errors
0 Bad values errors
0 General errors
0 Response PDUs
0 Trap PDUs
Packets currently in SNMP process input queue: 0
SNMP global trap: disabled
SNMP logging: disabled
강조 표시된 카운터에서 이러한 취약성의 악용 시도를 나타낼 수 있는 오류율이 예상치 않게 증가하는지 확인합니다. 보안 문제를 보고하려면 Cisco 제품 보안 사고 대응을 참조하십시오.
| 개정 | 게시 날짜 | 의견 |
|---|---|---|
4.0 |
14-Jul-2026
|
재인증 - 기술 콘텐츠 및 형식 업데이트 |
3.0 |
14-Mar-2024
|
재인증 |
2.0 |
16-Jan-2023
|
올바른 사용. CCW 알림을 수정합니다. 재인증. |
1.0 |
22-Feb-2002
|
최초 릴리스 |