Registro de eventos (registro de auditoría)
Introducción al registro de eventos
A medida que los usuarios trabajan en el entorno de Apstra, se registran sus acciones. Estos registros de eventos son útiles cuando se investiga el uso general, las interrupciones de la red y la posible actividad sospechosa. Consulte a continuación la información que se recopila.
Tipos de eventos que se registran
Se registran los eventos de los siguientes tipos de eventos:
Evento |
Descripción |
---|---|
Iniciar sesión |
Un usuario ha iniciado sesión (éxito y fracaso). |
Cerrar sesión |
Un usuario ha cerrado sesión. |
BlueprintCommit |
Los cambios se aplicaron del plano preconfigurado al plano activo. |
BlueprintRevertir |
Se descartaron los cambios en el plano por etapas. |
BlueprintRollback |
El plano por etapas se revirtió a una versión anterior. |
BlueprintDelete |
Se eliminó todo el plano. |
DeviceConfigChange |
Se ha cambiado la configuración de un dispositivo. Esto incluye cualquier cambio de configuración que Apstra envíe a cualquier dispositivo administrado (incluido Time Voyager). El evento se atribuye al usuario que ha iniciado sesión realizando el cambio. |
OperationModeChangeToMaintenance |
Un usuario cambió el modo de operación del plano a Mantenimiento. |
OperatonModeChangeToNormal |
Un usuario o el sistema cambiaron el modo de operación del plano a Normal cuando el uso del disco y la memoria están por debajo del umbral de utilización (la operación está en modo de lectura y escritura). |
OperationModeChangeTo ReadOnly |
El modo de operación del plano fue cambiado a Sólo lectura por el usuario, o por el sistema cuando se supera el umbral de utilización (la operación está en modo de sólo lectura). |
RatelimitExceptionAdd |
Se agregó una excepción ratelimit. |
RatelimitExceptionDelete |
Se ha eliminado una excepción ratelimit. |
RatelimitBorrar |
Se eliminó un límite de velocidad. |
SyslogCreate |
Se creó Syslog. |
SyslogUpdate |
Se actualizó Syslog. |
SyslogDelete |
Se eliminó Syslog. |
UserCreate |
Se creó un perfil de usuario (mediante creación o clonación). |
UserUpdate |
Se actualizó un perfil de usuario. |
UserDelete |
Se ha eliminado un perfil de usuario. |
AuthAclEnable |
Se habilitaron las reglas de control de acceso. |
AuthAClDisable |
Las reglas de control de acceso estaban deshabilitadas. |
AuthAclRuleAdd |
Se agregó una regla de control de acceso. |
AuthAclRuleUpdate |
Se actualizó una regla de control de acceso. |
AuthAclRuleDelete |
Se eliminó una regla de control de acceso. |
Tipos de detalles del evento que se recopilan
Se registran los siguientes detalles para cada evento (según corresponda):
Propiedad |
Descripción |
---|---|
Rango de tiempo |
El período de tiempo en que se produjo el evento (coloque el cursor sobre el campo de tiempo para ver la fecha y la hora). |
Usuario |
El usuario que realizó la actividad, el sistema o un nombre de usuario como admin. |
Dirección IP del usuario |
La dirección IP asociada al usuario que realizó el cambio. |
Tipo (de evento) |
El tipo de evento (enumerado en la tabla anterior). |
Nombre del plano (ID del blueprint) |
Identificador del plano en el que se realizó el cambio. |
Mensaje de confirmación del plano |
La descripción de los cambios que se confirmaron en el plano, si se proporciona. |
Clave del dispositivo (ID de dispositivo) |
Normalmente, el número de serie del dispositivo administrado donde se realizó el cambio. |
Configuración del dispositivo |
La configuración que se inserta y se aplica al dispositivo. |
Resultado |
El resultado de la actividad. El éxito significa que la operación es aceptada por el sistema. En el caso de un error, se incluye la cadena de error (no autorizada, por ejemplo). |
Buscar registros de eventos
Exportar registro de eventos a archivo CSV
- En el menú de navegación izquierdo, vaya a Registro de eventos > de plataforma y haga clic en Exportar a CSV (arriba a la derecha).
- Para filtrar los datos que desea exportar, escriba su consulta.
- Haga clic en Guardar como archivo CSV para descargar el archivo CSV.
Enviar registro de eventos a un servidor Syslog externo
Para obtener más información acerca del envío del registro de sucesos a un sistema externo con el protocolo Syslog, consulte Configuración de Syslog.
Analizar registros de Apstra
Apstra utiliza Common Event Format (CEF), un estándar para la interoperabilidad de dispositivos y aplicaciones de generación de eventos o registros. El estándar define una sintaxis para los registros de registro. Comprende un prefijo estándar y una extensión variable formateada como pares clave-valor.
- Formato de registro de Apstra
- Campos de registro de auditoría
- Anomalías Campos JSON
- Ejemplos de registro de anomalías
Formato de registro de Apstra
'{timestamp} {host} ' 'CEF:{version}|{device_vendor}|{device_product}|{device_version}|' '{device_event_class_id}|{name}|{severity}|{extension}
Dónde:
-
version
es siempre "0" -
device_vendor
es siempre "Apstra" -
device_product
es siempre "Apstra" -
device_version
es la versión actual de Apstra -
device_event_class_id
es "100" para los registros de auditoría y "101" para los registros de anomalías -
name
siempre es "Auditoría uniforme" para los registros de auditoría y "Alerta" para los registros de anomalías. -
severity
siempre es "medio" para los registros de auditoría y "muy alto" para los registros de anomalías
Y donde:
-
{extension} es:
-
Para registros de anomalías: msg=<carga json>
-
Para registros de auditoría: cat=<activity> src=<src_IP> suser=<username> act=<activity result> cs1Label=<field1_type> cs1=<field1_value>cs2Label=<field2_type> cs2=<field2_value> cs3Label=<field2_type> cs2=<field2_value>
-
Campos de registro de auditoría
Campo | Descripción | Se aplica a |
gato | Actividad realizada. Valores válidos: "Login", "Logout", "BlueprintCommit", "DeviceConfigChange", "BlueprintDelete". | Todos los mensajes |
Fuente | IP de origen del cliente que realiza solicitudes HTTP | Todos los mensajes |
suser | Quién realizó la actividad | Todos los mensajes |
actuar | Resultado de la actividad - cadena de forma libre. "Éxito" significa que la operación es aceptada por el sistema. En caso de error, incluya la cadena de error. Ej: No autorizado | Todos los mensajes |
cs1Label | La cadena "Blueprint Name" | Cat = "BlueprintCommit" o "BlueprintDelete" |
cs1 | Nombre del modelo sobre el que se tomaron medidas. | Cat = "BlueprintCommit" o "BlueprintDelete" |
cs2Label | La cadena "Blueprint ID" | Cat = "BlueprintCommit" o "BlueprintDelete" |
cs2 | Identificador del modelo sobre el que se tomaron medidas. | Cat = "BlueprintCommit" o "BlueprintDelete" |
cs3Label | La cadena "Confirmar mensaje". Solo existe si el usuario ha agregado un mensaje de confirmación (opcional) | Cat = "BlueprintCommit" o "BlueprintDelete" |
cs3 | Mensaje de confirmación. Solo existe si el usuario ha agregado un mensaje de confirmación (opcional) | Cat = "BlueprintCommit" |
deviceExternalId | Identificador (normalmente número de serie) del dispositivo administrado en el que se realizó la acción. | Cat = "DeviceConfigChange" |
deviceConfig | Configuración que se inserta y se aplica en el dispositivo donde se usa "#012" para indicar un salto de línea a los recopiladores y analizadores de registros. | Cat = "DeviceConfigChange" |
Anomalías Campos JSON
Campo | Descripción | Se aplica a |
u'blueprint_label' | Cuerda. Nombre del plano en el que se planteó la anomalía. | Todos los mensajes |
u'marca de tiempo' | Cuerda. Nombre del plano en el que se planteó la anomalía. | Todos los mensajes |
u'origin_name' | Cuerda. Nombre del plano en el que se planteó la anomalía. | Todos los mensajes |
u'alerta' | El valor es una carga JSON con la anomalía real (consulte la tabla siguiente) | |
u'origin_hostname' | Cuerda. Nombre de host del dispositivo al que afecta la anomalía. | Todos los mensajes |
u'device_hostname' | Cuerda. Nombre de host del dispositivo al que afecta la anomalía. | Todos los mensajes |
u'origin_role | Cuerda. Nombre de host del dispositivo al que afecta la anomalía. | Todos los mensajes |
Campo | Descripción | Se aplica a |
u'first_seen' | Cuerda. Marca de tiempo de Unix cuando se generó la anomalía por primera vez. | Todos los mensajes |
u'criado' | Siempre es cierto | Todos los mensajes |
u'severidad | El nivel de gravedad de la anomalía. Hoy en Apstra, todas las anomalías se plantean con el nivel de gravedad 3. | Todos los mensajes |
Ejemplos de registro de anomalías
- Anomalía de IBA "Anomalía MLAG"
- Anomalía de IBA "Nombre de host inesperado"
- Cierre de sesión y registro del usuario
- Eliminar plano
- Blueprint Commit
- Cambio de configuración del dispositivo
- Configuración del dispositivo
Anomalía de IBA "Anomalía MLAG"
El device_event_class_id = 101 para todas las anomalías
06 04 2020 08:42:50 10.23.59.188 <SLOG:INFO> 1 2020-06-04T13:26:54.195385Z aos-server - - - 2020-06-04T13:26:54.194168+0000 aos-server CEF:0|Apstra|Apstra|3.2.2-12|101|Alert|Very-High|msg={u'blueprint_label': u'LAB', u'timestamp': 1591277214194168, u'origin_name': u'FDO21260P7L', u'alert': {u'first_seen': 1591277214194141, u'raised': True, u'severity': 3, u'mlag_alert': {u'peer_link_status': u'down', u'actual_domain_state': 1, u'mlag_id': 0, u'expected_intf_state': 0, u'hostname': u'USDAL1-LAB93108-LF1', u'peer_link': u'port-channel3', u'expected_peer_link_status': u'up', u'actual_intf_state': 0, u'expected_domain_state': 4, u'ifname': u'', u'domain_id': u'1'}, u'id': u'6656a961-3139-4825-b89d-93f071271891'}, u'origin_hostname': u'LAB1_HOST1', 'device_hostname': 'LAB1_HOST1', u'origin_role': u'leaf'}
Anomalía de IBA "Nombre de host inesperado"
Jun 8 21:35:25 aos-server - 2020-06-08T21:35:25.757009+0000 aos-server CEF:0|Apstra|Apstra|3.3.0-299|101|Alert|Very-High|msg={u'blueprint_label': u'test', u'timestamp': 1591652125757009, u'origin_name': u'505400C5CAAA', u'alert': {u'first_seen': 1591652125757001, u'raised': True, u'severity': 3, u'hostname_alert': {u'expected_hostname': u'spine1', u'actual_hostname': u'localhost'}, u'id': u'7f693f1d-2aeb-44a4-93f1-656400cfff7e'}, u'origin_hostname': u'localhost', 'device_hostname': 'localhost', u'origin_role': u''}
Cierre de sesión y registro del usuario
El device_event_class_id = 100 para todos los eventos
Jun 8 19:43:33 aos-server - 2020-06-08T19:43:33.392984+0000 aos-server CEF:0|Apstra|Apstra|3.3.0-299|100|Audit event|medium|cat=Logout src=10.1.253.6 suser=admin act=Success Jun 8 19:43:39 aos-server - 2020-06-08T19:43:39.267262+0000 aos-server CEF:0|Apstra|Apstra|3.3.0-299|100|Audit event|medium|cat=Login src=10.1.253.6 suser=admin act=Success
Eliminar plano
Jun 8 21:23:41 aos-server - 2020-06-08T21:23:41.426107+0000 aos-server CEF:0|Apstra|Apstra|3.3.0-299|100|Audit event|medium|cat=BlueprintDelete src=10.1.253.6 suser=admin act=Success cs1Label=Blueprint Name cs1=test cs2Label=Blueprint ID cs2=2bd8f38f-9242-461c-855e-8146a4f68bb9
Blueprint Commit
Jun 8 21:42:19 aos-server - 2020-06-08T21:42:19.550216+0000 aos-server CEF:0|Apstra|Apstra|3.3.0-299|100|Audit event|medium|cat=BlueprintCommit src=10.1.253.6 suser=admin act=Success cs1Label=Blueprint Name cs1=test cs2Label=Blueprint ID cs2=5ba55c14-6c01-4537-9dd7-d32c8c41616b cs3Label=Commit Message cs3=New_Virtual_Network
Cambio de configuración del dispositivo
Revertir una implementación de BP de día 0 completo
Jun 8 21:35:27 aos-server - 2020-06-08T21:35:27.132831+0000 aos-server CEF:0|Apstra|Apstra|3.3.0-299|100|Audit event|medium|cat=DeviceConfigChange src=10.1.253.6 suser=admin act=Success deviceExternalId=505400C5CAAA deviceConfig= ... <Device Config, see next table> ...
Configuración del dispositivo
Tenga en cuenta que "#012" se utiliza para indicar un salto de línea
service interface inactive expose#012 !#012 spanning-tree mode none#012 !#012 hostname spine1#012 interface Ethernet1#012 description facing_l2-virtual-ext-001-leaf1:Ethernet1#012 no switchport#012 ip address 203.0.113.4/31#012 no shutdown#012 description facing_l2-virtual-ext-002-leaf1:Ethernet1/1#012 no switchport#012 ip address 203.0.113.6/31#012 no shutdown#012 exit#012 !#012 interface Ethernet3#012 description facing_l2-virtual-ext-003-leaf1:Ethernet1/1#012 no switchport#012 ip address 203.0.113.8/31#012 no shutdown#012 exit#012!#012 interface Ethernet4#012 description facing_l2-virtual-ext-004-leaf1:Ethernet1#012 no switchport#012 ip address 203.0.113.10/31#012 no shutdown#012 exit#012!#012 interface Ethernet5#012 no switchport#012 no shutdown#012 exit#012 !#012 interface Ethernet6#012 no switchport#012 no shutdown#012 exit#012 !#012 interface Ethernet7#012 no switchport#012 no shutdown#012 exit#012 !#012 ip routing#012!#012 service routing protocols model multi-agent#012 interface loopback 0#012 ip address 203.0.113.20/32#012 exit#012 !#012 ip prefix-list AllPodNetworks seq 5 permit 0.0.0.0/0 le 32#012 ip as-path access-list MyASN permit ^$#012 route-map AllPodNetworks permit 10#012 match ip address prefix-list AllPodNetworks#012 exit#012 !#012 route-map EVPN permit 10#012 set ip next-hop unchanged#012 exit#012 !#012 router bgp 4200000000#012 router-id 203.0.113.20#012 no bgp default ipv4-unicast#012 bgp log-neighbor-changes#012 bgp bestpath as-path multipath-relax#012 redistribute connected route-map AllPodNetworks#012!#012 neighbor l3clos-s peer-group#012 neighbor l3clos-s timers 1 3#012 neighbor l3clos-s soft-reconfiguration inbound#012 neighbor l3clos-s maximum-routes 0 warning-limit 90 percent#012 neighbor l3clos-s-evpn peer-group#012 neighbor l3clos-s-evpn ebgp-multihop 2#012 neighbor l3clos-s-evpn timers 1 3#012 neighbor l3clos-s-evpn send-community extended#012 neighbor l3clos-s-evpn soft-reconfiguration inbound#012 neighbor l3clos-s-evpn update-source loopback0#012 neighbor l3clos-s-evpn maximum-routes 0 warning-limit 90 percent# !#012 !#012 neighbor 203.0.113.0 remote-as 64512#012 neighbor 203.0.113.0 peer-group l3clos-s-evpn#012 neighbor 203.0.113.0 description facing_l2-virtual-ext-001-leaf1-evpn-overlay#012 neighbor 203.0.113.5 remote-as 64512#012 neighbor 203.0.113.5 peer-group l3clos-s#012 neighbor 203.0.113.5 description facing_l2-virtual-ext-001-leaf1#012 neighbor 203.0.113.1 remote-as 64513#012 neighbor 203.0.113.1 peer-group l3clos-s-evpn#012 neighbor 203.0.113.1 description facing_l2-virtual-ext-002-leaf1-evpn-overlay#012 neighbor 203.0.113.7 remote-as 64513#012 neighbor 203.0.113.7 peer-group l3clos-s#012 neighbor 203.0.113.7 description facing_l2-virtual-ext-002-leaf1#012 neighbor 203.0.113.2 remote-as 64514#012 neighbor 203.0.113.2 peer-group l3clos-s-evpn#012 neighbor 203.0.113.2 description facing_l2-virtual-ext-003-leaf1-evpn-overlay#012 neighbor 203.0.113.9 remote-as 64514#012 neighbor 203.0.113.9 peer-group l3clos-s#012 neighbor 203.0.113.9 description facing_l2-virtual-ext-003-leaf1#012 neighbor 203.0.113.3 remote-as 64515#012 neighbor 203.0.113.3 peer-group l3clos-s-evpn#012 neighbor 203.0.113.3 description facing_l2-virtual-ext-004-leaf1-evpn-overlay#012 neighbor 203.0.113.11 remote-as 64515#012 neighbor 203.0.113.11 peer-group l3clos-s#012 neighbor 203.0.113.11 description facing_l2-virtual-ext-004-leaf1#012 address-family evpn#012 neighbor l3clos-s-evpn route-map EVPN out#012 neighbor 203.0.113.0 activate#012 neighbor 203.0.113.1 activate#012 neighbor 203.0.113.2 activate#012 neighbor 203.0.113.3 activate#012 exit#012 address-family ipv4#012 neighbor 203.0.113.11 activate#012 neighbor 203.0.113.5 activate#012 neighbor 203.0.113.7 activate#012 neighbor 203.0.113.9 activate#012 exit#012 maximum-paths 32#012 exit#012