Como ler un intercambio IKE_SA_INIT novo nunha captura
Unha negociación IKEv2 nova pódese ler antes de que existan as chaves. Captura o intento, le a cabeceira, emparella a resposta e distingue IKE de ESP no porto 4500.
Comeza por unha captura que comece antes do primeiro paquete do intento, ou estarás lendo a metade dunha conversa. Unha negociación que xa está en marcha mostra intercambios cifrados e renovacións de chaves, e ningunha das dúas se parece á apertura. A apertura é a parte que podes descodificar sen chaves, e por iso responde tan ben ás preguntas de accesibilidade. Catro comprobacións en orde lévante dunha captura recente a unha afirmación defendible sobre que lado deixou de falar.
Primeiro, confirma que a captura comeza polo principio
Unha captura iniciada despois de que o túnel suba conterá o fluxo de datos encapsulado e keepalives periódicos, e ambos están cifrados ou case baleiros. Reinicia o cliente e grava o intento en si, ou provoca deliberadamente unha conexión nova mentres a captura se executa. Se non podes producir un intento novo, dío nas túas notas, porque ningunha cantidade de descodificación recupera unha apertura que nunca gravaches.
Limita a captura aos dous extremos e a UDP 500 e 4500 para que o ficheiro siga sendo o bastante pequeno para lelo. Nunha máquina ocupada, unha captura sen filtro enterra a negociación baixo tráfico alleo.
tcpdump -i any -n -s 0 -w fresh-ike.pcap 'udp port 500 or udp port 4500'Garda o ficheiro cando o intento sexa interesante, porque a mesma captura responde ás dúas preguntas seguintes: que foi o intercambio e se volveu algo. Etiquetao coa hora de inicio e o par de extremos polo que filtrastes. Unha captura sen eses dous datos é inútil unha semana despois, cando os enderezos cambiaron e ninguén lembra que intento rexistrou.
Segundo, le a cabeceira antes das cargas
A cabeceira IKE leva os índices de parámetros de seguridade, o tipo de intercambio e o ID de mensaxe, e nunha negociación nova eses valores son distintivos. O iniciador inventa un SPI distinto de cero, a petición inicial leva un SPI de respondedor cero porque aínda non se viu ningunha resposta, o tipo de intercambio é IKE_SA_INIT e o ID de mensaxe é cero. Calquera outra cousa pertence a unha etapa posterior da mesma negociación ou a un intento completamente distinto.
As cargas de proposta, intercambio de chaves e nonce deste primeiro intercambio son lexibles en claro. Lexible non significa autenticado, e neste punto ningunha das dúas partes demostrou a súa identidade.
O valor privado de Diffie-Hellman nunca cruza o cable, así que a captura non che permite derivar chaves de sesión. A autenticación ocorre no seguinte intercambio, protexida polo que negociou o primeiro. Se alguén pregunta se un extremo é xenuíno, este intercambio non pode responder a esa pregunta. Só pode mostrar que ambas as partes acordaron unha proposta e produciron un segredo compartido que o ficheiro non contén.
Terceiro, emparella a petición coa súa resposta
Emparella polo par de SPI, o tipo de intercambio e o ID de mensaxe, e despois revisa o indicador de resposta. Unha retransmisión repite o ID de mensaxe do orixinal e non é un segundo intento de inicio de sesión. Contar paquetes en lugar de intercambios é como unha negociación sa se converte nun bucle fantasma.
Unha resposta tamén pode ser un rexeitamento: unha petición de cookie, unha notificación de grupo inaceptable ou un erro sobre unha proposta. Son respostas lexítimas, e significan que o camiño funciona mentres a política non. Descodifica a notificación en lugar de tratar cada resposta como un éxito. Cando a notificación nomea un grupo ou unha proposta, a reparación está na configuración e non no cortalumes.
A dirección tamén importa. Unha petición sen resposta e unha resposta que nunca chega ao cliente son fallos distintos, e só a segunda parece un tempo de espera do lado do cliente.
Cuarto, separa IKE de todo o demais en 4500
O porto 4500 leva tres cousas que nunha vista resumida parecen iguais: IKE detrás dun marcador non-ESP cero de catro bytes, ESP encapsulado cuxa posición de marcador contén un SPI distinto de cero, e keepalives curtos. Ese marcador é o que separa IKE do ESP encapsulado, así que le eses bytes antes de etiquetar o tráfico como IKE. Unha etiqueta de captura que le 4500 é un número de porto, non un protocolo.
O ESP encapsulado é carga cifrada que non podes interpretar sen chaves, e a súa presenza pode ser o sinal dun túnel que funciona máis que o dun fallo.
Vixía ambos os portos para o mesmo intento, porque IKE pode pasar a 4500 tras a detección de NAT aínda que se abrise en 500. Unha traza filtrada só en 500 parece silenciosa xustamente cando a negociación tivo éxito e se trasladou. Amplía o filtro e volve ler a mesma xanela temporal antes de sacar calquera conclusión da ausencia.
Que significa o silencio nun punto de observación
Ningunha resposta no cliente demostra só o que observou ese punto. O filtrado, o encamiñamento, o enderezo remoto equivocado, un servizo caído e unha discrepancia de protocolo producen a mesma traza baleira.
Un ICMP unreachable relevante engade probas, pero le o paquete citado que contén e anota o enderezo do dispositivo que o enviou.
O rexeitamento dun encamiñador é un evento distinto dun erro autenticado devolto polo extremo, e só o segundo demostra que o servizo está vivo. Correlaciona o mesmo intento cos rexistros do servidor ou cunha observación aprobada para saber se chegou a petición e se saíu unha resposta. Mantén as capturas acoutadas e privadas, porque os campos lexibles do salgado non fan inofensivo o resto do ficheiro. O resultado que paga a pena é unha petición e unha resposta emparelladas, ou un oco documentado cun punto de observación nomeado.