Introduzione
In questo documento viene descritto come configurare e convalidare una regola di controllo dell'accesso a tempo sull'FTD gestito da FDM con API Rest.
Prerequisiti
Requisiti
Cisco raccomanda la conoscenza dei seguenti argomenti:
- Secure Firewall Threat Defense (FTD)
- FDM (Firepower Device Management)
- Conoscenza dell'API REST (Representative State Transfer Application Programming Interface)
- Access Control List (ACL)
Componenti usati
Le informazioni di questo documento si basano sulla versione 7.1.0 di FTD.
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.
Premesse
L'API FTD versione 6.6.0 e successive supporta regole di controllo dell'accesso limitate in base al tempo.
Utilizzando l'API FTD, è possibile creare oggetti intervallo di tempo, che specificano intervalli di tempo singoli o ricorrenti, e applicarli alle regole di controllo d'accesso. Utilizzando gli intervalli di tempo, è possibile applicare una regola di controllo di accesso al traffico in determinati orari del giorno o in determinati periodi di tempo, al fine di garantire flessibilità nell'utilizzo della rete. Non è possibile utilizzare FDM per creare o applicare intervalli di tempo, né viene visualizzato se a una regola di controllo di accesso è stato applicato un intervallo di tempo.
Configurazione
Passaggio 1. Fare clic sulle opzioni avanzate (menu Kebab) per aprire Esplora API di FDM.
Immagine 1. Interfaccia utente Web di FDM.
Passaggio 2. Scegliere la categoria AccessPolicy
per visualizzare le diverse chiamate API.
Immagine 2. Interfaccia utente Web di API Explorer.
Passaggio 3. Per ottenere l'ID dei criteri di accesso, eseguire la chiamataGET
.
Immagine 3. Categoria Criteri di accesso.
Passaggio 4. Per recuperare la rispostaTRY IT OUT!
dell'API, è necessario premere.
Immagine 4. Pulsante TRY IT OUT! che esegue la chiamata API.
Passaggio 5. Copiare i dati dal corpo della JSON
risposta in un blocco note. In seguito, sarà necessario utilizzare l'ID dei criteri di controllo di accesso.
Immagine 5. Ottieni risposta dai criteri di accesso.
Passaggio 6. Individuare e aprire la categoria TimeRange in API Explorer per visualizzare le diverse chiamate API.
Immagine 6. Categoria Intervallo di tempo
Passaggio 7. Creare tutti gli oggetti TimeRange desiderati utilizzando la chiamata API POST.
Immagine 7. Chiamata POST intervallo di tempo.
Di seguito sono riportati un paio di esempi di JSON
formato per creare due diversi oggetti TimeRange.
Oggetto 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"
}
Oggetto 2:
{
"name": "range-obj-2",
"recurrenceList": [
{
"days": [
"MON"
],
"recurrenceType": "DAILY_INTERVAL",
"dailyStartTime": "12:00",
"dailyEndTime": "13:00",
"type": "recurrence"
}
],
"type": "timerangeobject",
}
Nota: ricordarsi di premere per TRY IT OUT!
eseguire le chiamate API.
Passaggio 8. Eseguire la chiamata perGET
ottenere gli ID dell'oggetto TimeRange.
Immagine 8. Ottieni risposta dall'intervallo di tempo.
Passaggio 9. Fare clic sulDeploy
pulsante per convalidare e applicare le modifiche.
Immagine 9. Pulsante Distribuisci disponibile da Esplora API.
Passaggio 10. Verificare la configurazione appena creata e fare clic su DEPLOY NOW.
Immagine 10. Finestra Modifiche in sospeso FDM.
Passaggio 11. AccessPolicy
Individuare la categoria e aprire la chiamata POST per creare una regola di controllo dell'accesso basata sul tempo.
Immagine 11. Chiamata POST ai criteri di accesso.
Di seguito viene riportato un esempio di JSON
formato per creare l'ACL con limiti di tempo che permette il traffico dalla zona interna a quella esterna.
Assicurarsi di utilizzare l'ID oggetto Intervallo di tempo corretto.
{
"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"
}
Nota: eventLogAction
è necessario LOG_FlOW_END
eseguire questa operazione per registrare l'evento alla fine del flusso. In caso contrario, viene restituito un errore.
Passaggio 12. Distribuire le modifiche per applicare il nuovo ACL con limiti di tempo. Il prompt Modifiche in sospeso deve visualizzare l'oggetto intervallo di tempo utilizzato nel passaggio 10.
Immagine 12. Nella finestra Modifiche in sospeso di FDM viene visualizzata la nuova regola.
Passaggio 13 (facoltativo). Per modificare l'ACL, è possibile usare la chiamata e modificare l'ID dellPUT
'intervallo di tempo.
Immagine 13. Chiamata PUT criteri di accesso.
Fare clic qui per visualizzare l'esempio del JSON
formato. Gli ID degli intervalli di tempo possono essere raccolti tramite la chiamata perGET
modificare l'intervallo di tempo.
{
"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"
}
Passaggio 14. Distribuire e convalidare le modifiche.
Immagine 14. Nella finestra Modifiche in sospeso di FDM viene visualizzata la modifica dell'oggetto.
Verifica
1. Eseguire il comandoshow time-range
per convalidare lo stato degli oggetti dell'intervallo di tempo.
> 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. Usare il comandoshow access-control-config
per convalidare la configurazione della regola di controllo di accesso.
> 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. Eseguire un debug perSystem Support Trace
verificare che il traffico stia rispettando la regola corretta.
> 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