Introducción
Este documento describe cómo configurar y validar una regla de control de acceso basado en tiempo en el FTD administrado por FDM con API Rest.
Prerequisites
Requirements
Cisco recomienda que tenga conocimiento sobre estos temas:
- Protección frente a amenazas de firewall (FTD)
- Administración de dispositivos Firepower (FDM)
- Conocimiento de la interfaz de programación de aplicaciones de transferencia de estado representacional (API REST)
- Lista de control de acceso (ACL)
Componentes Utilizados
La información de este documento se basa en la versión 7.1.0 del FTD.
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
Antecedentes
La versión 6.6.0 y posteriores de la API de FTD admiten reglas de control de acceso que están limitadas en función del tiempo.
Mediante la API de FTD, puede crear objetos de rango de tiempo, que especifican rangos de tiempo únicos o recurrentes, y aplicar estos objetos a las reglas de control de acceso. Mediante el uso de intervalos de tiempo, puede aplicar una regla de control de acceso al tráfico durante determinadas horas del día o durante determinados períodos de tiempo, con el fin de proporcionar flexibilidad al uso de la red. No puede utilizar FDM para crear o aplicar rangos de tiempo, ni FDM muestra si una regla de control de acceso tiene un rango de tiempo aplicado.
Configurar
Paso 1. Haga clic en las opciones avanzadas (menú Kebab) para abrir el explorador de la API de FDM.
Imagen 1. Interfaz de usuario web de FDM.
Paso 2. Elija la categoría AccessPolicy
para mostrar las diferentes llamadas API.
Imagen 2. Interfaz de usuario web del Explorador de API.
Paso 3. Ejecute la GET
llamada para obtener el ID de política de acceso.
Imagen 3. Categoría de directiva de acceso.
Paso 4. Debe pulsar onTRY IT OUT!
para recuperar la respuesta de la API.
Imagen 4. TRY IT OUT! que ejecuta la llamada API.
Paso 5. Copie los JSON
datos del cuerpo de la respuesta en un bloc de notas. Posteriormente, debe utilizar el ID de política de control de acceso.
Imagen 5. Respuesta GET de política de acceso.
Paso 6. Busque y abra la categoría TimeRange en el Explorador de API para mostrar las diferentes llamadas de API.
Imagen 6. Categoría Intervalo de tiempo.
Paso 7. Cree tantos objetos TimeRange como desee mediante la llamada a la API POST.
Imagen 7. Intervalo de tiempo tras la llamada.
Aquí encontrará un par de ejemplos de JSON
formato para crear dos objetos TimeRange diferentes.
Objeto 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"
}
Objeto 2:
{
"name": "range-obj-2",
"recurrenceList": [
{
"days": [
"MON"
],
"recurrenceType": "DAILY_INTERVAL",
"dailyStartTime": "12:00",
"dailyEndTime": "13:00",
"type": "recurrence"
}
],
"type": "timerangeobject",
}
Nota: No olvide pulsar TRY IT OUT!
para ejecutar las llamadas de API.
Paso 8. Ejecute laGET
llamada para obtener los identificadores de objeto TimeRange.
Imagen 8. Respuesta GET de Intervalo de tiempo.
Paso 9. Haga clic en elDeploy
botón para validar y aplicar los cambios.
Imagen 9. Botón de implementación disponible en el explorador de API.
Paso 10. Valide la configuración recién creada y haga clic en DEPLOY NOW.
Imagen 10. Ventana Cambios pendientes de FDM.
Paso 11. Busque laAccessPolicy
categoría y abra la llamada POST para crear una regla de control de acceso basado en tiempo.
Imagen 1. Política de acceso POST llamada.
Busque aquí un ejemplo de JSON
formato para crear la ACL basada en tiempo que permite el tráfico desde la zona interna a la zona externa.
Asegúrese de utilizar el ID de objeto de intervalo de tiempo correcto.
{
"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
debe ser LOG_FlOW_END
para registrar el evento al final del flujo, de lo contrario da un error.
Paso 12. Implemente los cambios para aplicar la nueva ACL basada en tiempo. El mensaje Cambios pendientes debe mostrar el objeto de intervalo de tiempo utilizado en el paso 10.
Imagen 12. La ventana Cambios pendientes de FDM muestra la nueva regla.
Paso 13 (opcional). Si desea editar la ACL, puede utilizar laPUT
llamada y editar el ID del rango de tiempo.
Imagen 13. Política de acceso llamada PUT.
Encuentre aquí el JSON
ejemplo de formato para editar el rango de tiempo, estos ID de rango de tiempo se pueden recopilar usando la llamada. LosGET
ID de rango de tiempo se pueden recopilar.
{
"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"
}
Paso 14. Implemente y valide los cambios.
Imagen 14. La ventana Cambios pendientes de FDM muestra el cambio del objeto.
Verificación
1. Ejecute elshow time-range
comando para validar el estado de los objetos de rango de tiempo.
> 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. Utilice elshow access-control-config
comando para validar la configuración de la regla de control de acceso.
> 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. Ejecute unaSystem Support Trace
depuración para confirmar que el tráfico está alcanzando la regla correcta.
> 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