目錄

簡介

必要條件

需求

採用元件

背景資訊

保護SNMP的策略

避免不安全的SNMP社群字串

配置SNMP檢視

使用存取控制清單(ACL)設定SNMP社群

配置SNMPv3

步驟1.確定受信任的NMS地址

步驟2.為受信任NMS建立ACL

步驟3.建立SNMP檢視

步驟4.建立SNMPv3組

步驟5.建立SNMPv3使用者

步驟6.（可選）配置SNMPv3陷阱或通知

步驟7.禁用或避免不必要的SNMPv1和SNMPv2c社群

重要附註

驗證

在介面上配置ACL

如何檢查SNMP錯誤

相關資訊

簡介

本文件說明如何保護您的簡易網路管理通訊協定 (SNMP) 安全。

必要條件

需求

本文件沒有特定需求。

採用元件

本檔案中的資訊是根據SNMP功能，例如Cisco IOS®軟體版本中引入的SNMP檢視和SNMP第3版(SNMPv3)。雖然某些組態範例和命令語法以Cisco IOS®為基礎，但核心SNMP安全概念也適用於較新的Cisco IOS XE平台。Cisco IOS和Cisco IOS XE版本之間的命令語法、支援的驗證和隱私演算法、平台功能以及管理平面保護功能可能有所不同。

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您瞭解任何指令可能造成的影響。

背景資訊

保護SNMP非常重要，因為未經授權的SNMP訪問可能暴露裝置資訊、在啟用讀寫訪問時允許配置更改，或者導致拒絕服務(DoS)條件。

早期的SNMP版本（例如SNMPv1和SNMPv2c）依賴社群字串進行存取控制。這些社群字串的運作方式與共用密碼類似，但以明文形式傳送，不提供強式驗證或加密。如果社群字串被重複使用、在配置檔案中公開或從網路中捕獲，則未經授權的使用者可以輪詢裝置資訊，或者在讀寫社群的情況下修改裝置設定。

一些最常見的SNMPv1/v2c安全限制包括：

- 使用眾所周知的社群字串，例如公用或私人

- 社群字串的明文傳輸

- 缺少按使用者身份驗證

- SNMP負載不加密

對於安全部署，請使用支援身份驗證和隱私的SNMPv3。SNMPv3提供基於使用者的身份驗證和加密，有助於保護訪問控制和管理資料。此外，您可以限制對受信任管理站的SNMP訪問，避免不必要的讀寫訪問，並使用SNMP檢視限制可訪問的MIB對象。

附註：在生產網路上部署之前，驗證特定平台和軟體版本的確切命令列介面(CLI)配置、功能支援和驗證命令。

保護SNMP的策略

避免不安全的SNMP社群字串

請勿使用眾所周知的社群字串，例如公用或私人。如果相容性需要SNMPv1或SNMPv2c，請使用唯一的、非明顯的社群字串，使用ACL限制它們，並避免讀取/寫入社群，除非有特定的操作要求。

附註：優先使用具備authPriv的SNMPv3進行安全部署。authPriv級別提供驗證和加密功能。身份驗證驗證SNMP消息是否來自有效的SNMPv3使用者，並且隱私加密SNMP負載，因此管理資料不會以明文傳送。

配置SNMP檢視

SNMP檢視限制對特定MIB子樹的訪問。將檢視應用於社群或SNMPv3組時，只能訪問所包含的MIB對象。未包含的MIB子樹將隱式拒絕。也可以從更廣泛的包含子樹中顯式排除特定子樹。

要建立或更新SNMP檢視條目，請使用snmp-server view global configuration命令。要刪除指定的SNMP伺服器檢視條目，請使用此命令的no形式。

snmp-server view

{included | excluded}

no snmp-server view

語法說明：

- myview-name  — 更新或建立的檢視記錄的標籤。該名稱用於引用記錄。

- oid-tree  — 要包括在檢視中或從檢視中排除的抽象語法表示法1(ASN.1)子樹的對象識別符號(OID)。要標識子樹，請指定由數字（如1.3.6.2.4）組成的文本字串或單詞（如system）。用星號(*)萬用字元替換單個子識別符號以指定子樹系列；例如1.3.*.4。

- included or excluded  — 檢視型別。必須指定included或excluded。

舊版SNMP文檔(包括RFC 1447)引入了MIB檢視的概念，以控制MIB樹的哪些部分包含或排除在SNMP訪問之外。儘管RFC 1447及其基於參與方的SNMPv2安全模型已過時，但MIB檢視概念仍通過基於RFC 3415中定義的基於檢視訪問控制模型(VACM)在現代SNMP中保持相關。Cisco SNMP檢視使用此概念來限制對特定MIB子樹的訪問。SNMP檢視可以應用於SNMPv1/v2c社群或SNMPv3組。

