Contents

Introdução

Pré-requisitos

Requisitos

Componentes Utilizados

Configuração

Criar chave de API

Criar Fluxo de Eventos

MacOS/Linux

Windows

Resposta

Lista de fluxos de eventos

MacOS/Linux

Windows

Resposta

Excluir Fluxos de Eventos

MacOS/Linux

Windows

Resposta

Verificar

Troubleshooting

Verificar o Serviço AMQP

Verifique a conexão com o receptor de fluxo de eventos

Verificar os Eventos na Fila

Coletar arquivo de tráfego de rede

Informações Relacionadas

Introdução

Este documento descreve como solucionar problemas de Fluxos de Eventos na Nuvem Privada de Endpoint Seguro da Proteção Avançada contra Malware.

Pré-requisitos

Requisitos

A Cisco recomenda que você tenha conhecimento dos seguintes tópicos:

- Nuvem privada de endpoint segura

- Consulta API

Componentes Utilizados

As informações neste documento são baseadas nestas versões de software e hardware:

- Nuvem privada de endpoint segura v3.9.0

- cURL v7.87.0

- cURL v8.0.1

As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.

Configuração

Criar chave de API

Etapa 1. Faça login no console da nuvem privada.

Etapa 2. Navegue até  Accounts > API Credentials.

Etapa 3. Clique em  New API Credential.

Etapa 4. Adicione o comando  Application name e clique em  Read & Write escopo.

Criar chave de API

Etapa 5. Clique em  Create.

Etapa 6. Salvar credenciais de API.

Chave de API

Cuidado: a chave de API não poderá ser recuperada se você sair desta página.

Criar Fluxo de Eventos

Isso cria um novo fluxo de mensagens AMQP (Advanced Message Queuing Protocol) para obter informações sobre eventos.

Você pode criar um Fluxo de Eventos para tipos e grupos de eventos especificados:

--data '{"name":"EVENT_STREAM_NAME","event_type":["EVENT_TYPE_1", "EVENT_TYPE_2"],"group_guid":["GROUP_ID_1", "GROUP_ID_2"]}'

Você pode criar um Fluxo de Eventos para todos os tipos de eventos e todos os grupos:

--data '{"name":"EVENT_STREAM_NAME","event_type":[],"group_guid":[]}'

MacOS/Linux

Você pode criar um fluxo de eventos em MacOS/Linux com o uso de:

curl -X POST -k -H 'Accept: application/json' -H 'Content-Type: application/json' -u 'CLIENT_ID:API_KEY' -i 'https://CONSOLE_URL/v1/event_streams' --data '{"name":"EVENT_STREAM_NAME","event_type":[],"group_guid":[]}'

Windows

Você pode criar um fluxo de eventos no Windows com o uso de:

curl -X POST -k -H "Accept: application/json" -H "Content-Type: application/json" -u "CLIENT_ID:API_KEY" -i "https://CONSOLE_URL/v1/event_streams" --data "{\"name\":\"EVENT_STREAM_NAME\",\"event_type\":[],\"group_guid\":[]}"

Resposta

HTTP/1.1 201 Created

(...)

"data": {

"id": 17,

"name": "EVENT_STREAM_NAME",

"amqp_credentials": {

"user_name": "17-1bfXXXXXXXXXX",

"queue_name": "event_stream_17",

"password": "3961XXXXXXXXXXXXXXXXXXXXXX814a77",

"host": "FMC_SERVICE_URL",

"port": 443,

"proto": "https"

}

}

Lista de fluxos de eventos

Isso mostra uma lista de fluxos de eventos criados na nuvem privada.

MacOS/Linux

Você pode listar os Fluxos de Eventos no MacOS/Linux com o uso de:

curl -k -H 'Accept: application/json' -H 'Content-Type: application/json' -u 'CLIENT_ID:API_KEY' -i 'https://CONSOLE_URL/v1/event_streams'

Windows

Você pode listar os Fluxos de Eventos no Windows com o uso de:

curl -k -H "Accept:application/json" -H "Content-Type:application/json" -u "CLIENT_ID:API_KEY" -i "https://CONSOLE_URL/v1/event_streams"

Resposta

HTTP/1.1 200 OK

(...)

"data": {

"id": 17,

"name": "EVENT_STREAM_NAME",

"amqp_credentials": {

"user_name": "17-1bfXXXXXXXXXX",

"queue_name": "event_stream_17",

"host": "FMC_SERVICE_URL",

"port": 443,

"proto": "https"

}

}

