Questo documento descrive come proteggere il protocollo SNMP (Simple Network Management Protocol).
Nessun requisito specifico previsto per questo documento.
Le informazioni di questo documento si basano sulle funzionalità SNMP, quali SNMP View e SNMP versione 3 (SNMPv3), introdotte nel software Cisco IOS®. Sebbene alcuni esempi di configurazione e la sintassi dei comandi siano basati su Cisco IOS®, i concetti base relativi alla sicurezza SNMP si applicano anche alle nuove piattaforme Cisco IOS XE. La sintassi dei comandi, gli algoritmi di autenticazione e privacy supportati, le funzionalità della piattaforma e le funzionalità di protezione del piano di gestione possono variare tra le versioni Cisco IOS e Cisco IOS XE.
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
La protezione di SNMP è importante perché l'accesso non autorizzato a SNMP può esporre le informazioni sui dispositivi, consentire modifiche alla configurazione quando l'accesso in lettura/scrittura è abilitato o contribuire alle condizioni DoS (Denial of Service).
Le versioni precedenti di SNMP, ad esempio SNMPv1 e SNMPv2c, si basano sulle stringhe della community per il controllo degli accessi. Queste stringhe della community funzionano in modo simile alle password condivise, ma vengono inviate in testo non crittografato e non forniscono un'autenticazione o una crittografia avanzata. Se una stringa della community viene riutilizzata, esposta nei file di configurazione o acquisita dalla rete, un utente non autorizzato può eseguire il polling delle informazioni sul dispositivo o, nel caso di una community di lettura/scrittura, modificare le impostazioni del dispositivo.
Alcune delle limitazioni di sicurezza più comuni di SNMPv1/v2c includono:
Per implementazioni sicure, utilizzare SNMPv3 con autenticazione e privacy, dove supportato. L'SNMPv3 fornisce l'autenticazione e la crittografia basate sull'utente, che contribuiscono a proteggere sia il controllo dell'accesso che i dati di gestione. È inoltre possibile limitare l'accesso SNMP a stazioni di gestione attendibili, evitare accessi in lettura/scrittura non necessari e limitare gli oggetti MIB accessibili con le visualizzazioni SNMP.
Nota: Convalidare la configurazione esatta dell'interfaccia CLI (Command Line Interface), il supporto delle funzionalità e i comandi di verifica per la piattaforma e la versione software specifiche prima della distribuzione su una rete di produzione.
Non utilizzare stringhe della community note, ad esempio public o private. Se per la compatibilità è richiesto SNMPv1 o SNMPv2c, utilizzare stringhe della community univoche e non ovvie, limitarle con ACL ed evitare community di lettura/scrittura, a meno che non vi sia un requisito operativo specifico.
Nota: Per implementazioni sicure, preferire SNMPv3 con authPriv. Il livello authPriv fornisce sia l'autenticazione che la crittografia. L'autenticazione verifica che i messaggi SNMP provengano da un utente SNMPv3 valido e la privacy cripta il payload SNMP in modo che i dati di gestione non vengano inviati in formato testo non crittografato.
Una vista SNMP limita l'accesso a sottostrutture MIB specifiche. Quando si applica una vista a una community o a un gruppo SNMPv3, sono accessibili solo gli oggetti MIB inclusi. Le sottostrutture MIB non incluse vengono negate implicitamente. È inoltre possibile escludere in modo esplicito sottostrutture specifiche da una sottostruttura inclusa più ampia.
Per creare o aggiornare una voce della vista SNMP, usare il comando di configurazione globale snmp-server view. Per rimuovere la voce di visualizzazione del server SNMP specificata, utilizzare la forma no di questo comando.
snmp-server viewno snmp-server view {included | excluded}
Descrizione sintassi:
myview-name — Etichetta per il record vista aggiornato o creato. Il nome viene utilizzato per fare riferimento al record.
oid-tree — Object Identifier (OID) della sottostruttura ASN.1 (Abstract Syntax Notation One) da includere o escludere dalla visualizzazione. Per identificare la sottostruttura, specificare una stringa di testo composta da numeri, ad esempio 1.3.6.2.4, o una parola, ad esempio sistema. Sostituire un singolo identificatore secondario con il carattere jolly asterisco (*) per specificare una famiglia di sottostrutture; ad esempio 1.3.*.4.
included or excluded — Tipo di vista. È necessario specificare incluso o escluso.
La documentazione SNMP legacy, inclusa la RFC 1447, ha introdotto il concetto di viste MIB per controllare quali parti della struttura MIB sono incluse o escluse dall'accesso SNMP. Sebbene la RFC 1447 e il relativo modello di sicurezza SNMPv2 basato su parti siano obsoleti, il concetto di visualizzazione MIB rimane rilevante nel moderno SNMP tramite il VACM (View-based Access Control Model), definito nella RFC 3415. Le viste SNMP Cisco utilizzano questo concetto per limitare l'accesso a sottostrutture MIB specifiche. Una vista SNMP può essere applicata alle community SNMPv1/v2c o ai gruppi SNMPv3.
In questo esempio viene creata una vista che include tutti gli oggetti del gruppo di sistema MIB-II ad eccezione di sysServices (System 7) e tutti gli oggetti dell'interfaccia 1 del gruppo di interfacce MIB-II:
snmp-server view agon system included snmp-server view agon system.7 excluded snmp-server view agon ifEntry.*.1 included
In questo esempio, la vista consente l'accesso agli oggetti MIB privati MIB di MIB-II e Cisco, ma esclude la tabella ARP rappresentata da atEntry:
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
Nota: Alcuni di questi esempi possono fare riferimento a oggetti MIB precedenti di versioni Cisco IOS, ad esempio atTable o atEntry. Sulle piattaforme Cisco IOS XE più recenti, i dati equivalenti possono utilizzare diversi oggetti MIB o OID.
Nota: Prima di distribuire una vista SNMP, verificare che il nome dell'oggetto MIB o l'OID esista sulla piattaforma di destinazione e sulla versione del software. Per ulteriori informazioni, utilizzare SNMP Object Navigator.
Se è richiesto SNMPv1 o SNMPv2c, limitare ogni stringa della community agli indirizzi di un sistema di gestione di rete (NMS) attendibile con un ACL. L'ACL associato alla community SNMP controlla gli indirizzi IP di origine che possono utilizzare la stringa della community per inviare richieste SNMP al dispositivo.
Le comunicazioni SNMP in genere includono due diversi tipi di traffico:
Utilizzare stringhe della community diverse per il polling delle richieste e le notifiche trap. Questa separazione limita l'esposizione se viene scoperta una stringa della community. Ad esempio, se un utente non autorizzato apprende la stringa della community di trap da un pacchetto di notifica, la stringa non deve consentire anche il polling SNMP dell'accesso al dispositivo.
access-list 10 permit
snmp-server community RO 10
snmp-server host version 2c
In questo esempio:
Se è configurata una stringa della community trap, verificare che non consenta involontariamente l'accesso al polling SNMP. In alcune versioni del software Cisco IOS, una stringa della community utilizzata per le trap può essere utilizzata anche per l'accesso SNMP, a meno che non sia esplicitamente limitata o disabilitata.
Per impedire l'accesso per il polling con la stringa della community trap, negarne esplicitamente l'uso come community SNMP:
access-list 99 deny any
snmp-server community RO 99
Evitare di configurare community di lettura/scrittura a meno che non vi siano requisiti operativi specifici. Se è richiesto l'accesso in lettura/scrittura, limitarlo a una stazione di gestione dedicata, utilizzare una stringa della community separata e applicare un ACL restrittivo. Per implementazioni sicure, preferire il protocollo SNMPv3 con autenticazione e privacy.
Utilizzare il protocollo SNMPv3 con l'autenticazione e la privacy per implementazioni SNMP sicure. A differenza di SNMPv1 e SNMPv2c, che si basano sulle stringhe della community, SNMPv3 fornisce l'autenticazione e la crittografia basate sull'utente.
Per implementazioni sicure, utilizzare il livello di protezione authPriv SNMPv3:
Nota: Il supporto degli algoritmi varia a seconda della piattaforma e della versione software Cisco. Utilizzare gli algoritmi di autenticazione e privacy più affidabili supportati dal dispositivo, ad esempio SHA o SHA-2 per l'autenticazione e AES per la privacy.
Procedura di configurazione di SNMPv3
Decidere quale sistema di gestione della rete può eseguire il polling del dispositivo.
Valore di esempio:
Nota: L'accesso ai servizi SNMP deve essere consentito solo alle stazioni di gestione attendibili.
Creare un ACL che consenta l'accesso SNMP solo dal server NMS trusted.
Esempio:
access-list 10 permit access-list 10 deny any log
Questo ACL limita gli indirizzi IP di origine che possono utilizzare il gruppo SNMPv3. La voce Deny any log (Nega qualsiasi accesso) consente di identificare i tentativi di accesso SNMP non autorizzati in syslog.
Creare una vista SNMP per limitare gli oggetti MIB a cui l'utente SNMPv3 può accedere.
Esempio:
snmp-server view mib-2 included
snmp-server view cisco included
Questo esempio consente di accedere alla sottostruttura MIB-II e agli oggetti MIB privati di Cisco. Se è richiesta una visualizzazione più restrittiva, escludere esplicitamente sottostrutture MIB sensibili o non necessarie.
Esempio:
snmp-server view excluded
Nota: Una vista SNMP riduce l'esposizione consentendo all'NMS di accedere solo agli oggetti MIB richiesti per il monitoraggio.
Creare un gruppo SNMPv3 che utilizzi il livello di sicurezza privato e faccia riferimento alla vista SNMP e all'ACL.
Esempio:
snmp-server group v3 priv read access 10
Questo comando consente di eseguire tre operazioni importanti:
Nota: Nella maggior parte dei casi di utilizzo relativi al monitoraggio, è in genere sufficiente l'accesso in sola lettura. Configurare l'accesso in scrittura solo in presenza di requisiti operativi specifici.
Creare un utente SNMPv3 e assegnarlo al gruppo SNMPv3.
Esempio:
snmp-server user v3 auth sha priv aes 256
Con questo comando viene creato un utente con:
Nota: Utilizza password sicure e univoche per l'autenticazione e la privacy. Non riutilizzare la stessa password per entrambi i valori.
Nota: Se le piattaforme più recenti supportano opzioni più avanzate, ad esempio le varianti SHA-2 o AES, utilizzare l'opzione più avanzata supportata dal dispositivo e da NMS.
Se il dispositivo deve inviare notifiche al sistema NMS, configurare l'host SNMP con SNMPv3.
Esempio:
snmp-server host version 3 priv
I trap e le informazioni sono notifiche inviate dal dispositivo al sistema NMS. Si differenziano dalle richieste di polling, in cui NMS invia query SNMP al dispositivo. Le notifiche SNMPv3 consentono di intercettare o informare il traffico e di trarre vantaggio dall'autenticazione e dalla privacy.
Se necessario, configurare anche l'interfaccia di origine della trap:
snmp-server trap-source
Nota: L'utilizzo di un'origine di trap coerente consente al sistema NMS di identificare il dispositivo e permette ai firewall o agli ACL di corrispondere agli indirizzi di origine prevedibili.
Se SNMPv1 o SNMPv2c non è richiesto, non configurare le stringhe della community o rimuovere le stringhe della community non utilizzate.
Esempio:
no snmp-server community
Nota: Ciò riduce il rischio di accesso non autorizzato a SNMP tramite stringhe della community non crittografate.
Il frammento di configurazione successivo mostra un esempio che consente il polling di SNMPv3 solo da NMS 10.189.5.161, limita gli oggetti MIB leggibili con una vista SNMP e richiede l'autenticazione e la crittografia.
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
Utilizzare questi comandi per verificare la configurazione SNMP locale:
mostra utente snmp
mostra gruppo snmp
mostra visualizzazione snmp
mostra snmp
show ip access-lists
show running-config | sezione 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
È inoltre possibile eseguire una procedura SNMP per la struttura del sistema MIB-II:
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
Il comando e l'output successivi mostrano che non è possibile ottenere il gruppo 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
Il comando e il risultato successivo sono per il gruppo di sistema locale Cisco:
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
Gli ACL di interfaccia possono essere utili come livello di protezione aggiuntivo per limitare gli host che possono inviare il traffico SNMP a un'interfaccia del dispositivo. Sono particolarmente utili per le piattaforme che non supportano funzionalità di protezione del control plane più mirate, ad esempio Control Plane Policing (CoPP) o ACL del management plane.
Un ACL di interfaccia può bloccare pacchetti SNMP non autorizzati prima che vengano elaborati dal dispositivo, riducendo l'esposizione a polling indesiderato, tentativi di stringhe della community con una forza bruta o traffico SNMP eccessivo da fonti non attendibili.
Attenzione: Prestare attenzione quando si applicano gli ACL di interfaccia. Un ACL applicato con ip access-group filtra il traffico nella direzione selezionata e può influire sia sul traffico destinato al router sia sul traffico di transito. Includere sempre tutte le istruzioni di autorizzazione richieste e convalidare l'ACL in una finestra di manutenzione o in un laboratorio prima dell'implementazione della produzione.
ip access-list extended SNMP-MGMT-IN permit udp host host eq snmp deny udp any host eq snmp log permit ip any any
L'ACL deve quindi essere applicato a tutte le interfacce con questi comandi di configurazione:
interface ip access-group SNMP-MGMT-IN in
In questo esempio:
Nota: È possibile adattare l'esempio alla progettazione della rete. Se la piattaforma supporta CoPP, iACL o ACL del piano di gestione, queste opzioni possono fornire una protezione più mirata del piano di controllo. Per i dispositivi con molti indirizzi IP configurati o molti host che devono comunicare con il router, questa non è sempre una soluzione scalabile. La protezione del core: Il documento Access Control List di protezione dell'infrastruttura presenta linee guida e tecniche di distribuzione consigliate per gli ACL.
Configurare gli ACL della community SNMP con la parola chiave log. Monitorare il syslog per i tentativi non riusciti, come illustrato.
access-list 10 deny any log snmp-server communityRO 10
syslog Quando qualcuno tenta di accedere al router con il pubblico della community, viene visualizzato un messaggio simile a questo:
%SEC-6-IPACCESSLOGS: list 10 denied 172.16.1.15 packet
Questo output indica che access-list 10 ha rifiutato cinque pacchetti SNMP dell'host 172.16.1.15.
Controllare periodicamente il protocollo SNMP per rilevare eventuali errori con il comando show snmp, come mostrato di seguito:
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
Osservare i contatori evidenziati per gli aumenti imprevisti delle percentuali di errore che possono indicare tentativi di sfruttamento di queste vulnerabilità. Per la segnalazione di problemi relativi alla sicurezza, consultare il documento Cisco sulla risposta ai problemi di sicurezza dei prodotti.
| Revisione | Data di pubblicazione | Commenti |
|---|---|---|
4.0 |
14-Jul-2026
|
Certificazione - Contenuto tecnico e formattazione aggiornati. |
3.0 |
14-Mar-2024
|
Certificazione |
2.0 |
16-Jan-2023
|
Uso corretto. Correggere gli allarmi CCW. Certificazione. |
1.0 |
22-Feb-2002
|
Versione iniziale |