此示例將建立一個檢視，其中包含MIB-II系統組中除sysServices（系統7）以外的所有對象和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專用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

附註：其中一些示例可以引用來自Cisco IOS版本的較舊MIB對象，如atTable或atEntry。在較新的Cisco IOS XE平台上，等效資料可以使用不同的MIB對象或OID。

附註：部署SNMP檢視之前，請驗證MIB對象名稱或OID在目標平台和軟體版本中是否存在。使用SNMP物件導覽器以瞭解其他資訊。

使用存取控制清單(ACL)設定SNMP社群

如果需要SNMPv1或SNMPv2c，請使用ACL將每個社群字串限製為受信任的網路管理系統(NMS)地址。與SNMP社群關聯的ACL控制哪些源IP地址可以使用該社群字串向裝置傳送SNMP請求。

SNMP通訊通常包括兩種不同的流量型別：

- 輪詢/請求：NMS向網路裝置傳送SNMP GET、GETNEXT、GETBULK或SET請求。這些請求通常以受管裝置上的UDP埠161為目標。

- 陷阱/通知：網路裝置將未經請求的SNMP陷阱或通知消息傳送到NMS，以報告事件、警報或狀態更改。這些通知通常針對NMS上的UDP埠162。

對輪詢請求和陷阱通知使用不同的社群字串。如果發現一個團體字串，此分隔將限制曝光。例如，如果攻擊者從通知資料包獲取陷阱社群字串，則該字串不得同時允許SNMP輪詢訪問裝置。

access-list 10 permit

snmp-server community

RO 10

snmp-server host

version 2c

在此範例中：

- NMS使用<RO_POLLING_COMMUNITY>輪詢裝置。

- 裝置向NMS傳送陷阱或通知時，會使用<TRAP_NOTIFICATION_COMMUNITY>。

- ACL 10會限制輪詢訪問，因此只有<NMS_IP>可以使用輪詢社群字串。

- 陷阱通知社群字串不會重複用於SNMP輪詢訪問。

如果設定了陷阱社群字串，請確認它不會無意中允許SNMP輪詢存取。在某些Cisco IOS軟體版本中，除非明確限制或停用，否則用於陷阱的社群字串也可可用於SNMP存取。

要防止使用陷阱社群字串進行輪詢訪問，請明確拒絕將其用作SNMP社群：

access-list 99 deny any

snmp-server community

RO 99

除非有特定的操作要求，否則應避免配置讀/寫社群。如果需要讀寫訪問，請將其限製為專用管理站，使用單獨的社群字串，並應用限制性ACL。優先使用具有身份驗證和隱私的SNMPv3，以實現安全部署。

配置SNMPv3

將SNMPv3與身份驗證和隱私配合使用，用於安全SNMP部署。SNMPv3提供基於使用者的身份驗證和加密，而SNMPv1和SNMPv2c則依賴社群字串。

對於安全部署，請使用SNMPv3 authPriv安全級別：

- 身份驗證驗證SNMP消息是否來自有效的SNMPv3使用者。

- 隱私加密SNMP負載，因此不會以明文傳送管理資料。

- 對於安全的生產部署，應避免noAuthNoPriv和authNoPriv。

- 當平台支援更強大的選項時，請避免較弱或傳統演算法（如MD5和DES）。

附註：演算法支援因思科平台和軟體版本而異。使用裝置支援的最強身份驗證和隱私演算法，例如用於身份驗證的SHA或SHA-2和用於隱私的AES。

SNMPv3配置步驟

步驟1.確定受信任的NMS地址

確定允許哪個網路管理系統輪詢裝置。

示例值：

- NMS IP地址：<NMS_IP>

- 裝置管理IP地址：<DEVICE_MGMT_IP>

附註：必須只允許受信任的管理站訪問SNMP服務。

步驟2.為受信任NMS建立ACL

建立僅允許從受信任NMS訪問SNMP的ACL。

範例：

access-list 10 permit

access-list 10 deny any log

此ACL會限制哪些源IP地址可以使用SNMPv3組。deny any log條目有助於識別系統日誌中的未授權SNMP訪問嘗試。

步驟3.建立SNMP檢視

建立SNMP 檢視以限制SNMPv3使用者可以訪問哪些MIB對象。

範例：

snmp-server view

mib-2 included

snmp-server view

cisco included

此示例允許訪問MIB-II子樹和Cisco專用MIB對象。如果需要更嚴格的檢視，請明確排除敏感或不必要的MIB子樹。

範例：

snmp-server view

excluded

附註：SNMP檢視通過允許NMS僅訪問監控所需的MIB對象來減少風險。

步驟4.建立SNMPv3組