Excluir Fluxos de Eventos

Exclui um fluxo de eventos ativo.

MacOS/Linux

Você pode excluir Fluxos de Eventos no MacOS/Linux com o uso de:

curl -X DELETE -k -H 'Accept: application/json' -H 'Content-Type: application/json' -u 'CLIENT_ID:API_KEY' -i 'https://CONSOLE_URL/v1/event_streams/EVENT_STREAM_ID'

Windows

Você pode excluir Fluxos de Eventos no Windows com o uso de:

curl -X DELETE -k -H "Accept:application/json" -H "Content-Type:application/json" -u "CLIENT_ID:API_KEY" -i "https://CONSOLE_URL/v1/event_streams/EVENT_STREAM_ID"

Resposta

HTTP/1.1 200 OK

(...)

"data": {}

Verificar

Etapa 1. Copie o script Python no seu dispositivo e salve-o como  EventStream.py.

import pika

import ssl

user_name = "USERNAME"

queue_name = "QUEUE_NAME"

password = "PASSWORD"

host = "FMC_SERVICE_URL"

port = 443

proto = "https"

def callback(channel, method, properties, body):

print(body)

amqp_url = f"amqps://{user_name}:{password}@{host}:{port}"

context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)

amqp_ssl = pika.SSLOptions(context)

params = pika.URLParameters(amqp_url)

params.ssl_options = amqp_ssl

connection = pika.BlockingConnection(params)

channel = connection.channel()

channel.basic_consume(

queue_name,

callback,

auto_ack = False

)

channel.start_consuming()

Etapa 2. Execute-o no terminal como  python3 EventStream.py.

Etapa 3. Dispare qualquer evento que seja adicionado à fila do Fluxo de Eventos.

Etapa 4. Verifique se os eventos aparecem no terminal.

Troubleshooting

Para executar esses comandos, você deve fazer login via SSH na nuvem privada.

Verificar o Serviço AMQP

Verifique se o serviço está habilitado:

[root@fireamp rabbitmq]# amp-ctl service status rabbitmq

running enabled rabbitmq

Verifique se o serviço está em execução:

[root@fireamp ~]# svstat /service/rabbitmq

/service/rabbitmq: up (pid 25504) 7402137 seconds

Verifique a conexão com o receptor de fluxo de eventos

Execute o comando:

tail /data/log/rabbitmq/rabbit@fireamp.log

Conexão estabelecida:

=INFO REPORT==== 19-Apr-2023::08:40:12 ===

accepting AMQP connection <0.17588.27> (127.0.0.1:32946 -> 127.0.0.1:5672)

A conexão está fechada:

=WARNING REPORT==== 19-Apr-2023::08:41:52 ===

closing AMQP connection <0.17588.27> (127.0.0.1:32946 -> 127.0.0.1:5672):

connection_closed_abruptly

Verificar os Eventos na Fila

Os eventos na fila estão prontos para serem enviados nesse fluxo de eventos para o receptor após o estabelecimento da conexão. Neste exemplo, há 14 eventos para a ID do fluxo de eventos 23.

[root@fireamp rabbitmq]# rabbitmqctl list_queues

Listing queues ...

1acb0eb6-39f7-4b11-bd9b-fc4dd0e3bd77_60b15rn8mpftaico6or6l8zxavl1usm 26

1acb0eb6-39f7-4b11-bd9b-fc4dd0e3bd77_61984nlu8p11eeopmgmtcjra1v8gf5p 26

1acb0eb6-39f7-4b11-bd9b-fc4dd0e3bd77_iesRAgVo0h287mO_DetOx9PdDu8MxkS6kL4oSTeBm9s 26

event_decoration 0

event_log_store 0

event_stream_23 14

event_streams_api 0

events_delayed 0

events_retry 0

mongo_event_consumer 0

out_events_q1 0

tevent_listener 0

Coletar arquivo de tráfego de rede

Para verificar o tráfego do fluxo de eventos da nuvem privada, você pode coletar a captura com um tcpdump ferramenta:

Etapa 1. SSH na nuvem privada.

Etapa 2. Execute o comando:

tcpdump -vvv -i eth1 host <Event_Stream_Receiver_IP> -w file.pcap

Etapa 3. Parar a captura com  Ctrl+C (Windows) ou  Command-C (Mac)

Etapa 4. Extraia o  pcap da nuvem privada.

Informações Relacionadas

- Configurar o AMP para o recurso de fluxo de eventos de endpoints

- Suporte Técnico e Documentação - Cisco Systems