De documentatie van dit product is waar mogelijk geschreven met inclusief taalgebruik. Inclusief taalgebruik wordt in deze documentatie gedefinieerd als taal die geen discriminatie op basis van leeftijd, handicap, gender, etniciteit, seksuele oriëntatie, sociaaleconomische status of combinaties hiervan weerspiegelt. In deze documentatie kunnen uitzonderingen voorkomen vanwege bewoordingen die in de gebruikersinterfaces van de productsoftware zijn gecodeerd, die op het taalgebruik in de RFP-documentatie zijn gebaseerd of die worden gebruikt in een product van een externe partij waarnaar wordt verwezen. Lees meer over hoe Cisco gebruikmaakt van inclusief taalgebruik.
Cisco heeft dit document vertaald via een combinatie van machine- en menselijke technologie om onze gebruikers wereldwijd ondersteuningscontent te bieden in hun eigen taal. Houd er rekening mee dat zelfs de beste machinevertaling niet net zo nauwkeurig is als die van een professionele vertaler. Cisco Systems, Inc. is niet aansprakelijk voor de nauwkeurigheid van deze vertalingen en raadt aan altijd het oorspronkelijke Engelstalige document (link) te raadplegen.
Dit document beschrijft hoe u Simple Network Management Protocol (SNMP) op Firepower Device Management versie 6.7 met REST API kunt inschakelen.
Cisco raadt kennis van de volgende onderwerpen aan:
Firepower Threat Defence wordt beheerd door Firepower Device Management, versie 6.7.
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
FTD Device REST API ondersteunt configuratie en beheer van SNMP-server, gebruikers, host en hostgroepen. Met de ondersteuning van SNMP FTD Device REST API in FP 6.7:
De voorbeelden in het document beschrijven de configuratiestappen die door FDM API Explorer zijn genomen.
Opmerking: SNMP kan alleen worden geconfigureerd via REST API als FTD versie 6.7 draait en wordt beheerd door FDM.
Overzicht van functies - Ondersteuning van SNMP FTD Device REST API
SNMP API/URL-endpoints
URL |
Methoden |
Models |
/devicesettings/default/snmpservers |
KRIJGEN |
SNMP-server |
/apparaten/standaard/servers/{objId} |
PUT, GET |
SNMP-server |
/object/snmphosts |
POST, GET |
SNMPost |
/object/snmphosts/{objId} |
PLAATSEN, VERWIJDEREN, VERKRIJGEN |
SNMPost |
/object/snmpusergroups |
POST, GET |
SNMP-gebruikersgroep |
/object/snmpusergroups/{objId} |
PLAATSEN, VERWIJDEREN, VERKRIJGEN |
SNMP-gebruikersgroep |
/object/snmpusers |
POST, GET |
SNMP-gebruiker |
/object/snmpusers/{objId} |
PLAATSEN, VERWIJDEREN, VERKRIJGEN |
SNMP-gebruiker |
De SNMP-host heeft 3 primaire versies:
Elk van deze heeft een specifiek formaat voor securityConfiguration. Voor V1 en V2C: Het bevat een Community String en een type veld dat de configuratie identificeert als V1 of V2C.
Voor SNMP V3: Het bevat een geldige SNMP V3 gebruiker en een type veld dat de configuratie identificeert als V3.
1. Open de FDM API Explorer.
Om toegang te krijgen tot de FDM REST API Explorer vanuit de FDM GUI, selecteert u de 3 punten en vervolgens API Explorer. U kunt ook naar URL API Explorer navigeren.
2. Netwerkobjectconfiguratie.
Maak een nieuw netwerkobject voor de SNMP-host. Selecteer in FDM API Explorer NetworkObject en vervolgens POST/object/netwerken:
De SNMP Host JSON-indeling is als volgt. Plakt dit JSON in het hoofdgedeelte en wijzig het IP-adres op de waarde zodat dit overeenkomt met het IP-adres van de SNMP-host:
{
"version": "null",
"name": "snmpHost",
"description": "SNMP Server Host",
"subType": "HOST",
"value": "192.168.203.61",
"isSystemDefined": false,
"dnsResolution": "IPV4_ONLY",
"type": "networkobject"
}
Scroll naar beneden en selecteer de knop IT OUT! om de API-aanroep uit te voeren. Een succesvolle oproep retourneert Respons Code 200.
Kopieer de JSON-gegevens van de responsinstantie naar een kladblok. Later moet u de informatie over de SNMP-host invullen.
3. Maak een nieuwe SNMPv3-gebruiker.
Selecteer op FDM API Explorer SNMP en vervolgens POST/object/snmpusers.
Kopieer deze JSON-gegevens naar een blocnote en wijzig de secties die u interesseert (bijvoorbeeld authenticatiePassword, encryptiePassword of de algoritmen):
{
"version": null,
"name": "snmpUser",
"description": "SNMP User",
"securityLevel": "PRIV",
"authenticationAlgorithm": "SHA",
"authenticationPassword": "cisco123",
"encryptionAlgorithm": "AES128",
"encryptionPassword": "cisco123",
"id": null,
"type": "snmpuser"
}
Waarschuwing: de wachtwoorden in de voorbeelden zijn alleen voor demonstratiedoeleinden gebruikt. Zorg er in een productieomgeving voor dat u sterke wachtwoorden gebruikt
Kopieer de aangepaste JSON-gegevens naar het hoofdgedeelte:
Scroll naar beneden en selecteer de knop IT OUT! om de API-aanroep uit te voeren. Een succesvolle oproep retourneert Respons Code 200. Kopieer de JSON-gegevens van de responsinstantie naar een kladblok. Later moet u de informatie over de SNMP-gebruiker invullen.
4. Krijg interfaceinformatie.
Selecteer in FDM API Explorer de optie Interface en vervolgens GET /devices/default/interfaces. U moet informatie verzamelen via de interface die verbinding maakt met de SNMP-server.
Scroll naar beneden en selecteer de knop IT OUT! om de API-aanroep uit te voeren. Een succesvolle oproep retourneert Respons Code 200. Kopieer de JSON-gegevens van de responsinstantie naar een kladblok. Later moet je informatie invullen over de interface.
Herinner de interfaceversie, naam, id, en type van de gegevens JSON. Voorbeeld van een JSON-gegevens van de interface binnenin:
{
"version": "kkpkibjlu6qro",
"name": "inside",
"description": null,
"hardwareName": "Ethernet1/2",
"monitorInterface": true,
"ipv4": {
"ipType": "STATIC",
"defaultRouteUsingDHCP": false,
"dhcpRouteMetric": null,
"ipAddress": {
"ipAddress": "192.168.203.71",
"netmask": "255.255.255.0",
"standbyIpAddress": null,
"type": "haipv4address"
},
"dhcp": false,
"addressNull": false,
"type": "interfaceipv4"
},
"ipv6": {
"enabled": false,
"autoConfig": false,
"dhcpForManagedConfig": false,
"dhcpForOtherConfig": false,
"enableRA": false,
"dadAttempts": 1,
"linkLocalAddress": {
"ipAddress": "",
"standbyIpAddress": "",
"type": "haipv6address"
},
"ipAddresses": [
{
"ipAddress": "",
"standbyIpAddress": "",
"type": "haipv6address"
}
],
"prefixes": null,
"type": "interfaceipv6"
},
"managementOnly": false,
"managementInterface": false,
"mode": "ROUTED",
"linkState": "UP",
"mtu": 1500,
"enabled": true,
"macAddress": null,
"standbyMacAddress": null,
"pppoe": null,
"speedType": "AUTO",
"duplexType": "AUTO",
"present": true,
"tenGigabitInterface": false,
"gigabitInterface": false,
"id": "fc3d07d4-49d2-11eb-85a8-65aec636a0fc",
"type": "physicalinterface",
"links": {
"self": "https://10.62.148.231/api/fdm/v6/devices/default/interfaces/fc3d07d4-49d2-11eb-85a8-65aec636a0fc"
}
},
Op basis van de JSON-gegevens kunt u zien dat de interface binnenin deze gegevens bevat die aan de SNMP-server moeten worden gekoppeld:
5. Maak een nieuwe SNMPv3-host.
Selecteer in FDM API Explorer SNMP en vervolgens POST/object/snmphosts/ onder SNMP.
Gebruik deze JSON als sjabloon. Kopieer en plak gegevens uit vorige stappen naar de sjabloon als volgt:
{
"version": null,
"name": "snmpv3-host",
"description": null,
"managerAddress": {
"version": "bsha3bhghu3vmk",
"name": "snmpHost",
"id": "1d10ce6d-49de-11eb-a432-e320cd56d5af",
"type": "networkobject"
},
"pollEnabled": true,
"trapEnabled": true,
"securityConfiguration": {
"authentication": {
"version": "bmwzw4iw7php7",
"name": "snmpUser",
"id": "65da6c50-49df-11eb-a432-e7823944dabc",
"type": "snmpuser"
},
"type": "snmpv3securityconfiguration"
},
"interface": {
"version": "kkpkibjlu6qro",
"name": "inside",
"id": "fc3d07d4-49d2-11eb-85a8-65aec636a0fc",
"type": "physicalinterface"
},
"id": null,
"type": "snmphost"
}
Opmerking:
Kopieer de aangepaste JSON-gegevens naar het hoofdgedeelte.
Scroll naar beneden en selecteer de knop IT OUT! om de API-aanroep uit te voeren. Een succesvolle oproep retourneert Respons Code 200.
Navigeer naar FDM GUI en implementeer de wijzigingen. U kunt de meeste SNMP-configuraties zien:
Voor v2c hoeft u geen gebruiker aan te maken, maar moet u toch:
Dit is een voorbeeld van een JSON-payload die een SNMPv2c-object maakt:
{
"version": null,
"name": "snmpv2-Host",
"description": null,
"managerAddress": {
"version": "bsha3bhghu3vmk",
"name": "snmpv4hostgrp",
"id": "1d10ce6d-49de-11eb-a432-e320cd56d5af",
"type": "networkobject"
},
"pollEnabled": true,
"trapEnabled": true,
"securityConfiguration": {
"community": "cisco123",
"type": "snmpv2csecurityconfiguration"
},
"interface": {
"version": "kkpkibjlu6qro",
"name": "inside",
"id": "fc3d07d4-49d2-11eb-85a8-65aec636a0fc",
"type": "physicalinterface"
},
"id": null,
"type": "snmphost"
}
Gebruik de POST-methode om de JSON-payload te implementeren:
Scroll naar beneden en selecteer de knop TRY IT OUT! om de API-oproep uit te voeren. Een succesvolle oproep retourneert Respons Code 200.
Stap 1.
Ontvang de SNMP-hostinformatie (SNMP > /object/snmphosts):
Scroll naar beneden en selecteer de knop TRY IT OUT! om de API-oproep uit te voeren. Een succesvolle oproep retourneert Respons Code 200.
Je krijgt een lijst van objecten. Noteer de id van het snmhost-object dat u wilt verwijderen:
{
"items": [
{
"version": "ofaasthu26ulx",
"name": "snmpv2-Host",
"description": null,
"managerAddress": {
"version": "bsha3bhghu3vm",
"name": "snmpHost",
"id": "1d10ce6d-49de-11eb-a432-e320cd56d5af",
"type": "networkobject"
},
"udpPort": 162,
"pollEnabled": true,
"trapEnabled": true,
"securityConfiguration": {
"community": "*********",
"type": "snmpv2csecurityconfiguration"
},
"interface": {
"version": "kkpkibjlu6qro",¬
"name": "inside",
"hardwareName": "Ethernet1/2",
"id": "fc3d07d4-49d2-11eb-85a8-65aec636a0fc",
"type": "physicalinterface"
},
"id": "1bfbd1f0-4ac6-11eb-a432-e76cd376bca7",
"type": "snmphost",
"links": {
"self": "https://10.62.148.231/api/fdm/v6/object/snmphosts/1bfbd1f0-4ac6-11eb-a432-e76cd376bca7"
}
},
Stap 2.
Kies de optie VERWIJDEREN in SNMP > /object/snmphosts{objId}. Plakt het id dat u in stap 1 hebt verzameld:
Scroll naar beneden en selecteer de knop TRY IT OUT! om de API-oproep uit te voeren. De oproep retourneert Respons code 400.
Stap 3.
Voer de wijziging in:
De implementatie verwijdert de hostinformatie:
FP1120-1# show run snmp-server
snmp-server group AUTH v3 auth
snmp-server group PRIV v3 priv
snmp-server group NOAUTH v3 noauth
snmp-server location null
snmp-server contact null
snmp-server community *****
snmpwalk voor v2c faalt:
root@kali2:~# snmpwalk -v2c -c cisco123 -OS 192.168.203.71
Timeout: No Response from 192.168.203.71
Voor v3 moet u de objecten in deze volgorde verwijderen.
Als u probeert de objecten in de verkeerde volgorde te verwijderen, krijgt u deze fout:
{
"error": {
"severity": "ERROR",
"key": "Validation",
"messages": [
{
"description": "You cannot delete the object because it contains SNMPHost: snmpv3-host2, SNMPHost: snmpv3-host.
You must remove the object from all parts of the configuration before you can delete it.",
"code": "deleteObjWithRel",
"location": ""
}
]
}
}
Na de implementatie navigeer je naar de FTD CLI om de SNMP configuratie te controleren. Merk op dat de motor-ID waarde automatisch wordt gegenereerd.
FP1120-1# connect ftd
> system support diagnostic-cli
Attaching to Diagnostic CLI ... Press 'Ctrl+a then d' to detach.
Type help or '?' for a list of available commands.
FP1120-1> enable
Password:
FP1120-1# show run all snmp-server
snmp-server group AUTH v3 auth
snmp-server group PRIV v3 priv
snmp-server group NOAUTH v3 noauth
snmp-server user snmpUser PRIV v3 engineID 80000009febdf0129a799ef469aba2d5fcf1bfd7e86135a1f8 encrypted auth sha ca:1b:18:f3:62:b1:63:7e:92:34:92:b3:cf:54:86:f9:8e:2a:4c:fd priv aes 128 ca:1b:18:f3:62:b1:63:7e:92:34:92:b3:cf:54:86:f9
snmp-server listen-port 161
snmp-server host inside 192.168.203.61 version 3 snmpUser udp-port 162
snmp-server location null
snmp-server contact null
snmp-server community *****
snmp-server enable traps snmp authentication linkup linkdown coldstart warmstart
no snmp-server enable traps syslog
no snmp-server enable traps ipsec start stop
no snmp-server enable traps entity config-change fru-insert fru-remove fan-failure power-supply power-supply-presence cpu-temperature chassis-temperature power-supply-temperature chassis-fan-failure accelerator-temperature l1-bypass-status
no snmp-server enable traps memory-threshold
no snmp-server enable traps interface-threshold
no snmp-server enable traps remote-access session-threshold-exceeded
no snmp-server enable traps connection-limit-reached
no snmp-server enable traps cpu threshold rising
no snmp-server enable traps ikev2 start stop
no snmp-server enable traps nat packet-discard
no snmp-server enable traps config
no snmp-server enable traps failover-state
no snmp-server enable traps cluster-state
snmp-server enable oid mempool
snmp-server enable
snelwandeltest
root@kali2:~# snmpwalk -v3 -l authPriv -u snmpUser -a SHA -A cisco123 -x AES -X cisco123 192.168.203.71
iso.3.6.1.2.1.1.1.0 = STRING: "Cisco Firepower Threat Defense, Version 6.7.0 (Build 65), ASA Version 9.15(1)"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.9.1.2663
iso.3.6.1.2.1.1.3.0 = Timeticks: (1616700) 4:29:27.00
iso.3.6.1.2.1.1.4.0 = STRING: "null"
iso.3.6.1.2.1.1.5.0 = STRING: "FP1120-1"
iso.3.6.1.2.1.1.6.0 = STRING: "null"
iso.3.6.1.2.1.1.7.0 = INTEGER: 4
...
FP1120-1# show run snmp-server
snmp-server host inside 192.168.203.61 community ***** version 2c
snmp-server location null
snmp-server contact null
snmp-server community *****
momentopname voor v2c:
root@kali2:~# snmpwalk -v2c -c cisco123 -OS 192.168.203.71
iso.3.6.1.2.1.1.1.0 = STRING: "Cisco Firepower Threat Defense, Version 6.7.0 (Build 65), ASA Version 9.15(1)"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.9.1.2663
iso.3.6.1.2.1.1.3.0 = Timeticks: (10482200) 1 day, 5:07:02.00
iso.3.6.1.2.1.1.4.0 = STRING: "null"
iso.3.6.1.2.1.1.5.0 = STRING: "FP1120-1"
iso.3.6.1.2.1.1.6.0 = STRING: "null"
iso.3.6.1.2.1.1.7.0 = INTEGER: 4
Opname met overtrekken op de firewall inschakelen:
FP1120-1# capture CAPI trace interface inside match udp any any eq snmp
Gebruik het hulpmiddel van de wandel en verifieer u de pakketten kunt zien:
FP1120-1# show capture
capture CAPI type raw-data trace interface inside [Capturing - 3137 bytes]
match udp any any eq snmp
De opnameinhoud:
FP1120-1# show capture CAPI
154 packets captured
1: 17:04:16.720131 192.168.203.61.51308 > 192.168.203.71.161: udp 39
2: 17:04:16.722252 192.168.203.71.161 > 192.168.203.61.51308: udp 119
3: 17:04:16.722679 192.168.203.61.51308 > 192.168.203.71.161: udp 42
4: 17:04:16.756400 192.168.203.71.161 > 192.168.203.61.51308: udp 51
5: 17:04:16.756918 192.168.203.61.51308 > 192.168.203.71.161: udp 42
Controleer of de SNMP-serverstatistiektellers SNMP Get of Get-Next-verzoeken en antwoorden tonen:
FP1120-1# show snmp-server statistics
62 SNMP packets input
0 Bad SNMP version errors
0 Unknown community name
0 Illegal operation for community name supplied
0 Encoding errors
58 Number of requested variables
0 Number of altered variables
0 Get-request PDUs
58 Get-next PDUs
0 Get-bulk PDUs
0 Set-request PDUs (Not supported)
58 SNMP packets output
0 Too big errors (Maximum packet size 1500)
0 No such name errors
0 Bad values errors
0 General errors
58 Response PDUs
0 Trap PDUs
Een toegangspakket overtrekken. Het pakket is UN-NAT naar de interne NLP-interface:
FP1120-1# show capture CAPI packet-number 1 trace
30 packets captured
1: 17:04:16.720131 192.168.203.61.51308 > 192.168.203.71.161: udp 39
Phase: 1
Type: CAPTURE
Subtype:
Result: ALLOW
Config:
Additional Information:
MAC Access list
Phase: 2
Type: ACCESS-LIST
Subtype:
Result: ALLOW
Config:
Implicit Rule
Additional Information:
MAC Access list
Phase: 3
Type: UN-NAT
Subtype: static
Result: ALLOW
Config:
Additional Information:
NAT divert to egress interface nlp_int_tap(vrfid:0)
Untranslate 192.168.203.71/161 to 169.254.1.3/4161
Phase: 4
Type: ACCESS-LIST
Subtype:
Result: ALLOW
Config:
Implicit Rule
Additional Information:
Phase: 5
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:
Phase: 6
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:
Phase: 7
Type: NAT
Subtype: rpf-check
Result: ALLOW
Config:
Additional Information:
Phase: 8
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:
Phase: 9
Type: FLOW-CREATION
Subtype:
Result: ALLOW
Config:
Additional Information:
New flow created with id 1078, packet dispatched to next module
Phase: 10
Type: INPUT-ROUTE-LOOKUP-FROM-OUTPUT-ROUTE-LOOKUP
Subtype: Resolve Preferred Egress interface
Result: ALLOW
Config:
Additional Information:
Found next-hop 169.254.1.3 using egress ifc nlp_int_tap(vrfid:0)
Phase: 11
Type: ADJACENCY-LOOKUP
Subtype: Resolve Nexthop IP address to MAC
Result: ALLOW
Config:
Additional Information:
Found adjacency entry for Next-hop 169.254.1.3 on interface nlp_int_tap
Adjacency :Active
MAC address 3208.e2f2.b5f9 hits 0 reference 1
Result:
input-interface: inside(vrfid:0)
input-status: up
input-line-status: up
output-interface: nlp_int_tap(vrfid:0)
output-status: up
output-line-status: up
Action: allow
De NAT-regel wordt automatisch geïmplementeerd als deel van de SNMP-configuratie:
FP1120-1# show nat
Manual NAT Policies (Section 1)
1 (nlp_int_tap) to (inside) source dynamic nlp_client_0_192.168.203.61_intf4 interface destination static nlp_client_0_ipv4_40 nlp_client_0_ipv4_40 service nlp_client_0_17svc162_39 nlp_client_0_17svc162_39
translate_hits = 0, untranslate_hits = 0
Auto NAT Policies (Section 2)
…
2 (nlp_int_tap) to (inside) source static nlp_server_0_snmp_intf4 interface service udp 4161 snmp
translate_hits = 0, untranslate_hits = 2
In de backend-poort luistert UDP 4161 naar SNMP-verkeer:
> expert
admin@FP1120-1:~$ sudo netstat -an | grep 4161
Password:
udp 0 0 169.254.1.3:4161 0.0.0.0:*
udp6 0 0 fd00:0:0:1::3:4161 :::*
In een geval van onjuiste/onvolledige configuratie wordt het toegangs-SNMP-pakket verbroken omdat er geen UN-NAT-fase is:
FP1120-1# show cap CAPI packet-number 1 trace
6 packets captured
1: 18:36:35.868485 192.168.203.61.50105 > 192.168.203.71.161: udp 42
Phase: 1
Type: CAPTURE
Subtype:
Result: ALLOW
Config:
Additional Information:
MAC Access list
Phase: 2
Type: ACCESS-LIST
Subtype:
Result: ALLOW
Config:
Implicit Rule
Additional Information:
MAC Access list
Phase: 3
Type: ROUTE-LOOKUP
Subtype: No ECMP load balancing
Result: ALLOW
Config:
Additional Information:
Destination is locally connected. No ECMP load balancing.
Found next-hop 192.168.203.71 using egress ifc identity(vrfid:0)
Phase: 4
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:
Phase: 5
Type: ACCESS-LIST
Subtype:
Result: DROP
Config:
Implicit Rule
Additional Information:
Result:
input-interface: inside(vrfid:0)
input-status: up
input-line-status: up
Action: drop
Drop-reason: (acl-drop) Flow is denied by configured rule, Drop-location: frame 0x0000557415b6347d flow (NA)/NA
FTD LINA-syslogs tonen aan dat het ingangspakket wordt verworpen:
FP1120-1# show log | include 161
Dec 30 2020 18:36:38: %FTD-7-710005: UDP request discarded from 192.168.203.61/50105 to inside:192.168.203.71/161
Dec 30 2020 18:36:39: %FTD-7-710005: UDP request discarded from 192.168.203.61/50105 to inside:192.168.203.71/161
V. Kan ik de FTD-beheerinterface gebruiken om SNMP-berichten te verzenden?
Nee, dit wordt momenteel niet ondersteund.
Verwante verbeteringen defect: 6.7 SNMP Rest API ondersteuning voor ngfw-mgmt interface
Revisie | Publicatiedatum | Opmerkingen |
---|---|---|
3.0 |
28-Jun-2024 |
Toegevoegd Alt Text.
Bijgewerkte inleiding, stijlvereisten en opmaak. |
2.0 |
02-Jun-2023 |
Hercertificering |
1.0 |
30-Dec-2020 |
Eerste vrijgave |