Inleiding
Dit document beschrijft hoe een tijdgebaseerde toegangscontroleregel op de FTD die wordt beheerd door FDM met Rest API moet configureren en valideren.
Voorwaarden
Vereisten
Cisco raadt kennis van de volgende onderwerpen aan:
- Secure Firewall Threat Defence (FTD)
- Firepower Device Management (FDM)
- Kennis van representatieve Overdracht van de Toepassingsprogrammeerinterface van de Staat (REST API)
- Toegangscontrolelijst (ACL)
Gebruikte componenten
De informatie in dit document is gebaseerd op FTD versie 7.1.0.
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.
Achtergrondinformatie
FTD API versie 6.6.0 en hoger ondersteunen toegangscontroleregels die beperkt zijn op basis van tijd.
Met behulp van de FTD API kunt u tijdbereikobjecten maken, die eenmalige of terugkerende tijdbereiken specificeren, en deze objecten toepassen op toegangscontroleregels. Met behulp van tijdbereiken kunt u een toegangscontroleregel toepassen op verkeer tijdens bepaalde tijden van de dag of voor bepaalde periodes, om flexibiliteit te bieden aan netwerkgebruik. U kunt FDM niet gebruiken om tijdbereiken te maken of toe te passen, noch toont FDM u of een toegangscontroleregel een tijdbereik heeft toegepast op het.
Configureren
Stap 1. Klik op de geavanceerde opties (het menu Kebab) om de FDM API verkenner te openen.
Afbeelding 1. FDM web gebruikersinterface.
Stap 2. Kies de categorie AccessPolicy
om de verschillende API-oproepen weer te geven.
Afbeelding 2. API Explorer-webgebruikersinterface.
Stap 3. Voer de GET
aanroep uit om de Access Policy ID te verkrijgen.
Afbeelding 3. Toegangsbeleid categorie.
Stap 4. TRY IT OUT!
U moet op klikken om de API-respons op te halen.
Afbeelding 4. Probeer IT OUT! knop waarop de API aanroep wordt uitgevoerd.
Stap 5. Kopieer de JSON
gegevens van de responsinstantie naar een kladblok. Later moet u de Access Control Policy-id gebruiken.
Afbeelding 5. ONTVANG een antwoord van Access Policy.
Stap 6. Vind en open de categorie TimeRange op de API Explorer om de verschillende API-oproepen weer te geven.
Afbeelding 6. Tijdbereikcategorie.
Stap 7. Maak evenveel TimeRange-objecten als u wilt met de POST API-aanroep.
Afbeelding 7. Tijdbereik na de oproep.
Hier vindt u een aantal JSON
formaatvoorbeelden om twee verschillende TimeRange objecten te maken.
Voorwerp 1:
{
"name": "range-obj-1",
"recurrenceList": [
{
"days": [
"MON",
"TUE",
"WED",
"THU",
"FRI"
],
"recurrenceType": "DAILY_INTERVAL",
"dailyStartTime": "00:00",
"dailyEndTime": "23:50",
"type": "recurrence"
}
],
"type": "timerangeobject"
}
Voorwerp 2:
{
"name": "range-obj-2",
"recurrenceList": [
{
"days": [
"MON"
],
"recurrenceType": "DAILY_INTERVAL",
"dailyStartTime": "12:00",
"dailyEndTime": "13:00",
"type": "recurrence"
}
],
"type": "timerangeobject",
}
Opmerking: vergeet niet om te klikken TRY IT OUT!
om de API-oproepen uit te voeren.
Stap 8. GET
Voer de oproep uit om de TimeRange-object-ID’s te verkrijgen.
Afbeelding 8. KRIJG respons van Time Range.
Stap 9. Klik op de knopDeploy
om uw wijzigingen te valideren en toe te passen.
Afbeelding 9. Stel knop beschikbaar bij API verkenner.
Stap 10. Controleer de configuratie die u zojuist hebt gemaakt en klik op DEPLOY NOW.
Afbeelding 10. FDM in afwachting van venster Veranderingen.
Stap 11. Vind deAccessPolicy
categorie en open de POST vraag om een op tijd gebaseerde toegangscontroleregel te creëren.
Afbeelding 11. Access Policy POST-oproep.
Vind hier een JSON
formaatvoorbeeld om de op tijd gebaseerde ACL te maken die verkeer van binnenuit naar de buitenzone toestaat.
Zorg ervoor dat u de juiste tijdbereik object-ID gebruikt.
{
"name": "test_time_range_2",
"sourceZones": [
{
"name": "inside_zone",
"id": "90c377e0-b3e5-11e5-8db8-651556da7898",
"type": "securityzone"
}
],
"destinationZones": [
{
"name": "outside_zone",
"id": "b1af33e1-b3e5-11e5-8db8-afdc0be5453e",
"type": "securityzone"
}
],
"ruleAction": "PERMIT",
"eventLogAction": "LOG_FLOW_END",
"timeRangeObjects": [
{
"id": "718e6b5c-2697-11ee-a5a7-57e37203b186",
"type": "timerangeobject",
"name": "Time-test2"
}
],
"type": "accessrule"
}
Opmerking: eventLogAction
moet zijn LOG_FlOW_END
om de gebeurtenis aan het einde van de stroom te registreren, anders geeft het een fout.
Stap 12. Stel de veranderingen op om nieuwe op tijd-gebaseerde ACL toe te passen. De wachtende melding Wijzigingen moet het in Stap 10 gebruikte tijdbereikobject weergeven.
Afbeelding 12. FDM In afwachting van het venster van Veranderingen toont de nieuwe regel.
Stap 13 (optioneel). Als u de ACL wilt bewerken, kunt u dePUT
oproep gebruiken en de tijdbereik-ID bewerken.
Afbeelding 13. PUT call voor toegangsbeleid.
Vind hier het JSON
formaatvoorbeeld om de tijdwaaier uit te geven, deze tijdwaaier IDs kan door hetGET
gebruik van de vraag worden verzameld.
{
"version": "flya3jw7wvqg7",
"name": "test_time_range",
"ruleId": 268435460,
"sourceZones": [
{
"version": "lypkhscmwq4bq",
"name": "inside_zone",
"id": "90c377e0-b3e5-11e5-8db8-651556da7898",
"type": "securityzone"
}
],
"destinationZones": [
{
"version": "pytctz6vvfb3i",
"name": "outside_zone",
"id": "b1af33e1-b3e5-11e5-8db8-afdc0be5453e",
"type": "securityzone"
}
],
"sourceNetworks": [],
"destinationNetworks": [],
"sourcePorts": [],
"destinationPorts": [],
"ruleAction": "PERMIT",
"eventLogAction": "LOG_FLOW_END",
"identitySources": [],
"users": [],
"embeddedAppFilter": null,
"urlFilter": null,
"intrusionPolicy": null,
"filePolicy": null,
"logFiles": false,
"syslogServer": null,
"destinationDynamicObjects": [],
"sourceDynamicObjects": [],
"timeRangeObjects": [
{
"version": "i3iohbd5iufol",
"name": "range-obj-1",
"id": "718e6b5c-2697-11ee-a5a7-57e37203b186",
"type": "timerangeobject"
}
],
"id": "0f2e8f56-269b-11ee-a5a7-6f90451d6efd",
"type": "accessrule"
}
Stap 14. Implementeer en valideer uw wijzigingen.
Afbeelding 14. FDM In afwachting van het venster van Veranderingen toont de verandering van het voorwerp.
Verifiëren
show time-range
1. Start de opdracht om de status van de objecten in uw tijdbereik te valideren.
> show time-range
time-range entry: range-obj-1 (active)
periodic weekdays 0:00 to 23:50
time-range entry: range-obj-2 (inactive)
periodic Monday 12:00 to 13:00
2. Gebruik hetshow access-control-config
commando om de configuratie van de toegangscontroleregel te valideren.
> show access-control-config
===============[ NGFW-Access-Policy ]===============
Description :
=================[ Default Action ]=================
Default Action : Block
Logging Configuration
DC : Enabled
Beginning : Disabled
End : Disabled
Rule Hits : 0
Variable Set : Object missing: 76fa83ea-c972-11e2-8be8-8e45bb1343c0
===[ Security Intelligence - Network Whitelist ]====
===[ Security Intelligence - Network Blacklist ]====
Logging Configuration : Disabled
DC : Disabled
=====[ Security Intelligence - URL Whitelist ]======
=====[ Security Intelligence - URL Blacklist ]======
Logging Configuration : Disabled
DC : Disabled
======[ Rule Set: admin_category (Built-in) ]=======
=====[ Rule Set: standard_category (Built-in) ]=====
-------------[ Rule: test_time_range ]--------------
Action : Allow
Source ISE Metadata :
Source Zones : inside_zone
Destination Zones : outside_zone
Users
URLs
Logging Configuration
DC : Enabled
Beginning : Disabled
End : Enabled
Files : Disabled
Safe Search : No
Rule Hits : 0
Variable Set : Object missing: 76fa83ea-c972-11e2-8be8-8e45bb1343c0
Time Range : range-obj-1
Daily Interval
StartTime : 00:00
EndTime : 23:50
Days : Monday,Tuesday,Wednesday,Thursday,Friday
3. Start eenSystem Support Trace
debug om te bevestigen dat het verkeer aan de juiste regel voldoet.
> system support trace
Enable firewall-engine-debug too? [n]: y
Please specify an IP protocol: tcp
Please specify a client IP address:
Please specify a client port:
Please specify a server IP address:
Please specify a server port: 443
Monitoring packet tracer and firewall debug messages
10.10.10.3 62360 -> Destination IP 443 6 AS=0 ID=3 GR=1-1 New firewall session
10.10.10.3 62360 -> Destination IP 443 6 AS=0 ID=3 GR=1-1 app event with app id no change, url no change, tls host no change, bits 0x1
10.10.10.3 62360 -> Destination IP 443 6 AS=0 ID=3 GR=1-1 Starting with minimum 1, 'test_time_range', and SrcZone first with zones 2 -> 1, geo 0 -> 0, vlan 0, src sgt: 0, src sgt type: unknown, dst sgt: 0, dst sgt type: unknown, svc 0, payload 0, client 0, misc 0, user 9999997
10.10.10.3 62360 -> Destination IP 443 6 AS=0 ID=3 GR=1-1 match rule order 1, 'test_time_range', action Allow
10.10.10.3 62360 -> Destination IP 443 6 AS=0 ID=3 GR=1-1 MidRecovery data sent for rule id: 268435460, rule_action:2, rev id:2116550259, rule_match flag:0x1
10.10.10.3 62360 -> Destination IP 443 6 AS=0 ID=3 GR=1-1 allow action
10.10.10.3 62360 -> Destination IP 443 6 AS=0 ID=3 GR=1-1 Packet 1930048: TCP ******S*, 07/20-18:05:06.790013, seq 4109528346, dsize 0
10.10.10.3 62360 -> Destination IP 443 6 AS=0 ID=3 GR=1-1 Session: new snort session
10.10.10.3 62360 -> Destination IP 443 6 AS=0 ID=3 GR=1-1 AppID: service: (0), client: (0), payload: (0), misc: (0)
10.10.10.3 62360 -> Destination IP 443 6 AS=0 ID=3 GR=1-1 Firewall: starting rule matching, zone 2 -> 1, geo 0(0) -> 0, vlan 0, src sgt: 0, src sgt type: unknown, dst sgt: 0, dst sgt type: unknown, user 9999997, no url or host, no xff
10.10.10.3 62360 -> Destination IP 443 6 AS=0 ID=3 GR=1-1 Firewall: allow rule, 'test_time_range', allow
10.10.10.3 62360 -> Destination IP 443 6 AS=0 ID=3 GR=1-1 Policies: Network 0, Inspection 0, Detection 0
10.10.10.3 62360 -> Destination IP 443 6 AS=0 ID=3 GR=1-1 Verdict: pass