建立一個SNMPv3組，該組使用priv安全級別並引用SNMP檢視和ACL。

範例：

snmp-server group

v3 priv read

access 10

此指令執行三個重要事項：

- v3指定SNMPv3。

- priv需要身份驗證和加密。

- read <VIEW_NAME>使用先前定義的SNMP檢視限制可讀的MIB對象。

- 訪問10限制對已定義ACL的受信任NMS源IP地址的SNMP訪問。

附註：對於大多數監控使用情形，只讀訪問通常就足夠了。僅當存在特定操作要求時才配置寫訪問。

步驟5.建立SNMPv3使用者

建立SNMPv3使用者，並將其分配給SNMPv3組。

範例：

snmp-server user

v3 auth sha

priv aes 256

此命令使用以下命令建立使用者：

- SNMPv3身份驗證

- SHA身份驗證（如果支援）

- 採用256位加密的AES（若支援）

- 受限制的SNMPv3組中的成員資格

附註：使用強大且唯一的密碼進行身份驗證和隱私。不要對兩個值重複使用相同的密碼。

附註：如果較新的平台支援更強大的選項（如SHA-2或更強的AES變體），請使用裝置和NMS支援的最強選項。

步驟6.（可選）配置SNMPv3陷阱或通知

如果裝置需要向NMS傳送通知，請使用SNMPv3配置SNMP主機。

範例：

snmp-server host

version 3 priv

陷阱和通知是從裝置傳送到NMS的通知。它們不同於輪詢請求，NMS會將SNMP查詢傳送到裝置。使用SNMPv3通知，這樣陷阱或通知流量也會從身份驗證和隱私中受益。

如果需要，還要配置陷阱源介面：

snmp-server trap-source

附註：使用一致的陷阱源可幫助NMS識別裝置，並允許防火牆或ACL匹配可預測的源地址。

步驟7.禁用或避免不必要的SNMPv1和SNMPv2c社群

如果不需要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檢視，然後將其分配給SNMPv3組。

- 如果手動配置了本地SNMP引擎ID，請在建立SNMPv3使用者之前對其進行配置。在使用者建立後更改引擎ID可能需要重新建立SNMPv3使用者。

- 出於安全原因，SNMPv3使用者資訊沒有完全顯示在show running-config中。使用show snmp user進行驗證。

- 準確的MIB對象語法和支援的演算法因Cisco IOS和Cisco IOS XE版本而異。在部署之前驗證目標平台的命令語法。

驗證

使用以下命令驗證本地SNMP配置：

show snmp user

show snmp group

show snmp view

show snmp

show ip access-lists

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

下一個命令和輸出結果用於思科本地系統組:

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

介面ACL可用作額外的保護層，以限制哪些主機可以向裝置介面傳送SNMP流量。對於不支援更有針對性的控制平面保護功能(例如控制平面策略(CoPP)或管理平面ACL)的平台，它們尤其有用。

介面ACL可以在未經授權的SNMP資料包被裝置處理之前將其阻止，從而減少不必要的輪詢、暴力社群字串嘗試或來自不可信源的過量SNMP流量的風險。

注意：應用介面ACL時請小心。搭載ip access-group的ACL會過濾指定方向的流量，而且可能影響目的地為路由器的流量和中轉流量。在生產部署之前，始終包含所有必需的允許語句並在維護視窗或實驗室中驗證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

在此範例中：

- 允許從受信任的NMS到裝置管理IP地址的SNMP輪詢。

- 拒絕並記錄從其他源到裝置管理IP地址的SNMP輪詢。

- 其他IP流量由final permit ip any any語句允許。

附註：您可以調整此範例以適應您的網路設計。如果該平台支援CoPP、iACL或管理平面ACL，則這些選項可以提供更有針對性的控制平面保護。對於配置了許多IP地址的裝置或需要與路由器通訊的許多主機，這並非總是可擴展的解決方案。保護您的核心：基礎架構保護存取控制清單檔案提供了ACL的准則和推薦的部署技術。

如何檢查SNMP錯誤

使用log關鍵字設定SNMP 社群ACL。監視系統日誌的失敗嘗試，如圖所示。

access-list 10 deny any log

snmp-server community

RO 10

當有人嘗試使用社群公共內容存取路由器時，您會看到syslog類似以下內容：

%SEC-6-IPACCESSLOGS: list 10 denied 172.16.1.15 packet

此輸出表示存取清單10已拒絕來自主機172.16.1.15的五個SNMP封包。

使用show snmp命令定期檢查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

檢視突出顯示的計數器，瞭解可能表示嘗試利用這些漏洞的錯誤率意外增加。要報告任何安全問題，請參閱思科產品安全事件響應。

相關資訊

- 思科安全諮詢SNMP漏洞

- 思科技術支援與下載