Erfassen Sie nur ssl-handshake mit tcpdump
Ich habe einen server, auf die viele Kunden SSL für Verbindung verwenden. Seit kurzem kann ich beobachten SSL-handshake-Fehler in den server-logs (ex-SSL-MAC-Fehler). Der Fehler ist an sich nicht wichtig, aber ich will sehen, warum einige clients verbinden können, während andere scheitern, und auch brauchen, um zu identifizieren, welche Kunden Sie scheitern.
Für das Debuggen dieses Problem, ich will alle SSL-handshakes passiert auf dem server und da ich nicht weiß, Wann die problematischen clients eine Verbindung herstellen, ich will nicht zu erfassen alle den Verkehr, bis das passiert. Ich will nur erfassen alle SSL-handshakes und später analysieren Sie mit Wireshark. Davon ausgehen, dass ich nur Zugang zu tcpdump und keine anderen tools für die Erfassung.
ja, aber es wird erfassen Sie alle Daten von diesem port. Ich will einfach nur, um Daten zu erfassen, bis die SSL - /TLS-handshake abgeschlossen ist für jede Anforderung.
InformationsquelleAutor sadiq.ali | 2016-09-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß nicht, was genau Sie anrufen, handshake, aber ich schlage vor, diesem Befehl wird das wohl erfassen, dass mehr als 95% von dem, was Sie wollen:
Was hat das jetzt tun:
tcp[12]
bedeutet die Erfassung der 13 byte des tcp-Pakets, entsprechend der ersten Hälfte der offset, die zweite Hälfte reserviert.Der offset, einmal multipliziert mit 4 ergibt die Anzahl Bytes des TCP-headers, was bedeutet
((tcp[12] & 0xf0) >> 2)
gibt die Größe des TCP-headers.Das erste byte eines TLS-Paket definieren die Inhalte geben. Der Wert 22 (0x16 in hexadezimal), die definiert wurde als "Handshake" - Inhalte.
Als Folge
tcp[((tcp[12] & 0xf0) >> 2)] = 0x16
erfasst jedes Paket mit dem ersten byte nach dem TCP-header gesetzt0x16
.Mehr Filterung kann durchgeführt werden, aber diese streng Ihre Frage beantwortet.
Dann mit diesem Befehl sollte das tun.
Ja, es ist die Erfassung allerdings nur für die Dauer der handshake. Aber wenn ich öffnen Sie die resultierende Datei in Wireshark, es ist nur zu zeigen, TCP-Pakete und nicht in der Lage zu rekonstruieren, die SSL-Nachrichten (Beispiel ClientHello) vollständig. Dies könnte sein, da dieser filter ist, dass einige Pakete?
Ja wahrscheinlich. Bei meinem test, Wireshark automatisch dekodiert die Pakete als TLSv1.2, aber wenn zum Beispiel Sie haben abgeschnitten Pakete auf TCP-Ebene, werden Sie nicht in der Lage sein, zu rekonstruieren den vollständigen handshake. Ich denke, dass Sie Sie nicht lösen können das nur mithilfe von tcpdump.
Ich hatte das gleiche Problem, wo wireshark konnte nicht interpretieren die tcp-Datenverkehr als TLS/SSL. Ich folgte dem Rat [ask.wireshark.org/questions/34075/... um dieses Problem zu lösen, wie ich war, Erfassung von Datenverkehr auf einem nicht-standard-ssl-port.
InformationsquelleAutor Jyo de Lys