Introdução
Este documento descreve os métodos para analisar o pacote capturado do Secure Web Appliance (SWA) usando o Wireshark.
Pré-requisitos
Requisitos
A Cisco recomenda que você tenha conhecimento destes tópicos
Componentes Utilizados
Este documento não se restringe a versões de software e hardware específicas.
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.
Informações de Apoio
Ao entrar em contato com o Suporte Técnico da Cisco, você será solicitado a fornecer detalhes sobre a atividade de rede de entrada e saída do SWA, que pode ser monitorada executando uma captura de pacote para coletar tráfego para fins de depuração ou verificação.
Implantação de Proxy Explícita
Um proxy explícito requer que os clientes sejam configurados para enviar seu tráfego diretamente para o servidor proxy, frequentemente por meio de configurações de proxy específicas em sua configuração de rede (arquivo PAC ou opções DHCP) ou nas configurações do navegador. Isso permite que o servidor proxy gerencie e filtre solicitações antes de encaminhá-las ao destino.
Note: Em uma implantação explícita, o endereço IP de destino do pacote que sai da máquina cliente é o endereço IP do servidor Proxy.
Aqui está o fluxo lógico da rede ao usar a implantação de proxy explícita:
Fluxo de pacote de proxy explícito
Implantação transparente de proxy
Um proxy transparente intercepta o tráfego de rede sem exigir quaisquer alterações de configuração no lado do cliente. O tráfego é redirecionado para o servidor proxy automaticamente, permitindo que ele filtre e monitore solicitações sem que o cliente tenha conhecimento explícito.
Note: Na implantação transparente, o endereço IP de destino do pacote que sai da máquina cliente é o endereço IP do servidor de destino.
Aqui está o fluxo lógico da rede ao usar a implantação de proxy transparente:
Fluxo de pacote de proxy transparente
Para obter mais informações sobre o fluxo de pacote transparente explícito do SWA, consulte Compreender o fluxo de pacotes no Secure Web Appliance
Capturas de pacotes nas versões 7.x e posteriores do AsyncOS
Para iniciar uma captura de pacote na Interface gráfica do usuário (GUI), navegue para o menu Ajuda e suporte na parte superior direita, escolha Captura de pacote e clique em Iniciar captura. Para interromper o processo de captura de pacotes, clique em Stop Capture.
Note: Uma captura iniciada na GUI permanece salva nas sessões, mesmo após a expiração ou o logout da sessão da GUI do SWA.
Para iniciar uma captura de pacote na Interface de Linha de Comando (CLI), insira o comando Packetcapture > Start. Para interromper o processo de captura de pacotes, insira o comando Packetcapture > Stop e o SWA interromperá a captura de pacotes quando a sessão terminar.
Guias de configuração sobre captura de pacote SWA
Para obter mais informações sobre como executar a captura de pacotes em SWA.
Configurar a captura de pacotes no dispositivo de segurança de conteúdo
Guia do usuário do SWA - Seção Captura de pacote
Filtros de captura de pacotes em SWA
A captura padrão da GUI e CLI do SWA (comando Packetcapture) usa a sintaxe de filtro tcpdump padrão. Esta seção fornece informações com relação aos filtros de captura tcpdump e fornece alguns exemplos.
Aqui estão alguns dos filtros mais usados:
- ip: Filtros para todo o tráfego do protocolo IP.
- tcp: Filtros para todo o tráfego do protocolo TCP.
- host: Filtros para uma origem ou um destino de endereço IP específico.
Há duas condições lógicas que são frequentemente usadas em tcpdump:
- E: Captura pacotes somente se todas as condições especificadas forem atendidas (use
&&
).
- Ou: Captura pacotes se pelo menos uma condição for atendida (use
||
).
Note: Essas condições lógicas diferenciam maiúsculas de minúsculas.
Aqui está um filtro de exemplo no SWA para coletar os pacotes por endereço IP em implantações transparentes ou explícitas:
IP de origem: 192.168.1.1
IP de destino: 10.20.3.15
host 192.168.1.1 || host 10.20.3.15
Esse filtro captura o tráfego entre 10.20.3.15 e SWA, e o tráfego entre SWA e 192.168.1.1.
Tip: Não há necessidade de adicionar o endereço IP SWA no filtro.
Troubleshooting
Quando o cliente tenta acessar um site, todo o processo de comunicação pode ser dividido em duas partes:
- O cliente se comunica com o SWA.
- SWA se comunicando com o servidor de destino.
Tip: Antes de capturar pacotes, verifique se o endereço IP do cliente permanece inalterado no caminho para SWA. As alterações de endereço IP ocorrem devido às regras de conversão de endereço de rede (NAT) configuradas antes que o tráfego alcance o SWA ou à presença de um proxy downstream entre o SWA e a máquina cliente.
Analisar Conexões Explícitas Usando Filtros Wireshark
Filtros do Wireshark para Conexões Explícitas
Para a primeira fase de comunicação na captura de pacotes: O IP de origem seria o endereço IP do cliente e o endereço IP de destino é o IP do SWA (a interface de entrada do SWA, normalmente é a interface P1).
Você pode usar estes filtros no Wireshark:
Filtrar pelo IP do cliente:
ip.addr ==
Para a segunda fase da comunicação, o IP de origem seria o endereço IP do SWA (a interface externa, normalmente é a interface P2) e o endereço IP de destino é o endereço IP do servidor da Web.
Filtrar pelo IP do servidor:
ip.addr ==
Na implantação explícita, o cliente envia sua solicitação como Conexão HTTP para o proxy, para filtrar pela Conexão HTTP:
http.request.method == "CONNECT"
Filtre pelo método de solicitação HTTP:
http.request.method==GET
or
http.request.uri contains ""
Na solicitação HTTPS para filtrar por Hello do cliente:
ssl.handshake.type==1
Caso você queira ver os dois lados se comunicarem juntos, a melhor ação é usar o filtro de fluxo TCP.
Dica:Para localizar o número do fluxo TCP, clique com o botão direito do mouse em qualquer pacote no filtro atual ou clique com o botão direito do mouse no pacote desejado, selecione Follow, escolha Fluxo TCP. Você pode ver o número do fluxo TCP na barra de filtro.
Para isolar os números da primeira e da segunda fase do fluxo TCP, use o filtro:
tcp.stream eq || tcp.stream eq
Substitua <first_phase_stream_number> e <second_phase_stream_number> pelos números de fluxo apropriados.
Analisar Conexões Transparentes Usando Filtros Wireshark
Nas solicitações transparentes que envolvem o redirecionamento do Web Cache Communication Protocol (WCCP) ou o Policy-Based Routing (PBR), enquanto o tráfego do cliente é direcionado ao SWA, o SWA responde com o endereço IP do servidor de destino em vez de seu próprio endereço IP. Como resultado, em solicitações transparentes, a captura de pacotes exibe o endereço IP do servidor de destino, mas usa o endereço MAC do SWA como o endereço MAC de destino (no tráfego entre o cliente e o SWA) e os pacotes que saem do SWA se o spoofing de IP não estiver habilitado, o IP de origem é o endereço IP do cliente com o endereço MAC do SWA.
Filtros do Wireshark para Conexões Transparentes
Como é o caso da solicitação transparente, o Wireshark filtra o mesmo que conexões explícitas, mas mantém uma observação de que o SWA não pode se comunicar com o cliente usando seu endereço IP real e, em vez disso, se falsifica como servidor de destino real.
Filtrar pelo IP do cliente:
ip.addr ==
Filtrar pelo IP do servidor:
ip.addr ==
Caution: Se o IP Spoofing não estiver ativado no SWA, o endereço IP origem do pacote do SWA para o servidor Web será o endereço IP do cliente.
Filtre pelo método de solicitação HTTP:
http.request.method==GET
or
http.request.uri contains ""
Na solicitação HTTPS para filtrar por Hello do cliente:
ssl.handshake.type==1
Caso você queira ver os dois lados se comunicarem juntos, a melhor ação é usar o filtro de fluxo TCP.
Dica: para localizar o número do fluxo TCP, clique com o botão direito do mouse em qualquer pacote no filtro atual ou clique com o botão direito do mouse no pacote desejado, selecione Follow, escolha Fluxo TCP. Você pode ver o número do fluxo TCP na barra de filtro
Para isolar os números da primeira e da segunda fase do fluxo TCP, use o filtro:
tcp.stream eq || tcp.stream eq
Substitua <first_phase_stream_number> e <second_phase_stream_number> pelos números de fluxo apropriados.
Os filtros do Wireshark são semelhantes a conexões explícitas.
Como confirmar se a solicitação da Web do cliente é uma conexão explícita ou transparente
Nos pedidos explícitos: o cliente acessa um URL enquanto está ciente do servidor proxy, de modo que o cliente envia a solicitação de conexão HTTP ao endereço IP do proxy e à porta do proxy.
O SWA, por padrão, escuta as portas TCP 3128 e 80 para o serviço de proxy. Em capturas explícitas de pacotes de implantação, você pode ver que o tráfego entre o cliente e o SWA é destinado a esses números de porta de proxy.
Nas solicitações transparentes: o cliente acessa um URL enquanto o cliente não está ciente do IP do proxy e o SWA não se comunica usando seu próprio endereço IP. Em vez disso, o SWA falsificou o endereço IP do servidor de destino.
No modo transparente, o tráfego aparece como se fluísse entre o cliente e o servidor de destino (por exemplo, o site da Cisco), mas o endereço MAC do servidor de destino é o do SWA. Para confirmar o endereço MAC SWA, use o comando CLI: etherconfig > MEDIA.
Modificando a visualização do Wireshark
Para ter uma visão geral melhor dos pacotes no Wireshark durante a solução de problemas das solicitações da Web usando um Proxy, é melhor ter a SNI (Server Name Indication, indicação de nome do servidor) e a ID de fluxo TCP em sua visualização de pacotes.
Adicionando coluna SNI à visualização do Wireshark
Etapa 1. Abra o arquivo de captura de pacote com o Wireshark.
Etapa 2. Clique com o botão direito no nome das colunas no Wireshark.
Etapa 3. Escolha Preferências de Coluna.
Etapa 4. Clique no sinal + (Adicionar uma nova coluna).
Etapa 5. Informe um Nome para essa Coluna (por exemplo, SNI).
Etapa 6. Na seção Tipo, escolha Personalizado.
Etapa 7. Na seção Field, digite tls.handshake.extensions_server_name.
Etapa 8. Clique em OK para salvar as alterações.
Ou você pode usar estas etapas:
Etapa 1. Aplicar o filtro no Wireshark: ssl.handshake.type==1 para isolar as mensagens de saudação do cliente no handshake SSL/TLS.
Etapa 2. Expandir Detalhes do Protocolo: Clique em Transport Layer Security > Expand Handshake Protocol: Cliente Hello > Expandir Extensão: Nome do servidor > Expanda a SNI (Server Name Indication Extension).
Etapa 3. Adicionar o Nome do Servidor como uma Coluna. Clique com o botão direito do mouse no nome do servidor (ou no nome do servidor específico) e selecione Aplicar como coluna.
Adicionando coluna de número de fluxo à visualização do Wireshark
Etapa 1. Abra o arquivo de captura de pacote com o Wireshark.
Etapa 2. Clique com o botão direito no nome das colunas no Wireshark.
Etapa 3. Escolha Preferências da Coluna.
Etapa 4. Clique no sinal + (Adicionar uma nova coluna).
Etapa 5. Informe um Nome para essa Coluna (por exemplo, Fluxo).
Etapa 6. Na seção Tipo, escolha Personalizado.
Etapa 7. Na seção Campo, digite tcp.stream.
Etapa 8. Clique em OK para salvar as alterações.
Ou você pode usar estas etapas:
Etapa 1. Localizar Pacotes HTTP/TCP: Verifique se você está exibindo pacotes que incluem o protocolo HTTP/TCP.
Etapa 2. Selecione ou clique no pacote e em um protocolo de controle de transmissão no painel esquerdo inferior. Role para baixo até obter (Índice de fluxo:Número).
Etapa 3. Clique com o botão direito no Índice de Fluxo: e aplique como coluna.
Informações Relacionadas